aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2016-09-02 12:23:23 -0400
committerArnd Bergmann <arnd@arndb.de>2016-09-02 12:23:23 -0400
commita2fccdead12d61d9193d5d64da8c84f502b8a9c8 (patch)
tree790179813a4d6a0e8617f31e548decdcc6ceff6e
parent2fca8430593f10366a7b1584e9cdee7e58cfd8d8 (diff)
parenta36289756212a79a1b32c02e66ddf11ba33ec7db (diff)
Merge tag 'samsung-soc-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/soc
Merge "Samsung mach/soc update for v4.9" from Krzysztof Kozlowski: 1. Fix for DMA on S3C24xx. This was probably broken for long time, nobody runs this code... till now. 2. After fixes from Matthew Leach and Ben Dooks, most of our mach code and drivers is now endian-safe. Mark the platform as supporting big endian. 3. Cleanups. * tag 'samsung-soc-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: ARM: EXYNOS: Remove unused DMC and CMU offsets and their mappings ARM: s3c64xx: Delete unnecessary assignment for the field "owner" ARM: EXYNOS: Enable ARCH_SUPPORTS_BIG_ENDIAN explicitly ARM: S3C24XX: Add missing DMA device for Mini2440 board ARM: S3C24XX: Add dma_mask assignments for DMA devices
-rw-r--r--arch/arm/mach-exynos/Kconfig1
-rw-r--r--arch/arm/mach-exynos/exynos.c15
-rw-r--r--arch/arm/mach-exynos/include/mach/map.h5
-rw-r--r--arch/arm/mach-s3c24xx/common.c20
-rw-r--r--arch/arm/mach-s3c24xx/mach-mini2440.c1
-rw-r--r--arch/arm/mach-s3c64xx/mach-crag6410-module.c3
-rw-r--r--arch/arm/plat-samsung/include/plat/map-s5p.h4
7 files changed, 18 insertions, 31 deletions
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 8f820de890b4..b085855c1d0b 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -12,6 +12,7 @@ menuconfig ARCH_EXYNOS
12 depends on ARCH_MULTI_V7 12 depends on ARCH_MULTI_V7
13 select ARCH_HAS_BANDGAP 13 select ARCH_HAS_BANDGAP
14 select ARCH_HAS_HOLES_MEMORYMODEL 14 select ARCH_HAS_HOLES_MEMORYMODEL
15 select ARCH_SUPPORTS_BIG_ENDIAN
15 select ARM_AMBA 16 select ARM_AMBA
16 select ARM_GIC 17 select ARM_GIC
17 select COMMON_CLK_SAMSUNG 18 select COMMON_CLK_SAMSUNG
diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c
index acabf0bffc5d..757fc11de30d 100644
--- a/arch/arm/mach-exynos/exynos.c
+++ b/arch/arm/mach-exynos/exynos.c
@@ -30,25 +30,10 @@
30 30
31static struct map_desc exynos4_iodesc[] __initdata = { 31static struct map_desc exynos4_iodesc[] __initdata = {
32 { 32 {
33 .virtual = (unsigned long)S5P_VA_CMU,
34 .pfn = __phys_to_pfn(EXYNOS4_PA_CMU),
35 .length = SZ_128K,
36 .type = MT_DEVICE,
37 }, {
38 .virtual = (unsigned long)S5P_VA_COREPERI_BASE, 33 .virtual = (unsigned long)S5P_VA_COREPERI_BASE,
39 .pfn = __phys_to_pfn(EXYNOS4_PA_COREPERI), 34 .pfn = __phys_to_pfn(EXYNOS4_PA_COREPERI),
40 .length = SZ_8K, 35 .length = SZ_8K,
41 .type = MT_DEVICE, 36 .type = MT_DEVICE,
42 }, {
43 .virtual = (unsigned long)S5P_VA_DMC0,
44 .pfn = __phys_to_pfn(EXYNOS4_PA_DMC0),
45 .length = SZ_64K,
46 .type = MT_DEVICE,
47 }, {
48 .virtual = (unsigned long)S5P_VA_DMC1,
49 .pfn = __phys_to_pfn(EXYNOS4_PA_DMC1),
50 .length = SZ_64K,
51 .type = MT_DEVICE,
52 }, 37 },
53}; 38};
54 39
diff --git a/arch/arm/mach-exynos/include/mach/map.h b/arch/arm/mach-exynos/include/mach/map.h
index c48ba4fbdfd2..5fb0040cc6d3 100644
--- a/arch/arm/mach-exynos/include/mach/map.h
+++ b/arch/arm/mach-exynos/include/mach/map.h
@@ -18,11 +18,6 @@
18 18
19#define EXYNOS_PA_CHIPID 0x10000000 19#define EXYNOS_PA_CHIPID 0x10000000
20 20
21#define EXYNOS4_PA_CMU 0x10030000
22
23#define EXYNOS4_PA_DMC0 0x10400000
24#define EXYNOS4_PA_DMC1 0x10410000
25
26#define EXYNOS4_PA_COREPERI 0x10500000 21#define EXYNOS4_PA_COREPERI 0x10500000
27 22
28#endif /* __ASM_ARCH_MAP_H */ 23#endif /* __ASM_ARCH_MAP_H */
diff --git a/arch/arm/mach-s3c24xx/common.c b/arch/arm/mach-s3c24xx/common.c
index bf50328107bd..fe7485dc7fb5 100644
--- a/arch/arm/mach-s3c24xx/common.c
+++ b/arch/arm/mach-s3c24xx/common.c
@@ -21,7 +21,7 @@
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22*/ 22*/
23 23
24 24#include <linux/dma-mapping.h>
25#include <linux/init.h> 25#include <linux/init.h>
26#include <linux/module.h> 26#include <linux/module.h>
27#include <linux/interrupt.h> 27#include <linux/interrupt.h>
@@ -304,6 +304,8 @@ struct s3c24xx_uart_resources s3c2410_uart_resources[] __initdata = {
304 }, 304 },
305}; 305};
306 306
307#define s3c24xx_device_dma_mask (*((u64[]) { DMA_BIT_MASK(32) }))
308
307#if defined(CONFIG_CPU_S3C2410) || defined(CONFIG_CPU_S3C2412) || \ 309#if defined(CONFIG_CPU_S3C2410) || defined(CONFIG_CPU_S3C2412) || \
308 defined(CONFIG_CPU_S3C2440) || defined(CONFIG_CPU_S3C2442) 310 defined(CONFIG_CPU_S3C2440) || defined(CONFIG_CPU_S3C2442)
309static struct resource s3c2410_dma_resource[] = { 311static struct resource s3c2410_dma_resource[] = {
@@ -354,7 +356,9 @@ struct platform_device s3c2410_device_dma = {
354 .num_resources = ARRAY_SIZE(s3c2410_dma_resource), 356 .num_resources = ARRAY_SIZE(s3c2410_dma_resource),
355 .resource = s3c2410_dma_resource, 357 .resource = s3c2410_dma_resource,
356 .dev = { 358 .dev = {
357 .platform_data = &s3c2410_dma_platdata, 359 .dma_mask = &s3c24xx_device_dma_mask,
360 .coherent_dma_mask = DMA_BIT_MASK(32),
361 .platform_data = &s3c2410_dma_platdata,
358 }, 362 },
359}; 363};
360#endif 364#endif
@@ -395,7 +399,9 @@ struct platform_device s3c2412_device_dma = {
395 .num_resources = ARRAY_SIZE(s3c2410_dma_resource), 399 .num_resources = ARRAY_SIZE(s3c2410_dma_resource),
396 .resource = s3c2410_dma_resource, 400 .resource = s3c2410_dma_resource,
397 .dev = { 401 .dev = {
398 .platform_data = &s3c2412_dma_platdata, 402 .dma_mask = &s3c24xx_device_dma_mask,
403 .coherent_dma_mask = DMA_BIT_MASK(32),
404 .platform_data = &s3c2412_dma_platdata,
399 }, 405 },
400}; 406};
401#endif 407#endif
@@ -451,7 +457,9 @@ struct platform_device s3c2440_device_dma = {
451 .num_resources = ARRAY_SIZE(s3c2410_dma_resource), 457 .num_resources = ARRAY_SIZE(s3c2410_dma_resource),
452 .resource = s3c2410_dma_resource, 458 .resource = s3c2410_dma_resource,
453 .dev = { 459 .dev = {
454 .platform_data = &s3c2440_dma_platdata, 460 .dma_mask = &s3c24xx_device_dma_mask,
461 .coherent_dma_mask = DMA_BIT_MASK(32),
462 .platform_data = &s3c2440_dma_platdata,
455 }, 463 },
456}; 464};
457#endif 465#endif
@@ -503,7 +511,9 @@ struct platform_device s3c2443_device_dma = {
503 .num_resources = ARRAY_SIZE(s3c2443_dma_resource), 511 .num_resources = ARRAY_SIZE(s3c2443_dma_resource),
504 .resource = s3c2443_dma_resource, 512 .resource = s3c2443_dma_resource,
505 .dev = { 513 .dev = {
506 .platform_data = &s3c2443_dma_platdata, 514 .dma_mask = &s3c24xx_device_dma_mask,
515 .coherent_dma_mask = DMA_BIT_MASK(32),
516 .platform_data = &s3c2443_dma_platdata,
507 }, 517 },
508}; 518};
509#endif 519#endif
diff --git a/arch/arm/mach-s3c24xx/mach-mini2440.c b/arch/arm/mach-s3c24xx/mach-mini2440.c
index a8521684a7f5..bbf41322d726 100644
--- a/arch/arm/mach-s3c24xx/mach-mini2440.c
+++ b/arch/arm/mach-s3c24xx/mach-mini2440.c
@@ -516,6 +516,7 @@ static struct platform_device *mini2440_devices[] __initdata = {
516 &mini2440_button_device, 516 &mini2440_button_device,
517 &s3c_device_nand, 517 &s3c_device_nand,
518 &s3c_device_sdi, 518 &s3c_device_sdi,
519 &s3c2440_device_dma,
519 &s3c_device_iis, 520 &s3c_device_iis,
520 &uda1340_codec, 521 &uda1340_codec,
521 &mini2440_audio, 522 &mini2440_audio,
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410-module.c b/arch/arm/mach-s3c64xx/mach-crag6410-module.c
index 571f95cc5a53..ccc3ab8d58e7 100644
--- a/arch/arm/mach-s3c64xx/mach-crag6410-module.c
+++ b/arch/arm/mach-s3c64xx/mach-crag6410-module.c
@@ -393,8 +393,7 @@ static const struct i2c_device_id wlf_gf_module_id[] = {
393 393
394static struct i2c_driver wlf_gf_module_driver = { 394static struct i2c_driver wlf_gf_module_driver = {
395 .driver = { 395 .driver = {
396 .name = "wlf-gf-module", 396 .name = "wlf-gf-module"
397 .owner = THIS_MODULE,
398 }, 397 },
399 .probe = wlf_gf_module_probe, 398 .probe = wlf_gf_module_probe,
400 .id_table = wlf_gf_module_id, 399 .id_table = wlf_gf_module_id,
diff --git a/arch/arm/plat-samsung/include/plat/map-s5p.h b/arch/arm/plat-samsung/include/plat/map-s5p.h
index b63aeebb93f3..0fe2828f9354 100644
--- a/arch/arm/plat-samsung/include/plat/map-s5p.h
+++ b/arch/arm/plat-samsung/include/plat/map-s5p.h
@@ -14,10 +14,6 @@
14#define __ASM_PLAT_MAP_S5P_H __FILE__ 14#define __ASM_PLAT_MAP_S5P_H __FILE__
15 15
16#define S5P_VA_CHIPID S3C_ADDR(0x02000000) 16#define S5P_VA_CHIPID S3C_ADDR(0x02000000)
17#define S5P_VA_CMU S3C_ADDR(0x02100000)
18
19#define S5P_VA_DMC0 S3C_ADDR(0x02440000)
20#define S5P_VA_DMC1 S3C_ADDR(0x02480000)
21 17
22#define S5P_VA_COREPERI_BASE S3C_ADDR(0x02800000) 18#define S5P_VA_COREPERI_BASE S3C_ADDR(0x02800000)
23#define S5P_VA_COREPERI(x) (S5P_VA_COREPERI_BASE + (x)) 19#define S5P_VA_COREPERI(x) (S5P_VA_COREPERI_BASE + (x))