Messages in this thread |  | | | Date | Mon, 29 Aug 2011 22:37:53 -0700 | | From | "H. Peter Anvin" <> | | Subject | Re: [v2 3/4] platform: (TS-5500) add LED support |
| |
On 08/29/2011 03:16 PM, Mark Brown wrote: > On Fri, Aug 26, 2011 at 07:40:26PM -0400, Vivien Didelot wrote: > >> +static void ts5500_led_work(struct work_struct *work) >> +{ >> + struct ts5500_led *led = container_of(work, struct ts5500_led, work); >> + u8 val = led->new_brightness ? led->bit : 0; >> + >> + outb(val, led->ioaddr); >> +} > > Can you not do outb() from atomic context? The reason lots of LED > drivers update the hardware in a workqueue is that they communicate with > the hardware over buses that can't be used in atomic context like I2C or > SPI but if that's not an issue then the workqueue is not required and > the code can be simplified.
outb() can definitely be executed from atomic context.
-hpa
|  |