On 07/17/2015 03:47 AM, Jacek Anaszewski wrote: > From: Andrew Lunn <andrew@xxxxxxx> > > Now the core implements the work queue, remove it from the drivers. > > Signed-off-by: Andrew Lunn <andrew@xxxxxxx> > Cc: Dan Murphy <dmurphy@xxxxxx> > --- > drivers/leds/leds-lp8860.c | 24 +++++------------------- > 1 file changed, 5 insertions(+), 19 deletions(-) > > diff --git a/drivers/leds/leds-lp8860.c b/drivers/leds/leds-lp8860.c > index 8c2b7fb..40e0ed8 100644 > --- a/drivers/leds/leds-lp8860.c > +++ b/drivers/leds/leds-lp8860.c > @@ -91,26 +91,22 @@ > /** > * struct lp8860_led - > * @lock - Lock for reading/writing the device > - * @work - Work item used to off load the brightness register writes > * @client - Pointer to the I2C client > * @led_dev - led class device pointer > * @regmap - Devices register map > * @eeprom_regmap - EEPROM register map > * @enable_gpio - VDDIO/EN gpio to enable communication interface > * @regulator - LED supply regulator pointer > - * @brightness - Current brightness value requested > * @label - LED label > **/ > struct lp8860_led { > struct mutex lock; > - struct work_struct work; > struct i2c_client *client; > struct led_classdev led_dev; > struct regmap *regmap; > struct regmap *eeprom_regmap; > struct gpio_desc *enable_gpio; > struct regulator *regulator; > - enum led_brightness brightness; > const char *label; > }; > > @@ -212,11 +208,13 @@ out: > return ret; > } > > -static void lp8860_led_brightness_work(struct work_struct *work) > +static void lp8860_brightness_set(struct led_classdev *led_cdev, > + enum led_brightness brt_val) > { > - struct lp8860_led *led = container_of(work, struct lp8860_led, work); > + struct lp8860_led *led = > + container_of(led_cdev, struct lp8860_led, led_dev); > + int disp_brightness = brt_val * 255; > int ret; > - int disp_brightness = led->brightness * 255; > > mutex_lock(&led->lock); > > @@ -243,16 +241,6 @@ out: > mutex_unlock(&led->lock); > } > > -static void lp8860_brightness_set(struct led_classdev *led_cdev, > - enum led_brightness brt_val) > -{ > - struct lp8860_led *led = > - container_of(led_cdev, struct lp8860_led, led_dev); > - > - led->brightness = brt_val; > - schedule_work(&led->work); > -} > - > static int lp8860_init(struct lp8860_led *led) > { > unsigned int read_buf; > @@ -409,7 +397,6 @@ static int lp8860_probe(struct i2c_client *client, > led->led_dev.brightness_set = lp8860_brightness_set; > > mutex_init(&led->lock); > - INIT_WORK(&led->work, lp8860_led_brightness_work); > > i2c_set_clientdata(client, led); > > @@ -448,7 +435,6 @@ static int lp8860_remove(struct i2c_client *client) > int ret; > > led_classdev_unregister(&led->led_dev); > - cancel_work_sync(&led->work); > > if (led->enable_gpio) > gpiod_direction_output(led->enable_gpio, 0); Thanks! Acked-by: Dan Murphy <dmurphy@xxxxxx> -- ------------------ Dan Murphy -- To unsubscribe from this list: send the line "unsubscribe linux-leds" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html