Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh64-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh64-2.6:
sh64: Add a sane pm_power_off implementation.
sh64: Use generic BUG_ON()/WARN_ON().
sh64: Trivial build fixes.
sh64: Drop deprecated ISA tuning for legacy toolchains.

+46 -38
-1
arch/sh64/Makefile
··· 26 26 endif 27 27 28 28 # No requirements for endianess support from AFLAGS, 'as' always run through gcc 29 - AFLAGS += -m5 -isa=sh64 -traditional 30 29 CFLAGS += $(cpu-y) 31 30 32 31 LDFLAGS_vmlinux += --defsym phys_stext=_stext-$(CONFIG_CACHED_MEMORY_OFFSET) \
+3
arch/sh64/kernel/process.c
··· 355 355 enter_deep_standby(); 356 356 } 357 357 358 + void (*pm_power_off)(void) = machine_power_off; 359 + EXPORT_SYMBOL(pm_power_off); 360 + 358 361 void show_regs(struct pt_regs * regs) 359 362 { 360 363 unsigned long long ah, al, bh, bl, ch, cl;
+4 -2
arch/sh64/mach-cayman/setup.c
··· 112 112 }; 113 113 114 114 struct resource kram_resources[] = { 115 - { "Kernel code", 0, 0 }, /* These must be last in the array */ 116 - { "Kernel data", 0, 0 } /* These must be last in the array */ 115 + /* These must be last in the array */ 116 + { .name = "Kernel code", .start = 0, .end = 0 }, 117 + /* These must be last in the array */ 118 + { .name = "Kernel data", .start = 0, .end = 0 } 117 119 }; 118 120 119 121 struct resource xram_resources[] = {
+3 -1
arch/sh64/mm/ioremap.c
··· 449 449 if (p + 32 >= e) /* Better than nothing */ 450 450 break; 451 451 if ((nm = r->name) == 0) nm = "???"; 452 - p += sprintf(p, "%08lx-%08lx: %s\n", r->start, r->end, nm); 452 + p += sprintf(p, "%08lx-%08lx: %s\n", 453 + (unsigned long)r->start, 454 + (unsigned long)r->end, nm); 453 455 } 454 456 455 457 return p-buf;
+2 -2
drivers/serial/sh-sci.c
··· 1579 1579 h8300_sci_enable(port, sci_enable); 1580 1580 #endif 1581 1581 #elif defined(CONFIG_SUPERH64) 1582 - port->uartclk = current_cpu_info.module_clock * 16; 1582 + port->uartclk = current_cpu_data.module_clock * 16; 1583 1583 #else 1584 1584 { 1585 1585 struct clk *clk = clk_get("module_clk"); ··· 1720 1720 #if defined(__H8300H__) || defined(__H8300S__) 1721 1721 sciport->port.uartclk = CONFIG_CPU_CLOCK; 1722 1722 #elif defined(CONFIG_SUPERH64) 1723 - sciport->port.uartclk = current_cpu_info.module_clock * 16; 1723 + sciport->port.uartclk = current_cpu_data.module_clock * 16; 1724 1724 #else 1725 1725 struct clk *clk = clk_get("module_clk"); 1726 1726 sciport->port.uartclk = clk_get_rate(clk) * 16;
+4 -12
include/asm-sh64/bug.h
··· 1 1 #ifndef __ASM_SH64_BUG_H 2 2 #define __ASM_SH64_BUG_H 3 3 4 - 4 + #ifdef CONFIG_BUG 5 5 /* 6 6 * Tell the user there is some problem, then force a segfault (in process 7 7 * context) or a panic (interrupt context). ··· 11 11 *(volatile int *)0 = 0; \ 12 12 } while (0) 13 13 14 - #define BUG_ON(condition) do { \ 15 - if (unlikely((condition)!=0)) \ 16 - BUG(); \ 17 - } while(0) 14 + #define HAVE_ARCH_BUG 15 + #endif 18 16 19 - #define WARN_ON(condition) do { \ 20 - if (unlikely((condition)!=0)) { \ 21 - printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ 22 - dump_stack(); \ 23 - } \ 24 - } while (0) 17 + #include <asm-generic/bug.h> 25 18 26 19 #endif /* __ASM_SH64_BUG_H */ 27 -
+2 -2
include/asm-sh64/byteorder.h
··· 14 14 15 15 #include <asm/types.h> 16 16 17 - static __inline__ __const__ __u32 ___arch__swab32(__u32 x) 17 + static inline __attribute_const__ __u32 ___arch__swab32(__u32 x) 18 18 { 19 19 __asm__("byterev %0, %0\n\t" 20 20 "shari %0, 32, %0" ··· 23 23 return x; 24 24 } 25 25 26 - static __inline__ __const__ __u16 ___arch__swab16(__u16 x) 26 + static inline __attribute_const__ __u16 ___arch__swab16(__u16 x) 27 27 { 28 28 __asm__("byterev %0, %0\n\t" 29 29 "shari %0, 48, %0"
+12 -4
include/asm-sh64/dma-mapping.h
··· 126 126 static inline void dma_sync_single_for_cpu(struct device *dev, 127 127 dma_addr_t dma_handle, size_t size, 128 128 enum dma_data_direction dir) 129 - __attribute__ ((alias("dma_sync_single"))); 129 + { 130 + dma_sync_single(dev, dma_handle, size, dir); 131 + } 130 132 131 133 static inline void dma_sync_single_for_device(struct device *dev, 132 134 dma_addr_t dma_handle, size_t size, 133 135 enum dma_data_direction dir) 134 - __attribute__ ((alias("dma_sync_single"))); 136 + { 137 + dma_sync_single(dev, dma_handle, size, dir); 138 + } 135 139 136 140 static inline void dma_sync_sg_for_cpu(struct device *dev, 137 141 struct scatterlist *sg, int nelems, 138 142 enum dma_data_direction dir) 139 - __attribute__ ((alias("dma_sync_sg"))); 143 + { 144 + dma_sync_sg(dev, sg, nelems, dir); 145 + } 140 146 141 147 static inline void dma_sync_sg_for_device(struct device *dev, 142 148 struct scatterlist *sg, int nelems, 143 149 enum dma_data_direction dir) 144 - __attribute__ ((alias("dma_sync_sg"))); 150 + { 151 + dma_sync_sg(dev, sg, nelems, dir); 152 + } 145 153 146 154 static inline int dma_get_cache_alignment(void) 147 155 {
+7
include/asm-sh64/io.h
··· 123 123 void outsl(unsigned long port, const void *addr, unsigned long count); 124 124 void insl(unsigned long port, void *addr, unsigned long count); 125 125 126 + #define __raw_readb readb 127 + #define __raw_readw readw 128 + #define __raw_readl readl 129 + #define __raw_writeb writeb 130 + #define __raw_writew writew 131 + #define __raw_writel writel 132 + 126 133 void memcpy_toio(void __iomem *to, const void *from, long count); 127 134 void memcpy_fromio(void *to, void __iomem *from, long count); 128 135
+1 -1
include/asm-sh64/ptrace.h
··· 28 28 #ifdef __KERNEL__ 29 29 #define user_mode(regs) (((regs)->sr & 0x40000000)==0) 30 30 #define instruction_pointer(regs) ((regs)->pc) 31 - #define profile_pc(regs) instruction_pointer(regs) 31 + #define profile_pc(regs) ((unsigned long)instruction_pointer(regs)) 32 32 extern void show_regs(struct pt_regs *); 33 33 #endif 34 34
+1 -1
include/asm-sh64/system.h
··· 64 64 #define smp_read_barrier_depends() do { } while (0) 65 65 #endif /* CONFIG_SMP */ 66 66 67 - #define set_rmb(var, value) do { xchg(&var, value); } while (0) 67 + #define set_rmb(var, value) do { (void)xchg(&var, value); } while (0) 68 68 #define set_mb(var, value) set_rmb(var, value) 69 69 70 70 /* Interrupt Control */
+7 -12
include/asm-sh64/uaccess.h
··· 128 128 129 129 #define __get_user_nocheck(x,ptr,size) \ 130 130 ({ \ 131 - long __gu_addr = (long)(ptr); \ 132 - long __gu_err; \ 133 - __typeof(*(ptr)) __gu_val; \ 134 - __asm__ ("":"=r" (__gu_val)); \ 135 - __asm__ ("":"=r" (__gu_err)); \ 136 - __get_user_size((void *)&__gu_val, __gu_addr, (size), __gu_err); \ 137 - (x) = (__typeof__(*(ptr))) __gu_val; \ 131 + long __gu_err, __gu_val; \ 132 + __get_user_size((void *)&__gu_val, (long)(ptr), \ 133 + (size), __gu_err); \ 134 + (x) = (__typeof__(*(ptr)))__gu_val; \ 138 135 __gu_err; \ 139 136 }) 140 137 141 138 #define __get_user_check(x,ptr,size) \ 142 139 ({ \ 143 140 long __gu_addr = (long)(ptr); \ 144 - long __gu_err = -EFAULT; \ 145 - __typeof(*(ptr)) __gu_val; \ 146 - __asm__ ("":"=r" (__gu_val)); \ 147 - __asm__ ("":"=r" (__gu_err)); \ 141 + long __gu_err = -EFAULT, __gu_val; \ 148 142 if (__access_ok(__gu_addr, (size))) \ 149 - __get_user_size((void *)&__gu_val, __gu_addr, (size), __gu_err); \ 143 + __get_user_size((void *)&__gu_val, __gu_addr, \ 144 + (size), __gu_err); \ 150 145 (x) = (__typeof__(*(ptr))) __gu_val; \ 151 146 __gu_err; \ 152 147 })