Lines Matching refs:bdev

317 	struct bcm_device *bdev = data;  in bcm_host_wake()  local
319 bt_dev_dbg(bdev, "Host wake IRQ"); in bcm_host_wake()
321 pm_runtime_get(bdev->dev); in bcm_host_wake()
322 pm_runtime_mark_last_busy(bdev->dev); in bcm_host_wake()
323 pm_runtime_put_autosuspend(bdev->dev); in bcm_host_wake()
330 struct bcm_device *bdev = bcm->dev; in bcm_request_irq() local
334 if (!bcm_device_exists(bdev)) { in bcm_request_irq()
339 if (bdev->irq <= 0) { in bcm_request_irq()
344 err = devm_request_irq(bdev->dev, bdev->irq, bcm_host_wake, in bcm_request_irq()
345 bdev->irq_active_low ? IRQF_TRIGGER_FALLING : in bcm_request_irq()
347 "host_wake", bdev); in bcm_request_irq()
349 bdev->irq = err; in bcm_request_irq()
353 bdev->irq_acquired = true; in bcm_request_irq()
355 device_init_wakeup(bdev->dev, true); in bcm_request_irq()
357 pm_runtime_set_autosuspend_delay(bdev->dev, in bcm_request_irq()
359 pm_runtime_use_autosuspend(bdev->dev); in bcm_request_irq()
360 pm_runtime_set_active(bdev->dev); in bcm_request_irq()
361 pm_runtime_enable(bdev->dev); in bcm_request_irq()
523 struct bcm_device *bdev = NULL; in bcm_close() local
532 bdev = serdev_device_get_drvdata(hu->serdev); in bcm_close()
534 bdev = bcm->dev; in bcm_close()
536 bdev->hu = NULL; in bcm_close()
540 if (bdev) { in bcm_close()
541 if (IS_ENABLED(CONFIG_PM) && bdev->irq_acquired) { in bcm_close()
542 devm_free_irq(bdev->dev, bdev->irq, bdev); in bcm_close()
543 device_init_wakeup(bdev->dev, false); in bcm_close()
544 pm_runtime_disable(bdev->dev); in bcm_close()
547 err = bcm_gpio_set_power(bdev, false); in bcm_close()
551 pm_runtime_set_suspended(bdev->dev); in bcm_close()
731 struct bcm_device *bdev = NULL; in bcm_dequeue() local
736 bdev = bcm->dev; in bcm_dequeue()
737 pm_runtime_get_sync(bdev->dev); in bcm_dequeue()
743 if (bdev) { in bcm_dequeue()
744 pm_runtime_mark_last_busy(bdev->dev); in bcm_dequeue()
745 pm_runtime_put_autosuspend(bdev->dev); in bcm_dequeue()
756 struct bcm_device *bdev = dev_get_drvdata(dev); in bcm_suspend_device() local
759 bt_dev_dbg(bdev, ""); in bcm_suspend_device()
761 if (!bdev->is_suspended && bdev->hu) { in bcm_suspend_device()
762 hci_uart_set_flow_control(bdev->hu, true); in bcm_suspend_device()
765 bdev->is_suspended = true; in bcm_suspend_device()
769 err = bdev->set_device_wakeup(bdev, false); in bcm_suspend_device()
771 if (bdev->is_suspended && bdev->hu) { in bcm_suspend_device()
772 bdev->is_suspended = false; in bcm_suspend_device()
773 hci_uart_set_flow_control(bdev->hu, false); in bcm_suspend_device()
778 bt_dev_dbg(bdev, "suspend, delaying 15 ms"); in bcm_suspend_device()
786 struct bcm_device *bdev = dev_get_drvdata(dev); in bcm_resume_device() local
789 bt_dev_dbg(bdev, ""); in bcm_resume_device()
791 err = bdev->set_device_wakeup(bdev, true); in bcm_resume_device()
797 bt_dev_dbg(bdev, "resume, delaying 15 ms"); in bcm_resume_device()
801 if (bdev->is_suspended && bdev->hu) { in bcm_resume_device()
802 bdev->is_suspended = false; in bcm_resume_device()
804 hci_uart_set_flow_control(bdev->hu, false); in bcm_resume_device()
815 struct bcm_device *bdev = dev_get_drvdata(dev); in bcm_suspend() local
818 bt_dev_dbg(bdev, "suspend: is_suspended %d", bdev->is_suspended); in bcm_suspend()
828 if (!bdev->hu) in bcm_suspend()
834 if (device_may_wakeup(dev) && bdev->irq > 0) { in bcm_suspend()
835 error = enable_irq_wake(bdev->irq); in bcm_suspend()
837 bt_dev_dbg(bdev, "BCM irq: enabled"); in bcm_suspend()
849 struct bcm_device *bdev = dev_get_drvdata(dev); in bcm_resume() local
852 bt_dev_dbg(bdev, "resume: is_suspended %d", bdev->is_suspended); in bcm_resume()
862 if (!bdev->hu) in bcm_resume()
865 if (device_may_wakeup(dev) && bdev->irq > 0) { in bcm_resume()
866 disable_irq_wake(bdev->irq); in bcm_resume()
867 bt_dev_dbg(bdev, "BCM irq: disabled"); in bcm_resume()
1210 static int bcm_of_probe(struct bcm_device *bdev) in bcm_of_probe() argument
1212 bdev->use_autobaud_mode = device_property_read_bool(bdev->dev, in bcm_of_probe()
1214 device_property_read_u32(bdev->dev, "max-speed", &bdev->oper_speed); in bcm_of_probe()
1215 device_property_read_u8_array(bdev->dev, "brcm,bt-pcm-int-params", in bcm_of_probe()
1216 bdev->pcm_int_params, 5); in bcm_of_probe()
1217 bdev->irq = of_irq_get_byname(bdev->dev->of_node, "host-wakeup"); in bcm_of_probe()
1218 bdev->irq_active_low = irq_get_trigger_type(bdev->irq) in bcm_of_probe()