Lines Matching refs:bdev
324 struct bcm_device *bdev = data; in bcm_host_wake() local
326 bt_dev_dbg(bdev, "Host wake IRQ"); in bcm_host_wake()
328 pm_runtime_get(bdev->dev); in bcm_host_wake()
329 pm_runtime_mark_last_busy(bdev->dev); in bcm_host_wake()
330 pm_runtime_put_autosuspend(bdev->dev); in bcm_host_wake()
337 struct bcm_device *bdev = bcm->dev; in bcm_request_irq() local
341 if (!bcm_device_exists(bdev)) { in bcm_request_irq()
346 if (bdev->irq <= 0) { in bcm_request_irq()
351 err = devm_request_irq(bdev->dev, bdev->irq, bcm_host_wake, in bcm_request_irq()
352 bdev->irq_active_low ? IRQF_TRIGGER_FALLING : in bcm_request_irq()
354 "host_wake", bdev); in bcm_request_irq()
356 bdev->irq = err; in bcm_request_irq()
360 bdev->irq_acquired = true; in bcm_request_irq()
362 device_init_wakeup(bdev->dev, true); in bcm_request_irq()
364 pm_runtime_set_autosuspend_delay(bdev->dev, in bcm_request_irq()
366 pm_runtime_use_autosuspend(bdev->dev); in bcm_request_irq()
367 pm_runtime_set_active(bdev->dev); in bcm_request_irq()
368 pm_runtime_enable(bdev->dev); in bcm_request_irq()
530 struct bcm_device *bdev = NULL; in bcm_close() local
539 bdev = serdev_device_get_drvdata(hu->serdev); in bcm_close()
541 bdev = bcm->dev; in bcm_close()
543 bdev->hu = NULL; in bcm_close()
547 if (bdev) { in bcm_close()
548 if (IS_ENABLED(CONFIG_PM) && bdev->irq_acquired) { in bcm_close()
549 devm_free_irq(bdev->dev, bdev->irq, bdev); in bcm_close()
550 device_init_wakeup(bdev->dev, false); in bcm_close()
551 pm_runtime_disable(bdev->dev); in bcm_close()
554 err = bcm_gpio_set_power(bdev, false); in bcm_close()
558 pm_runtime_set_suspended(bdev->dev); in bcm_close()
739 struct bcm_device *bdev = NULL; in bcm_dequeue() local
744 bdev = bcm->dev; in bcm_dequeue()
745 pm_runtime_get_sync(bdev->dev); in bcm_dequeue()
751 if (bdev) { in bcm_dequeue()
752 pm_runtime_mark_last_busy(bdev->dev); in bcm_dequeue()
753 pm_runtime_put_autosuspend(bdev->dev); in bcm_dequeue()
764 struct bcm_device *bdev = dev_get_drvdata(dev); in bcm_suspend_device() local
767 bt_dev_dbg(bdev, ""); in bcm_suspend_device()
769 if (!bdev->is_suspended && bdev->hu) { in bcm_suspend_device()
770 hci_uart_set_flow_control(bdev->hu, true); in bcm_suspend_device()
773 bdev->is_suspended = true; in bcm_suspend_device()
777 err = bdev->set_device_wakeup(bdev, false); in bcm_suspend_device()
779 if (bdev->is_suspended && bdev->hu) { in bcm_suspend_device()
780 bdev->is_suspended = false; in bcm_suspend_device()
781 hci_uart_set_flow_control(bdev->hu, false); in bcm_suspend_device()
786 bt_dev_dbg(bdev, "suspend, delaying 15 ms"); in bcm_suspend_device()
794 struct bcm_device *bdev = dev_get_drvdata(dev); in bcm_resume_device() local
797 bt_dev_dbg(bdev, ""); in bcm_resume_device()
799 err = bdev->set_device_wakeup(bdev, true); in bcm_resume_device()
805 bt_dev_dbg(bdev, "resume, delaying 15 ms"); in bcm_resume_device()
809 if (bdev->is_suspended && bdev->hu) { in bcm_resume_device()
810 bdev->is_suspended = false; in bcm_resume_device()
812 hci_uart_set_flow_control(bdev->hu, false); in bcm_resume_device()
823 struct bcm_device *bdev = dev_get_drvdata(dev); in bcm_suspend() local
826 bt_dev_dbg(bdev, "suspend: is_suspended %d", bdev->is_suspended); in bcm_suspend()
836 if (!bdev->hu) in bcm_suspend()
842 if (device_may_wakeup(dev) && bdev->irq > 0) { in bcm_suspend()
843 error = enable_irq_wake(bdev->irq); in bcm_suspend()
845 bt_dev_dbg(bdev, "BCM irq: enabled"); in bcm_suspend()
857 struct bcm_device *bdev = dev_get_drvdata(dev); in bcm_resume() local
860 bt_dev_dbg(bdev, "resume: is_suspended %d", bdev->is_suspended); in bcm_resume()
870 if (!bdev->hu) in bcm_resume()
873 if (device_may_wakeup(dev) && bdev->irq > 0) { in bcm_resume()
874 disable_irq_wake(bdev->irq); in bcm_resume()
875 bt_dev_dbg(bdev, "BCM irq: disabled"); in bcm_resume()
1237 static int bcm_of_probe(struct bcm_device *bdev) in bcm_of_probe() argument
1239 bdev->use_autobaud_mode = device_property_read_bool(bdev->dev, in bcm_of_probe()
1241 device_property_read_u32(bdev->dev, "max-speed", &bdev->oper_speed); in bcm_of_probe()
1242 device_property_read_u8_array(bdev->dev, "brcm,bt-pcm-int-params", in bcm_of_probe()
1243 bdev->pcm_int_params, 5); in bcm_of_probe()
1244 bdev->irq = of_irq_get_byname(bdev->dev->of_node, "host-wakeup"); in bcm_of_probe()
1245 bdev->irq_active_low = irq_get_trigger_type(bdev->irq) in bcm_of_probe()