aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorAric Blumer <aric@sdgsystems.com>2009-07-30 13:26:58 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2009-09-23 09:46:32 -0400
commit7b4361f0848193ddc36dfb2c9a7391c56a9df2ad (patch)
tree16e03c7f2ff0b0e3b1767cac470994f664dfe714 /drivers/usb
parent6e23ec4ff2f2181c22ea02cf3774b882acef27e0 (diff)
USB: ohci-pxa27x: Allow NOCP and OCPM to be cleared
Some ohci-pxa27x platforms may require OCPM and NOCP in UHCRHDA to be clear, but the existing code was only allowing setting. This patch ensures that these bits are clear if the respective flags are not set. This is particularly important for the PXA3xx family where the documentation says OCPM must be cleared, but it is set after reset. Signed-off-by: Aric Blumer <aric@sdgsystems.com> Cc: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/host/ohci-pxa27x.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/usb/host/ohci-pxa27x.c b/drivers/usb/host/ohci-pxa27x.c
index e44dc2cbca24..b5294a9344de 100644
--- a/drivers/usb/host/ohci-pxa27x.c
+++ b/drivers/usb/host/ohci-pxa27x.c
@@ -177,9 +177,13 @@ static inline void pxa27x_setup_hc(struct pxa27x_ohci *ohci,
177 177
178 if (inf->flags & NO_OC_PROTECTION) 178 if (inf->flags & NO_OC_PROTECTION)
179 uhcrhda |= UHCRHDA_NOCP; 179 uhcrhda |= UHCRHDA_NOCP;
180 else
181 uhcrhda &= ~UHCRHDA_NOCP;
180 182
181 if (inf->flags & OC_MODE_PERPORT) 183 if (inf->flags & OC_MODE_PERPORT)
182 uhcrhda |= UHCRHDA_OCPM; 184 uhcrhda |= UHCRHDA_OCPM;
185 else
186 uhcrhda &= ~UHCRHDA_OCPM;
183 187
184 if (inf->power_on_delay) { 188 if (inf->power_on_delay) {
185 uhcrhda &= ~UHCRHDA_POTPGT(0xff); 189 uhcrhda &= ~UHCRHDA_POTPGT(0xff);