Loading drivers/video/fbdev/msm/mdss_dsi.c +2 −0 Original line number Diff line number Diff line Loading @@ -3350,7 +3350,9 @@ static int mdss_dsi_ctrl_probe(struct platform_device *pdev) error_shadow_clk_deinit: mdss_dsi_shadow_clk_deinit(&pdev->dev, ctrl_pdata); error_pan_node: #ifndef CONFIG_BACKLIGHT_QCOM_SPMI_WLED mdss_dsi_unregister_bl_settings(ctrl_pdata); #endif of_node_put(dsi_pan_node); return rc; } Loading drivers/video/fbdev/msm/mdss_dsi.h +9 −1 Original line number Diff line number Diff line /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2012-2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading @@ -19,6 +19,9 @@ #include <linux/irqreturn.h> #include <linux/pinctrl/consumer.h> #include <linux/gpio.h> #ifdef CONFIG_BACKLIGHT_QCOM_SPMI_WLED #include <linux/backlight.h> #endif #include "mdss_panel.h" #include "mdss_dsi_cmd.h" Loading Loading @@ -456,6 +459,9 @@ struct mdss_dsi_ctrl_pdata { struct mdss_rect roi; struct pwm_device *pwm_bl; #ifdef CONFIG_BACKLIGHT_QCOM_SPMI_WLED struct backlight_device *raw_bd; #endif u32 pclk_rate; u32 byte_clk_rate; u32 pclk_rate_bkp; Loading Loading @@ -670,7 +676,9 @@ int mdss_panel_get_dst_fmt(u32 bpp, char mipi_mode, u32 pixel_packing, int mdss_dsi_register_recovery_handler(struct mdss_dsi_ctrl_pdata *ctrl, struct mdss_intf_recovery *recovery); #ifndef CONFIG_BACKLIGHT_QCOM_SPMI_WLED void mdss_dsi_unregister_bl_settings(struct mdss_dsi_ctrl_pdata *ctrl_pdata); #endif void mdss_dsi_panel_dsc_pps_send(struct mdss_dsi_ctrl_pdata *ctrl, struct mdss_panel_info *pinfo); void mdss_dsi_dsc_config(struct mdss_dsi_ctrl_pdata *ctrl, Loading drivers/video/fbdev/msm/mdss_dsi_panel.c +35 −3 Original line number Diff line number Diff line /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2012-2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading @@ -17,7 +17,11 @@ #include <linux/gpio.h> #include <linux/delay.h> #include <linux/slab.h> #ifndef CONFIG_BACKLIGHT_QCOM_SPMI_WLED #include <linux/leds.h> #else #include <linux/backlight.h> #endif #include <linux/pwm.h> #include <linux/err.h> #include <linux/string.h> Loading @@ -31,8 +35,9 @@ #define DEFAULT_MDP_TRANSFER_TIME 14000 #define VSYNC_DELAY msecs_to_jiffies(17) #ifndef CONFIG_BACKLIGHT_QCOM_SPMI_WLED DEFINE_LED_TRIGGER(bl_led_trigger); #endif void mdss_dsi_panel_pwm_cfg(struct mdss_dsi_ctrl_pdata *ctrl) { Loading Loading @@ -799,7 +804,11 @@ static void mdss_dsi_panel_bl_ctrl(struct mdss_panel_data *pdata, switch (ctrl_pdata->bklt_ctrl) { case BL_WLED: #ifndef CONFIG_BACKLIGHT_QCOM_SPMI_WLED led_trigger_event(bl_led_trigger, bl_level); #else backlight_device_set_brightness(ctrl_pdata->raw_bd, bl_level); #endif break; case BL_PWM: mdss_dsi_panel_bklt_pwm(ctrl_pdata, bl_level); Loading Loading @@ -2262,6 +2271,22 @@ static void mdss_dsi_parse_dfps_config(struct device_node *pan_node, pinfo->current_fps = pinfo->mipi.frame_rate; } #ifdef CONFIG_BACKLIGHT_QCOM_SPMI_WLED static int dsi_panel_wled_register(struct mdss_dsi_ctrl_pdata *ctrl_pdata) { int rc = 0; struct backlight_device *bd; bd = backlight_device_get_by_type(BACKLIGHT_RAW); if (!bd) { pr_err("fail raw backlight register\n"); rc = -EINVAL; } ctrl_pdata->raw_bd = bd; return rc; } #endif int mdss_panel_parse_bl_settings(struct device_node *np, struct mdss_dsi_ctrl_pdata *ctrl_pdata) { Loading @@ -2273,8 +2298,14 @@ int mdss_panel_parse_bl_settings(struct device_node *np, data = of_get_property(np, "qcom,mdss-dsi-bl-pmic-control-type", NULL); if (data) { if (!strcmp(data, "bl_ctrl_wled")) { #ifndef CONFIG_BACKLIGHT_QCOM_SPMI_WLED led_trigger_register_simple("bkl-trigger", &bl_led_trigger); #else rc = dsi_panel_wled_register(ctrl_pdata); if (rc) return rc; #endif pr_debug("%s: SUCCESS-> WLED TRIGGER register\n", __func__); ctrl_pdata->bklt_ctrl = BL_WLED; Loading Loading @@ -2372,12 +2403,13 @@ int mdss_dsi_panel_timing_switch(struct mdss_dsi_ctrl_pdata *ctrl, return 0; } #ifndef CONFIG_BACKLIGHT_QCOM_SPMI_WLED void mdss_dsi_unregister_bl_settings(struct mdss_dsi_ctrl_pdata *ctrl_pdata) { if (ctrl_pdata->bklt_ctrl == BL_WLED) led_trigger_unregister_simple(bl_led_trigger); } #endif static int mdss_dsi_panel_timing_from_dt(struct device_node *np, struct dsi_panel_timing *pt, struct mdss_panel_data *panel_data) Loading Loading
drivers/video/fbdev/msm/mdss_dsi.c +2 −0 Original line number Diff line number Diff line Loading @@ -3350,7 +3350,9 @@ static int mdss_dsi_ctrl_probe(struct platform_device *pdev) error_shadow_clk_deinit: mdss_dsi_shadow_clk_deinit(&pdev->dev, ctrl_pdata); error_pan_node: #ifndef CONFIG_BACKLIGHT_QCOM_SPMI_WLED mdss_dsi_unregister_bl_settings(ctrl_pdata); #endif of_node_put(dsi_pan_node); return rc; } Loading
drivers/video/fbdev/msm/mdss_dsi.h +9 −1 Original line number Diff line number Diff line /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2012-2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading @@ -19,6 +19,9 @@ #include <linux/irqreturn.h> #include <linux/pinctrl/consumer.h> #include <linux/gpio.h> #ifdef CONFIG_BACKLIGHT_QCOM_SPMI_WLED #include <linux/backlight.h> #endif #include "mdss_panel.h" #include "mdss_dsi_cmd.h" Loading Loading @@ -456,6 +459,9 @@ struct mdss_dsi_ctrl_pdata { struct mdss_rect roi; struct pwm_device *pwm_bl; #ifdef CONFIG_BACKLIGHT_QCOM_SPMI_WLED struct backlight_device *raw_bd; #endif u32 pclk_rate; u32 byte_clk_rate; u32 pclk_rate_bkp; Loading Loading @@ -670,7 +676,9 @@ int mdss_panel_get_dst_fmt(u32 bpp, char mipi_mode, u32 pixel_packing, int mdss_dsi_register_recovery_handler(struct mdss_dsi_ctrl_pdata *ctrl, struct mdss_intf_recovery *recovery); #ifndef CONFIG_BACKLIGHT_QCOM_SPMI_WLED void mdss_dsi_unregister_bl_settings(struct mdss_dsi_ctrl_pdata *ctrl_pdata); #endif void mdss_dsi_panel_dsc_pps_send(struct mdss_dsi_ctrl_pdata *ctrl, struct mdss_panel_info *pinfo); void mdss_dsi_dsc_config(struct mdss_dsi_ctrl_pdata *ctrl, Loading
drivers/video/fbdev/msm/mdss_dsi_panel.c +35 −3 Original line number Diff line number Diff line /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2012-2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading @@ -17,7 +17,11 @@ #include <linux/gpio.h> #include <linux/delay.h> #include <linux/slab.h> #ifndef CONFIG_BACKLIGHT_QCOM_SPMI_WLED #include <linux/leds.h> #else #include <linux/backlight.h> #endif #include <linux/pwm.h> #include <linux/err.h> #include <linux/string.h> Loading @@ -31,8 +35,9 @@ #define DEFAULT_MDP_TRANSFER_TIME 14000 #define VSYNC_DELAY msecs_to_jiffies(17) #ifndef CONFIG_BACKLIGHT_QCOM_SPMI_WLED DEFINE_LED_TRIGGER(bl_led_trigger); #endif void mdss_dsi_panel_pwm_cfg(struct mdss_dsi_ctrl_pdata *ctrl) { Loading Loading @@ -799,7 +804,11 @@ static void mdss_dsi_panel_bl_ctrl(struct mdss_panel_data *pdata, switch (ctrl_pdata->bklt_ctrl) { case BL_WLED: #ifndef CONFIG_BACKLIGHT_QCOM_SPMI_WLED led_trigger_event(bl_led_trigger, bl_level); #else backlight_device_set_brightness(ctrl_pdata->raw_bd, bl_level); #endif break; case BL_PWM: mdss_dsi_panel_bklt_pwm(ctrl_pdata, bl_level); Loading Loading @@ -2262,6 +2271,22 @@ static void mdss_dsi_parse_dfps_config(struct device_node *pan_node, pinfo->current_fps = pinfo->mipi.frame_rate; } #ifdef CONFIG_BACKLIGHT_QCOM_SPMI_WLED static int dsi_panel_wled_register(struct mdss_dsi_ctrl_pdata *ctrl_pdata) { int rc = 0; struct backlight_device *bd; bd = backlight_device_get_by_type(BACKLIGHT_RAW); if (!bd) { pr_err("fail raw backlight register\n"); rc = -EINVAL; } ctrl_pdata->raw_bd = bd; return rc; } #endif int mdss_panel_parse_bl_settings(struct device_node *np, struct mdss_dsi_ctrl_pdata *ctrl_pdata) { Loading @@ -2273,8 +2298,14 @@ int mdss_panel_parse_bl_settings(struct device_node *np, data = of_get_property(np, "qcom,mdss-dsi-bl-pmic-control-type", NULL); if (data) { if (!strcmp(data, "bl_ctrl_wled")) { #ifndef CONFIG_BACKLIGHT_QCOM_SPMI_WLED led_trigger_register_simple("bkl-trigger", &bl_led_trigger); #else rc = dsi_panel_wled_register(ctrl_pdata); if (rc) return rc; #endif pr_debug("%s: SUCCESS-> WLED TRIGGER register\n", __func__); ctrl_pdata->bklt_ctrl = BL_WLED; Loading Loading @@ -2372,12 +2403,13 @@ int mdss_dsi_panel_timing_switch(struct mdss_dsi_ctrl_pdata *ctrl, return 0; } #ifndef CONFIG_BACKLIGHT_QCOM_SPMI_WLED void mdss_dsi_unregister_bl_settings(struct mdss_dsi_ctrl_pdata *ctrl_pdata) { if (ctrl_pdata->bklt_ctrl == BL_WLED) led_trigger_unregister_simple(bl_led_trigger); } #endif static int mdss_dsi_panel_timing_from_dt(struct device_node *np, struct dsi_panel_timing *pt, struct mdss_panel_data *panel_data) Loading