summaryrefslogtreecommitdiffstats
path: root/meta-fsl-arm
diff options
context:
space:
mode:
authorOtavio Salvador <otavio@ossystems.com.br>2012-05-28 17:50:34 -0300
committerOtavio Salvador <otavio@ossystems.com.br>2012-05-28 17:50:34 -0300
commit1ce8d63e3fb2168e64dd73cc8872c50ddefcb0e9 (patch)
tree495e4f4d46691176fa0bc7dfa1db6c4d79844ea9 /meta-fsl-arm
parentdffcca4a01f918bddcb7d71996d50a5a3274ed18 (diff)
downloadmeta-freescale-1ce8d63e3fb2168e64dd73cc8872c50ddefcb0e9.tar.gz
linux-imx (2.6.35.3): fix multiple w1 masters use
This patch has been backport from 3.2 kernel and allow the use of multiple w1 masters at same time. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Diffstat (limited to 'meta-fsl-arm')
-rw-r--r--meta-fsl-arm/recipes-kernel/linux/linux-imx-2.6.35.3/w1-fix-support-multiple-master.patch79
-rw-r--r--meta-fsl-arm/recipes-kernel/linux/linux-imx_2.6.35.3.bb3
2 files changed, 81 insertions, 1 deletions
diff --git a/meta-fsl-arm/recipes-kernel/linux/linux-imx-2.6.35.3/w1-fix-support-multiple-master.patch b/meta-fsl-arm/recipes-kernel/linux/linux-imx-2.6.35.3/w1-fix-support-multiple-master.patch
new file mode 100644
index 000000000..9ed730b8d
--- /dev/null
+++ b/meta-fsl-arm/recipes-kernel/linux/linux-imx-2.6.35.3/w1-fix-support-multiple-master.patch
@@ -0,0 +1,79 @@
1drivers/w1/w1_int.c: multiple masters used same init_name
2
3When using multiple masters, w1_int.c would use the .init_name from w1.c
4for all entities, which will fail when creating a corresponding sysfs
5entry. This patch uses the unique name previously generated.
6
7 WARNING: at fs/sysfs/dir.c:451 sysfs_add_one+0x48/0x64()
8 sysfs: cannot create duplicate filename '/devices/w1 bus master'
9 Modules linked in:
10 Call trace:
11 [<9001a604>] warn_slowpath_common+0x34/0x44
12 [<9001a64c>] warn_slowpath_fmt+0x14/0x18
13 [<90078020>] sysfs_add_one+0x48/0x64
14 [<900784ec>] create_dir+0x40/0x68
15 [<9007857a>] sysfs_create_dir+0x66/0x78
16 [<900c1a8a>] kobject_add_internal+0x6e/0x104
17 [<900c1bc0>] kobject_add_varg+0x20/0x2c
18 [<900c1c1c>] kobject_add+0x30/0x3c
19 [<900dbd66>] device_add+0x6a/0x378
20 [<900dbb4a>] device_initialize+0x12/0x48
21 [<900dc080>] device_register+0xc/0x10
22 [<900f99be>] w1_add_master_device+0x162/0x274
23 [<90008e7a>] w1_gpio_probe+0x66/0xb4
24 [<9000030c>] kernel_init+0x0/0xe8
25 [<900dde54>] platform_drv_probe+0xc/0xe
26 [<9000030c>] kernel_init+0x0/0xe8
27 [<900dd4f8>] driver_probe_device+0x6c/0xdc
28 [<900dd5fc>] __driver_attach+0x34/0x48
29 [<900dcce8>] bus_for_each_dev+0x2c/0x48
30 [<900dd5c8>] __driver_attach+0x0/0x48
31 [<900dd38c>] driver_attach+0x10/0x14
32 [<900dd16a>] bus_add_driver+0x6a/0x18c
33 [<900dd768>] driver_register+0x60/0xb8
34 [<90011594>] __initcall_w1_therm_init6+0x0/0x4
35 [<90008e00>] w1_gpio_init+0x0/0x14
36 [<9000030c>] kernel_init+0x0/0xe8
37 [<900ddf48>] platform_driver_register+0x30/0x38
38 [<90011594>] __initcall_w1_therm_init6+0x0/0x4
39 [<90008e00>] w1_gpio_init+0x0/0x14
40 [<9000030c>] kernel_init+0x0/0xe8
41 [<900ddf5e>] platform_driver_probe+0xe/0x3c
42 [<90008e0c>] w1_gpio_init+0xc/0x14
43 [<90011594>] __initcall_w1_therm_init6+0x0/0x4
44 [<90008e00>] w1_gpio_init+0x0/0x14
45 [<900126d4>] do_one_initcall+0x34/0x130
46 [<90000372>] kernel_init+0x66/0xe8
47 [<90011594>] __initcall_w1_therm_init6+0x0/0x4
48 [<9001ca3e>] do_exit+0x0/0x3a6
49 [<9000030c>] kernel_init+0x0/0xe8
50 [<9001ca3e>] do_exit+0x0/0x3a6
51
52 ---[ end trace 5a9233884fead918 ]---
53 kobject_add_internal failed for w1 bus master with -EEXIST, don't try to register things with the same name in the same directory.
54
55Upstream-Status: Backport [3.2]
56
57Signed-off-by: Florian Faber <faber@faberman.de>
58Cc: Evgeniy Polyakov <zbr@ioremap.net>
59Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
60Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
61---
62 drivers/w1/w1_int.c | 1 +
63 1 file changed, 1 insertion(+)
64
65diff --git a/drivers/w1/w1_int.c b/drivers/w1/w1_int.c
66index d220bce..f79e62e 100644
67--- a/drivers/w1/w1_int.c
68+++ b/drivers/w1/w1_int.c
69@@ -78,6 +78,7 @@ static struct w1_master * w1_alloc_dev(u32 id, int slave_count, int slave_ttl,
70 memcpy(&dev->dev, device, sizeof(struct device));
71 dev_set_name(&dev->dev, "w1_bus_master%u", dev->id);
72 snprintf(dev->name, sizeof(dev->name), "w1_bus_master%u", dev->id);
73+ dev->dev.init_name = dev->name;
74
75 dev->driver = driver;
76
77--
781.7.10
79
diff --git a/meta-fsl-arm/recipes-kernel/linux/linux-imx_2.6.35.3.bb b/meta-fsl-arm/recipes-kernel/linux/linux-imx_2.6.35.3.bb
index 1f4a453a2..6c8822f6c 100644
--- a/meta-fsl-arm/recipes-kernel/linux/linux-imx_2.6.35.3.bb
+++ b/meta-fsl-arm/recipes-kernel/linux/linux-imx_2.6.35.3.bb
@@ -4,7 +4,7 @@
4DESCRIPTION = "Linux kernel for imx platforms" 4DESCRIPTION = "Linux kernel for imx platforms"
5LICENSE = "GPLv2" 5LICENSE = "GPLv2"
6LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" 6LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
7PR = "r17" 7PR = "r18"
8 8
9inherit kernel 9inherit kernel
10COMPATIBLE_MACHINE = "(mxs|mx5)" 10COMPATIBLE_MACHINE = "(mxs|mx5)"
@@ -30,6 +30,7 @@ SRC_URI = "git://git.freescale.com/imx/linux-2.6-imx.git;tag=rel_imx_2.6.35_11.0
30 file://no-unaligned-access.patch \ 30 file://no-unaligned-access.patch \
31 file://mx28-removecpufreq.patch \ 31 file://mx28-removecpufreq.patch \
32 file://mxs-duart-use-ttyAMA-for-device-name.patch \ 32 file://mxs-duart-use-ttyAMA-for-device-name.patch \
33 file://w1-fix-support-multiple-master.patch \
33 file://0001-mx53_loco-add-USR-led-support.patch \ 34 file://0001-mx53_loco-add-USR-led-support.patch \
34 file://001_Add_accept4_syscall.patch \ 35 file://001_Add_accept4_syscall.patch \
35 file://002_Return_ERESTARTSYS_from_IPU_GET_EVENT.patch \ 36 file://002_Return_ERESTARTSYS_from_IPU_GET_EVENT.patch \