Lines Matching refs:bdev

301 	struct bcm_device *bdev = data;  in bcm_host_wake()  local
303 bt_dev_dbg(bdev, "Host wake IRQ"); in bcm_host_wake()
305 pm_runtime_get(bdev->dev); in bcm_host_wake()
306 pm_runtime_mark_last_busy(bdev->dev); in bcm_host_wake()
307 pm_runtime_put_autosuspend(bdev->dev); in bcm_host_wake()
314 struct bcm_device *bdev = bcm->dev; in bcm_request_irq() local
318 if (!bcm_device_exists(bdev)) { in bcm_request_irq()
323 if (bdev->irq <= 0) { in bcm_request_irq()
328 err = devm_request_irq(bdev->dev, bdev->irq, bcm_host_wake, in bcm_request_irq()
329 bdev->irq_active_low ? IRQF_TRIGGER_FALLING : in bcm_request_irq()
331 "host_wake", bdev); in bcm_request_irq()
333 bdev->irq = err; in bcm_request_irq()
337 bdev->irq_acquired = true; in bcm_request_irq()
339 device_init_wakeup(bdev->dev, true); in bcm_request_irq()
341 pm_runtime_set_autosuspend_delay(bdev->dev, in bcm_request_irq()
343 pm_runtime_use_autosuspend(bdev->dev); in bcm_request_irq()
344 pm_runtime_set_active(bdev->dev); in bcm_request_irq()
345 pm_runtime_enable(bdev->dev); in bcm_request_irq()
502 struct bcm_device *bdev = NULL; in bcm_close() local
511 bdev = serdev_device_get_drvdata(hu->serdev); in bcm_close()
513 bdev = bcm->dev; in bcm_close()
515 bdev->hu = NULL; in bcm_close()
519 if (bdev) { in bcm_close()
520 if (IS_ENABLED(CONFIG_PM) && bdev->irq_acquired) { in bcm_close()
521 devm_free_irq(bdev->dev, bdev->irq, bdev); in bcm_close()
522 device_init_wakeup(bdev->dev, false); in bcm_close()
523 pm_runtime_disable(bdev->dev); in bcm_close()
526 err = bcm_gpio_set_power(bdev, false); in bcm_close()
530 pm_runtime_set_suspended(bdev->dev); in bcm_close()
709 struct bcm_device *bdev = NULL; in bcm_dequeue() local
714 bdev = bcm->dev; in bcm_dequeue()
715 pm_runtime_get_sync(bdev->dev); in bcm_dequeue()
721 if (bdev) { in bcm_dequeue()
722 pm_runtime_mark_last_busy(bdev->dev); in bcm_dequeue()
723 pm_runtime_put_autosuspend(bdev->dev); in bcm_dequeue()
734 struct bcm_device *bdev = dev_get_drvdata(dev); in bcm_suspend_device() local
737 bt_dev_dbg(bdev, ""); in bcm_suspend_device()
739 if (!bdev->is_suspended && bdev->hu) { in bcm_suspend_device()
740 hci_uart_set_flow_control(bdev->hu, true); in bcm_suspend_device()
743 bdev->is_suspended = true; in bcm_suspend_device()
747 err = bdev->set_device_wakeup(bdev, false); in bcm_suspend_device()
749 if (bdev->is_suspended && bdev->hu) { in bcm_suspend_device()
750 bdev->is_suspended = false; in bcm_suspend_device()
751 hci_uart_set_flow_control(bdev->hu, false); in bcm_suspend_device()
756 bt_dev_dbg(bdev, "suspend, delaying 15 ms"); in bcm_suspend_device()
764 struct bcm_device *bdev = dev_get_drvdata(dev); in bcm_resume_device() local
767 bt_dev_dbg(bdev, ""); in bcm_resume_device()
769 err = bdev->set_device_wakeup(bdev, true); in bcm_resume_device()
775 bt_dev_dbg(bdev, "resume, delaying 15 ms"); in bcm_resume_device()
779 if (bdev->is_suspended && bdev->hu) { in bcm_resume_device()
780 bdev->is_suspended = false; in bcm_resume_device()
782 hci_uart_set_flow_control(bdev->hu, false); in bcm_resume_device()
793 struct bcm_device *bdev = dev_get_drvdata(dev); in bcm_suspend() local
796 bt_dev_dbg(bdev, "suspend: is_suspended %d", bdev->is_suspended); in bcm_suspend()
806 if (!bdev->hu) in bcm_suspend()
812 if (device_may_wakeup(dev) && bdev->irq > 0) { in bcm_suspend()
813 error = enable_irq_wake(bdev->irq); in bcm_suspend()
815 bt_dev_dbg(bdev, "BCM irq: enabled"); in bcm_suspend()
827 struct bcm_device *bdev = dev_get_drvdata(dev); in bcm_resume() local
830 bt_dev_dbg(bdev, "resume: is_suspended %d", bdev->is_suspended); in bcm_resume()
840 if (!bdev->hu) in bcm_resume()
843 if (device_may_wakeup(dev) && bdev->irq > 0) { in bcm_resume()
844 disable_irq_wake(bdev->irq); in bcm_resume()
845 bt_dev_dbg(bdev, "BCM irq: disabled"); in bcm_resume()
1147 static int bcm_of_probe(struct bcm_device *bdev) in bcm_of_probe() argument
1149 device_property_read_u32(bdev->dev, "max-speed", &bdev->oper_speed); in bcm_of_probe()
1150 device_property_read_u8_array(bdev->dev, "brcm,bt-pcm-int-params", in bcm_of_probe()
1151 bdev->pcm_int_params, 5); in bcm_of_probe()
1152 bdev->irq = of_irq_get_byname(bdev->dev->of_node, "host-wakeup"); in bcm_of_probe()
1153 bdev->irq_active_low = irq_get_trigger_type(bdev->irq) in bcm_of_probe()