Message ID | 20170504120308.6738-1-linus.walleij@linaro.org |
---|---|
State | New |
Headers | show |
On Thu 2017-05-04 14:03:08, Linus Walleij wrote: > All users of the Versatile LED driver are deleted and replaced > with the very generic leds-syscon. Delete the old driver. If someone has LEDS_VERSATILE selected, he'll be unhappy if we apply first. Are you sure no _users_ have LEDS_VERSATILE selected? Should we give them some kind of warning? (#warning, printk, ...?) Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
On Thu, May 4, 2017 at 2:14 PM, Pavel Machek <pavel@ucw.cz> wrote: > On Thu 2017-05-04 14:03:08, Linus Walleij wrote: >> All users of the Versatile LED driver are deleted and replaced >> with the very generic leds-syscon. Delete the old driver. > > If someone has LEDS_VERSATILE selected, he'll be unhappy if we apply > first. > > Are you sure no _users_ have LEDS_VERSATILE selected? Should we give > them some kind of warning? (#warning, printk, ...?) Since the driver cannot probe from device tree or ACPI, the device must be created in a board file using the device name "versatile-leds" which is what the driver matches against. For them to use it they must have out-of-tree boardfiles, and we discourage both out-of-tree code and boardfiles. The last boardfiles using this were deleted in commit 7484c727b636a838818e71f6d03114633b25aba2 "ARM: realview: delete the RealView board files". All Versatile, Integrator and RealView boards (the only one using the versatile LEDs), have been migrated to use leds-syscon.c. Yours, Linus Walleij
On Thu 2017-05-04 14:23:39, Linus Walleij wrote: > On Thu, May 4, 2017 at 2:14 PM, Pavel Machek <pavel@ucw.cz> wrote: > > > On Thu 2017-05-04 14:03:08, Linus Walleij wrote: > >> All users of the Versatile LED driver are deleted and replaced > >> with the very generic leds-syscon. Delete the old driver. > > > > If someone has LEDS_VERSATILE selected, he'll be unhappy if we apply > > first. > > > > Are you sure no _users_ have LEDS_VERSATILE selected? Should we give > > them some kind of warning? (#warning, printk, ...?) > > Since the driver cannot probe from device tree or ACPI, the device must > be created in a board file using the device name "versatile-leds" which is > what the driver matches against. > > For them to use it they must have out-of-tree boardfiles, and we discourage > both out-of-tree code and boardfiles. > > The last boardfiles using this were deleted in > commit 7484c727b636a838818e71f6d03114633b25aba2 > "ARM: realview: delete the RealView board files". > > All Versatile, Integrator and RealView boards (the only one using the > versatile LEDs), have been migrated to use leds-syscon.c. Aha, people having out-of-tree boardfiles probably know enough to handle this. Acked-by: Pavel Machek <pavel@ucw.cz> Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
On 05/04/2017 02:28 PM, Pavel Machek wrote: > On Thu 2017-05-04 14:23:39, Linus Walleij wrote: >> On Thu, May 4, 2017 at 2:14 PM, Pavel Machek <pavel@ucw.cz> wrote: >> >>> On Thu 2017-05-04 14:03:08, Linus Walleij wrote: >>>> All users of the Versatile LED driver are deleted and replaced >>>> with the very generic leds-syscon. Delete the old driver. >>> >>> If someone has LEDS_VERSATILE selected, he'll be unhappy if we apply >>> first. >>> >>> Are you sure no _users_ have LEDS_VERSATILE selected? Should we give >>> them some kind of warning? (#warning, printk, ...?) >> >> Since the driver cannot probe from device tree or ACPI, the device must >> be created in a board file using the device name "versatile-leds" which is >> what the driver matches against. >> >> For them to use it they must have out-of-tree boardfiles, and we discourage >> both out-of-tree code and boardfiles. >> >> The last boardfiles using this were deleted in >> commit 7484c727b636a838818e71f6d03114633b25aba2 >> "ARM: realview: delete the RealView board files". >> >> All Versatile, Integrator and RealView boards (the only one using the >> versatile LEDs), have been migrated to use leds-syscon.c. > > Aha, people having out-of-tree boardfiles probably know enough to > handle this. > > Acked-by: Pavel Machek <pavel@ucw.cz> Applied to the for-4.13 branch of linux-leds.git, thanks. -- Best regards, Jacek Anaszewski
diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig index 6c2999872090..fbe3468eb911 100644 --- a/drivers/leds/Kconfig +++ b/drivers/leds/Kconfig @@ -651,14 +651,6 @@ config LEDS_SYSCON devices. This will only work with device tree enabled devices. -config LEDS_VERSATILE - tristate "LED support for the ARM Versatile and RealView" - depends on ARCH_REALVIEW || ARCH_VERSATILE - depends on LEDS_CLASS - help - This option enabled support for the LEDs on the ARM Versatile - and RealView boards. Say Y to enabled these. - config LEDS_PM8058 tristate "LED Support for the Qualcomm PM8058 PMIC" depends on MFD_PM8XXX diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile index 45f133962ed8..e4a8d007c5a9 100644 --- a/drivers/leds/Makefile +++ b/drivers/leds/Makefile @@ -62,7 +62,6 @@ obj-$(CONFIG_LEDS_MAX8997) += leds-max8997.o obj-$(CONFIG_LEDS_LM355x) += leds-lm355x.o obj-$(CONFIG_LEDS_BLINKM) += leds-blinkm.o obj-$(CONFIG_LEDS_SYSCON) += leds-syscon.o -obj-$(CONFIG_LEDS_VERSATILE) += leds-versatile.o obj-$(CONFIG_LEDS_MENF21BMC) += leds-menf21bmc.o obj-$(CONFIG_LEDS_KTD2692) += leds-ktd2692.o obj-$(CONFIG_LEDS_POWERNV) += leds-powernv.o diff --git a/drivers/leds/leds-versatile.c b/drivers/leds/leds-versatile.c deleted file mode 100644 index 80553022d661..000000000000 --- a/drivers/leds/leds-versatile.c +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Driver for the 8 user LEDs found on the RealViews and Versatiles - * Based on DaVinci's DM365 board code - * - * License terms: GNU General Public License (GPL) version 2 - * Author: Linus Walleij <triad@df.lth.se> - */ -#include <linux/kernel.h> -#include <linux/init.h> -#include <linux/module.h> -#include <linux/io.h> -#include <linux/slab.h> -#include <linux/leds.h> -#include <linux/platform_device.h> - -struct versatile_led { - void __iomem *base; - struct led_classdev cdev; - u8 mask; -}; - -/* - * The triggers lines up below will only be used if the - * LED triggers are compiled in. - */ -static const struct { - const char *name; - const char *trigger; -} versatile_leds[] = { - { "versatile:0", "heartbeat", }, - { "versatile:1", "mmc0", }, - { "versatile:2", "cpu0" }, - { "versatile:3", "cpu1" }, - { "versatile:4", "cpu2" }, - { "versatile:5", "cpu3" }, - { "versatile:6", }, - { "versatile:7", }, -}; - -static void versatile_led_set(struct led_classdev *cdev, - enum led_brightness b) -{ - struct versatile_led *led = container_of(cdev, - struct versatile_led, cdev); - u32 reg = readl(led->base); - - if (b != LED_OFF) - reg |= led->mask; - else - reg &= ~led->mask; - writel(reg, led->base); -} - -static enum led_brightness versatile_led_get(struct led_classdev *cdev) -{ - struct versatile_led *led = container_of(cdev, - struct versatile_led, cdev); - u32 reg = readl(led->base); - - return (reg & led->mask) ? LED_FULL : LED_OFF; -} - -static int versatile_leds_probe(struct platform_device *dev) -{ - int i; - struct resource *res; - void __iomem *base; - - res = platform_get_resource(dev, IORESOURCE_MEM, 0); - base = devm_ioremap_resource(&dev->dev, res); - if (IS_ERR(base)) - return PTR_ERR(base); - - /* All off */ - writel(0, base); - for (i = 0; i < ARRAY_SIZE(versatile_leds); i++) { - struct versatile_led *led; - - led = kzalloc(sizeof(*led), GFP_KERNEL); - if (!led) - break; - - led->base = base; - led->cdev.name = versatile_leds[i].name; - led->cdev.brightness_set = versatile_led_set; - led->cdev.brightness_get = versatile_led_get; - led->cdev.default_trigger = versatile_leds[i].trigger; - led->mask = BIT(i); - - if (led_classdev_register(NULL, &led->cdev) < 0) { - kfree(led); - break; - } - } - - return 0; -} - -static struct platform_driver versatile_leds_driver = { - .driver = { - .name = "versatile-leds", - }, - .probe = versatile_leds_probe, -}; - -module_platform_driver(versatile_leds_driver); - -MODULE_AUTHOR("Linus Walleij <linus.walleij@linaro.org>"); -MODULE_DESCRIPTION("ARM Versatile LED driver"); -MODULE_LICENSE("GPL v2");
All users of the Versatile LED driver are deleted and replaced with the very generic leds-syscon. Delete the old driver. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> --- drivers/leds/Kconfig | 8 --- drivers/leds/Makefile | 1 - drivers/leds/leds-versatile.c | 110 ------------------------------------------ 3 files changed, 119 deletions(-) delete mode 100644 drivers/leds/leds-versatile.c -- 2.9.3