@@ -247,29 +247,29 @@ static u32 musb_default_busctl_offset(u8 epnum, u16 offset)
247
247
return 0x80 + (0x08 * epnum ) + offset ;
248
248
}
249
249
250
- static u8 musb_default_readb (const void __iomem * addr , unsigned offset )
250
+ static u8 musb_default_readb (void __iomem * addr , u32 offset )
251
251
{
252
252
u8 data = __raw_readb (addr + offset );
253
253
254
254
trace_musb_readb (__builtin_return_address (0 ), addr , offset , data );
255
255
return data ;
256
256
}
257
257
258
- static void musb_default_writeb (void __iomem * addr , unsigned offset , u8 data )
258
+ static void musb_default_writeb (void __iomem * addr , u32 offset , u8 data )
259
259
{
260
260
trace_musb_writeb (__builtin_return_address (0 ), addr , offset , data );
261
261
__raw_writeb (data , addr + offset );
262
262
}
263
263
264
- static u16 musb_default_readw (const void __iomem * addr , unsigned offset )
264
+ static u16 musb_default_readw (void __iomem * addr , u32 offset )
265
265
{
266
266
u16 data = __raw_readw (addr + offset );
267
267
268
268
trace_musb_readw (__builtin_return_address (0 ), addr , offset , data );
269
269
return data ;
270
270
}
271
271
272
- static void musb_default_writew (void __iomem * addr , unsigned offset , u16 data )
272
+ static void musb_default_writew (void __iomem * addr , u32 offset , u16 data )
273
273
{
274
274
trace_musb_writew (__builtin_return_address (0 ), addr , offset , data );
275
275
__raw_writew (data , addr + offset );
@@ -397,19 +397,25 @@ static void musb_default_read_fifo(struct musb_hw_ep *hw_ep, u16 len, u8 *dst)
397
397
/*
398
398
* Old style IO functions
399
399
*/
400
- u8 (* musb_readb )(const void __iomem * addr , unsigned offset );
400
+ u8 (* musb_readb )(void __iomem * addr , u32 offset );
401
401
EXPORT_SYMBOL_GPL (musb_readb );
402
402
403
- void (* musb_writeb )(void __iomem * addr , unsigned offset , u8 data );
403
+ void (* musb_writeb )(void __iomem * addr , u32 offset , u8 data );
404
404
EXPORT_SYMBOL_GPL (musb_writeb );
405
405
406
- u16 (* musb_readw )(const void __iomem * addr , unsigned offset );
406
+ u8 (* musb_clearb )(void __iomem * addr , u32 offset );
407
+ EXPORT_SYMBOL_GPL (musb_clearb );
408
+
409
+ u16 (* musb_readw )(void __iomem * addr , u32 offset );
407
410
EXPORT_SYMBOL_GPL (musb_readw );
408
411
409
- void (* musb_writew )(void __iomem * addr , unsigned offset , u16 data );
412
+ void (* musb_writew )(void __iomem * addr , u32 offset , u16 data );
410
413
EXPORT_SYMBOL_GPL (musb_writew );
411
414
412
- u32 musb_readl (const void __iomem * addr , unsigned offset )
415
+ u16 (* musb_clearw )(void __iomem * addr , u32 offset );
416
+ EXPORT_SYMBOL_GPL (musb_clearw );
417
+
418
+ u32 musb_readl (void __iomem * addr , u32 offset )
413
419
{
414
420
u32 data = __raw_readl (addr + offset );
415
421
@@ -418,7 +424,7 @@ u32 musb_readl(const void __iomem *addr, unsigned offset)
418
424
}
419
425
EXPORT_SYMBOL_GPL (musb_readl );
420
426
421
- void musb_writel (void __iomem * addr , unsigned offset , u32 data )
427
+ void musb_writel (void __iomem * addr , u32 offset , u32 data )
422
428
{
423
429
trace_musb_writel (__builtin_return_address (0 ), addr , offset , data );
424
430
__raw_writel (data , addr + offset );
@@ -1149,7 +1155,6 @@ static irqreturn_t musb_stage0_irq(struct musb *musb, u8 int_usb,
1149
1155
static void musb_disable_interrupts (struct musb * musb )
1150
1156
{
1151
1157
void __iomem * mbase = musb -> mregs ;
1152
- u16 temp ;
1153
1158
1154
1159
/* disable interrupts */
1155
1160
musb_writeb (mbase , MUSB_INTRUSBE , 0 );
@@ -1159,9 +1164,9 @@ static void musb_disable_interrupts(struct musb *musb)
1159
1164
musb_writew (mbase , MUSB_INTRRXE , 0 );
1160
1165
1161
1166
/* flush pending interrupts */
1162
- temp = musb_readb (mbase , MUSB_INTRUSB );
1163
- temp = musb_readw (mbase , MUSB_INTRTX );
1164
- temp = musb_readw (mbase , MUSB_INTRRX );
1167
+ musb_clearb (mbase , MUSB_INTRUSB );
1168
+ musb_clearw (mbase , MUSB_INTRTX );
1169
+ musb_clearw (mbase , MUSB_INTRRX );
1165
1170
}
1166
1171
1167
1172
static void musb_enable_interrupts (struct musb * musb )
@@ -2388,10 +2393,19 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
2388
2393
musb_readb = musb -> ops -> readb ;
2389
2394
if (musb -> ops -> writeb )
2390
2395
musb_writeb = musb -> ops -> writeb ;
2396
+ if (musb -> ops -> clearb )
2397
+ musb_clearb = musb -> ops -> clearb ;
2398
+ else
2399
+ musb_clearb = musb_readb ;
2400
+
2391
2401
if (musb -> ops -> readw )
2392
2402
musb_readw = musb -> ops -> readw ;
2393
2403
if (musb -> ops -> writew )
2394
2404
musb_writew = musb -> ops -> writew ;
2405
+ if (musb -> ops -> clearw )
2406
+ musb_clearw = musb -> ops -> clearw ;
2407
+ else
2408
+ musb_clearw = musb_readw ;
2395
2409
2396
2410
#ifndef CONFIG_MUSB_PIO_ONLY
2397
2411
if (!musb -> ops -> dma_init || !musb -> ops -> dma_exit ) {
0 commit comments