Ticket #684: ixp425-ah_osdep.pach

File ixp425-ah_osdep.pach, 1.6 kB (added by taku_k@pb3.so-net.ne.jp, 6 years ago)

signed-off

Line 
1 The attached patch fix IXP425 specific issues according to PCI access.
2
3 Signed-off-by: Takumi Kadode <taku_k@pb3.so-net.ne.jp>
4
5 diff -Nur old/hal/linux/ah_osdep.h new/hal/linux/ah_osdep.h
6 --- old/hal/linux/ah_osdep.h    2006-08-28 13:34:10.000000000 +0900
7 +++ new/hal/linux/ah_osdep.h    2006-08-28 13:33:47.000000000 +0900
8 @@ -165,6 +165,19 @@
9   * register values are constants.
10   */
11  #if AH_BYTE_ORDER == AH_BIG_ENDIAN
12 +/* by taku */
13 +#if defined(CONFIG_ARCH_IXP425)
14 +#define _OS_REG_WRITE(_ah, _reg, _val) do {                                \
15 +       if ( (_reg) >= 0x4000 && (_reg) < 0x5000)                           \
16 +           writel( (_val), (volatile unsigned long)((_ah)->ah_sh + (_reg)));\
17 +        else                                                                \
18 +           writel(__bswap32(_val), (volatile unsigned long)((_ah)->ah_sh + (_reg))); \
19 +} while (0)
20 +#define _OS_REG_READ(_ah, _reg) \
21 +       (((_reg) >= 0x4000 && (_reg) < 0x5000) ? \
22 +           readl((volatile unsigned long)((_ah)->ah_sh + (_reg))) :        \
23 +           __bswap32(readl((volatile unsigned long)((_ah)->ah_sh + (_reg)))))
24 +#else
25  #define _OS_REG_WRITE(_ah, _reg, _val) do {                                \
26         if ( (_reg) >= 0x4000 && (_reg) < 0x5000)                           \
27                 *((volatile u_int32_t *)((_ah)->ah_sh + (_reg))) =          \
28 @@ -176,6 +189,8 @@
29         (((_reg) >= 0x4000 && (_reg) < 0x5000) ? \
30                 __bswap32(*((volatile u_int32_t *)((_ah)->ah_sh + (_reg)))) : \
31                 *((volatile u_int32_t *)((_ah)->ah_sh + (_reg))))
32 +#endif /* defined(CONFIG_ARCH_IXP425) */
33 +
34  #else /* AH_LITTLE_ENDIAN */
35  #define _OS_REG_WRITE(_ah, _reg, _val) do { \
36         *((volatile u_int32_t *)((_ah)->ah_sh + (_reg))) = (_val); \