- 04 1月, 2016 40 次提交
-
-
由 Paul Gortmaker 提交于
The Kconfig currently controlling compilation of this code is: drivers/leds/Kconfig:config LEDS_SYSCON drivers/leds/Kconfig: bool "LED support for LEDs on system controllers" ...meaning that it currently is not being built as a module by anyone. Lets remove the modular code that is essentially orphaned, so that when reading the driver there is no doubt it is builtin-only. We explicitly disallow a driver unbind, since that doesn't have a sensible use case anyway, and it allows us to drop the ".remove" code for non-modular drivers. Since module_platform_driver() uses the same init level priority as builtin_platform_driver() the init ordering remains unchanged with this commit. Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code. Cc: Richard Purdie <rpurdie@rpsys.net> Cc: linux-leds@vger.kernel.org Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Paul Gortmaker 提交于
The Kconfig for this driver is currently: config LEDS_TRIGGER_IDE_DISK bool "LED IDE Disk Trigger" ...meaning that it currently is not being built as a module by anyone. Lets remove the modular code that is essentially orphaned, so that when reading the driver there is no doubt it is builtin-only. Since module_init translates to device_initcall in the non-modular case, the init ordering remains unchanged with this commit. We also delete the MODULE_LICENSE tag etc. since all that information is already contained at the top of the file in the comments. Cc: Bryan Wu <cooloney@gmail.com> Cc: Richard Purdie <rpurdie@rpsys.net> Cc: linux-leds@vger.kernel.org Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Paul Gortmaker 提交于
The Kconfig for this driver is currently: config LEDS_TRIGGER_CPU bool "LED CPU Trigger" ...meaning that it currently is not being built as a module by anyone. Lets remove the modular code that is essentially orphaned, so that when reading the driver there is no doubt it is builtin-only. Since module_init translates to device_initcall in the non-modular case, the init ordering remains unchanged with this commit. We also delete the MODULE_LICENSE tag etc. since all that information is already contained at the top of the file in the comments. Cc: Bryan Wu <cooloney@gmail.com> Cc: Richard Purdie <rpurdie@rpsys.net> Cc: linux-leds@vger.kernel.org Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com> Acked-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Thierry Reding 提交于
These new helpers simplify implementing multi-driver modules and properly handle failure to register one driver by unregistering all previously registered drivers. Signed-off-by: NThierry Reding <treding@nvidia.com> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Jacek Anaszewski 提交于
Each break out of the for_each_available_child_of_node loop requires of_node_put(). This patch adds missing of_node_put() when loop breaks on conflicting values of led-sources DT property. Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com> Cc: Rob Herring <robh@kernel.org> Cc: Sakari Ailus <sakari.ailus@linux.intel.com>
-
由 Jacek Anaszewski 提交于
The refcount of device_node increases after of_get_next_available_child() is called. Make sure it is decremented also in case of DT parsing error. Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com> Cc: Rob Herring <robh@kernel.org> Cc: Sakari Ailus <sakari.ailus@linux.intel.com>
-
由 Jacek Anaszewski 提交于
Since brightness setting can sleep for this driver, implement brightness_set_blocking op, instead of brightness_set. It makes this driver compatible with LED triggers. Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com> Cc: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
-
由 Jacek Anaszewski 提交于
Since brightness setting can sleep for this driver, implement brightness_set_blocking op, instead of brightness_set. It makes this driver compatible with LED triggers. Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com> Reviewed-by: NLinus Walleij <linus.walleij@linaro.org>
-
由 Saurabh Sengar 提交于
No need to explicitly check for pointer to be null, of_prop_next_string anyways returns NULL, if passed pointer is NULL and hence loop will continue. Signed-off-by: NSaurabh Sengar <saurabh.truth@gmail.com> Acked-by: NVasant Hegde <hegdevasant@linux.vnet.ibm.com> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Simon Arlott 提交于
The values of BCM6328_LED_MODE_ON and BCM6328_LED_MODE_OFF were named for active low LEDs. These should be swapped so that they are named for the default case of active high LEDs. Signed-off-by: NSimon Arlott <simon@fire.lp0.eu> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Simon Arlott 提交于
When ensuring a consistent initial LED state in bcm6328_led (as they may be blinking instead of on/off), the LED register is set using an inverted copy of bcm6328_led_set(). To avoid further errors relating to active low handling, call this function directly instead. As bcm6328_led_set() acquires the same spinlock again when updating the register, it is called after unlocking. Signed-off-by: NSimon Arlott <simon@fire.lp0.eu> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Jacek Anaszewski 提交于
Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com> Tested-by: NSimon Guinot <simon.guinot@sequanux.org>
-
由 Uwe Kleine-König 提交于
Signed-off-by: NUwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Milo Kim 提交于
Workqueue, 'set_brightness_work' is used for scheduling brightness control. This workqueue is canceled when the LED class device is unregistered. Currently, LED subsystem handles like below. cancel_work_sync(&led_cdev->set_brightness_work) led_set_brightness(led_cdev, LED_OFF) However, this could be a problem. Workqueue is going to be canceled but LED device needs to be off. The worst case is null pointer access due to scheduling a workqueue. LED module is loaded. LED driver private data is allocated by using devm_zalloc(). LED module is unloaded. led_classdev_unregister() is called. cancel_work_sync() led_set_brightness(led_cdev, LED_OFF) schedule_work() if LED driver uses brightness_set_blocking() In the meantime, driver private data will be freed. ..scheduling.. brightness_set_blocking() callback is invoked. For the brightness control, LED driver tries to access private data but resource is removed! To avoid this problem, LED subsystem should turn off the brightness first and wait for completion. led_set_brightness(led_cdev, LED_OFF) flush_work(&led_cdev->set_brightness_work) It guarantees that LED driver turns off the brightness prior to resource management. Cc: linux-leds@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: NMilo Kim <milo.kim@ti.com> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Jacek Anaszewski 提交于
Strobe state variable is declared as unsigned long, remove the check for values less than zero then. Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com> Reported-by: NDavid Binderman <dcb314@hotmail.com>
-
由 Ingi Kim 提交于
The refcount of device_node increases after of_node_get() is called. So, a break out of the loop requires of_node_put(). This patch adds missing of_node_put() when loop breaks. Signed-off-by: NIngi Kim <ingi2.kim@samsung.com> Acked-by: NRob Herring <robh@kernel.org> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Markus Hofstaetter 提交于
Some PWMs are disabled by default or the default pin setting does not match the LED_OFF state (e.g., active-low leds). Hence, the driver may end up reporting 0 brightness, but the leds are actually on using full brightness, because it never enforces its default configuration. So enforce it by calling led_pwm_set() after successfully registering the device. Tested on a Phytec phyFLEX i.MX6Q board based on kernel v3.19.5. Signed-off-by: NMarkus Hofstaetter <markus.hofstaetter@ait.ac.at> Tested-by: NMarkus Hofstaetter <markus.hofstaetter@ait.ac.at> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Uwe Kleine-König 提交于
The header of this file fixes the license to GPL 2 only without the option to use later version. So use the string "GPL v2" that is to be used in this case. Signed-off-by: NUwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: NFabio Baltieri <fabio.baltieri@gmail.com> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Rob Herring 提交于
The transient trigger duration is documented to be in msec units, but is actually in jiffies units. Other time based triggers are in msec units as well. Fix the timer setup to convert from msec. This could break an existing userspace that worked around this problem, but exposing jiffies to userspace is just wrong and would break anyway if HZ is changed. Signed-off-by: NRob Herring <robh@kernel.org> Cc: Shuah Khan <shuahkhan@gmail.com> Cc: Richard Purdie <rpurdie@rpsys.net> Cc: linux-leds@vger.kernel.org Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Jacek Anaszewski 提交于
Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com> Cc: Daniel Jeong <daniel.jeong@ti.com> Cc: G.Shark Jeong <gshark.jeong@gmail.com>
-
由 Jacek Anaszewski 提交于
Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com> Cc: Raphael Assenat <raph@8d.com>
-
由 Jacek Anaszewski 提交于
Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com> Cc: Raphael Assenat <raph@8d.com>
-
由 Andrew Lunn 提交于
Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: NAndrew Lunn <andrew@lunn.ch> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com> Acked-by: NAntonio Ospite <ao2@ao2.it> Reviewed-by: NMark Brown <broonie@kernel.org>
-
由 Andrew Lunn 提交于
Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: NAndrew Lunn <andrew@lunn.ch> Acked-by: NAntonio Ospite <ao2@ao2.it> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Andrew Lunn 提交于
Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: NAndrew Lunn <andrew@lunn.ch> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Andrew Lunn 提交于
Work queues are not used in this driver, so remove the include. Signed-off-by: NAndrew Lunn <andrew@lunn.ch>
-
由 Andrew Lunn 提交于
Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: NAndrew Lunn <andrew@lunn.ch> Cc: Daniel Mack <daniel@caiaq.de> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Andrew Lunn 提交于
Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: NAndrew Lunn <andrew@lunn.ch> Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Andrew Lunn 提交于
Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: NAndrew Lunn <andrew@lunn.ch> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Andrew Lunn 提交于
Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: NAndrew Lunn <andrew@lunn.ch> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Andrew Lunn 提交于
Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: NAndrew Lunn <andrew@lunn.ch> Reviewed-by: NMark Brown <broonie@kernel.org> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Andrew Lunn 提交于
Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: NAndrew Lunn <andrew@lunn.ch> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com> Acked-by: NDan Murphy <dmurphy@ti.com> Cc: Ricardo Ribalda <ricardo.ribalda@gmail.com>
-
由 Andrew Lunn 提交于
Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: NAndrew Lunn <andrew@lunn.ch> Cc: Nate Case <ncase@xes-inc.com> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Andrew Lunn 提交于
Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: NAndrew Lunn <andrew@lunn.ch> Acked-by: NDan Murphy <dmurphy@ti.com> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Andrew Lunn 提交于
Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: NAndrew Lunn <andrew@lunn.ch> Cc: Milo Kim <milo.kim@ti.com> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Andrew Lunn 提交于
Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: NAndrew Lunn <andrew@lunn.ch> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com> Cc: Milo Kim <milo.kim@ti.com>
-
由 Andrew Lunn 提交于
Now the core implements the work queue, remove it from the driver, and switch to using brightness_set_blocking op. Signed-off-by: NAndrew Lunn <andrew@lunn.ch> Acked-by: NAntonio Ospite <ao2@ao2.it> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Andrew Lunn 提交于
Now the core implements the work queue, remove it from the driver, and switch to using brightness_set_blocking op. Signed-off-by: NAndrew Lunn <andrew@lunn.ch> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Andrew Lunn 提交于
Now the core implements the work queue, remove it from the driver, and switch to using brightness_set_blocking op. Signed-off-by: NAndrew Lunn <andrew@lunn.ch> Cc: Daniel Jeong <daniel.jeong@ti.com> Cc: G.Shark Jeong <gshark.jeong@gmail.com> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
-
由 Andrew Lunn 提交于
Now the core implements the work queue, remove it from the driver, and switch to using brightness_set_blocking op. Signed-off-by: NAndrew Lunn <andrew@lunn.ch> Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com> Cc: Johan Hovold <johan@kernel.org>
-