Lines Matching refs:idev
272 struct intel_device *idev = dev_id;
274 dev_info(&idev->pdev->dev, "hci_intel irq\n");
276 mutex_lock(&idev->hu_lock);
277 if (idev->hu)
278 intel_lpm_host_wake(idev->hu);
279 mutex_unlock(&idev->hu_lock);
282 pm_runtime_get(&idev->pdev->dev);
283 pm_runtime_mark_last_busy(&idev->pdev->dev);
284 pm_runtime_put_autosuspend(&idev->pdev->dev);
291 struct intel_device *idev;
299 list_for_each_entry(idev, &intel_device_list, list) {
303 if (hu->tty->dev->parent != idev->pdev->dev.parent)
306 if (!idev->reset) {
312 hu, dev_name(&idev->pdev->dev), powered);
314 gpiod_set_value(idev->reset, powered);
316 /* Provide to idev a hu reference which is used to run LPM
321 mutex_lock(&idev->hu_lock);
322 idev->hu = powered ? hu : NULL;
323 mutex_unlock(&idev->hu_lock);
325 if (idev->irq < 0)
328 if (powered && device_can_wakeup(&idev->pdev->dev)) {
329 err = devm_request_threaded_irq(&idev->pdev->dev,
330 idev->irq, NULL,
333 "bt-host-wake", idev);
336 hu, idev->irq);
340 device_wakeup_enable(&idev->pdev->dev);
342 pm_runtime_set_active(&idev->pdev->dev);
343 pm_runtime_use_autosuspend(&idev->pdev->dev);
344 pm_runtime_set_autosuspend_delay(&idev->pdev->dev,
346 pm_runtime_enable(&idev->pdev->dev);
347 } else if (!powered && device_may_wakeup(&idev->pdev->dev)) {
348 devm_free_irq(&idev->pdev->dev, idev->irq, idev);
349 device_wakeup_disable(&idev->pdev->dev);
351 pm_runtime_disable(&idev->pdev->dev);
364 struct intel_device *idev;
371 list_for_each_entry(idev, &intel_device_list, list) {
372 if (intel->hu->tty->dev->parent == idev->pdev->dev.parent) {
373 pm_runtime_get(&idev->pdev->dev);
374 pm_runtime_mark_last_busy(&idev->pdev->dev);
375 pm_runtime_put_autosuspend(&idev->pdev->dev);
530 struct intel_device *idev;
833 list_for_each_entry(idev, &intel_device_list, list) {
836 if (hu->tty->dev->parent == idev->pdev->dev.parent) {
837 if (device_may_wakeup(&idev->pdev->dev)) {
992 struct intel_device *idev;
1003 list_for_each_entry(idev, &intel_device_list, list) {
1004 if (hu->tty->dev->parent == idev->pdev->dev.parent) {
1005 pm_runtime_get_sync(&idev->pdev->dev);
1006 pm_runtime_mark_last_busy(&idev->pdev->dev);
1007 pm_runtime_put_autosuspend(&idev->pdev->dev);
1075 struct intel_device *idev = dev_get_drvdata(dev);
1077 mutex_lock(&idev->hu_lock);
1078 if (idev->hu)
1079 intel_lpm_suspend(idev->hu);
1080 mutex_unlock(&idev->hu_lock);
1087 struct intel_device *idev = dev_get_drvdata(dev);
1089 mutex_lock(&idev->hu_lock);
1090 if (idev->hu)
1091 intel_lpm_resume(idev->hu);
1092 mutex_unlock(&idev->hu_lock);
1101 struct intel_device *idev = dev_get_drvdata(dev);
1104 enable_irq_wake(idev->irq);
1111 struct intel_device *idev = dev_get_drvdata(dev);
1114 disable_irq_wake(idev->irq);
1136 struct intel_device *idev;
1139 idev = devm_kzalloc(&pdev->dev, sizeof(*idev), GFP_KERNEL);
1140 if (!idev)
1143 mutex_init(&idev->hu_lock);
1145 idev->pdev = pdev;
1151 idev->reset = devm_gpiod_get(&pdev->dev, "reset", GPIOD_OUT_LOW);
1152 if (IS_ERR(idev->reset)) {
1154 return PTR_ERR(idev->reset);
1157 idev->irq = platform_get_irq(pdev, 0);
1158 if (idev->irq < 0) {
1169 idev->irq = gpiod_to_irq(host_wake);
1170 if (idev->irq < 0) {
1181 platform_set_drvdata(pdev, idev);
1185 list_add_tail(&idev->list, &intel_device_list);
1189 desc_to_gpio(idev->reset), idev->irq);
1196 struct intel_device *idev = platform_get_drvdata(pdev);
1201 list_del(&idev->list);