On Sun, Aug 23, 2020 at 12:45 PM Sam Ravnborg <sam@xxxxxxxxxxxx> wrote: > The first patch trims backlight_update_status() so it can be called with a NULL > backlight_device. Then the caller do not need to add this check just to avoid > a NULL reference. > > The backlight drivers uses several different patterns when registering > a backlight: > > - Register backlight and assign properties later > - Define a local backlight_properties variable and use memset > - Define a const backlight_properties and assign relevant properties > > On top of this there was differences in what members was assigned. > > To align how backlight drivers are initialized introduce following helper macros: > - DECLARE_BACKLIGHT_INIT_FIRMWARE() > - DECLARE_BACKLIGHT_INIT_PLATFORM() > - DECLARE_BACKLIGHT_INIT_RAW() > > The macros are introduced in patch 2. > > The backlight drivers used direct access to backlight_properties. > Encapsulate these in get/set access operations resulting in following benefits: > - The access methods can be called with a NULL pointer so logic around the > access can be made simpler. > - The update_brightness and enable_brightness simplifies the users > - The code is in most cases more readable with the access operations. > - When everyone uses the access methods refactoring in the backlight core is simpler. > > The get/set operations are introduced in patch 3. > > The gpio backlight driver received a small overhaul in a set of three patches. > The result is a smaller and more readable driver. > > The remaining patches updates all backlight users in drivers/gpu/drm/* > With this patch set all of drivers/gpu/drm/: > - All backlight references to FB_BLANK* are gone from drm/* > - All direct references to backlight properties are gone > - All panel drivers uses the devm_ variant for registering backlight > Daniel Vetter had some concerns with this for future updates, > but we are aligned now and can update if refoctoring demands it > - All panel drivers uses the backlight support in drm_panel > > Individual patches are only sent to the people listed in the patch + a few more. > Please check https://lore.kernel.org/dri-devel/ for the full series. > > v2: > - Documented BACKLIGHT_PROPS as it may be used by drivers > - Dropped backlight_set_power_{on,off}, they were a mistake (Daniel) > - Added backlight_update_brightness() and use it (Daniel) > - Added backlight_enable_brightness() and use it > - Moved remaining drm_panel driver to use backlight support in drm_panel > - gpio backlight driver overhaul > > The patches are made on top of the for-backlight-next branch at > https://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight.git > The branch needs v5.8-rc1 backported to build as dev_err_probe() > is used. > > The first 6 patches are candidates for the backlight tree. > If they are applied then this should preferably be to an immutable > branch we can merge to drm-misc-next where the drm patches shall go. > > The drm patches has known conflics and shall *not* be applied to the > backlight tree, they are included in this patchset to show how the > new functions are used. > > Diffstat for the drm bits alone looks nice: > 25 files changed, 243 insertions(+), 460 deletions(-) > > Feedback welcome! Thank you for trying to make backlight easier for developers. I am a big supporter of this type of simplifications and generalizations, it is what makes DRM great. The series: Acked-by: Linus Walleij <linus.walleij@xxxxxxxxxx> Yours, Linus Walleij _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel