diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-24 10:58:28 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-24 10:58:28 -0400 |
commit | 0fed2b5cb4c04336b26b0cbf6f9a8c07081f79a6 (patch) | |
tree | a9be0f082d3c2f53eb2d5f9de9ad900c31236b34 /arch/sh/kernel | |
parent | 0163916f1db7f345963dad1af78b7628c759c6ee (diff) | |
parent | 41ec7ebee14189a0424176279c227168960c28ad (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (25 commits)
sh: fix up sh7785lcr_32bit_defconfig.
arch/sh/lib/strlen.S: Checkpatch cleanup
sh: fix up sh7786 dmaengine build.
sh: guard cookie consistency across termination in the DMA driver
sh: prevent the DMA driver from unloading, while in use
sh: fix Oops in the serial SCI driver
sh: allow platforms to specify SD-card supported voltages
mmc: let MFD's provide supported Vdd card voltages to tmio_mmc
sh: disable SD-card write-protection detection on kfr2r09
mfd: pass platform flags down to the tmio_mmc driver
tmio: add a platform flag to disable card write-protection detection
sh: Add SDHI DMA support to migor
sh: Add SDHI DMA support to kfr2r09
sh: Add SDHI DMA support to ms7724se
sh: Add SDHI DMA support to ecovec
mmc: add DMA support to tmio_mmc driver, when used on SuperH
sh: prepare the SDHI MFD driver to pass DMA configuration to tmio_mmc.c
mmc: prepare tmio_mmc for passing of DMA configuration from the MFD cell
sh: add DMA slave definitions to sh7724
sh: add DMA slaves for two SDHI controllers to sh7722
...
Diffstat (limited to 'arch/sh/kernel')
-rw-r--r-- | arch/sh/kernel/cpu/sh4a/clock-sh7786.c | 1 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh4a/setup-sh7722.c | 11 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh4a/setup-sh7724.c | 88 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh4a/setup-sh7780.c | 3 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh4a/setup-sh7785.c | 2 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh4a/setup-sh7786.c | 2 | ||||
-rw-r--r-- | arch/sh/kernel/dwarf.c | 4 |
7 files changed, 104 insertions, 7 deletions
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7786.c b/arch/sh/kernel/cpu/sh4a/clock-sh7786.c index 105a6d41b569..597c9fbe49c6 100644 --- a/arch/sh/kernel/cpu/sh4a/clock-sh7786.c +++ b/arch/sh/kernel/cpu/sh4a/clock-sh7786.c | |||
@@ -13,7 +13,6 @@ | |||
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/clk.h> | 14 | #include <linux/clk.h> |
15 | #include <linux/io.h> | 15 | #include <linux/io.h> |
16 | #include <linux/clk.h> | ||
17 | #include <asm/clkdev.h> | 16 | #include <asm/clkdev.h> |
18 | #include <asm/clock.h> | 17 | #include <asm/clock.h> |
19 | #include <asm/freq.h> | 18 | #include <asm/freq.h> |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c index 24c6167a7181..156ccc960015 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c | |||
@@ -17,7 +17,6 @@ | |||
17 | #include <linux/usb/m66592.h> | 17 | #include <linux/usb/m66592.h> |
18 | 18 | ||
19 | #include <asm/clock.h> | 19 | #include <asm/clock.h> |
20 | #include <asm/dmaengine.h> | ||
21 | #include <asm/mmzone.h> | 20 | #include <asm/mmzone.h> |
22 | #include <asm/siu.h> | 21 | #include <asm/siu.h> |
23 | 22 | ||
@@ -75,6 +74,16 @@ static const struct sh_dmae_slave_config sh7722_dmae_slaves[] = { | |||
75 | .addr = 0xa454c094, | 74 | .addr = 0xa454c094, |
76 | .chcr = DM_INC | SM_FIX | 0x800 | TS_INDEX2VAL(XMIT_SZ_32BIT), | 75 | .chcr = DM_INC | SM_FIX | 0x800 | TS_INDEX2VAL(XMIT_SZ_32BIT), |
77 | .mid_rid = 0xb6, | 76 | .mid_rid = 0xb6, |
77 | }, { | ||
78 | .slave_id = SHDMA_SLAVE_SDHI0_TX, | ||
79 | .addr = 0x04ce0030, | ||
80 | .chcr = DM_FIX | SM_INC | 0x800 | TS_INDEX2VAL(XMIT_SZ_16BIT), | ||
81 | .mid_rid = 0xc1, | ||
82 | }, { | ||
83 | .slave_id = SHDMA_SLAVE_SDHI0_RX, | ||
84 | .addr = 0x04ce0030, | ||
85 | .chcr = DM_INC | SM_FIX | 0x800 | TS_INDEX2VAL(XMIT_SZ_16BIT), | ||
86 | .mid_rid = 0xc2, | ||
78 | }, | 87 | }, |
79 | }; | 88 | }; |
80 | 89 | ||
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7724.c b/arch/sh/kernel/cpu/sh4a/setup-sh7724.c index 89fe16d20fdb..79c556e56262 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7724.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7724.c | |||
@@ -18,19 +18,103 @@ | |||
18 | #include <linux/mm.h> | 18 | #include <linux/mm.h> |
19 | #include <linux/serial_sci.h> | 19 | #include <linux/serial_sci.h> |
20 | #include <linux/uio_driver.h> | 20 | #include <linux/uio_driver.h> |
21 | #include <linux/sh_dma.h> | ||
21 | #include <linux/sh_timer.h> | 22 | #include <linux/sh_timer.h> |
22 | #include <linux/io.h> | 23 | #include <linux/io.h> |
23 | #include <linux/notifier.h> | 24 | #include <linux/notifier.h> |
24 | 25 | ||
25 | #include <asm/suspend.h> | 26 | #include <asm/suspend.h> |
26 | #include <asm/clock.h> | 27 | #include <asm/clock.h> |
27 | #include <asm/dmaengine.h> | ||
28 | #include <asm/mmzone.h> | 28 | #include <asm/mmzone.h> |
29 | 29 | ||
30 | #include <cpu/dma-register.h> | 30 | #include <cpu/dma-register.h> |
31 | #include <cpu/sh7724.h> | 31 | #include <cpu/sh7724.h> |
32 | 32 | ||
33 | /* DMA */ | 33 | /* DMA */ |
34 | static const struct sh_dmae_slave_config sh7724_dmae_slaves[] = { | ||
35 | { | ||
36 | .slave_id = SHDMA_SLAVE_SCIF0_TX, | ||
37 | .addr = 0xffe0000c, | ||
38 | .chcr = DM_FIX | SM_INC | 0x800 | TS_INDEX2VAL(XMIT_SZ_8BIT), | ||
39 | .mid_rid = 0x21, | ||
40 | }, { | ||
41 | .slave_id = SHDMA_SLAVE_SCIF0_RX, | ||
42 | .addr = 0xffe00014, | ||
43 | .chcr = DM_INC | SM_FIX | 0x800 | TS_INDEX2VAL(XMIT_SZ_8BIT), | ||
44 | .mid_rid = 0x22, | ||
45 | }, { | ||
46 | .slave_id = SHDMA_SLAVE_SCIF1_TX, | ||
47 | .addr = 0xffe1000c, | ||
48 | .chcr = DM_FIX | SM_INC | 0x800 | TS_INDEX2VAL(XMIT_SZ_8BIT), | ||
49 | .mid_rid = 0x25, | ||
50 | }, { | ||
51 | .slave_id = SHDMA_SLAVE_SCIF1_RX, | ||
52 | .addr = 0xffe10014, | ||
53 | .chcr = DM_INC | SM_FIX | 0x800 | TS_INDEX2VAL(XMIT_SZ_8BIT), | ||
54 | .mid_rid = 0x26, | ||
55 | }, { | ||
56 | .slave_id = SHDMA_SLAVE_SCIF2_TX, | ||
57 | .addr = 0xffe2000c, | ||
58 | .chcr = DM_FIX | SM_INC | 0x800 | TS_INDEX2VAL(XMIT_SZ_8BIT), | ||
59 | .mid_rid = 0x29, | ||
60 | }, { | ||
61 | .slave_id = SHDMA_SLAVE_SCIF2_RX, | ||
62 | .addr = 0xffe20014, | ||
63 | .chcr = DM_INC | SM_FIX | 0x800 | TS_INDEX2VAL(XMIT_SZ_8BIT), | ||
64 | .mid_rid = 0x2a, | ||
65 | }, { | ||
66 | .slave_id = SHDMA_SLAVE_SCIF3_TX, | ||
67 | .addr = 0xa4e30020, | ||
68 | .chcr = DM_FIX | SM_INC | 0x800 | TS_INDEX2VAL(XMIT_SZ_8BIT), | ||
69 | .mid_rid = 0x2d, | ||
70 | }, { | ||
71 | .slave_id = SHDMA_SLAVE_SCIF3_RX, | ||
72 | .addr = 0xa4e30024, | ||
73 | .chcr = DM_INC | SM_FIX | 0x800 | TS_INDEX2VAL(XMIT_SZ_8BIT), | ||
74 | .mid_rid = 0x2e, | ||
75 | }, { | ||
76 | .slave_id = SHDMA_SLAVE_SCIF4_TX, | ||
77 | .addr = 0xa4e40020, | ||
78 | .chcr = DM_FIX | SM_INC | 0x800 | TS_INDEX2VAL(XMIT_SZ_8BIT), | ||
79 | .mid_rid = 0x31, | ||
80 | }, { | ||
81 | .slave_id = SHDMA_SLAVE_SCIF4_RX, | ||
82 | .addr = 0xa4e40024, | ||
83 | .chcr = DM_INC | SM_FIX | 0x800 | TS_INDEX2VAL(XMIT_SZ_8BIT), | ||
84 | .mid_rid = 0x32, | ||
85 | }, { | ||
86 | .slave_id = SHDMA_SLAVE_SCIF5_TX, | ||
87 | .addr = 0xa4e50020, | ||
88 | .chcr = DM_FIX | SM_INC | 0x800 | TS_INDEX2VAL(XMIT_SZ_8BIT), | ||
89 | .mid_rid = 0x35, | ||
90 | }, { | ||
91 | .slave_id = SHDMA_SLAVE_SCIF5_RX, | ||
92 | .addr = 0xa4e50024, | ||
93 | .chcr = DM_INC | SM_FIX | 0x800 | TS_INDEX2VAL(XMIT_SZ_8BIT), | ||
94 | .mid_rid = 0x36, | ||
95 | }, { | ||
96 | .slave_id = SHDMA_SLAVE_SDHI0_TX, | ||
97 | .addr = 0x04ce0030, | ||
98 | .chcr = DM_FIX | SM_INC | 0x800 | TS_INDEX2VAL(XMIT_SZ_16BIT), | ||
99 | .mid_rid = 0xc1, | ||
100 | }, { | ||
101 | .slave_id = SHDMA_SLAVE_SDHI0_RX, | ||
102 | .addr = 0x04ce0030, | ||
103 | .chcr = DM_INC | SM_FIX | 0x800 | TS_INDEX2VAL(XMIT_SZ_16BIT), | ||
104 | .mid_rid = 0xc2, | ||
105 | }, { | ||
106 | .slave_id = SHDMA_SLAVE_SDHI1_TX, | ||
107 | .addr = 0x04cf0030, | ||
108 | .chcr = DM_FIX | SM_INC | 0x800 | TS_INDEX2VAL(XMIT_SZ_16BIT), | ||
109 | .mid_rid = 0xc9, | ||
110 | }, { | ||
111 | .slave_id = SHDMA_SLAVE_SDHI1_RX, | ||
112 | .addr = 0x04cf0030, | ||
113 | .chcr = DM_INC | SM_FIX | 0x800 | TS_INDEX2VAL(XMIT_SZ_16BIT), | ||
114 | .mid_rid = 0xca, | ||
115 | }, | ||
116 | }; | ||
117 | |||
34 | static const struct sh_dmae_channel sh7724_dmae_channels[] = { | 118 | static const struct sh_dmae_channel sh7724_dmae_channels[] = { |
35 | { | 119 | { |
36 | .offset = 0, | 120 | .offset = 0, |
@@ -62,6 +146,8 @@ static const struct sh_dmae_channel sh7724_dmae_channels[] = { | |||
62 | static const unsigned int ts_shift[] = TS_SHIFT; | 146 | static const unsigned int ts_shift[] = TS_SHIFT; |
63 | 147 | ||
64 | static struct sh_dmae_pdata dma_platform_data = { | 148 | static struct sh_dmae_pdata dma_platform_data = { |
149 | .slave = sh7724_dmae_slaves, | ||
150 | .slave_num = ARRAY_SIZE(sh7724_dmae_slaves), | ||
65 | .channel = sh7724_dmae_channels, | 151 | .channel = sh7724_dmae_channels, |
66 | .channel_num = ARRAY_SIZE(sh7724_dmae_channels), | 152 | .channel_num = ARRAY_SIZE(sh7724_dmae_channels), |
67 | .ts_low_shift = CHCR_TS_LOW_SHIFT, | 153 | .ts_low_shift = CHCR_TS_LOW_SHIFT, |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7780.c b/arch/sh/kernel/cpu/sh4a/setup-sh7780.c index b12f537e4dde..0f414864f76b 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7780.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7780.c | |||
@@ -12,10 +12,9 @@ | |||
12 | #include <linux/serial.h> | 12 | #include <linux/serial.h> |
13 | #include <linux/io.h> | 13 | #include <linux/io.h> |
14 | #include <linux/serial_sci.h> | 14 | #include <linux/serial_sci.h> |
15 | #include <linux/sh_dma.h> | ||
15 | #include <linux/sh_timer.h> | 16 | #include <linux/sh_timer.h> |
16 | 17 | ||
17 | #include <asm/dmaengine.h> | ||
18 | |||
19 | #include <cpu/dma-register.h> | 18 | #include <cpu/dma-register.h> |
20 | 19 | ||
21 | static struct plat_sci_port scif0_platform_data = { | 20 | static struct plat_sci_port scif0_platform_data = { |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7785.c b/arch/sh/kernel/cpu/sh4a/setup-sh7785.c index f3e3ea0ce050..c9a572bc6dc8 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7785.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7785.c | |||
@@ -13,9 +13,9 @@ | |||
13 | #include <linux/serial_sci.h> | 13 | #include <linux/serial_sci.h> |
14 | #include <linux/io.h> | 14 | #include <linux/io.h> |
15 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
16 | #include <linux/sh_dma.h> | ||
16 | #include <linux/sh_timer.h> | 17 | #include <linux/sh_timer.h> |
17 | 18 | ||
18 | #include <asm/dmaengine.h> | ||
19 | #include <asm/mmzone.h> | 19 | #include <asm/mmzone.h> |
20 | 20 | ||
21 | #include <cpu/dma-register.h> | 21 | #include <cpu/dma-register.h> |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7786.c b/arch/sh/kernel/cpu/sh4a/setup-sh7786.c index 81657091da46..8797723231ea 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7786.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7786.c | |||
@@ -21,10 +21,10 @@ | |||
21 | #include <linux/mm.h> | 21 | #include <linux/mm.h> |
22 | #include <linux/dma-mapping.h> | 22 | #include <linux/dma-mapping.h> |
23 | #include <linux/sh_timer.h> | 23 | #include <linux/sh_timer.h> |
24 | #include <linux/sh_dma.h> | ||
24 | #include <linux/sh_intc.h> | 25 | #include <linux/sh_intc.h> |
25 | #include <cpu/dma-register.h> | 26 | #include <cpu/dma-register.h> |
26 | #include <asm/mmzone.h> | 27 | #include <asm/mmzone.h> |
27 | #include <asm/dmaengine.h> | ||
28 | 28 | ||
29 | static struct plat_sci_port scif0_platform_data = { | 29 | static struct plat_sci_port scif0_platform_data = { |
30 | .mapbase = 0xffea0000, | 30 | .mapbase = 0xffea0000, |
diff --git a/arch/sh/kernel/dwarf.c b/arch/sh/kernel/dwarf.c index 5ec1d1818691..886d7d83ace3 100644 --- a/arch/sh/kernel/dwarf.c +++ b/arch/sh/kernel/dwarf.c | |||
@@ -845,8 +845,10 @@ static int dwarf_parse_cie(void *entry, void *p, unsigned long len, | |||
845 | rb_link_node(&cie->node, parent, rb_node); | 845 | rb_link_node(&cie->node, parent, rb_node); |
846 | rb_insert_color(&cie->node, &cie_root); | 846 | rb_insert_color(&cie->node, &cie_root); |
847 | 847 | ||
848 | #ifdef CONFIG_MODULES | ||
848 | if (mod != NULL) | 849 | if (mod != NULL) |
849 | list_add_tail(&cie->link, &mod->arch.cie_list); | 850 | list_add_tail(&cie->link, &mod->arch.cie_list); |
851 | #endif | ||
850 | 852 | ||
851 | spin_unlock_irqrestore(&dwarf_cie_lock, flags); | 853 | spin_unlock_irqrestore(&dwarf_cie_lock, flags); |
852 | 854 | ||
@@ -935,8 +937,10 @@ static int dwarf_parse_fde(void *entry, u32 entry_type, | |||
935 | rb_link_node(&fde->node, parent, rb_node); | 937 | rb_link_node(&fde->node, parent, rb_node); |
936 | rb_insert_color(&fde->node, &fde_root); | 938 | rb_insert_color(&fde->node, &fde_root); |
937 | 939 | ||
940 | #ifdef CONFIG_MODULES | ||
938 | if (mod != NULL) | 941 | if (mod != NULL) |
939 | list_add_tail(&fde->link, &mod->arch.fde_list); | 942 | list_add_tail(&fde->link, &mod->arch.fde_list); |
943 | #endif | ||
940 | 944 | ||
941 | spin_unlock_irqrestore(&dwarf_fde_lock, flags); | 945 | spin_unlock_irqrestore(&dwarf_fde_lock, flags); |
942 | 946 | ||