ppc40x: upgrade to 3.18
[openwrt/openwrt.git] / target / linux / ppc40x / patches-3.18 / 121-usb-isp116x-hcd-ppc405-register-access.patch
1 --- a/drivers/usb/host/isp116x.h
2 +++ b/drivers/usb/host/isp116x.h
3 @@ -354,21 +354,63 @@ struct isp116x_ep {
4 #define isp116x_check_platform_delay(h) 0
5 #endif
6
7 +#ifdef CONFIG_PPC
8 +static inline void isp116x_writew(u16 val, void __iomem *addr)
9 +{
10 + writew(cpu_to_le16(val), addr);
11 +}
12 +
13 +static inline u16 isp116x_readw(void __iomem *addr)
14 +{
15 + return le16_to_cpu(readw(addr));
16 +}
17 +
18 +static inline void isp116x_raw_writew(u16 val, void __iomem *addr)
19 +{
20 + writew(cpu_to_le16(val), addr);
21 +}
22 +
23 +static inline u16 isp116x_raw_readw(void __iomem *addr)
24 +{
25 + return le16_to_cpu(readw(addr));
26 +}
27 +#else
28 +static inline void isp116x_writew(u16 val, void __iomem *addr)
29 +{
30 + writew(val, addr);
31 +}
32 +
33 +static inline u16 isp116x_readw(void __iomem *addr)
34 +{
35 + return readw(addr);
36 +}
37 +
38 +static inline void isp116x_raw_writew(u16 val, void __iomem *addr)
39 +{
40 + __raw_writew(val, addr);
41 +}
42 +
43 +static inline u16 isp116x_raw_readw(void __iomem *addr)
44 +{
45 + return __raw_readw(addr);
46 +}
47 +#endif
48 +
49 static inline void isp116x_write_addr(struct isp116x *isp116x, unsigned reg)
50 {
51 - writew(reg & 0xff, isp116x->addr_reg);
52 + isp116x_writew(reg & 0xff, isp116x->addr_reg);
53 isp116x_delay(isp116x, 300);
54 }
55
56 static inline void isp116x_write_data16(struct isp116x *isp116x, u16 val)
57 {
58 - writew(val, isp116x->data_reg);
59 + isp116x_writew(val, isp116x->data_reg);
60 isp116x_delay(isp116x, 150);
61 }
62
63 static inline void isp116x_raw_write_data16(struct isp116x *isp116x, u16 val)
64 {
65 - __raw_writew(val, isp116x->data_reg);
66 + isp116x_raw_writew(val, isp116x->data_reg);
67 isp116x_delay(isp116x, 150);
68 }
69
70 @@ -376,7 +418,7 @@ static inline u16 isp116x_read_data16(st
71 {
72 u16 val;
73
74 - val = readw(isp116x->data_reg);
75 + val = isp116x_readw(isp116x->data_reg);
76 isp116x_delay(isp116x, 150);
77 return val;
78 }
79 @@ -385,16 +427,16 @@ static inline u16 isp116x_raw_read_data1
80 {
81 u16 val;
82
83 - val = __raw_readw(isp116x->data_reg);
84 + val = isp116x_raw_readw(isp116x->data_reg);
85 isp116x_delay(isp116x, 150);
86 return val;
87 }
88
89 static inline void isp116x_write_data32(struct isp116x *isp116x, u32 val)
90 {
91 - writew(val & 0xffff, isp116x->data_reg);
92 + isp116x_writew(val & 0xffff, isp116x->data_reg);
93 isp116x_delay(isp116x, 150);
94 - writew(val >> 16, isp116x->data_reg);
95 + isp116x_writew(val >> 16, isp116x->data_reg);
96 isp116x_delay(isp116x, 150);
97 }
98
99 @@ -402,9 +444,9 @@ static inline u32 isp116x_read_data32(st
100 {
101 u32 val;
102
103 - val = (u32) readw(isp116x->data_reg);
104 + val = (u32) isp116x_readw(isp116x->data_reg);
105 isp116x_delay(isp116x, 150);
106 - val |= ((u32) readw(isp116x->data_reg)) << 16;
107 + val |= ((u32) isp116x_readw(isp116x->data_reg)) << 16;
108 isp116x_delay(isp116x, 150);
109 return val;
110 }