From b264fa4d5c7947ef6bc24f0d984164e78a1cb896 Mon Sep 17 00:00:00 2001 From: Evoke Zhang Date: Tue, 11 Dec 2018 18:23:31 +0800 Subject: [PATCH] arm: dts: x301 & t309: enable panel unifykey support for tvconfig [1/1] PD#SWPL-2761 Problem: not support tvconfig yet Solution: 1.enable key_valid in panel dtsi 2.enable fr_auto_policy in panel dtsi 3.enable clk ss for lvds and vbyone in panel dtsi 4.also fix some coverity errors Verify: x301 Change-Id: I00dd5ff621cfbc3f100bbe6045a35c8f917ade29 Signed-off-by: Evoke Zhang Conflicts: arch/arm/boot/dts/amlogic/mesontl1_t309-panel.dtsi --- .../boot/dts/amlogic/mesontl1_t309-panel.dtsi | 33 +++---------------- .../boot/dts/amlogic/mesontl1_x301-panel.dtsi | 18 +++++----- .../amlogic/media/vout/lcd/lcd_clk_config.c | 11 ++++--- drivers/amlogic/media/vout/lcd/lcd_debug.c | 6 ++-- drivers/amlogic/media/vout/lcd/lcd_vout.c | 2 +- 5 files changed, 25 insertions(+), 45 deletions(-) diff --git a/arch/arm/boot/dts/amlogic/mesontl1_t309-panel.dtsi b/arch/arm/boot/dts/amlogic/mesontl1_t309-panel.dtsi index 56002255b208..2a0773eb1fff 100644 --- a/arch/arm/boot/dts/amlogic/mesontl1_t309-panel.dtsi +++ b/arch/arm/boot/dts/amlogic/mesontl1_t309-panel.dtsi @@ -78,7 +78,7 @@ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range, * 4=hdmi_mode) */ - 15 /*clk_ss_level*/ + 6 /*clk_ss_level*/ 1 /*clk_auto_generate*/ 0>; /*pixel_clk(unit in Hz)*/ lvds_attr = < @@ -163,7 +163,7 @@ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range, * 4=hdmi_mode) */ - 15 /*clk_ss_level*/ + 6 /*clk_ss_level*/ 1 /*clk_auto_generate*/ 0>; /*pixel_clk(unit in Hz)*/ lvds_attr = < @@ -205,7 +205,7 @@ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range, * 4=hdmi_mode) */ - 0 /*clk_ss_level*/ + 1 /*clk_ss_level*/ 1 /*clk_auto_generate*/ 0>; /*pixel_clk(unit in Hz)*/ vbyone_attr = < @@ -247,7 +247,7 @@ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range, * 4=hdmi_mode) */ - 0 /*clk_ss_level*/ + 1 /*clk_ss_level*/ 1 /*clk_auto_generate*/ 0>; /*pixel_clk(unit in Hz)*/ vbyone_attr = < @@ -335,7 +335,7 @@ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range, * 4=hdmi_mode) */ - 0 /*clk_ss_level*/ + 1 /*clk_ss_level*/ 1 /*clk_auto_generate*/ 0>; /*pixel_clk(unit in Hz)*/ vbyone_attr = < @@ -788,29 +788,6 @@ bl_pwm_combo_power = <1 0 /*pwm0 gpio_index, gpio_off*/ 2 0 /*pwm1 gpio_index, gpio_off*/ 10 10>; /*pwm_on_delay(ms), pwm_off_delay(ms)*/ - }; - backlight_3{ - index = <3>; - bl_name = "pwm_combo_ldim_test"; - bl_level_default_uboot_kernel = <31 100>; - bl_level_attr = <255 10 /*max, min*/ - 128 128>; /*mid, mid_mapping*/ - bl_ctrl_method = <2>; /*1=pwm,2=pwm_combo,3=ldim*/ - bl_power_attr = <0 /*en_gpio_index*/ - 1 0 /*on_value, off_value*/ - 410 110>; /*on_delay(ms), off_delay(ms)*/ - bl_pwm_combo_level_mapping = <255 10 /*pwm_0 range*/ - 0 0>; /*pwm_1 range*/ - bl_pwm_combo_port = "PWM_C","PWM_D"; - bl_pwm_combo_attr = <1 /*pwm0 method*/ - 180 /*pwm0 freq(pwm:Hz, pwm_vs:multiple of vs)*/ - 100 25 /*pwm0 duty_max(%), duty_min(%)*/ - 1 /*pwm1 method*/ - 18000 /*pwm1 freq(pwm:Hz, pwm_vs:multi of vs)*/ - 80 80>; /*pwm1 duty_max(%), duty_min(%)*/ - bl_pwm_combo_power = <1 0 /*pwm0 gpio_index, gpio_off*/ - 2 0 /*pwm1 gpio_index, gpio_off*/ - 10 10>; /*pwm_on_delay(ms), pwm_off_delay(ms)*/ bl_ldim_region_row_col = <2 10>; }; backlight_4{ diff --git a/arch/arm/boot/dts/amlogic/mesontl1_x301-panel.dtsi b/arch/arm/boot/dts/amlogic/mesontl1_x301-panel.dtsi index f1377e3286a1..dccb879f8b4c 100644 --- a/arch/arm/boot/dts/amlogic/mesontl1_x301-panel.dtsi +++ b/arch/arm/boot/dts/amlogic/mesontl1_x301-panel.dtsi @@ -20,8 +20,8 @@ compatible = "amlogic, lcd-tl1"; status = "okay"; mode = "tv"; - fr_auto_policy = <0>; /* 0=disable, 1=60/50hz, 2=60/50/48hz */ - key_valid = <0>; + fr_auto_policy = <1>; /* 0=disable, 1=60/50hz, 2=60/50/48hz */ + key_valid = <1>; clocks = <&clkc CLKID_VCLK2_ENCL &clkc CLKID_VCLK2_VENCL &clkc CLKID_TCON @@ -82,7 +82,7 @@ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range, * 4=hdmi_mode) */ - 0 /*clk_ss_level*/ + 6 /*clk_ss_level*/ 1 /*clk_auto_generate*/ 0>; /*pixel_clk(unit in Hz)*/ lvds_attr = < @@ -171,7 +171,7 @@ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range, * 4=hdmi_mode) */ - 0 /*clk_ss_level*/ + 6 /*clk_ss_level*/ 1 /*clk_auto_generate*/ 0>; /*pixel_clk(unit in Hz)*/ lvds_attr = < @@ -215,7 +215,7 @@ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range, * 4=hdmi_mode) */ - 0 /*clk_ss_level*/ + 1 /*clk_ss_level*/ 1 /*clk_auto_generate*/ 0>; /*pixel_clk(unit in Hz)*/ vbyone_attr = < @@ -257,7 +257,7 @@ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range, * 4=hdmi_mode) */ - 0 /*clk_ss_level*/ + 1 /*clk_ss_level*/ 1 /*clk_auto_generate*/ 0>; /*pixel_clk(unit in Hz)*/ vbyone_attr = < @@ -345,7 +345,7 @@ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range, * 4=hdmi_mode) */ - 0 /*clk_ss_level*/ + 1 /*clk_ss_level*/ 1 /*clk_auto_generate*/ 0>; /*pixel_clk(unit in Hz)*/ vbyone_attr = < @@ -612,7 +612,7 @@ lcd_extern{ compatible = "amlogic, lcd_extern"; status = "okay"; - key_valid = <0>; + key_valid = <1>; i2c_bus = "i2c_bus_1"; extern_0{ @@ -712,7 +712,7 @@ backlight{ compatible = "amlogic, backlight-tl1"; status = "okay"; - key_valid = <0>; + key_valid = <1>; pinctrl-names = "pwm_on","pwm_vs_on", "pwm_combo_0_1_on", "pwm_combo_0_vs_1_on", diff --git a/drivers/amlogic/media/vout/lcd/lcd_clk_config.c b/drivers/amlogic/media/vout/lcd/lcd_clk_config.c index d93f45d563cc..22b60474b451 100644 --- a/drivers/amlogic/media/vout/lcd/lcd_clk_config.c +++ b/drivers/amlogic/media/vout/lcd/lcd_clk_config.c @@ -2337,21 +2337,24 @@ int lcd_set_ss(unsigned int level, unsigned int freq, unsigned int mode) if (level < 0xff) { if (level >= clk_conf.data->ss_level_max) { LCDERR("%s: ss_level %d is out of support (max %d)\n", - __func__, level, clk_conf.data->ss_level_max); + __func__, level, + (clk_conf.data->ss_level_max - 1)); goto lcd_set_ss_end; } } if (freq < 0xff) { if (freq >= clk_conf.data->ss_freq_max) { LCDERR("%s: ss_freq %d is out of support (max %d)\n", - __func__, freq, clk_conf.data->ss_freq_max); + __func__, freq, + (clk_conf.data->ss_freq_max - 1)); goto lcd_set_ss_end; } } if (mode < 0xff) { - if (mode >= clk_conf.data->ss_freq_max) { + if (mode >= clk_conf.data->ss_mode_max) { LCDERR("%s: ss_mode %d is out of support (max %d)\n", - __func__, mode, clk_conf.data->ss_mode_max); + __func__, mode, + (clk_conf.data->ss_mode_max - 1)); goto lcd_set_ss_end; } } diff --git a/drivers/amlogic/media/vout/lcd/lcd_debug.c b/drivers/amlogic/media/vout/lcd/lcd_debug.c index 24a763566ebc..1df55070a175 100644 --- a/drivers/amlogic/media/vout/lcd/lcd_debug.c +++ b/drivers/amlogic/media/vout/lcd/lcd_debug.c @@ -2399,7 +2399,7 @@ static ssize_t lcd_debug_ss_store(struct class *class, temp = lcd_drv->lcd_config->lcd_timing.ss_level; switch (buf[0]) { case 'l': - ret = sscanf(buf, "level %x", &value); + ret = sscanf(buf, "level %d", &value); if (ret == 1) { value &= 0xff; ret = lcd_set_ss(value, 0xff, 0xff); @@ -2414,7 +2414,7 @@ static ssize_t lcd_debug_ss_store(struct class *class, } break; case 'f': - ret = sscanf(buf, "freq %x", &value); + ret = sscanf(buf, "freq %d", &value); if (ret == 1) { value &= 0xf; ret = lcd_set_ss(0xff, value, 0xff); @@ -2429,7 +2429,7 @@ static ssize_t lcd_debug_ss_store(struct class *class, } break; case 'm': - ret = sscanf(buf, "mode %x", &value); + ret = sscanf(buf, "mode %d", &value); if (ret == 1) { value &= 0xf; ret = lcd_set_ss(0xff, 0xff, value); diff --git a/drivers/amlogic/media/vout/lcd/lcd_vout.c b/drivers/amlogic/media/vout/lcd/lcd_vout.c index 21989a345e37..8ac00e499d1e 100644 --- a/drivers/amlogic/media/vout/lcd/lcd_vout.c +++ b/drivers/amlogic/media/vout/lcd/lcd_vout.c @@ -289,7 +289,7 @@ static void lcd_power_ctrl(int status) break; case LCD_POWER_TYPE_SIGNAL: if (status) - ret = lcd_driver->driver_init(); + lcd_driver->driver_init(); else lcd_driver->driver_disable(); break;