linux-stable/drivers/leds
Ricardo Ribalda Delgado a5cd98b796 leds-pca9633: Unique naming of the LEDs
If there is more than one pca963x chips on the system and there are
some LEDs without platform_data names, the driver wont be able to
provide unique naming to them.

This will cause led_class_dev_register to fail, unregistering all the
LEDs of the chip.

This patch adds the i2c address to the name of the unnamed LEDs, making
them unique.

[  555.346827] ------------[ cut here ]------------
[  555.346844] WARNING: at /build/linux-voe0Su/linux-3.9.8/fs/sysfs/dir.c:536 sysfs_add_one+0x8b/0x9d()
[  555.346847] Hardware name: QT5022
[  555.346850] sysfs: cannot create duplicate filename '/class/leds/pca9633:6'
[  555.346853] Modules linked in: qt5038_platform(O+) leds_pca9633(O) hid_generic ledtrig_default_on rfcomm bnep bluetooth binfmt_misc nfsd auth_rpcgss nfs_acl nfs lockd dns_resolver fscache sunrpc nls_utf8 nls_cp437 vfat fat loop fuse joydev hid_multitouch usbhid hid acpi_cpufreq mperf kvm_amd kvm evdev pn533 nfc arc4 microcode pcspkr efivars k10temp ath9k ath9k_common ath9k_hw ath fglrx(PO) mac80211 cfg80211 video rfkill processor thermal_sys sp5100_tco button i2c_piix4 ext4 crc16 jbd2 mbcache sg sd_mod crc_t10dif ahci libahci igb i2c_algo_bit i2c_core dca ptp pps_core ehci_pci ohci_hcd ehci_hcd libata usbcore usb_common scsi_mod [last unloaded: leds_pca963x]
[  555.346940] Pid: 4766, comm: insmod Tainted: P        W  O 3.9-1-amd64 #1 Debian 3.9.8-1
[  555.346943] Call Trace:
[  555.346956]  [<ffffffff8103d153>] ? warn_slowpath_common+0x76/0x8c
[  555.346962]  [<ffffffff8103d202>] ? warn_slowpath_fmt+0x47/0x49
[  555.346968]  [<ffffffff8116005d>] ? sysfs_pathname+0x3b/0x41
[  555.346973]  [<ffffffff81160767>] ? sysfs_add_one+0x8b/0x9d
[  555.346978]  [<ffffffff811610a4>] ? sysfs_do_create_link_sd+0xe8/0x174
[  555.346985]  [<ffffffff81279250>] ? device_add+0x243/0x5ab
[  555.346991]  [<ffffffff81060a16>] ? complete_all+0x31/0x40
[  555.346998]  [<ffffffff8104991a>] ? init_timer_key+0xc/0x56
[  555.347004]  [<ffffffff8127964c>] ? device_create_vargs+0x82/0xb6
[  555.347009]  [<ffffffff812796af>] ? device_create+0x2f/0x31
[  555.347014]  [<ffffffff81060add>] ? should_resched+0x5/0x23
[  555.347021]  [<ffffffff812a3a92>] ? led_classdev_register+0x24/0x103
[  555.347028]  [<ffffffffa09d01c0>] ? pca9633_probe+0x173/0x239 [leds_pca9633]
[  555.347035]  [<ffffffff8127b504>] ? __driver_attach+0x73/0x73
[  555.347049]  [<ffffffffa009dfc9>] ? i2c_device_probe+0x63/0x88 [i2c_core]
[  555.347057]  [<ffffffff8127b373>] ? driver_probe_device+0x92/0x1b0
[  555.347064]  [<ffffffff81279c5c>] ? bus_for_each_drv+0x43/0x7d
[  555.347070]  [<ffffffff8127b2af>] ? device_attach+0x68/0x83
[  555.347078]  [<ffffffff8127a990>] ? bus_probe_device+0x25/0x8d
[  555.347083]  [<ffffffff812793f7>] ? device_add+0x3ea/0x5ab
[  555.347088]  [<ffffffff81060a16>] ? complete_all+0x31/0x40
[  555.347094]  [<ffffffff8104991a>] ? init_timer_key+0xc/0x56
[  555.347104]  [<ffffffffa009d3a1>] ? i2c_new_device+0x10d/0x179 [i2c_core]
[  555.347112]  [<ffffffffa008f036>] ? qt5038_init+0x36/0x1000 [qt5038_platform]
[  555.347119]  [<ffffffffa008f000>] ? 0xffffffffa008efff
[  555.347125]  [<ffffffff8100209e>] ? do_one_initcall+0x74/0x128
[  555.347131]  [<ffffffffa008f000>] ? 0xffffffffa008efff
[  555.347137]  [<ffffffff810836f5>] ? load_module+0x1af7/0x1dfc
[  555.347144]  [<ffffffff810801c5>] ? free_notes_attrs+0x3c/0x3c
[  555.347150]  [<ffffffff81083a98>] ? sys_init_module+0x9e/0xab
[  555.347157]  [<ffffffff8138be29>] ? system_call_fastpath+0x16/0x1b
[  555.347161] ---[ end trace ad00b85794e0de4d ]---
[  555.347448] leds-pca9633: probe of 0-006b failed with error -17

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Bryan Wu <cooloney@gmail.com>
2013-08-26 17:22:14 -07:00
..
trigger leds: add camera LED triggers 2013-04-01 11:04:50 -07:00
dell-led.c
Kconfig leds-pca9633: Add support for PCA9634 2013-08-26 17:22:14 -07:00
led-class.c leds: Convert led class driver from legacy pm ops to dev_pm_ops 2013-06-20 17:36:45 -07:00
led-core.c leds: delay led_set_brightness if stopping soft-blink 2012-09-11 18:32:40 +08:00
led-triggers.c leds: led-triggers: Fix checkpatch warnings 2012-11-27 14:49:30 -08:00
leds-88pm860x.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-adp5520.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-asic3.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-atmel-pwm.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-bd2802.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-blinkm.c leds: remove use of __devexit 2012-11-28 12:35:06 -08:00
leds-clevo-mail.c leds: clevo-mail: Fix incorrect placement of __initdata 2013-08-26 17:22:11 -07:00
leds-cobalt-qube.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2012-12-15 12:52:42 -08:00
leds-cobalt-raq.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2012-12-15 12:52:42 -08:00
leds-da903x.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-da9052.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-dac124s085.c leds: convert DAC124S085 LED driver to devm_kzalloc() 2012-07-24 07:52:40 +08:00
leds-fsg.c leds: leds-fsg: use devm_ioremap 2012-11-26 14:28:45 -08:00
leds-gpio-register.c
leds-gpio.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-hp6xx.c
leds-lm355x.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-lm3530.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-lm3533.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-lm3642.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-locomo.c
leds-lp55xx-common.c leds: support new LP8501 device - another LP55xx common 2013-08-26 17:22:10 -07:00
leds-lp55xx-common.h leds: lp55xx: add common macros for device attributes 2013-08-26 17:22:12 -07:00
leds-lp3944.c leds: leds-lp3944, fix "sparse" warning "mixing different enum types" 2013-08-26 17:22:11 -07:00
leds-lp5521.c leds: lp5521: remove unnecessary writing commands 2013-08-26 17:22:12 -07:00
leds-lp5523.c leds: lp5523: remove unnecessary writing commands 2013-08-26 17:22:13 -07:00
leds-lp5562.c leds: lp5562: use LP55xx common macros for device attributes 2013-08-26 17:22:13 -07:00
leds-lp8501.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-lp8788.c leds-lp8788: fix a parent device in _probe() 2013-02-01 17:47:05 -08:00
leds-lt3593.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-max8997.c leds: remove use of __devexit 2012-11-28 12:35:06 -08:00
leds-mc13783.c leds: mc13783: Fix "uninitialized variable" warning 2013-07-02 08:44:02 -07:00
leds-net48xx.c leds: leds-net48xx: Use linux/io.h instead of asm/io.h 2012-11-27 14:49:28 -08:00
leds-netxbig.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-ns2.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-ot200.c drivers/leds/leds-ot200.c: fix error caused by shifted mask 2013-05-24 16:22:51 -07:00
leds-pca955x.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-pca9532.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-pca9633.c leds-pca9633: Unique naming of the LEDs 2013-08-26 17:22:14 -07:00
leds-pwm.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-rb532.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2012-12-15 12:52:42 -08:00
leds-regulator.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-renesas-tpu.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-s3c24xx.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-ss4200.c leds: ss4200: Fix incorrect placement of __initdata 2013-08-26 17:22:12 -07:00
leds-sunfire.c leds: use platform_{get,set}_drvdata() 2013-06-20 16:21:33 -07:00
leds-tca6507.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-wm831x-status.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-wm8350.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-wrap.c leds: leds-wrap: Use <linux/io.h> instead of <asm/io.h> 2012-11-27 14:49:30 -08:00
leds.h leds: delay led_set_brightness if stopping soft-blink 2012-09-11 18:32:40 +08:00
Makefile leds: support new LP8501 device - another LP55xx common 2013-08-26 17:22:10 -07:00