Hi USB devs,
I have no idea who to contact for this, the bug predates git.
drivers/usb/host/ohci-pxa27x.c:150 pxa27x_ohci_select_pmm()
warn: odd binop '0x200 & 0x100'
drivers/usb/host/ohci-pxa27x.c
130 /*
131 PMM_NPS_MODE -- PMM Non-power switching mode
132 Ports are powered continuously.
133
134 PMM_GLOBAL_MODE -- PMM global switching mode
135 All ports are powered at the same time.
136
137 PMM_PERPORT_MODE -- PMM per port switching mode
138 Ports are powered individually.
139 */
140 static int pxa27x_ohci_select_pmm(struct pxa27x_ohci *pxa_ohci, int
mode)
141 {
142 uint32_t uhcrhda = __raw_readl(pxa_ohci->mmio_base + UHCRHDA);
143 uint32_t uhcrhdb = __raw_readl(pxa_ohci->mmio_base + UHCRHDB);
144
145 switch (mode) {
146 case PMM_NPS_MODE:
147 uhcrhda |= RH_A_NPS;
148 break;
149 case PMM_GLOBAL_MODE:
150 uhcrhda &= ~(RH_A_NPS & RH_A_PSM);
My guess is that | was intended instead of & here, but I am not sure.
151 break;
152 case PMM_PERPORT_MODE:
153 uhcrhda &= ~(RH_A_NPS);
154 uhcrhda |= RH_A_PSM;
155
156 /* Set port power control mask bits, only 3 ports. */
157 uhcrhdb |= (0x7<<17);
158 break;
159 default:
160 printk( KERN_ERR
161 "Invalid mode %d, set to non-power switch
mode.\n",
162 mode );
163
164 uhcrhda |= RH_A_NPS;
165 }
166
167 __raw_writel(uhcrhda, pxa_ohci->mmio_base + UHCRHDA);
168 __raw_writel(uhcrhdb, pxa_ohci->mmio_base + UHCRHDB);
169 return 0;
170 }
regards,
dan carpenter
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html