Hello Jacek Sorry for the late reply. On Tue, Aug 11, 2015 at 11:37 AM, Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx> wrote: > struct pca963x_led { > struct pca963x *chip; > - struct work_struct work; > enum led_brightness brightness; > struct led_classdev led_cdev; > int led_num; /* 0 .. 15 potentially */ > - enum pca963x_cmd cmd; > char name[32]; > u8 gdc; > u8 gfrq; > }; Maybe you want to remove also brightness, gdc and gfrq and pass them as arguments to the functions. > -static void pca963x_blink_work(struct pca963x_led *pca963x) > +static void pca963x_blink(struct pca963x_led *pca963x) something like: blink(pca963x, gdc, gfrq) Big disclaimer: i havent tested it on real hardware. Maybe next week I can get hold of a board with a pca chip. BTW: great thing that the work queue is implemented in the core :) Cheers! -- Ricardo Ribalda -- 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