From b45e871a67cd1272e3da9ba5bd383f832b0f1824 Mon Sep 17 00:00:00 2001 From: huangcm <1263938474@qq.com> Date: Fri, 28 Feb 2025 02:12:19 +0000 Subject: [PATCH] fix(mipi): fix mipi resume err --- longan/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/lcd-mipi-10-800-1280.dtsi | 5 +++-- longan/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/lcd-mipi-5-720-1280.dtsi | 4 ++-- longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/lcd/mipi_10_800x1280.c | 6 ++++-- longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/lcd/mipi_8_800x1280.c | 8 +++++--- longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/lcd/mipi_5_720x1280.c | 6 ++++-- longan/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/lcd-mipi-8-800-1280.dtsi | 7 +++++-- 6 files changed, 23 insertions(+), 13 deletions(-) diff --git a/longan/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/lcd-mipi-10-800-1280.dtsi b/longan/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/lcd-mipi-10-800-1280.dtsi index 6e4408a..e0fdaba 100644 --- a/longan/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/lcd-mipi-10-800-1280.dtsi +++ b/longan/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/lcd-mipi-10-800-1280.dtsi @@ -202,12 +202,13 @@ //lcd_pin_power2 = "dldo2"; lcd_power = "dc1sw"; - lcd_bl_en = <&pio PD 21 1 0 3 1>; + // lcd_bl_en = <&pio PD 21 1 0 3 1>; // reset lcd_gpio_0 = <&pio PE 5 1 0 3 1>; + // power - //lcd_gpio_1 = <&pio PD 21 1 0 3 1>; + lcd_gpio_1 = <&pio PD 21 1 0 3 1>; pinctrl-0 = <&dsi4lane_pins_a>; pinctrl-1 = <&dsi4lane_pins_b>; diff --git a/longan/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/lcd-mipi-5-720-1280.dtsi b/longan/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/lcd-mipi-5-720-1280.dtsi index 0fcc8b1..df6abec 100755 --- a/longan/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/lcd-mipi-5-720-1280.dtsi +++ b/longan/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/lcd-mipi-5-720-1280.dtsi @@ -202,12 +202,12 @@ //lcd_pin_power2 = "dldo2"; lcd_power = "dc1sw"; - lcd_bl_en = <&pio PD 21 1 0 3 1>; + // lcd_bl_en = <&pio PD 21 1 0 3 1>; // reset lcd_gpio_0 = <&pio PE 5 1 0 3 1>; // power - //lcd_gpio_1 = <&pio PD 21 1 0 3 1>; + lcd_gpio_1 = <&pio PD 21 1 0 3 1>; pinctrl-0 = <&dsi4lane_pins_a>; pinctrl-1 = <&dsi4lane_pins_b>; diff --git a/longan/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/lcd-mipi-8-800-1280.dtsi b/longan/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/lcd-mipi-8-800-1280.dtsi index a630b7a..5ba178d 100644 --- a/longan/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/lcd-mipi-8-800-1280.dtsi +++ b/longan/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/lcd-mipi-8-800-1280.dtsi @@ -202,12 +202,13 @@ //lcd_pin_power2 = "dldo2"; lcd_power = "dc1sw"; - lcd_bl_en = <&pio PD 21 1 0 3 1>; + // lcd_bl_en = <&pio PD 21 1 0 3 1>; // reset lcd_gpio_0 = <&pio PE 5 1 0 3 1>; + // power - //lcd_gpio_1 = <&pio PD 21 1 0 3 1>; + lcd_gpio_1 = <&pio PD 21 1 0 3 1>; pinctrl-0 = <&dsi4lane_pins_a>; pinctrl-1 = <&dsi4lane_pins_b>; @@ -215,3 +216,5 @@ //pinctrl-1 = <&lvds0_pins_b>; }; }; + + diff --git a/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/lcd/mipi_10_800x1280.c b/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/lcd/mipi_10_800x1280.c index abaa3e1..87fdec6 100755 --- a/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/lcd/mipi_10_800x1280.c +++ b/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/lcd/mipi_10_800x1280.c @@ -107,8 +107,10 @@ panel_reset(sel, 0); sunxi_lcd_power_enable(sel, 0); sunxi_lcd_pin_cfg(sel, 1); - //sunxi_lcd_power_enable(sel, 1); - sunxi_lcd_delay_ms(50); + sunxi_lcd_power_enable(sel, 1); + + sunxi_lcd_gpio_set_value(sel, 1, 1); + sunxi_lcd_delay_ms(200); panel_reset(sel, 1); sunxi_lcd_delay_ms(10); panel_reset(sel, 0); diff --git a/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/lcd/mipi_5_720x1280.c b/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/lcd/mipi_5_720x1280.c index c93f70e..91e002a 100755 --- a/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/lcd/mipi_5_720x1280.c +++ b/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/lcd/mipi_5_720x1280.c @@ -109,8 +109,10 @@ panel_reset(sel, 0); sunxi_lcd_power_enable(sel, 0); sunxi_lcd_pin_cfg(sel, 1); - //sunxi_lcd_power_enable(sel, 1); - sunxi_lcd_delay_ms(50); + sunxi_lcd_power_enable(sel, 1); + + sunxi_lcd_gpio_set_value(sel, 1, 1); + sunxi_lcd_delay_ms(200); panel_reset(sel, 1); sunxi_lcd_delay_ms(10); panel_reset(sel, 0); diff --git a/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/lcd/mipi_8_800x1280.c b/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/lcd/mipi_8_800x1280.c index f504ab1..0239d83 100755 --- a/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/lcd/mipi_8_800x1280.c +++ b/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/lcd/mipi_8_800x1280.c @@ -105,12 +105,13 @@ static void lcd_power_on(u32 sel) { - panel_reset(sel, 0); sunxi_lcd_power_enable(sel, 0); sunxi_lcd_pin_cfg(sel, 1); - //sunxi_lcd_power_enable(sel, 1); - sunxi_lcd_delay_ms(50); + sunxi_lcd_power_enable(sel, 1); + + sunxi_lcd_gpio_set_value(sel, 1, 1); + sunxi_lcd_delay_ms(200); panel_reset(sel, 1); sunxi_lcd_delay_ms(10); panel_reset(sel, 0); @@ -123,6 +124,7 @@ { panel_reset(sel, 0); sunxi_lcd_delay_ms(1); + // sunxi_lcd_gpio_set_value(sel, 1, 0); sunxi_lcd_power_disable(sel, 1); sunxi_lcd_delay_ms(1); sunxi_lcd_power_disable(sel, 0); -- Gitblit v1.6.2