gcc: remove version 4.9
[15.05/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  }