Skip to contentSkip to conversation

ipu3-cio2: Allow probe to succeed if there are no sensors connected

PATCH In review Sakari Ailus 2 participants 2 messages Dec 5, 2018

Subsystems (2)
lore
Share & tools
lore

Sakari Ailus

author maintainer
#0 lore raw

PATCH 1/1 ipu3-cio2: Allow probe to succeed if there are no sensors connected

The device won't be powered off on systems that have no sensors connected unless it has a driver bound to it. Allow that to happen even if there are no sensors connected to cio2.

---
 drivers/media/pci/intel/ipu3/ipu3-cio2.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/media/pci/intel/ipu3/ipu3-cio2.c +2 -1
index 447baaebca448..e281e55cdca4a 100644
@@ -1810,7 +1810,8 @@ static int cio2_pci_probe(struct pci_dev *pci_dev,
 
 	/* Register notifier for subdevices we care */
 	r = cio2_notifier_init(cio2);
-	if (r)
+	/* Proceed without sensors connected to allow the device to suspend. */
+	if (r && r != -ENODEV)
 		goto fail_cio2_queue_exit;
 
 	r = devm_request_irq(&pci_dev->dev, pci_dev->irq, cio2_irq,
Signature · 1 line
2.11.0
#1 lore raw
Quoted 3 lines · Sakari Ailus

The device won't be powered off on systems that have no sensors connected unless it has a driver bound to it. Allow that to happen even if there are no sensors connected to cio2.

Thanks for sending this. It helps to put the pci device to suspend which otherwise remains active after the probe for cio2 fails. I have verified it on HP Elitebook that has BIOS/DSDT more suitable for Windows.

Quoted 2 lines
Quoted 21 lines
---
 drivers/media/pci/intel/ipu3/ipu3-cio2.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/media/pci/intel/ipu3/ipu3-cio2.c +2 -1
index 447baaebca448..e281e55cdca4a 100644
@@ -1810,7 +1810,8 @@ static int cio2_pci_probe(struct pci_dev *pci_dev,
 
 	/* Register notifier for subdevices we care */
 	r = cio2_notifier_init(cio2);
-	if (r)
+	/* Proceed without sensors connected to allow the device to suspend. */
+	if (r && r != -ENODEV)
 		goto fail_cio2_queue_exit;
 
 	r = devm_request_irq(&pci_dev->dev, pci_dev->irq, cio2_irq,
Signature · 1 line
2.11.0
Signature · 2 lines
Best Regards,
Rajneesh