[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110829221654.GD26846@sirena.org.uk>
Date: Mon, 29 Aug 2011 23:16:54 +0100
From: Mark Brown <broonie@...nsource.wolfsonmicro.com>
To: Vivien Didelot <vivien.didelot@...oirfairelinux.com>
Cc: x86@...nel.org, Jonas Fonseca <jonas.fonseca@...oirfairelinux.com>,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>,
"H. Peter Anvin" <hpa@...or.com>, linux-kernel@...r.kernel.org
Subject: Re: [v2 3/4] platform: (TS-5500) add LED support
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.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists