diff options
| author | Paul Mundt <lethal@linux-sh.org> | 2009-05-22 00:29:37 -0400 |
|---|---|---|
| committer | Paul Mundt <lethal@linux-sh.org> | 2009-05-22 00:29:37 -0400 |
| commit | 5f8371cec93b94a24a55ba1de642ce6eade6d62c (patch) | |
| tree | 61b6d2acb10226b3c0f2d31bda3a49288e540eba /arch/sh/include/asm | |
| parent | 8e9bb19ef97d6594e735bee64b6d72103e350854 (diff) | |
| parent | d8586ba6e1415150e1bab89f0a05447bb6f2d6d5 (diff) | |
Merge branches 'sh/stable-updates' and 'sh/sparseirq'
Diffstat (limited to 'arch/sh/include/asm')
| -rw-r--r-- | arch/sh/include/asm/cacheflush.h | 2 | ||||
| -rw-r--r-- | arch/sh/include/asm/clock.h | 4 | ||||
| -rw-r--r-- | arch/sh/include/asm/device.h | 2 | ||||
| -rw-r--r-- | arch/sh/include/asm/hd64461.h | 148 | ||||
| -rw-r--r-- | arch/sh/include/asm/io.h | 22 | ||||
| -rw-r--r-- | arch/sh/include/asm/kprobes.h | 2 | ||||
| -rw-r--r-- | arch/sh/include/asm/pci.h | 98 | ||||
| -rw-r--r-- | arch/sh/include/asm/pgtable.h | 4 | ||||
| -rw-r--r-- | arch/sh/include/asm/processor.h | 2 | ||||
| -rw-r--r-- | arch/sh/include/asm/ptrace.h | 5 | ||||
| -rw-r--r-- | arch/sh/include/asm/rtc.h | 11 | ||||
| -rw-r--r-- | arch/sh/include/asm/swab.h | 12 | ||||
| -rw-r--r-- | arch/sh/include/asm/system_32.h | 2 | ||||
| -rw-r--r-- | arch/sh/include/asm/timer.h | 44 | ||||
| -rw-r--r-- | arch/sh/include/asm/types.h | 4 | ||||
| -rw-r--r-- | arch/sh/include/asm/ubc.h | 11 |
16 files changed, 182 insertions, 191 deletions
diff --git a/arch/sh/include/asm/cacheflush.h b/arch/sh/include/asm/cacheflush.h index 09acbc32d6c7..4c5462daa74c 100644 --- a/arch/sh/include/asm/cacheflush.h +++ b/arch/sh/include/asm/cacheflush.h | |||
| @@ -75,7 +75,5 @@ extern void copy_from_user_page(struct vm_area_struct *vma, | |||
| 75 | #define flush_cache_vmap(start, end) flush_cache_all() | 75 | #define flush_cache_vmap(start, end) flush_cache_all() |
| 76 | #define flush_cache_vunmap(start, end) flush_cache_all() | 76 | #define flush_cache_vunmap(start, end) flush_cache_all() |
| 77 | 77 | ||
| 78 | #define HAVE_ARCH_UNMAPPED_AREA | ||
| 79 | |||
| 80 | #endif /* __KERNEL__ */ | 78 | #endif /* __KERNEL__ */ |
| 81 | #endif /* __ASM_SH_CACHEFLUSH_H */ | 79 | #endif /* __ASM_SH_CACHEFLUSH_H */ |
diff --git a/arch/sh/include/asm/clock.h b/arch/sh/include/asm/clock.h index 2f6c9627bc1f..b1f29199e4bd 100644 --- a/arch/sh/include/asm/clock.h +++ b/arch/sh/include/asm/clock.h | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | #ifndef __ASM_SH_CLOCK_H | 1 | #ifndef __ASM_SH_CLOCK_H |
| 2 | #define __ASM_SH_CLOCK_H | 2 | #define __ASM_SH_CLOCK_H |
| 3 | 3 | ||
| 4 | #include <linux/kref.h> | ||
| 5 | #include <linux/list.h> | 4 | #include <linux/list.h> |
| 6 | #include <linux/seq_file.h> | 5 | #include <linux/seq_file.h> |
| 7 | #include <linux/clk.h> | 6 | #include <linux/clk.h> |
| @@ -28,7 +27,7 @@ struct clk { | |||
| 28 | struct clk *parent; | 27 | struct clk *parent; |
| 29 | struct clk_ops *ops; | 28 | struct clk_ops *ops; |
| 30 | 29 | ||
| 31 | struct kref kref; | 30 | int usecount; |
| 32 | 31 | ||
| 33 | unsigned long rate; | 32 | unsigned long rate; |
| 34 | unsigned long flags; | 33 | unsigned long flags; |
| @@ -37,6 +36,7 @@ struct clk { | |||
| 37 | 36 | ||
| 38 | #define CLK_ALWAYS_ENABLED (1 << 0) | 37 | #define CLK_ALWAYS_ENABLED (1 << 0) |
| 39 | #define CLK_RATE_PROPAGATES (1 << 1) | 38 | #define CLK_RATE_PROPAGATES (1 << 1) |
| 39 | #define CLK_NEEDS_INIT (1 << 2) | ||
| 40 | 40 | ||
| 41 | /* Should be defined by processor-specific code */ | 41 | /* Should be defined by processor-specific code */ |
| 42 | void arch_init_clk_ops(struct clk_ops **, int type); | 42 | void arch_init_clk_ops(struct clk_ops **, int type); |
diff --git a/arch/sh/include/asm/device.h b/arch/sh/include/asm/device.h index efd511d0803a..8688a88303ee 100644 --- a/arch/sh/include/asm/device.h +++ b/arch/sh/include/asm/device.h | |||
| @@ -10,3 +10,5 @@ struct platform_device; | |||
| 10 | int platform_resource_setup_memory(struct platform_device *pdev, | 10 | int platform_resource_setup_memory(struct platform_device *pdev, |
| 11 | char *name, unsigned long memsize); | 11 | char *name, unsigned long memsize); |
| 12 | 12 | ||
| 13 | void plat_early_device_setup(void); | ||
| 14 | |||
diff --git a/arch/sh/include/asm/hd64461.h b/arch/sh/include/asm/hd64461.h index 52b4b6238277..977355f0a483 100644 --- a/arch/sh/include/asm/hd64461.h +++ b/arch/sh/include/asm/hd64461.h | |||
| @@ -13,18 +13,20 @@ | |||
| 13 | #define HD64461_PCC_WINDOW 0x01000000 | 13 | #define HD64461_PCC_WINDOW 0x01000000 |
| 14 | 14 | ||
| 15 | /* Area 6 - Slot 0 - memory and/or IO card */ | 15 | /* Area 6 - Slot 0 - memory and/or IO card */ |
| 16 | #define HD64461_PCC0_BASE (CONFIG_HD64461_IOBASE + 0x8000000) | 16 | #define HD64461_IOBASE 0xb0000000 |
| 17 | #define HD64461_IO_OFFSET(x) (HD64461_IOBASE + (x)) | ||
| 18 | #define HD64461_PCC0_BASE HD64461_IO_OFFSET(0x8000000) | ||
| 17 | #define HD64461_PCC0_ATTR (HD64461_PCC0_BASE) /* 0xb80000000 */ | 19 | #define HD64461_PCC0_ATTR (HD64461_PCC0_BASE) /* 0xb80000000 */ |
| 18 | #define HD64461_PCC0_COMM (HD64461_PCC0_BASE+HD64461_PCC_WINDOW) /* 0xb90000000 */ | 20 | #define HD64461_PCC0_COMM (HD64461_PCC0_BASE+HD64461_PCC_WINDOW) /* 0xb90000000 */ |
| 19 | #define HD64461_PCC0_IO (HD64461_PCC0_BASE+2*HD64461_PCC_WINDOW) /* 0xba0000000 */ | 21 | #define HD64461_PCC0_IO (HD64461_PCC0_BASE+2*HD64461_PCC_WINDOW) /* 0xba0000000 */ |
| 20 | 22 | ||
| 21 | /* Area 5 - Slot 1 - memory card only */ | 23 | /* Area 5 - Slot 1 - memory card only */ |
| 22 | #define HD64461_PCC1_BASE (CONFIG_HD64461_IOBASE + 0x4000000) | 24 | #define HD64461_PCC1_BASE HD64461_IO_OFFSET(0x4000000) |
| 23 | #define HD64461_PCC1_ATTR (HD64461_PCC1_BASE) /* 0xb4000000 */ | 25 | #define HD64461_PCC1_ATTR (HD64461_PCC1_BASE) /* 0xb4000000 */ |
| 24 | #define HD64461_PCC1_COMM (HD64461_PCC1_BASE+HD64461_PCC_WINDOW) /* 0xb5000000 */ | 26 | #define HD64461_PCC1_COMM (HD64461_PCC1_BASE+HD64461_PCC_WINDOW) /* 0xb5000000 */ |
| 25 | 27 | ||
| 26 | /* Standby Control Register for HD64461 */ | 28 | /* Standby Control Register for HD64461 */ |
| 27 | #define HD64461_STBCR CONFIG_HD64461_IOBASE | 29 | #define HD64461_STBCR HD64461_IO_OFFSET(0x00000000) |
| 28 | #define HD64461_STBCR_CKIO_STBY 0x2000 | 30 | #define HD64461_STBCR_CKIO_STBY 0x2000 |
| 29 | #define HD64461_STBCR_SAFECKE_IST 0x1000 | 31 | #define HD64461_STBCR_SAFECKE_IST 0x1000 |
| 30 | #define HD64461_STBCR_SLCKE_IST 0x0800 | 32 | #define HD64461_STBCR_SLCKE_IST 0x0800 |
| @@ -41,19 +43,19 @@ | |||
| 41 | #define HD64461_STBCR_SURTST 0x0001 | 43 | #define HD64461_STBCR_SURTST 0x0001 |
| 42 | 44 | ||
| 43 | /* System Configuration Register */ | 45 | /* System Configuration Register */ |
| 44 | #define HD64461_SYSCR (CONFIG_HD64461_IOBASE + 0x02) | 46 | #define HD64461_SYSCR HD64461_IO_OFFSET(0x02) |
| 45 | 47 | ||
| 46 | /* CPU Data Bus Control Register */ | 48 | /* CPU Data Bus Control Register */ |
| 47 | #define HD64461_SCPUCR (CONFIG_HD64461_IOBASE + 0x04) | 49 | #define HD64461_SCPUCR HD64461_IO_OFFSET(0x04) |
| 48 | 50 | ||
| 49 | /* Base Address Register */ | 51 | /* Base Address Register */ |
| 50 | #define HD64461_LCDCBAR (CONFIG_HD64461_IOBASE + 0x1000) | 52 | #define HD64461_LCDCBAR HD64461_IO_OFFSET(0x1000) |
| 51 | 53 | ||
| 52 | /* Line increment address */ | 54 | /* Line increment address */ |
| 53 | #define HD64461_LCDCLOR (CONFIG_HD64461_IOBASE + 0x1002) | 55 | #define HD64461_LCDCLOR HD64461_IO_OFFSET(0x1002) |
| 54 | 56 | ||
| 55 | /* Controls LCD controller */ | 57 | /* Controls LCD controller */ |
| 56 | #define HD64461_LCDCCR (CONFIG_HD64461_IOBASE + 0x1004) | 58 | #define HD64461_LCDCCR HD64461_IO_OFFSET(0x1004) |
| 57 | 59 | ||
| 58 | /* LCCDR control bits */ | 60 | /* LCCDR control bits */ |
| 59 | #define HD64461_LCDCCR_STBACK 0x0400 /* Standby Back */ | 61 | #define HD64461_LCDCCR_STBACK 0x0400 /* Standby Back */ |
| @@ -64,30 +66,30 @@ | |||
| 64 | #define HD64461_LCDCCR_SPON 0x0010 /* Start Power On */ | 66 | #define HD64461_LCDCCR_SPON 0x0010 /* Start Power On */ |
| 65 | 67 | ||
| 66 | /* Controls LCD (1) */ | 68 | /* Controls LCD (1) */ |
| 67 | #define HD64461_LDR1 (CONFIG_HD64461_IOBASE + 0x1010) | 69 | #define HD64461_LDR1 HD64461_IO_OFFSET(0x1010) |
| 68 | #define HD64461_LDR1_DON 0x01 /* Display On */ | 70 | #define HD64461_LDR1_DON 0x01 /* Display On */ |
| 69 | #define HD64461_LDR1_DINV 0x80 /* Display Invert */ | 71 | #define HD64461_LDR1_DINV 0x80 /* Display Invert */ |
| 70 | 72 | ||
| 71 | /* Controls LCD (2) */ | 73 | /* Controls LCD (2) */ |
| 72 | #define HD64461_LDR2 (CONFIG_HD64461_IOBASE + 0x1012) | 74 | #define HD64461_LDR2 HD64461_IO_OFFSET(0x1012) |
| 73 | #define HD64461_LDHNCR (CONFIG_HD64461_IOBASE + 0x1014) /* Number of horizontal characters */ | 75 | #define HD64461_LDHNCR HD64461_IO_OFFSET(0x1014) /* Number of horizontal characters */ |
| 74 | #define HD64461_LDHNSR (CONFIG_HD64461_IOBASE + 0x1016) /* Specify output start position + width of CL1 */ | 76 | #define HD64461_LDHNSR HD64461_IO_OFFSET(0x1016) /* Specify output start position + width of CL1 */ |
| 75 | #define HD64461_LDVNTR (CONFIG_HD64461_IOBASE + 0x1018) /* Specify total vertical lines */ | 77 | #define HD64461_LDVNTR HD64461_IO_OFFSET(0x1018) /* Specify total vertical lines */ |
| 76 | #define HD64461_LDVNDR (CONFIG_HD64461_IOBASE + 0x101a) /* specify number of display vertical lines */ | 78 | #define HD64461_LDVNDR HD64461_IO_OFFSET(0x101a) /* specify number of display vertical lines */ |
| 77 | #define HD64461_LDVSPR (CONFIG_HD64461_IOBASE + 0x101c) /* specify vertical synchronization pos and AC nr */ | 79 | #define HD64461_LDVSPR HD64461_IO_OFFSET(0x101c) /* specify vertical synchronization pos and AC nr */ |
| 78 | 80 | ||
| 79 | /* Controls LCD (3) */ | 81 | /* Controls LCD (3) */ |
| 80 | #define HD64461_LDR3 (CONFIG_HD64461_IOBASE + 0x101e) | 82 | #define HD64461_LDR3 HD64461_IO_OFFSET(0x101e) |
| 81 | 83 | ||
| 82 | /* Palette Registers */ | 84 | /* Palette Registers */ |
| 83 | #define HD64461_CPTWAR (CONFIG_HD64461_IOBASE + 0x1030) /* Color Palette Write Address Register */ | 85 | #define HD64461_CPTWAR HD64461_IO_OFFSET(0x1030) /* Color Palette Write Address Register */ |
| 84 | #define HD64461_CPTWDR (CONFIG_HD64461_IOBASE + 0x1032) /* Color Palette Write Data Register */ | 86 | #define HD64461_CPTWDR HD64461_IO_OFFSET(0x1032) /* Color Palette Write Data Register */ |
| 85 | #define HD64461_CPTRAR (CONFIG_HD64461_IOBASE + 0x1034) /* Color Palette Read Address Register */ | 87 | #define HD64461_CPTRAR HD64461_IO_OFFSET(0x1034) /* Color Palette Read Address Register */ |
| 86 | #define HD64461_CPTRDR (CONFIG_HD64461_IOBASE + 0x1036) /* Color Palette Read Data Register */ | 88 | #define HD64461_CPTRDR HD64461_IO_OFFSET(0x1036) /* Color Palette Read Data Register */ |
| 87 | 89 | ||
| 88 | #define HD64461_GRDOR (CONFIG_HD64461_IOBASE + 0x1040) /* Display Resolution Offset Register */ | 90 | #define HD64461_GRDOR HD64461_IO_OFFSET(0x1040) /* Display Resolution Offset Register */ |
| 89 | #define HD64461_GRSCR (CONFIG_HD64461_IOBASE + 0x1042) /* Solid Color Register */ | 91 | #define HD64461_GRSCR HD64461_IO_OFFSET(0x1042) /* Solid Color Register */ |
| 90 | #define HD64461_GRCFGR (CONFIG_HD64461_IOBASE + 0x1044) /* Accelerator Configuration Register */ | 92 | #define HD64461_GRCFGR HD64461_IO_OFFSET(0x1044) /* Accelerator Configuration Register */ |
| 91 | 93 | ||
| 92 | #define HD64461_GRCFGR_ACCSTATUS 0x10 /* Accelerator Status */ | 94 | #define HD64461_GRCFGR_ACCSTATUS 0x10 /* Accelerator Status */ |
| 93 | #define HD64461_GRCFGR_ACCRESET 0x08 /* Accelerator Reset */ | 95 | #define HD64461_GRCFGR_ACCRESET 0x08 /* Accelerator Reset */ |
| @@ -97,41 +99,41 @@ | |||
| 97 | #define HD64461_GRCFGR_COLORDEPTH8 0x01 /* Sets Colordepth 8 for Accelerator */ | 99 | #define HD64461_GRCFGR_COLORDEPTH8 0x01 /* Sets Colordepth 8 for Accelerator */ |
| 98 | 100 | ||
| 99 | /* Line Drawing Registers */ | 101 | /* Line Drawing Registers */ |
| 100 | #define HD64461_LNSARH (CONFIG_HD64461_IOBASE + 0x1046) /* Line Start Address Register (H) */ | 102 | #define HD64461_LNSARH HD64461_IO_OFFSET(0x1046) /* Line Start Address Register (H) */ |
| 101 | #define HD64461_LNSARL (CONFIG_HD64461_IOBASE + 0x1048) /* Line Start Address Register (L) */ | 103 | #define HD64461_LNSARL HD64461_IO_OFFSET(0x1048) /* Line Start Address Register (L) */ |
| 102 | #define HD64461_LNAXLR (CONFIG_HD64461_IOBASE + 0x104a) /* Axis Pixel Length Register */ | 104 | #define HD64461_LNAXLR HD64461_IO_OFFSET(0x104a) /* Axis Pixel Length Register */ |
| 103 | #define HD64461_LNDGR (CONFIG_HD64461_IOBASE + 0x104c) /* Diagonal Register */ | 105 | #define HD64461_LNDGR HD64461_IO_OFFSET(0x104c) /* Diagonal Register */ |
| 104 | #define HD64461_LNAXR (CONFIG_HD64461_IOBASE + 0x104e) /* Axial Register */ | 106 | #define HD64461_LNAXR HD64461_IO_OFFSET(0x104e) /* Axial Register */ |
| 105 | #define HD64461_LNERTR (CONFIG_HD64461_IOBASE + 0x1050) /* Start Error Term Register */ | 107 | #define HD64461_LNERTR HD64461_IO_OFFSET(0x1050) /* Start Error Term Register */ |
| 106 | #define HD64461_LNMDR (CONFIG_HD64461_IOBASE + 0x1052) /* Line Mode Register */ | 108 | #define HD64461_LNMDR HD64461_IO_OFFSET(0x1052) /* Line Mode Register */ |
| 107 | 109 | ||
| 108 | /* BitBLT Registers */ | 110 | /* BitBLT Registers */ |
| 109 | #define HD64461_BBTSSARH (CONFIG_HD64461_IOBASE + 0x1054) /* Source Start Address Register (H) */ | 111 | #define HD64461_BBTSSARH HD64461_IO_OFFSET(0x1054) /* Source Start Address Register (H) */ |
| 110 | #define HD64461_BBTSSARL (CONFIG_HD64461_IOBASE + 0x1056) /* Source Start Address Register (L) */ | 112 | #define HD64461_BBTSSARL HD64461_IO_OFFSET(0x1056) /* Source Start Address Register (L) */ |
| 111 | #define HD64461_BBTDSARH (CONFIG_HD64461_IOBASE + 0x1058) /* Destination Start Address Register (H) */ | 113 | #define HD64461_BBTDSARH HD64461_IO_OFFSET(0x1058) /* Destination Start Address Register (H) */ |
| 112 | #define HD64461_BBTDSARL (CONFIG_HD64461_IOBASE + 0x105a) /* Destination Start Address Register (L) */ | 114 | #define HD64461_BBTDSARL HD64461_IO_OFFSET(0x105a) /* Destination Start Address Register (L) */ |
| 113 | #define HD64461_BBTDWR (CONFIG_HD64461_IOBASE + 0x105c) /* Destination Block Width Register */ | 115 | #define HD64461_BBTDWR HD64461_IO_OFFSET(0x105c) /* Destination Block Width Register */ |
| 114 | #define HD64461_BBTDHR (CONFIG_HD64461_IOBASE + 0x105e) /* Destination Block Height Register */ | 116 | #define HD64461_BBTDHR HD64461_IO_OFFSET(0x105e) /* Destination Block Height Register */ |
| 115 | #define HD64461_BBTPARH (CONFIG_HD64461_IOBASE + 0x1060) /* Pattern Start Address Register (H) */ | 117 | #define HD64461_BBTPARH HD64461_IO_OFFSET(0x1060) /* Pattern Start Address Register (H) */ |
| 116 | #define HD64461_BBTPARL (CONFIG_HD64461_IOBASE + 0x1062) /* Pattern Start Address Register (L) */ | 118 | #define HD64461_BBTPARL HD64461_IO_OFFSET(0x1062) /* Pattern Start Address Register (L) */ |
| 117 | #define HD64461_BBTMARH (CONFIG_HD64461_IOBASE + 0x1064) /* Mask Start Address Register (H) */ | 119 | #define HD64461_BBTMARH HD64461_IO_OFFSET(0x1064) /* Mask Start Address Register (H) */ |
| 118 | #define HD64461_BBTMARL (CONFIG_HD64461_IOBASE + 0x1066) /* Mask Start Address Register (L) */ | 120 | #define HD64461_BBTMARL HD64461_IO_OFFSET(0x1066) /* Mask Start Address Register (L) */ |
| 119 | #define HD64461_BBTROPR (CONFIG_HD64461_IOBASE + 0x1068) /* ROP Register */ | 121 | #define HD64461_BBTROPR HD64461_IO_OFFSET(0x1068) /* ROP Register */ |
| 120 | #define HD64461_BBTMDR (CONFIG_HD64461_IOBASE + 0x106a) /* BitBLT Mode Register */ | 122 | #define HD64461_BBTMDR HD64461_IO_OFFSET(0x106a) /* BitBLT Mode Register */ |
| 121 | 123 | ||
| 122 | /* PC Card Controller Registers */ | 124 | /* PC Card Controller Registers */ |
| 123 | /* Maps to Physical Area 6 */ | 125 | /* Maps to Physical Area 6 */ |
| 124 | #define HD64461_PCC0ISR (CONFIG_HD64461_IOBASE + 0x2000) /* socket 0 interface status */ | 126 | #define HD64461_PCC0ISR HD64461_IO_OFFSET(0x2000) /* socket 0 interface status */ |
| 125 | #define HD64461_PCC0GCR (CONFIG_HD64461_IOBASE + 0x2002) /* socket 0 general control */ | 127 | #define HD64461_PCC0GCR HD64461_IO_OFFSET(0x2002) /* socket 0 general control */ |
| 126 | #define HD64461_PCC0CSCR (CONFIG_HD64461_IOBASE + 0x2004) /* socket 0 card status change */ | 128 | #define HD64461_PCC0CSCR HD64461_IO_OFFSET(0x2004) /* socket 0 card status change */ |
| 127 | #define HD64461_PCC0CSCIER (CONFIG_HD64461_IOBASE + 0x2006) /* socket 0 card status change interrupt enable */ | 129 | #define HD64461_PCC0CSCIER HD64461_IO_OFFSET(0x2006) /* socket 0 card status change interrupt enable */ |
| 128 | #define HD64461_PCC0SCR (CONFIG_HD64461_IOBASE + 0x2008) /* socket 0 software control */ | 130 | #define HD64461_PCC0SCR HD64461_IO_OFFSET(0x2008) /* socket 0 software control */ |
| 129 | /* Maps to Physical Area 5 */ | 131 | /* Maps to Physical Area 5 */ |
| 130 | #define HD64461_PCC1ISR (CONFIG_HD64461_IOBASE + 0x2010) /* socket 1 interface status */ | 132 | #define HD64461_PCC1ISR HD64461_IO_OFFSET(0x2010) /* socket 1 interface status */ |
| 131 | #define HD64461_PCC1GCR (CONFIG_HD64461_IOBASE + 0x2012) /* socket 1 general control */ | 133 | #define HD64461_PCC1GCR HD64461_IO_OFFSET(0x2012) /* socket 1 general control */ |
| 132 | #define HD64461_PCC1CSCR (CONFIG_HD64461_IOBASE + 0x2014) /* socket 1 card status change */ | 134 | #define HD64461_PCC1CSCR HD64461_IO_OFFSET(0x2014) /* socket 1 card status change */ |
| 133 | #define HD64461_PCC1CSCIER (CONFIG_HD64461_IOBASE + 0x2016) /* socket 1 card status change interrupt enable */ | 135 | #define HD64461_PCC1CSCIER HD64461_IO_OFFSET(0x2016) /* socket 1 card status change interrupt enable */ |
| 134 | #define HD64461_PCC1SCR (CONFIG_HD64461_IOBASE + 0x2018) /* socket 1 software control */ | 136 | #define HD64461_PCC1SCR HD64461_IO_OFFSET(0x2018) /* socket 1 software control */ |
| 135 | 137 | ||
| 136 | /* PCC Interface Status Register */ | 138 | /* PCC Interface Status Register */ |
| 137 | #define HD64461_PCCISR_READY 0x80 /* card ready */ | 139 | #define HD64461_PCCISR_READY 0x80 /* card ready */ |
| @@ -189,41 +191,41 @@ | |||
| 189 | #define HD64461_PCCSCR_SWP 0x01 /* write protect */ | 191 | #define HD64461_PCCSCR_SWP 0x01 /* write protect */ |
| 190 | 192 | ||
| 191 | /* PCC0 Output Pins Control Register */ | 193 | /* PCC0 Output Pins Control Register */ |
| 192 | #define HD64461_P0OCR (CONFIG_HD64461_IOBASE + 0x202a) | 194 | #define HD64461_P0OCR HD64461_IO_OFFSET(0x202a) |
| 193 | 195 | ||
| 194 | /* PCC1 Output Pins Control Register */ | 196 | /* PCC1 Output Pins Control Register */ |
| 195 | #define HD64461_P1OCR (CONFIG_HD64461_IOBASE + 0x202c) | 197 | #define HD64461_P1OCR HD64461_IO_OFFSET(0x202c) |
| 196 | 198 | ||
| 197 | /* PC Card General Control Register */ | 199 | /* PC Card General Control Register */ |
| 198 | #define HD64461_PGCR (CONFIG_HD64461_IOBASE + 0x202e) | 200 | #define HD64461_PGCR HD64461_IO_OFFSET(0x202e) |
| 199 | 201 | ||
| 200 | /* Port Control Registers */ | 202 | /* Port Control Registers */ |
| 201 | #define HD64461_GPACR (CONFIG_HD64461_IOBASE + 0x4000) /* Port A - Handles IRDA/TIMER */ | 203 | #define HD64461_GPACR HD64461_IO_OFFSET(0x4000) /* Port A - Handles IRDA/TIMER */ |
| 202 | #define HD64461_GPBCR (CONFIG_HD64461_IOBASE + 0x4002) /* Port B - Handles UART */ | 204 | #define HD64461_GPBCR HD64461_IO_OFFSET(0x4002) /* Port B - Handles UART */ |
| 203 | #define HD64461_GPCCR (CONFIG_HD64461_IOBASE + 0x4004) /* Port C - Handles PCMCIA 1 */ | 205 | #define HD64461_GPCCR HD64461_IO_OFFSET(0x4004) /* Port C - Handles PCMCIA 1 */ |
| 204 | #define HD64461_GPDCR (CONFIG_HD64461_IOBASE + 0x4006) /* Port D - Handles PCMCIA 1 */ | 206 | #define HD64461_GPDCR HD64461_IO_OFFSET(0x4006) /* Port D - Handles PCMCIA 1 */ |
| 205 | 207 | ||
| 206 | /* Port Control Data Registers */ | 208 | /* Port Control Data Registers */ |
| 207 | #define HD64461_GPADR (CONFIG_HD64461_IOBASE + 0x4010) /* A */ | 209 | #define HD64461_GPADR HD64461_IO_OFFSET(0x4010) /* A */ |
| 208 | #define HD64461_GPBDR (CONFIG_HD64461_IOBASE + 0x4012) /* B */ | 210 | #define HD64461_GPBDR HD64461_IO_OFFSET(0x4012) /* B */ |
| 209 | #define HD64461_GPCDR (CONFIG_HD64461_IOBASE + 0x4014) /* C */ | 211 | #define HD64461_GPCDR HD64461_IO_OFFSET(0x4014) /* C */ |
| 210 | #define HD64461_GPDDR (CONFIG_HD64461_IOBASE + 0x4016) /* D */ | 212 | #define HD64461_GPDDR HD64461_IO_OFFSET(0x4016) /* D */ |
| 211 | 213 | ||
| 212 | /* Interrupt Control Registers */ | 214 | /* Interrupt Control Registers */ |
| 213 | #define HD64461_GPAICR (CONFIG_HD64461_IOBASE + 0x4020) /* A */ | 215 | #define HD64461_GPAICR HD64461_IO_OFFSET(0x4020) /* A */ |
| 214 | #define HD64461_GPBICR (CONFIG_HD64461_IOBASE + 0x4022) /* B */ | 216 | #define HD64461_GPBICR HD64461_IO_OFFSET(0x4022) /* B */ |
| 215 | #define HD64461_GPCICR (CONFIG_HD64461_IOBASE + 0x4024) /* C */ | 217 | #define HD64461_GPCICR HD64461_IO_OFFSET(0x4024) /* C */ |
| 216 | #define HD64461_GPDICR (CONFIG_HD64461_IOBASE + 0x4026) /* D */ | 218 | #define HD64461_GPDICR HD64461_IO_OFFSET(0x4026) /* D */ |
| 217 | 219 | ||
| 218 | /* Interrupt Status Registers */ | 220 | /* Interrupt Status Registers */ |
| 219 | #define HD64461_GPAISR (CONFIG_HD64461_IOBASE + 0x4040) /* A */ | 221 | #define HD64461_GPAISR HD64461_IO_OFFSET(0x4040) /* A */ |
| 220 | #define HD64461_GPBISR (CONFIG_HD64461_IOBASE + 0x4042) /* B */ | 222 | #define HD64461_GPBISR HD64461_IO_OFFSET(0x4042) /* B */ |
| 221 | #define HD64461_GPCISR (CONFIG_HD64461_IOBASE + 0x4044) /* C */ | 223 | #define HD64461_GPCISR HD64461_IO_OFFSET(0x4044) /* C */ |
| 222 | #define HD64461_GPDISR (CONFIG_HD64461_IOBASE + 0x4046) /* D */ | 224 | #define HD64461_GPDISR HD64461_IO_OFFSET(0x4046) /* D */ |
| 223 | 225 | ||
| 224 | /* Interrupt Request Register & Interrupt Mask Register */ | 226 | /* Interrupt Request Register & Interrupt Mask Register */ |
| 225 | #define HD64461_NIRR (CONFIG_HD64461_IOBASE + 0x5000) | 227 | #define HD64461_NIRR HD64461_IO_OFFSET(0x5000) |
| 226 | #define HD64461_NIMR (CONFIG_HD64461_IOBASE + 0x5002) | 228 | #define HD64461_NIMR HD64461_IO_OFFSET(0x5002) |
| 227 | 229 | ||
| 228 | #define HD64461_IRQBASE OFFCHIP_IRQ_BASE | 230 | #define HD64461_IRQBASE OFFCHIP_IRQ_BASE |
| 229 | #define OFFCHIP_IRQ_BASE 64 | 231 | #define OFFCHIP_IRQ_BASE 64 |
diff --git a/arch/sh/include/asm/io.h b/arch/sh/include/asm/io.h index 0454f8d68059..25348141674b 100644 --- a/arch/sh/include/asm/io.h +++ b/arch/sh/include/asm/io.h | |||
| @@ -123,10 +123,15 @@ static inline void __raw_reads##bwlq(volatile void __iomem *mem, \ | |||
| 123 | 123 | ||
| 124 | __BUILD_MEMORY_STRING(b, u8) | 124 | __BUILD_MEMORY_STRING(b, u8) |
| 125 | __BUILD_MEMORY_STRING(w, u16) | 125 | __BUILD_MEMORY_STRING(w, u16) |
| 126 | __BUILD_MEMORY_STRING(q, u64) | ||
| 127 | 126 | ||
| 127 | #ifdef CONFIG_SUPERH32 | ||
| 128 | void __raw_writesl(void __iomem *addr, const void *data, int longlen); | 128 | void __raw_writesl(void __iomem *addr, const void *data, int longlen); |
| 129 | void __raw_readsl(const void __iomem *addr, void *data, int longlen); | 129 | void __raw_readsl(const void __iomem *addr, void *data, int longlen); |
| 130 | #else | ||
| 131 | __BUILD_MEMORY_STRING(l, u32) | ||
| 132 | #endif | ||
| 133 | |||
| 134 | __BUILD_MEMORY_STRING(q, u64) | ||
| 130 | 135 | ||
| 131 | #define writesb __raw_writesb | 136 | #define writesb __raw_writesb |
| 132 | #define writesw __raw_writesw | 137 | #define writesw __raw_writesw |
| @@ -224,17 +229,6 @@ void __iomem *__ioremap(unsigned long offset, unsigned long size, | |||
| 224 | unsigned long flags); | 229 | unsigned long flags); |
| 225 | void __iounmap(void __iomem *addr); | 230 | void __iounmap(void __iomem *addr); |
| 226 | 231 | ||
| 227 | /* arch/sh/mm/ioremap_64.c */ | ||
| 228 | unsigned long onchip_remap(unsigned long addr, unsigned long size, | ||
| 229 | const char *name); | ||
| 230 | extern void onchip_unmap(unsigned long vaddr); | ||
| 231 | #else | ||
| 232 | #define __ioremap(offset, size, flags) ((void __iomem *)(offset)) | ||
| 233 | #define __iounmap(addr) do { } while (0) | ||
| 234 | #define onchip_remap(addr, size, name) (addr) | ||
| 235 | #define onchip_unmap(addr) do { } while (0) | ||
| 236 | #endif /* CONFIG_MMU */ | ||
| 237 | |||
| 238 | static inline void __iomem * | 232 | static inline void __iomem * |
| 239 | __ioremap_mode(unsigned long offset, unsigned long size, unsigned long flags) | 233 | __ioremap_mode(unsigned long offset, unsigned long size, unsigned long flags) |
| 240 | { | 234 | { |
| @@ -268,6 +262,10 @@ __ioremap_mode(unsigned long offset, unsigned long size, unsigned long flags) | |||
| 268 | 262 | ||
| 269 | return __ioremap(offset, size, flags); | 263 | return __ioremap(offset, size, flags); |
| 270 | } | 264 | } |
| 265 | #else | ||
| 266 | #define __ioremap_mode(offset, size, flags) ((void __iomem *)(offset)) | ||
| 267 | #define __iounmap(addr) do { } while (0) | ||
| 268 | #endif /* CONFIG_MMU */ | ||
| 271 | 269 | ||
| 272 | #define ioremap(offset, size) \ | 270 | #define ioremap(offset, size) \ |
| 273 | __ioremap_mode((offset), (size), 0) | 271 | __ioremap_mode((offset), (size), 0) |
diff --git a/arch/sh/include/asm/kprobes.h b/arch/sh/include/asm/kprobes.h index 613644a758e8..036c3311233c 100644 --- a/arch/sh/include/asm/kprobes.h +++ b/arch/sh/include/asm/kprobes.h | |||
| @@ -6,7 +6,7 @@ | |||
| 6 | #include <linux/types.h> | 6 | #include <linux/types.h> |
| 7 | #include <linux/ptrace.h> | 7 | #include <linux/ptrace.h> |
| 8 | 8 | ||
| 9 | typedef u16 kprobe_opcode_t; | 9 | typedef insn_size_t kprobe_opcode_t; |
| 10 | #define BREAKPOINT_INSTRUCTION 0xc33a | 10 | #define BREAKPOINT_INSTRUCTION 0xc33a |
| 11 | 11 | ||
| 12 | #define MAX_INSN_SIZE 16 | 12 | #define MAX_INSN_SIZE 16 |
diff --git a/arch/sh/include/asm/pci.h b/arch/sh/include/asm/pci.h index df1d383e18a5..5b2e0fcdfc22 100644 --- a/arch/sh/include/asm/pci.h +++ b/arch/sh/include/asm/pci.h | |||
| @@ -17,54 +17,29 @@ | |||
| 17 | * external) PCI controllers. | 17 | * external) PCI controllers. |
| 18 | */ | 18 | */ |
| 19 | struct pci_channel { | 19 | struct pci_channel { |
| 20 | struct pci_ops *pci_ops; | 20 | struct pci_channel *next; |
| 21 | struct resource *io_resource; | ||
| 22 | struct resource *mem_resource; | ||
| 23 | int first_devfn; | ||
| 24 | int last_devfn; | ||
| 25 | }; | ||
| 26 | 21 | ||
| 27 | /* | 22 | struct pci_ops *pci_ops; |
| 28 | * Each board initializes this array and terminates it with a NULL entry. | 23 | struct resource *io_resource; |
| 29 | */ | 24 | struct resource *mem_resource; |
| 30 | extern struct pci_channel board_pci_channels[]; | ||
| 31 | 25 | ||
| 32 | #define PCIBIOS_MIN_IO board_pci_channels->io_resource->start | 26 | unsigned long io_offset; |
| 33 | #define PCIBIOS_MIN_MEM board_pci_channels->mem_resource->start | 27 | unsigned long mem_offset; |
| 34 | 28 | ||
| 35 | /* | 29 | unsigned long reg_base; |
| 36 | * I/O routine helpers | ||
| 37 | */ | ||
| 38 | #if defined(CONFIG_CPU_SUBTYPE_SH7780) || defined(CONFIG_CPU_SUBTYPE_SH7785) | ||
| 39 | #define PCI_IO_AREA 0xFE400000 | ||
| 40 | #define PCI_IO_SIZE 0x00400000 | ||
| 41 | #elif defined(CONFIG_CPU_SH5) | ||
| 42 | extern unsigned long PCI_IO_AREA; | ||
| 43 | #define PCI_IO_SIZE 0x00010000 | ||
| 44 | #else | ||
| 45 | #define PCI_IO_AREA 0xFE240000 | ||
| 46 | #define PCI_IO_SIZE 0x00040000 | ||
| 47 | #endif | ||
| 48 | 30 | ||
| 49 | #define PCI_MEM_SIZE 0x01000000 | 31 | unsigned long io_map_base; |
| 32 | }; | ||
| 50 | 33 | ||
| 51 | #define SH4_PCIIOBR_MASK 0xFFFC0000 | 34 | extern void register_pci_controller(struct pci_channel *hose); |
| 52 | #define pci_ioaddr(addr) (PCI_IO_AREA + (addr & ~SH4_PCIIOBR_MASK)) | ||
| 53 | 35 | ||
| 54 | #if defined(CONFIG_PCI) | 36 | extern unsigned long PCIBIOS_MIN_IO, PCIBIOS_MIN_MEM; |
| 55 | #define is_pci_ioaddr(port) \ | ||
| 56 | (((port) >= PCIBIOS_MIN_IO) && \ | ||
| 57 | ((port) < (PCIBIOS_MIN_IO + PCI_IO_SIZE))) | ||
| 58 | #define is_pci_memaddr(port) \ | ||
| 59 | (((port) >= PCIBIOS_MIN_MEM) && \ | ||
| 60 | ((port) < (PCIBIOS_MIN_MEM + PCI_MEM_SIZE))) | ||
| 61 | #else | ||
| 62 | #define is_pci_ioaddr(port) (0) | ||
| 63 | #define is_pci_memaddr(port) (0) | ||
| 64 | #endif | ||
| 65 | 37 | ||
| 66 | struct pci_dev; | 38 | struct pci_dev; |
| 67 | 39 | ||
| 40 | #define HAVE_PCI_MMAP | ||
| 41 | extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | ||
| 42 | enum pci_mmap_state mmap_state, int write_combine); | ||
| 68 | extern void pcibios_set_master(struct pci_dev *dev); | 43 | extern void pcibios_set_master(struct pci_dev *dev); |
| 69 | 44 | ||
| 70 | static inline void pcibios_penalize_isa_irq(int irq, int active) | 45 | static inline void pcibios_penalize_isa_irq(int irq, int active) |
| @@ -123,22 +98,51 @@ static inline void pci_dma_burst_advice(struct pci_dev *pdev, | |||
| 123 | } | 98 | } |
| 124 | #endif | 99 | #endif |
| 125 | 100 | ||
| 101 | #ifdef CONFIG_SUPERH32 | ||
| 102 | /* | ||
| 103 | * If we're on an SH7751 or SH7780 PCI controller, PCI memory is mapped | ||
| 104 | * at the end of the address space in a special non-translatable area. | ||
| 105 | */ | ||
| 106 | #define PCI_MEM_FIXED_START 0xfd000000 | ||
| 107 | #define PCI_MEM_FIXED_END (PCI_MEM_FIXED_START + 0x01000000) | ||
| 108 | |||
| 109 | #define is_pci_memory_fixed_range(s, e) \ | ||
| 110 | ((s) >= PCI_MEM_FIXED_START && (e) < PCI_MEM_FIXED_END) | ||
| 111 | #else | ||
| 112 | #define is_pci_memory_fixed_range(s, e) (0) | ||
| 113 | #endif | ||
| 114 | |||
| 126 | /* Board-specific fixup routines. */ | 115 | /* Board-specific fixup routines. */ |
| 127 | void pcibios_fixup(void); | ||
| 128 | int pcibios_init_platform(void); | ||
| 129 | int pcibios_map_platform_irq(struct pci_dev *dev, u8 slot, u8 pin); | 116 | int pcibios_map_platform_irq(struct pci_dev *dev, u8 slot, u8 pin); |
| 130 | 117 | ||
| 131 | #ifdef CONFIG_PCI_AUTO | 118 | extern void pcibios_resource_to_bus(struct pci_dev *dev, |
| 132 | int pciauto_assign_resources(int busno, struct pci_channel *hose); | 119 | struct pci_bus_region *region, struct resource *res); |
| 133 | #endif | ||
| 134 | 120 | ||
| 135 | #endif /* __KERNEL__ */ | 121 | extern void pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res, |
| 122 | struct pci_bus_region *region); | ||
| 123 | |||
| 124 | static inline struct resource * | ||
| 125 | pcibios_select_root(struct pci_dev *pdev, struct resource *res) | ||
| 126 | { | ||
| 127 | struct resource *root = NULL; | ||
| 136 | 128 | ||
| 137 | /* generic pci stuff */ | 129 | if (res->flags & IORESOURCE_IO) |
| 138 | #include <asm-generic/pci.h> | 130 | root = &ioport_resource; |
| 131 | if (res->flags & IORESOURCE_MEM) | ||
| 132 | root = &iomem_resource; | ||
| 133 | |||
| 134 | return root; | ||
| 135 | } | ||
| 136 | |||
| 137 | /* Chances are this interrupt is wired PC-style ... */ | ||
| 138 | static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) | ||
| 139 | { | ||
| 140 | return channel ? 15 : 14; | ||
| 141 | } | ||
| 139 | 142 | ||
| 140 | /* generic DMA-mapping stuff */ | 143 | /* generic DMA-mapping stuff */ |
| 141 | #include <asm-generic/pci-dma-compat.h> | 144 | #include <asm-generic/pci-dma-compat.h> |
| 142 | 145 | ||
| 146 | #endif /* __KERNEL__ */ | ||
| 143 | #endif /* __ASM_SH_PCI_H */ | 147 | #endif /* __ASM_SH_PCI_H */ |
| 144 | 148 | ||
diff --git a/arch/sh/include/asm/pgtable.h b/arch/sh/include/asm/pgtable.h index b517ae08b9c0..2a011b18090b 100644 --- a/arch/sh/include/asm/pgtable.h +++ b/arch/sh/include/asm/pgtable.h | |||
| @@ -154,6 +154,10 @@ extern void kmap_coherent_init(void); | |||
| 154 | #define kmap_coherent_init() do { } while (0) | 154 | #define kmap_coherent_init() do { } while (0) |
| 155 | #endif | 155 | #endif |
| 156 | 156 | ||
| 157 | /* arch/sh/mm/mmap.c */ | ||
| 158 | #define HAVE_ARCH_UNMAPPED_AREA | ||
| 159 | #define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN | ||
| 160 | |||
| 157 | #include <asm-generic/pgtable.h> | 161 | #include <asm-generic/pgtable.h> |
| 158 | 162 | ||
| 159 | #endif /* __ASM_SH_PGTABLE_H */ | 163 | #endif /* __ASM_SH_PGTABLE_H */ |
diff --git a/arch/sh/include/asm/processor.h b/arch/sh/include/asm/processor.h index 1fd58b421438..005c962c8b1c 100644 --- a/arch/sh/include/asm/processor.h +++ b/arch/sh/include/asm/processor.h | |||
| @@ -32,7 +32,7 @@ enum cpu_type { | |||
| 32 | 32 | ||
| 33 | /* SH-4A types */ | 33 | /* SH-4A types */ |
| 34 | CPU_SH7763, CPU_SH7770, CPU_SH7780, CPU_SH7781, CPU_SH7785, CPU_SH7786, | 34 | CPU_SH7763, CPU_SH7770, CPU_SH7780, CPU_SH7781, CPU_SH7785, CPU_SH7786, |
| 35 | CPU_SH7723, CPU_SHX3, | 35 | CPU_SH7723, CPU_SH7724, CPU_SHX3, |
| 36 | 36 | ||
| 37 | /* SH4AL-DSP types */ | 37 | /* SH4AL-DSP types */ |
| 38 | CPU_SH7343, CPU_SH7722, CPU_SH7366, | 38 | CPU_SH7343, CPU_SH7722, CPU_SH7366, |
diff --git a/arch/sh/include/asm/ptrace.h b/arch/sh/include/asm/ptrace.h index 68e20ff9aa9b..1dc12cb44a2d 100644 --- a/arch/sh/include/asm/ptrace.h +++ b/arch/sh/include/asm/ptrace.h | |||
| @@ -102,6 +102,11 @@ struct pt_dspregs { | |||
| 102 | #define PTRACE_GETDSPREGS 55 /* DSP registers */ | 102 | #define PTRACE_GETDSPREGS 55 /* DSP registers */ |
| 103 | #define PTRACE_SETDSPREGS 56 | 103 | #define PTRACE_SETDSPREGS 56 |
| 104 | 104 | ||
| 105 | #define PT_TEXT_END_ADDR 240 | ||
| 106 | #define PT_TEXT_ADDR 244 /* &(struct user)->start_code */ | ||
| 107 | #define PT_DATA_ADDR 248 /* &(struct user)->start_data */ | ||
| 108 | #define PT_TEXT_LEN 252 | ||
| 109 | |||
| 105 | #ifdef __KERNEL__ | 110 | #ifdef __KERNEL__ |
| 106 | #include <asm/addrspace.h> | 111 | #include <asm/addrspace.h> |
| 107 | 112 | ||
diff --git a/arch/sh/include/asm/rtc.h b/arch/sh/include/asm/rtc.h index f7b010d48af7..52b0c2dba979 100644 --- a/arch/sh/include/asm/rtc.h +++ b/arch/sh/include/asm/rtc.h | |||
| @@ -6,6 +6,17 @@ extern void (*board_time_init)(void); | |||
| 6 | extern void (*rtc_sh_get_time)(struct timespec *); | 6 | extern void (*rtc_sh_get_time)(struct timespec *); |
| 7 | extern int (*rtc_sh_set_time)(const time_t); | 7 | extern int (*rtc_sh_set_time)(const time_t); |
| 8 | 8 | ||
| 9 | /* some dummy definitions */ | ||
| 10 | #define RTC_BATT_BAD 0x100 /* battery bad */ | ||
| 11 | #define RTC_SQWE 0x08 /* enable square-wave output */ | ||
| 12 | #define RTC_DM_BINARY 0x04 /* all time/date values are BCD if clear */ | ||
| 13 | #define RTC_24H 0x02 /* 24 hour mode - else hours bit 7 means pm */ | ||
| 14 | #define RTC_DST_EN 0x01 /* auto switch DST - works f. USA only */ | ||
| 15 | |||
| 16 | struct rtc_time; | ||
| 17 | unsigned int get_rtc_time(struct rtc_time *); | ||
| 18 | int set_rtc_time(struct rtc_time *); | ||
| 19 | |||
| 9 | #define RTC_CAP_4_DIGIT_YEAR (1 << 0) | 20 | #define RTC_CAP_4_DIGIT_YEAR (1 << 0) |
| 10 | 21 | ||
| 11 | struct sh_rtc_platform_info { | 22 | struct sh_rtc_platform_info { |
diff --git a/arch/sh/include/asm/swab.h b/arch/sh/include/asm/swab.h index e69315935107..0e08fe54ad71 100644 --- a/arch/sh/include/asm/swab.h +++ b/arch/sh/include/asm/swab.h | |||
| @@ -14,15 +14,15 @@ static inline __attribute_const__ __u32 __arch_swab32(__u32 x) | |||
| 14 | { | 14 | { |
| 15 | __asm__( | 15 | __asm__( |
| 16 | #ifdef __SH5__ | 16 | #ifdef __SH5__ |
| 17 | "byterev %0, %0\n\t" | 17 | "byterev %1, %0\n\t" |
| 18 | "shari %0, 32, %0" | 18 | "shari %0, 32, %0" |
| 19 | #else | 19 | #else |
| 20 | "swap.b %0, %0\n\t" | 20 | "swap.b %1, %0\n\t" |
| 21 | "swap.w %0, %0\n\t" | 21 | "swap.w %0, %0\n\t" |
| 22 | "swap.b %0, %0" | 22 | "swap.b %0, %0" |
| 23 | #endif | 23 | #endif |
| 24 | : "=r" (x) | 24 | : "=r" (x) |
| 25 | : "0" (x)); | 25 | : "r" (x)); |
| 26 | 26 | ||
| 27 | return x; | 27 | return x; |
| 28 | } | 28 | } |
| @@ -32,13 +32,13 @@ static inline __attribute_const__ __u16 __arch_swab16(__u16 x) | |||
| 32 | { | 32 | { |
| 33 | __asm__( | 33 | __asm__( |
| 34 | #ifdef __SH5__ | 34 | #ifdef __SH5__ |
| 35 | "byterev %0, %0\n\t" | 35 | "byterev %1, %0\n\t" |
| 36 | "shari %0, 32, %0" | 36 | "shari %0, 32, %0" |
| 37 | #else | 37 | #else |
| 38 | "swap.b %0, %0" | 38 | "swap.b %1, %0" |
| 39 | #endif | 39 | #endif |
| 40 | : "=r" (x) | 40 | : "=r" (x) |
| 41 | : "0" (x)); | 41 | : "r" (x)); |
| 42 | 42 | ||
| 43 | return x; | 43 | return x; |
| 44 | } | 44 | } |
diff --git a/arch/sh/include/asm/system_32.h b/arch/sh/include/asm/system_32.h index 240b31e1142c..6c68a51f1cc5 100644 --- a/arch/sh/include/asm/system_32.h +++ b/arch/sh/include/asm/system_32.h | |||
| @@ -198,7 +198,7 @@ do { \ | |||
| 198 | }) | 198 | }) |
| 199 | #endif | 199 | #endif |
| 200 | 200 | ||
| 201 | int handle_unaligned_access(opcode_t instruction, struct pt_regs *regs, | 201 | int handle_unaligned_access(insn_size_t instruction, struct pt_regs *regs, |
| 202 | struct mem_access *ma); | 202 | struct mem_access *ma); |
| 203 | 203 | ||
| 204 | asmlinkage void do_address_error(struct pt_regs *regs, | 204 | asmlinkage void do_address_error(struct pt_regs *regs, |
diff --git a/arch/sh/include/asm/timer.h b/arch/sh/include/asm/timer.h deleted file mode 100644 index 4c3b66e30af2..000000000000 --- a/arch/sh/include/asm/timer.h +++ /dev/null | |||
| @@ -1,44 +0,0 @@ | |||
| 1 | #ifndef __ASM_SH_TIMER_H | ||
| 2 | #define __ASM_SH_TIMER_H | ||
| 3 | |||
| 4 | #include <linux/sysdev.h> | ||
| 5 | #include <linux/clocksource.h> | ||
| 6 | #include <cpu/timer.h> | ||
| 7 | |||
| 8 | struct sys_timer_ops { | ||
| 9 | int (*init)(void); | ||
| 10 | int (*start)(void); | ||
| 11 | int (*stop)(void); | ||
| 12 | #ifndef CONFIG_GENERIC_TIME | ||
| 13 | unsigned long (*get_offset)(void); | ||
| 14 | #endif | ||
| 15 | }; | ||
| 16 | |||
| 17 | struct sys_timer { | ||
| 18 | const char *name; | ||
| 19 | |||
| 20 | struct sys_device dev; | ||
| 21 | struct sys_timer_ops *ops; | ||
| 22 | }; | ||
| 23 | |||
| 24 | #define TICK_SIZE (tick_nsec / 1000) | ||
| 25 | |||
| 26 | extern struct sys_timer tmu_timer, cmt_timer, mtu2_timer; | ||
| 27 | extern struct sys_timer *sys_timer; | ||
| 28 | |||
| 29 | #ifndef CONFIG_GENERIC_TIME | ||
| 30 | static inline unsigned long get_timer_offset(void) | ||
| 31 | { | ||
| 32 | return sys_timer->ops->get_offset(); | ||
| 33 | } | ||
| 34 | #endif | ||
| 35 | |||
| 36 | /* arch/sh/kernel/timers/timer.c */ | ||
| 37 | struct sys_timer *get_sys_timer(void); | ||
| 38 | |||
| 39 | /* arch/sh/kernel/time.c */ | ||
| 40 | void handle_timer_tick(void); | ||
| 41 | |||
| 42 | extern struct clocksource clocksource_sh; | ||
| 43 | |||
| 44 | #endif /* __ASM_SH_TIMER_H */ | ||
diff --git a/arch/sh/include/asm/types.h b/arch/sh/include/asm/types.h index beea4e6f8dfd..b13caca62a76 100644 --- a/arch/sh/include/asm/types.h +++ b/arch/sh/include/asm/types.h | |||
| @@ -23,9 +23,9 @@ typedef unsigned short umode_t; | |||
| 23 | typedef u32 dma_addr_t; | 23 | typedef u32 dma_addr_t; |
| 24 | 24 | ||
| 25 | #ifdef CONFIG_SUPERH32 | 25 | #ifdef CONFIG_SUPERH32 |
| 26 | typedef u16 opcode_t; | 26 | typedef u16 insn_size_t; |
| 27 | #else | 27 | #else |
| 28 | typedef u32 opcode_t; | 28 | typedef u32 insn_size_t; |
| 29 | #endif | 29 | #endif |
| 30 | 30 | ||
| 31 | #endif /* __ASSEMBLY__ */ | 31 | #endif /* __ASSEMBLY__ */ |
diff --git a/arch/sh/include/asm/ubc.h b/arch/sh/include/asm/ubc.h index a7b9028bbfbb..4ca4b7717371 100644 --- a/arch/sh/include/asm/ubc.h +++ b/arch/sh/include/asm/ubc.h | |||
| @@ -42,12 +42,23 @@ | |||
| 42 | 42 | ||
| 43 | #define BRCR_CMFA (1 << 15) | 43 | #define BRCR_CMFA (1 << 15) |
| 44 | #define BRCR_CMFB (1 << 14) | 44 | #define BRCR_CMFB (1 << 14) |
| 45 | |||
| 46 | #if defined CONFIG_CPU_SH2A | ||
| 47 | #define BRCR_CMFCA (1 << 15) | ||
| 48 | #define BRCR_CMFCB (1 << 14) | ||
| 49 | #define BRCR_CMFDA (1 << 13) | ||
| 50 | #define BRCR_CMFDB (1 << 12) | ||
| 51 | #define BRCR_PCBB (1 << 6) /* 1: after execution */ | ||
| 52 | #define BRCR_PCBA (1 << 5) /* 1: after execution */ | ||
| 53 | #define BRCR_PCTE 0 | ||
| 54 | #else | ||
| 45 | #define BRCR_PCTE (1 << 11) | 55 | #define BRCR_PCTE (1 << 11) |
| 46 | #define BRCR_PCBA (1 << 10) /* 1: after execution */ | 56 | #define BRCR_PCBA (1 << 10) /* 1: after execution */ |
| 47 | #define BRCR_DBEB (1 << 7) | 57 | #define BRCR_DBEB (1 << 7) |
| 48 | #define BRCR_PCBB (1 << 6) | 58 | #define BRCR_PCBB (1 << 6) |
| 49 | #define BRCR_SEQ (1 << 3) | 59 | #define BRCR_SEQ (1 << 3) |
| 50 | #define BRCR_UBDE (1 << 0) | 60 | #define BRCR_UBDE (1 << 0) |
| 61 | #endif | ||
| 51 | 62 | ||
| 52 | #ifndef __ASSEMBLY__ | 63 | #ifndef __ASSEMBLY__ |
| 53 | /* arch/sh/kernel/cpu/ubc.S */ | 64 | /* arch/sh/kernel/cpu/ubc.S */ |
