diff options
Diffstat (limited to 'drivers/usb')
| -rw-r--r-- | drivers/usb/host/ohci-hcd.c | 6 | ||||
| -rw-r--r-- | drivers/usb/host/ohci-omap.c | 2 | ||||
| -rw-r--r-- | drivers/usb/host/ohci.h | 1 | 
3 files changed, 7 insertions, 2 deletions
| diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c index 26bc47941d0..96fe76e9a6c 100644 --- a/drivers/usb/host/ohci-hcd.c +++ b/drivers/usb/host/ohci-hcd.c @@ -483,6 +483,9 @@ static int ohci_init (struct ohci_hcd *ohci)  	int ret;  	struct usb_hcd *hcd = ohci_to_hcd(ohci); +	if (distrust_firmware) +		ohci->flags |= OHCI_QUIRK_HUB_POWER; +  	disable (ohci);  	ohci->regs = hcd->regs; @@ -689,7 +692,8 @@ retry:  		temp |= RH_A_NOCP;  		temp &= ~(RH_A_POTPGT | RH_A_NPS);  		ohci_writel (ohci, temp, &ohci->regs->roothub.a); -	} else if ((ohci->flags & OHCI_QUIRK_AMD756) || distrust_firmware) { +	} else if ((ohci->flags & OHCI_QUIRK_AMD756) || +			(ohci->flags & OHCI_QUIRK_HUB_POWER)) {  		/* hub power always on; required for AMD-756 and some  		 * Mac platforms.  ganged overcurrent reporting, if any.  		 */ diff --git a/drivers/usb/host/ohci-omap.c b/drivers/usb/host/ohci-omap.c index 94dfca02f7e..5b2f17838ca 100644 --- a/drivers/usb/host/ohci-omap.c +++ b/drivers/usb/host/ohci-omap.c @@ -260,7 +260,7 @@ static int ohci_omap_init(struct usb_hcd *hcd)  			omap_cfg_reg(W4_USB_HIGHZ);  		}  		ohci_writel(ohci, rh, &ohci->regs->roothub.a); -		distrust_firmware = 0; +		ohci->flags &= ~OHCI_QUIRK_HUB_POWER;  	} else if (machine_is_nokia770()) {  		/* We require a self-powered hub, which should have  		 * plenty of power. */ diff --git a/drivers/usb/host/ohci.h b/drivers/usb/host/ohci.h index dc544ddc784..73b4a44c272 100644 --- a/drivers/usb/host/ohci.h +++ b/drivers/usb/host/ohci.h @@ -399,6 +399,7 @@ struct ohci_hcd {  #define	OHCI_QUIRK_ZFMICRO	0x20			/* Compaq ZFMicro chipset*/  #define	OHCI_QUIRK_NEC		0x40			/* lost interrupts */  #define	OHCI_QUIRK_FRAME_NO	0x80			/* no big endian frame_no shift */ +#define	OHCI_QUIRK_HUB_POWER	0x100			/* distrust firmware power/oc setup */  	// there are also chip quirks/bugs in init logic  	struct work_struct	nec_work;	/* Worker for NEC quirk */ | 
