ACPI drivers like ibm-acpi are moving to the backlight sysfs infrastructure. During ibm-acpi testing, I have noticed that backlight_device_unregister() sets the display brightness and power to zero. This causes the display to be dimmed on ibm-acpi module removal. It will affect all other ACPI drivers that are being converted to use the backlight class, as well. This annoying behaviour in backlight_device_unregister() can either be reverted, or it can be worked around on acpi drivers by doing a backlightdevice->props->update_status = NULL before calling backlight_device_unregister(). Given the, AFAIK, lack of a good reason to disable display backlight as the _general_ behaviour for the entire sysfs class, the attached patch changes backlight.c to not do so anymore. Since the commit that introduced this behaviour (commit 6ca017658b1f902c9bba2cc1017e301581f7728d) apparently did so because the corgi_bl.c driver powered off the backlight, the attached patch also makes sure that the corgi_bl.c driver will not have its behaviour changed. Patch against latest linux-2.6.git. corgi_bl.c changes untested, as I lack the hardware to do so. Signed-off-by: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx> -- diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c index 27597c5..de5a6b3 100644 --- a/drivers/video/backlight/backlight.c +++ b/drivers/video/backlight/backlight.c @@ -259,12 +259,6 @@ void backlight_device_unregister(struct &bl_class_device_attributes[i]); down(&bd->sem); - if (likely(bd->props && bd->props->update_status)) { - bd->props->brightness = 0; - bd->props->power = 0; - bd->props->update_status(bd); - } - bd->props = NULL; up(&bd->sem); diff --git a/drivers/video/backlight/corgi_bl.c b/drivers/video/backlight/corgi_bl.c index d07ecb5..61587ca 100644 --- a/drivers/video/backlight/corgi_bl.c +++ b/drivers/video/backlight/corgi_bl.c @@ -135,6 +135,10 @@ static int corgibl_probe(struct platform static int corgibl_remove(struct platform_device *dev) { + corgibl_data.power = 0; + corgibl_data.brightness = 0; + corgibl_send_intensity(corgi_backlight_device); + backlight_device_unregister(corgi_backlight_device); printk("Corgi Backlight Driver Unloaded\n"); -- "One disk to rule them all, One disk to find them. One disk to bring them all and in the darkness grind them. In the Land of Redmond where the shadows lie." -- The Silicon Valley Tarot Henrique Holschuh - To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html