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