Re: [PATCH][v3] xhci: correctly enable interrupts

From: Sergei Shtylyov
Date: Mon Mar 04 2013 - 12:08:09 EST


Hello.

On 03/04/2013 07:14 PM, Thomas Renninger wrote:

From: Hannes Reinecke<hare@xxxxxxx>

xhci has its own interrupt enabling routine, which will try to
use MSI-X/MSI if present. So the usb core shouldn't try to enable
legacy interrupts; on some machines the xhci legacy IRQ setting
is invalid.

v3: Be careful to not break XHCI_BROKEN_MSI workaround (by trenn)

Cc: Bjorn Helgaas<bhelgaas@xxxxxxxxxx>
Cc: Oliver Neukum<oneukum@xxxxxxx>
Cc: Thomas Renninger<trenn@xxxxxxx>
Cc: Yinghai Lu<yinghai@xxxxxxxxxx>
Cc: Frederik Himpe<fhimpe@xxxxxxxxx>
Cc: David Haerdeman<david@xxxxxxxxxxx>
Cc: Alan Stern<stern@xxxxxxxxxxxxxxxxxxx>

Reviewed-by: Thomas Renninger<trenn@xxxxxxx>
Signed-off-by: Hannes Reinecke<hare@xxxxxxx>
Still a couple of style comments...

[...]

@@ -187,15 +188,19 @@ int usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
return -ENODEV;
dev->current_state = PCI_D0;

- /* The xHCI driver supports MSI and MSI-X,
- * so don't fail if the BIOS doesn't provide a legacy IRQ.
+ /*
+ * The xHCI driver has its own irq management
+ * make sure irq setup is not touched for xhci in generic hcd code
*/
- if (!dev->irq&& (driver->flags& HCD_MASK) != HCD_USB3) {
- dev_err(&dev->dev,
- "Found HC with no IRQ. Check BIOS/PCI %s setup!\n",
- pci_name(dev));
- retval = -ENODEV;
- goto disable_pci;
+ if ((driver->flags& HCD_MASK) != HCD_USB3) {
+ if (!dev->irq) {
+ dev_err(&dev->dev,
+ "Found HC with no IRQ. Check BIOS/PCI %s setup!\n",

Could you indent the string like the line below?

+ pci_name(dev));
+ retval = -ENODEV;
+ goto disable_pci;
+ }
+ hcd_irq = dev->irq;
}

hcd = usb_create_hcd(driver,&dev->dev, pci_name(dev));
[...]
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index f1f01a8..849470b 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
[...]
@@ -371,6 +371,7 @@ static int xhci_try_enable_msi(struct usb_hcd *hcd)
return -EINVAL;
}

+ legacy_irq:

Labels shouldn't be indented by a space (unless the existing coding style has them indented already, of course).
Although that might be a rule dropped by checkpatch.pl already -- it doesn't complain.

WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/