Loading drivers/gpu/drm/msm/dsi-staging/dsi_panel.c +9 −35 Original line number Diff line number Diff line Loading @@ -556,46 +556,21 @@ static int dsi_panel_pinctrl_init(struct dsi_panel *panel) return rc; } #ifdef CONFIG_LEDS_TRIGGERS static int dsi_panel_led_bl_register(struct dsi_panel *panel, static int dsi_panel_wled_register(struct dsi_panel *panel, struct dsi_backlight_config *bl) { int rc = 0; struct backlight_device *bd; led_trigger_register_simple("bkl-trigger", &bl->wled); /* LED APIs don't tell us directly whether a classdev has yet * been registered to service this trigger. Until classdev is * registered, calling led_trigger has no effect, and doesn't * fail. Classdevs are associated with any registered triggers * when they do register, but that is too late for FBCon. * Check the cdev list directly and defer if appropriate. */ if (!bl->wled) { pr_err("[%s] backlight registration failed\n", panel->name); bd = backlight_device_get_by_type(BACKLIGHT_RAW); if (!bd) { pr_err("[%s] fail raw backlight register\n", panel->name); rc = -EINVAL; } else { read_lock(&bl->wled->leddev_list_lock); if (list_empty(&bl->wled->led_cdevs)) rc = -EPROBE_DEFER; read_unlock(&bl->wled->leddev_list_lock); if (rc) { pr_info("[%s] backlight %s not ready, defer probe\n", panel->name, bl->wled->name); led_trigger_unregister_simple(bl->wled); } } bl->raw_bd = bd; return rc; } #else static int dsi_panel_led_bl_register(struct dsi_panel *panel, struct dsi_backlight_config *bl) { return 0; } #endif static int dsi_panel_update_backlight(struct dsi_panel *panel, u32 bl_lvl) Loading Loading @@ -628,7 +603,7 @@ int dsi_panel_set_backlight(struct dsi_panel *panel, u32 bl_lvl) pr_debug("backlight type:%d lvl:%d\n", bl->type, bl_lvl); switch (bl->type) { case DSI_BACKLIGHT_WLED: led_trigger_event(bl->wled, bl_lvl); rc = backlight_device_set_brightness(bl->raw_bd, bl_lvl); break; case DSI_BACKLIGHT_DCS: dsi_panel_update_backlight(panel, bl_lvl); Loading @@ -648,7 +623,7 @@ static int dsi_panel_bl_register(struct dsi_panel *panel) switch (bl->type) { case DSI_BACKLIGHT_WLED: rc = dsi_panel_led_bl_register(panel, bl); rc = dsi_panel_wled_register(panel, bl); break; case DSI_BACKLIGHT_DCS: break; Loading @@ -669,7 +644,6 @@ static int dsi_panel_bl_unregister(struct dsi_panel *panel) switch (bl->type) { case DSI_BACKLIGHT_WLED: led_trigger_unregister_simple(bl->wled); break; case DSI_BACKLIGHT_DCS: break; Loading drivers/gpu/drm/msm/dsi-staging/dsi_panel.h +2 −2 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ #include <linux/types.h> #include <linux/bitops.h> #include <linux/errno.h> #include <linux/leds.h> #include <linux/backlight.h> #include <drm/drm_panel.h> #include <drm/msm_drm.h> Loading Loading @@ -102,7 +102,7 @@ struct dsi_backlight_config { /* WLED params */ struct led_trigger *wled; struct backlight_device *bd; struct backlight_device *raw_bd; }; struct dsi_reset_seq { Loading Loading
drivers/gpu/drm/msm/dsi-staging/dsi_panel.c +9 −35 Original line number Diff line number Diff line Loading @@ -556,46 +556,21 @@ static int dsi_panel_pinctrl_init(struct dsi_panel *panel) return rc; } #ifdef CONFIG_LEDS_TRIGGERS static int dsi_panel_led_bl_register(struct dsi_panel *panel, static int dsi_panel_wled_register(struct dsi_panel *panel, struct dsi_backlight_config *bl) { int rc = 0; struct backlight_device *bd; led_trigger_register_simple("bkl-trigger", &bl->wled); /* LED APIs don't tell us directly whether a classdev has yet * been registered to service this trigger. Until classdev is * registered, calling led_trigger has no effect, and doesn't * fail. Classdevs are associated with any registered triggers * when they do register, but that is too late for FBCon. * Check the cdev list directly and defer if appropriate. */ if (!bl->wled) { pr_err("[%s] backlight registration failed\n", panel->name); bd = backlight_device_get_by_type(BACKLIGHT_RAW); if (!bd) { pr_err("[%s] fail raw backlight register\n", panel->name); rc = -EINVAL; } else { read_lock(&bl->wled->leddev_list_lock); if (list_empty(&bl->wled->led_cdevs)) rc = -EPROBE_DEFER; read_unlock(&bl->wled->leddev_list_lock); if (rc) { pr_info("[%s] backlight %s not ready, defer probe\n", panel->name, bl->wled->name); led_trigger_unregister_simple(bl->wled); } } bl->raw_bd = bd; return rc; } #else static int dsi_panel_led_bl_register(struct dsi_panel *panel, struct dsi_backlight_config *bl) { return 0; } #endif static int dsi_panel_update_backlight(struct dsi_panel *panel, u32 bl_lvl) Loading Loading @@ -628,7 +603,7 @@ int dsi_panel_set_backlight(struct dsi_panel *panel, u32 bl_lvl) pr_debug("backlight type:%d lvl:%d\n", bl->type, bl_lvl); switch (bl->type) { case DSI_BACKLIGHT_WLED: led_trigger_event(bl->wled, bl_lvl); rc = backlight_device_set_brightness(bl->raw_bd, bl_lvl); break; case DSI_BACKLIGHT_DCS: dsi_panel_update_backlight(panel, bl_lvl); Loading @@ -648,7 +623,7 @@ static int dsi_panel_bl_register(struct dsi_panel *panel) switch (bl->type) { case DSI_BACKLIGHT_WLED: rc = dsi_panel_led_bl_register(panel, bl); rc = dsi_panel_wled_register(panel, bl); break; case DSI_BACKLIGHT_DCS: break; Loading @@ -669,7 +644,6 @@ static int dsi_panel_bl_unregister(struct dsi_panel *panel) switch (bl->type) { case DSI_BACKLIGHT_WLED: led_trigger_unregister_simple(bl->wled); break; case DSI_BACKLIGHT_DCS: break; Loading
drivers/gpu/drm/msm/dsi-staging/dsi_panel.h +2 −2 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ #include <linux/types.h> #include <linux/bitops.h> #include <linux/errno.h> #include <linux/leds.h> #include <linux/backlight.h> #include <drm/drm_panel.h> #include <drm/msm_drm.h> Loading Loading @@ -102,7 +102,7 @@ struct dsi_backlight_config { /* WLED params */ struct led_trigger *wled; struct backlight_device *bd; struct backlight_device *raw_bd; }; struct dsi_reset_seq { Loading