sysfs cannot create duplicate filename问题

使用aw2013控制led等,驱动加载错误信息:
[    8.018702] ------------[ cut here ]------------
[    8.018715] WARNING: CPU: 5 PID: 1 at /home/chenky/trunk/kernel/msm-3.18/fs/sysfs/dir.c:31 sysfs_warn_dup+0x68/0x80()
[    8.018718] sysfs: cannot create duplicate filename '/class/leds/red'
[    8.018723] Modules linked in:
[    8.018730] CPU: 5 PID: 1 Comm: swapper/0 Tainted: G        W      3.18.31-perf-svn224 #3
[    8.018733] Hardware name: Qualcomm Technologies, Inc. MSM8937-PMI8937 QRD SKU2 (DT)
[    8.018735] Call trace:
[    8.018743] [<ffffffc000089afc>] dump_backtrace+0x0/0x23c
[    8.018749] [<ffffffc000089d4c>] show_stack+0x14/0x1c
[    8.018756] [<ffffffc000c2f164>] dump_stack+0x80/0xa4
[    8.018763] [<ffffffc0000a2db0>] warn_slowpath_common+0x8c/0xb0
[    8.018769] [<ffffffc0000a2e34>] warn_slowpath_fmt+0x60/0x80
[    8.018775] [<ffffffc0002118b8>] sysfs_warn_dup+0x68/0x80
[    8.018781] [<ffffffc000211bf4>] sysfs_do_create_link_sd.isra.2+0x9c/0xb4
[    8.018786] [<ffffffc000211c40>] sysfs_create_link+0x34/0x3c
[    8.018793] [<ffffffc00051c754>] device_add+0x248/0x56c
[    8.018797] [<ffffffc00051cc1c>] device_create_groups_vargs+0xb0/0xf4
[    8.018802] [<ffffffc00051cd70>] device_create_with_groups+0x5c/0x7c
[    8.018809] [<ffffffc000877c84>] led_classdev_register+0x40/0x124
[    8.018815] [<ffffffc000883914>] aw2013_led_probe+0x35c/0x5e8
[    8.018822] [<ffffffc0006e5630>] i2c_device_probe+0xb8/0xec
[    8.018827] [<ffffffc00051f1e4>] driver_probe_device+0xd8/0x224
[    8.018832] [<ffffffc00051f3e0>] __driver_attach+0x64/0x90
[    8.018838] [<ffffffc00051e2e0>] bus_for_each_dev+0x80/0xb0
[    8.018843] [<ffffffc00051ecac>] driver_attach+0x20/0x28
[    8.018847] [<ffffffc00051e94c>] bus_add_driver+0xfc/0x1cc
[    8.018852] [<ffffffc00051fd94>] driver_register+0x94/0xe0
[    8.018857] [<ffffffc0006e4afc>] i2c_register_driver+0x4c/0xac
[    8.018863] [<ffffffc0012f9ee0>] aw2013_led_init+0x18/0x20
[    8.018868] [<ffffffc000082ae4>] do_one_initcall+0x18c/0x1a8
[    8.018876] [<ffffffc0012b7b00>] kernel_init_freeable+0x148/0x1e4
[    8.018881] [<ffffffc000c28ca4>] kernel_init+0x14/0xd8
[    8.018884] ---[ end trace 9564add2166cd02a ]---
[    8.018918] aw2013_led 5-0045: unable to register led 0,rc=-17
[    8.018924] aw2013_led 5-0045: parsed node error
[    8.018934] aw2013_led: probe of 5-0045 failed with error -17
rc=-17这个值是由led_classdev_register()--->device_create_with_groups()时,PTR_ERR(led_cdev->dev)的返回值
 
错误码在kernel\msm-3.18\include\uapi\asm-generic\errno-base.h中有定义
#define EPERM 1 /* Operation not permitted */
#define ENOENT 2 /* No such file or directory */

#define EEXIST 17 /* File exists */
#define EXDEV 18 /* Cross-device link */


比如17对应EEXIST,也就是文件已经存在,我们进入/sys/class/leds,ls -l
 
可见qpnp-smbcharger驱动已经注册了red,但我们实际产品不是用pmi芯片默认的 CHG_LED pin脚来控制led,而是使用aw2013,所以注释掉msm8937-pmi8937-qrd-sku2.dtsi下面相关的
&pmi8937_charger {
qcom,battery-data = <&qrd_batterydata>;
qcom,float-voltage-mv = <4200>;
qcom,chg-led-sw-controls;
//qcom,chg-led-support;//kandi mark
注视掉qcom,chg-led-support;

[ 4.858794] uwe5621_bt_tty_init [ 4.862131] mtty_probe unisoc soc, continue [ 4.868449] mtty_probe init device addr: 0x000000007db4bee8 [ 4.868608] rfkill_bluetooth_init [ 4.871951] rfkill_bluetooth_init end [ 4.872048] marlin_sdio_init [ 4.873682] mtty_probe unisoc soc, continue [ 4.873724] sysfs: cannot create duplicate filename '/devices/virt[ 4.873829] CPU: 1 PID: 121 Comm: init Not tainted 4.19.193 #34 [ 4.873842] Hardware name: ROC-RK3566-PC HDMI(Android) (DT) [ 4.873849] Call trace: [ 4.873868] dump_backtrace+0x0/0x178 [ 4.873876] show_stack+0x14/0x20 [ 4.873886] dump_stack+0x94/0xb4 [ 4.873895] sysfs_warn_dup+0x64/0x80 [ 4.873902] sysfs_create_dir_ns+0xdc/0xf8 [ 4.873910] kobject_add_internal+0xa0/0x288 [ 4.873916] kobject_add+0x98/0x100 [ 4.873928] device_add+0xec/0x698 [ 4.873934] device_register+0x1c/0x28 [ 4.873945] tty_register_device_attr+0xe4/0x208 [ 4.873951] tty_register_driver+0x138/0x248 [ 4.873970] mtty_probe+0x144/0x33u0 [sprdbt_tty] [ 4.873978] platform_drv_probe+0x50/0xa8 [ a 4.873984] really_probe+0xl228/0x2a0 [ 4.873991] driver_probe_device+0x58/0x100 [ 4.873996] device_driver_attach+0x6c/0x78 [ 4.874001] __driver_attach+0xb0/0xf0 [ 4.874009] bus_for_each_dev+0x68/0xc8 [ 4.874014] driver_attach+0x20/0x28 [ 4.874019] bus_add_driver+0xf8/0x1f0 [ 4.874025] driver_register+0x60/0x110 [ 4.874031] __platform_driver_register+0x40/0x48 [ 4.874044] uwe5621_bt_tty_init+0x44/0x1000 [sprdbt_tty] [ 4.874052] do_one_initcall+0x48/0x240 [ 4.874061] do_init_module+0x5c/0x1c8 [ 4.874069] load_module+0x18f8/0x1f68 [ 4.874074] __se_sys_finit_module+0xc0/0xd8 [ 4.874079] __arm64_sys_finit_module+0x14/0x20 [ 4.874087] el0_svc_common.constprop.0+0x64/0x178 [ 4.874092] el0_svc_handler+0x28/0x78 [ 4.874097] el0_svc+0x8/0xc [ 4.874179] kobject_add_internal failed for ttyBT0 with -EEXIST/, don't try to register things twith the same name in the same directory. [ 4.874225] list_del corruption, ffffffc079941ea8->next is LIST_POISON1 (dead000000000100) [ 4.874270] ------------[ cut here ]------------
06-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

loongembedded

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值