diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-31 10:52:51 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-31 10:52:51 -0400 |
commit | 63b40456a30912084c90753582137b9e0495c5c3 (patch) | |
tree | eedba8710d0ba3c802ecf77f46ed6ab2c73e2149 /arch/sparc | |
parent | eff2502801e9a3a34882c6bd720470d65394522e (diff) | |
parent | 770a424112cb2c3a3e39221299eaf5244b76479a (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
sparc64: Add missing null terminating entry to bq4802_match[].
sparc: use the new byteorder headers
rtc-m48t59: shift zero year to 1968 on sparc (rev 2)
dbri: check dma_alloc_coherent errors
sparc64: remove byteshifting from out* helpers
Diffstat (limited to 'arch/sparc')
-rw-r--r-- | arch/sparc/include/asm/byteorder.h | 22 | ||||
-rw-r--r-- | arch/sparc/kernel/time.c | 27 |
2 files changed, 12 insertions, 37 deletions
diff --git a/arch/sparc/include/asm/byteorder.h b/arch/sparc/include/asm/byteorder.h index bcd83aa351c5..5a70f137f1f7 100644 --- a/arch/sparc/include/asm/byteorder.h +++ b/arch/sparc/include/asm/byteorder.h | |||
@@ -4,15 +4,14 @@ | |||
4 | #include <asm/types.h> | 4 | #include <asm/types.h> |
5 | #include <asm/asi.h> | 5 | #include <asm/asi.h> |
6 | 6 | ||
7 | #ifdef __GNUC__ | 7 | #define __BIG_ENDIAN |
8 | 8 | ||
9 | #ifdef CONFIG_SPARC32 | 9 | #ifdef CONFIG_SPARC32 |
10 | #define __SWAB_64_THRU_32__ | 10 | #define __SWAB_64_THRU_32__ |
11 | #endif | 11 | #endif |
12 | 12 | ||
13 | #ifdef CONFIG_SPARC64 | 13 | #ifdef CONFIG_SPARC64 |
14 | 14 | static inline __u16 __arch_swab16p(const __u16 *addr) | |
15 | static inline __u16 ___arch__swab16p(const __u16 *addr) | ||
16 | { | 15 | { |
17 | __u16 ret; | 16 | __u16 ret; |
18 | 17 | ||
@@ -21,8 +20,9 @@ static inline __u16 ___arch__swab16p(const __u16 *addr) | |||
21 | : "r" (addr), "i" (ASI_PL)); | 20 | : "r" (addr), "i" (ASI_PL)); |
22 | return ret; | 21 | return ret; |
23 | } | 22 | } |
23 | #define __arch_swab16p __arch_swab16p | ||
24 | 24 | ||
25 | static inline __u32 ___arch__swab32p(const __u32 *addr) | 25 | static inline __u32 __arch_swab32p(const __u32 *addr) |
26 | { | 26 | { |
27 | __u32 ret; | 27 | __u32 ret; |
28 | 28 | ||
@@ -31,8 +31,9 @@ static inline __u32 ___arch__swab32p(const __u32 *addr) | |||
31 | : "r" (addr), "i" (ASI_PL)); | 31 | : "r" (addr), "i" (ASI_PL)); |
32 | return ret; | 32 | return ret; |
33 | } | 33 | } |
34 | #define __arch_swab32p __arch_swab32p | ||
34 | 35 | ||
35 | static inline __u64 ___arch__swab64p(const __u64 *addr) | 36 | static inline __u64 __arch_swab64p(const __u64 *addr) |
36 | { | 37 | { |
37 | __u64 ret; | 38 | __u64 ret; |
38 | 39 | ||
@@ -41,17 +42,10 @@ static inline __u64 ___arch__swab64p(const __u64 *addr) | |||
41 | : "r" (addr), "i" (ASI_PL)); | 42 | : "r" (addr), "i" (ASI_PL)); |
42 | return ret; | 43 | return ret; |
43 | } | 44 | } |
44 | 45 | #define __arch_swab64p __arch_swab64p | |
45 | #define __arch__swab16p(x) ___arch__swab16p(x) | ||
46 | #define __arch__swab32p(x) ___arch__swab32p(x) | ||
47 | #define __arch__swab64p(x) ___arch__swab64p(x) | ||
48 | 46 | ||
49 | #endif /* CONFIG_SPARC64 */ | 47 | #endif /* CONFIG_SPARC64 */ |
50 | 48 | ||
51 | #define __BYTEORDER_HAS_U64__ | 49 | #include <linux/byteorder.h> |
52 | |||
53 | #endif | ||
54 | |||
55 | #include <linux/byteorder/big_endian.h> | ||
56 | 50 | ||
57 | #endif /* _SPARC_BYTEORDER_H */ | 51 | #endif /* _SPARC_BYTEORDER_H */ |
diff --git a/arch/sparc/kernel/time.c b/arch/sparc/kernel/time.c index 62c1d94cb434..00f7383c7657 100644 --- a/arch/sparc/kernel/time.c +++ b/arch/sparc/kernel/time.c | |||
@@ -119,35 +119,16 @@ static unsigned char mostek_read_byte(struct device *dev, u32 ofs) | |||
119 | { | 119 | { |
120 | struct platform_device *pdev = to_platform_device(dev); | 120 | struct platform_device *pdev = to_platform_device(dev); |
121 | struct m48t59_plat_data *pdata = pdev->dev.platform_data; | 121 | struct m48t59_plat_data *pdata = pdev->dev.platform_data; |
122 | void __iomem *regs = pdata->ioaddr; | 122 | |
123 | unsigned char val = readb(regs + ofs); | 123 | return readb(pdata->ioaddr + ofs); |
124 | |||
125 | /* the year 0 is 1968 */ | ||
126 | if (ofs == pdata->offset + M48T59_YEAR) { | ||
127 | val += 0x68; | ||
128 | if ((val & 0xf) > 9) | ||
129 | val += 6; | ||
130 | } | ||
131 | return val; | ||
132 | } | 124 | } |
133 | 125 | ||
134 | static void mostek_write_byte(struct device *dev, u32 ofs, u8 val) | 126 | static void mostek_write_byte(struct device *dev, u32 ofs, u8 val) |
135 | { | 127 | { |
136 | struct platform_device *pdev = to_platform_device(dev); | 128 | struct platform_device *pdev = to_platform_device(dev); |
137 | struct m48t59_plat_data *pdata = pdev->dev.platform_data; | 129 | struct m48t59_plat_data *pdata = pdev->dev.platform_data; |
138 | void __iomem *regs = pdata->ioaddr; | 130 | |
139 | 131 | writeb(val, pdata->ioaddr + ofs); | |
140 | if (ofs == pdata->offset + M48T59_YEAR) { | ||
141 | if (val < 0x68) | ||
142 | val += 0x32; | ||
143 | else | ||
144 | val -= 0x68; | ||
145 | if ((val & 0xf) > 9) | ||
146 | val += 6; | ||
147 | if ((val & 0xf0) > 0x9A) | ||
148 | val += 0x60; | ||
149 | } | ||
150 | writeb(val, regs + ofs); | ||
151 | } | 132 | } |
152 | 133 | ||
153 | static struct m48t59_plat_data m48t59_data = { | 134 | static struct m48t59_plat_data m48t59_data = { |