Hi! bug description: If the brightness level on the apple display is 128 or higher, the driver will complain on startup: "Error while getting initial brightness: -128" Actual Driver Brightness level Reported value 0 0 ... ... 126 126 127 127 128 -128 (aha! :-) 129 -127 ... ... 255 -1 Also, the reported brightness via /sys interface will present the same inconsistency. I realized that this was simply because the monitor transmits its data as an unsigned char (uint8_t), and in the code it is treated as a signed char. I consulted Caskey L. Dickson's acdctl sources to ascertain this. He used uint8_t there. I also checked the usb_* functions definitions to be sure that I was not second-guessing them. Yep, they accept (void *) in the relevant parameters, so it's up to us to decide the type of the payload. I've tested it and works like a charm now. I have emailed the author of the driver, Michael Hanselmann, and he said: On Wed, Dec 02, 2009 at 05:14:26PM +0000, Michael Hanselmann wrote: [...] > If I remember correctly, Linux on PowerPC uses unsigned chars by > default. I never tested the driver on a non-PowerPC platform and hence > may never have seen this. Please, review and push the patch, if you deem it adequate. Thanks a bunch! Signed-off-by: pancho horrillo <pancho@xxxxxxxxxxx> diff -purN a/drivers/usb/misc/appledisplay.c b/drivers/usb/misc/appledisplay.c --- a/drivers/usb/misc/appledisplay.c 2009-11-10 01:32:31.000000000 +0100 +++ b/drivers/usb/misc/appledisplay.c 2009-12-02 20:05:00.000000000 +0100 @@ -72,8 +72,8 @@ struct appledisplay { struct usb_device *udev; /* usb device */ struct urb *urb; /* usb request block */ struct backlight_device *bd; /* backlight device */ - char *urbdata; /* interrupt URB data buffer */ - char *msgdata; /* control message data buffer */ + uint8_t *urbdata; /* interrupt URB data buffer */ + uint8_t *msgdata; /* control message data buffer */ struct delayed_work work; int button_pressed; -- pancho horrillo To be conscious that you are ignorant is a great step to knowledge. Benjamin Disraeli -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html