W dniu 28 listopada 2009 01:30 użytkownik Rafał Miłecki <zajec5@xxxxxxxxx> napisał: > As discussed in http://marc.info/?t=124947671300008&r=1&w=2 we need to > redesign our backlight device class. I was trying to make it work this way: 1. Everytime register request comes, look for backlight_display with given name. 1. A. If needed, create new backlight_display 2. Add new device to devices list of backlight_display 3. Find best device on devices list of backlight_display 4. Register if under /sys/class/backlight/name_of_display This didn't work because of registering only the best device. Look at this code in drivers/acpi/video.c: device->backlight = backlight_device_register(name, NULL, device, &acpi_backlight_ops); (...) result = sysfs_create_link(&device->backlight->dev.kobj, &device->dev->dev.kobj, "device"); It expects device to be registered (have dev.kobj) after calling backlight_device_register. So in summary we just can not do lazy registration. Every device passed to backlight_device_register has to be registered in that function or never. So I think we have to register every device and just keep symlink /sys/class/backlight/display_name pointing best device. We could register devices in 1) /sys/class/backlight/.devicename (hidden) 2) some /sys/class/internal-usage/devicename Do you agree on this? -- Rafał
Attachment:
backlight2.patch
Description: Binary data