Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd70469d authored by Felipe Balbi's avatar Felipe Balbi Committed by Greg Kroah-Hartman
Browse files

usb: core: hcd: make hcd->irq unsigned



There's really no point in having hcd->irq as a
signed integer when we consider the fact that
IRQ 0 means NO_IRQ. In order to avoid confusion,
make hcd->irq unsigned and fix users who were
passing -1 as the IRQ number to usb_add_hcd.

Tested-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 444aa7fa
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -2352,7 +2352,7 @@ static int usb_hcd_request_irqs(struct usb_hcd *hcd,
					"io mem" : "io base",
					(unsigned long long)hcd->rsrc_start);
	} else {
		hcd->irq = -1;
		hcd->irq = 0;
		if (hcd->rsrc_start)
			dev_info(hcd->self.controller, "%s 0x%08llx\n",
					(hcd->driver->flags & HCD_MEMORY) ?
@@ -2508,7 +2508,7 @@ int usb_add_hcd(struct usb_hcd *hcd,
	clear_bit(HCD_FLAG_POLL_RH, &hcd->flags);
	del_timer_sync(&hcd->rh_timer);
err_hcd_driver_start:
	if (usb_hcd_is_primary_hcd(hcd) && hcd->irq >= 0)
	if (usb_hcd_is_primary_hcd(hcd) && hcd->irq > 0)
		free_irq(irqnum, hcd);
err_request_irq:
err_hcd_driver_setup:
@@ -2573,7 +2573,7 @@ void usb_remove_hcd(struct usb_hcd *hcd)
	del_timer_sync(&hcd->rh_timer);

	if (usb_hcd_is_primary_hcd(hcd)) {
		if (hcd->irq >= 0)
		if (hcd->irq > 0)
			free_irq(hcd->irq, hcd);
	}

+1 −1
Original line number Diff line number Diff line
@@ -899,7 +899,7 @@ static void ohci_stop (struct usb_hcd *hcd)
	ohci_usb_reset (ohci);
	ohci_writel (ohci, OHCI_INTR_MIE, &ohci->regs->intrdisable);
	free_irq(hcd->irq, hcd);
	hcd->irq = -1;
	hcd->irq = 0;

	if (quirk_zfmicro(ohci))
		del_timer(&ohci->unlink_watchdog);
+1 −1
Original line number Diff line number Diff line
@@ -2396,7 +2396,7 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd)
	/* FIXME when MSI-X is supported and there are multiple vectors */
	/* Clear the MSI-X event interrupt status */

	if (hcd->irq != -1) {
	if (hcd->irq) {
		u32 irq_pending;
		/* Acknowledge the PCI interrupt */
		irq_pending = xhci_readl(xhci, &xhci->ir_set->irq_pending);
+4 −4
Original line number Diff line number Diff line
@@ -224,13 +224,13 @@ static void xhci_free_irq(struct xhci_hcd *xhci)
	int ret;

	/* return if using legacy interrupt */
	if (xhci_to_hcd(xhci)->irq >= 0)
	if (xhci_to_hcd(xhci)->irq > 0)
		return;

	ret = xhci_free_msi(xhci);
	if (!ret)
		return;
	if (pdev->irq >= 0)
	if (pdev->irq > 0)
		free_irq(pdev->irq, xhci_to_hcd(xhci));

	return;
@@ -341,7 +341,7 @@ static int xhci_try_enable_msi(struct usb_hcd *hcd)
	/* unregister the legacy interrupt */
	if (hcd->irq)
		free_irq(hcd->irq, hcd);
	hcd->irq = -1;
	hcd->irq = 0;

	ret = xhci_setup_msix(xhci);
	if (ret)
@@ -349,7 +349,7 @@ static int xhci_try_enable_msi(struct usb_hcd *hcd)
		ret = xhci_setup_msi(xhci);

	if (!ret)
		/* hcd->irq is -1, we have MSI */
		/* hcd->irq is 0, we have MSI */
		return 0;

	if (!pdev->irq) {
+1 −1
Original line number Diff line number Diff line
@@ -1987,7 +1987,7 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
		musb->xceiv->otg->default_a = 1;
		musb->xceiv->state = OTG_STATE_A_IDLE;

		status = usb_add_hcd(musb_to_hcd(musb), -1, 0);
		status = usb_add_hcd(musb_to_hcd(musb), 0, 0);

		hcd->self.uses_pio_for_control = 1;
		dev_dbg(musb->controller, "%s mode, status %d, devctl %02x %c\n",
Loading