This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM623:显示灰度图片时的 AM6234 面板蓝线

Guru**** 2927270 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1645944/am623-am6234-panel-blue-line-when-displaying-grayscale-picture

器件型号: AM623

尊敬的专家:

 

我们在 AM6234 平台上遇到了一个问题、 显示器上出现单条蓝线、但 仅在显示灰度图像时出现。 此伪影不会出现在任何其他条件下或带有彩色内容的情况下。

1.jpg

我们怀疑根本原因可能与 面板时序 配置有关。 在我们的器件树源 (DTS) 中、我们当前使用为 at070tn92 面板定义的时序。

 

DTS 部分

          面板{

                    Compatible =“Innolux,at070tn92“、“panel-dpi“;

                    电源=<&VCC_3V3_SYS>;

                    背光=<&LCD_bl>;

                    端口{

                               panel_in:端点{

                                          远程端点=<&dpi1_out>;

                               };

                    };

          };

 

我们尝试在以下位置修改或验证内核源代码中的配置: linux-11.01.05/drivers/gpu/drm/panel/panel-simple.c

2.png

 

 

我们正在尝试调整像素数据采样边线以解析灰度伪影。 我们对 bus_flags 驱动程序 () 中的进行了panel-simple.c如下修改:

  • DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE

  • DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE

观察结果: 尽管发生了这些变化、但我们观察到 实际波形没有变化

如随附的比较所示:

  • 顶部的图像 (红框)表示我们的预期波形(时钟和数据信号之间正确对齐)。

  • 底部图像 显示了 AM6234 当前生成的实际波形

问题:

  1. 是否必须同时调整其他同步设置或寄存器 bus_flags 才能使这些更改在 AM6234 上生效?

  2. 为什么驱动器代码的变化没有反映在物理输出波形中?

3.png

 

 

5.png

 

 

 

谢谢

 

Daniel

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Daniel:
    您能否检查此补丁是否有所帮助?
    https://lore.kernel.org/all/20260420-beagley-ai-display-v1-9-f628543dfd14@ideasonboard.com/ 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Divyansh

    该补丁对我们不起作用。

    蓝线仍然存在、波形不变

    我的补丁有点不同

    e2e.ti.com/.../0010_5F00_scott_5F00_modify_5F00_kernel_5F00_tidss.txt

    此致、

    Scott

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Scott:
    如果您的面板数据表不是机密信息、您能在此处分享吗?
    此外、请共享 DSS 的寄存器转储。 您可以使用以下脚本: e2e.ti.com/.../dump_5F00_dss_5F00_regs.sh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Divyansh

    我们无法使用脚本 dump_5F00_dss_5F00_regs.sh  

    e2e.ti.com/.../_2800_Innolux_2900_–7.0-inch-LCD-_2D00_-AT070TN94-Final-Spec_2800_V07_29005F00_20220305.pdf

    此致、

    Scott

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Scott:

    [引述 userid=“435952“ url=“~/support/processors-group/processors/f/processors-forum/1645944/am623-am6234-panel-blue-line-when-displaying-grayscale-picture/6346739

    我们无法使用脚本 dump_5F00_dss_5F00_regs.sh  

    [/报价]

    我知道为什么吗?
    您能否在应用此补丁之前和之后分享寄存器 0x3020B04C 的值?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Divyansh

    我们在设备上运行脚本、但在日志文件中不记录任何值、该文件保存在/tmp/目录文件名下且带有日期。

    不知道出了什么问题。

    此致

    Scott

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Divyansh

    我们修复了 脚本、 这里是您需要的转储文件

    修补程序之前

     寄存器 0x3020B04C = 0x00063000  

    e2e.ti.com/.../dss_5F00_reg_5F00_dump_5F00_20260518_5F00_092024_5F00_before_5F00_patch.txt

    之后添加一个新地址

     寄存器 0x3020B04C = 0x00063000  

    e2e.ti.com/.../dss_5F00_reg_5F00_dump_5F00_20260518_5F00_090918_5F00_after_5F00_patch.txt

    此致、

    Scott

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Scott:
    请给我几天时间、让我回到您的身边。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Scott:
    请尝试将 DRM_BUS_FLAG_PIXDATA_DRIVE_POSedge 切换到 DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE 、并在示波器上共享结果。 如果这是您的面板范围、请告诉我。 无需指定 DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE 标志。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Divyansh

    应用 DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE 之后、删除 DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE

     寄存器从 0x3020B04C = 0x00063000 更改为 0x00067000

    其他 寄存器 保持不变

    此致

    Scott

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Scott:
    只是为了确认、这是应用了最后一个共享的补丁吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Divyansh

    不、我通过 #define SCOT_TEST 0 删除了这个补丁

    此致、

    Scott

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您能否在应用补丁后尝试相同的标志更改?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Divyansh

    应用补丁后、所有 寄存器都 保持不变

     范围之间的区别

     转储文件 应用 DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE 并删除 DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE 并应用补丁

    e2e.ti.com/.../dss_5F00_reg_5F00_dump_5F00_20260520_5F00_093410_5F00_set_5F00_PIXDATA_5F00_DRIVE_5F00_NEGEDGE_5F00_with_5F00_patch.txt

    此致

    Scott

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Scott:  
    很抱歉晚回复。 我在下一个星期二之前不在办公室。 请期待收到延迟的回复。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Scott:
    根据您的数据表、我认为您需要 DRM_BUS_FLAG_PIXDATA_SAMPLE_POSedge、这将转换为 DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE 标志的使用。

    我错过了我共享的第一个修补程序所需的其他 DT 修补程序(如 https://lore.kernel.org/all/20260420-beagley-ai-display-v1-14-f628543dfd14@ideasonboard.com/ 和 https://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux.git/commit/?h=b4/beagley-ai-display&id=745ed81d9fcef633e8fedc116ee77ebdf822ab18 所示) 

    我稍后会帮您添加此寄存器、但使用 DRIVE_NEGEDGE 标志后、您能否分享这些寄存器的值来交叉检查寄存器是否确实配置错误:
    devmem2 0x00108300

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Divyansh

    我没有 devmem2、 devmem 0x00108300 的结果为 0x00000000

    此致

    Scott

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Divyansh

    从我的 DTS 文件中、我们得到了

    / {
    	dss_vp1_clk: clock-divider-oldi {
    		compatible = "fixed-factor-clock";
    		clocks = <&k3_clks 186 0>;
    		#clock-cells = <0>;
    		clock-div = <7>;
    		clock-mult = <1>;
    	};
    };
    
    main_conf: bus@100000 {
    		dss_oldi_io_ctrl: oldi-io-controller@8600 {
    			compatible = "ti,am625-dss-oldi-io-ctrl", "syscon";
    			reg = <0x8600 0x200>;
    		};
    }
    	dss: dss@30200000 {
    		compatible = "ti,am625-dss";
    		reg = <0x00 0x30200000 0x00 0x1000>, /* common */
    		      <0x00 0x30202000 0x00 0x1000>, /* vidl1 */
    		      <0x00 0x30206000 0x00 0x1000>, /* vid */
    		      <0x00 0x30207000 0x00 0x1000>, /* ovr1 */
    		      <0x00 0x30208000 0x00 0x1000>, /* ovr2 */
    		      <0x00 0x3020a000 0x00 0x1000>, /* vp1: Used for OLDI */
    		      <0x00 0x3020b000 0x00 0x1000>, /* vp2: Used as DPI Out */
    		      <0x00 0x30201000 0x00 0x1000>; /* common1 */
    		reg-names = "common", "vidl1", "vid",
    			    "ovr1", "ovr2", "vp1", "vp2", "common1";
    		power-domains = <&k3_pds 186 TI_SCI_PD_EXCLUSIVE>;
    		clocks = <&k3_clks 186 6>,
    			 <&dss_vp1_clk>,
    			 <&k3_clks 186 2>;
    		clock-names = "fck", "vp1", "vp2";
    		interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
    		status = "disabled";
    
    		oldi-transmitters {
    			#address-cells = <1>;
    			#size-cells = <0>;
    
    			oldi0: oldi@0 {
    				reg = <0>;
    				clocks = <&k3_clks 186 0>;
    				clock-names = "serial";
    				ti,oldi-io-ctrl = <&dss_oldi_io_ctrl>;
    				status = "disabled";
    
    				oldi0_ports: ports {
    				};
    			};
    
    			/*
    			 * OLDI1 in AM625 SoC can only act as a secondary OLDI, if
    			 * required, hence the clock and io-ctrl properties are not
    			 * required at the moment.
    			 */
    			oldi1: oldi@1 {
    				reg = <1>;
    				clocks = <&k3_clks 186 0>;
    				clock-names = "serial";
    				ti,oldi-io-ctrl = <&dss_oldi_io_ctrl>;
    				status = "disabled";
    
    				oldi1_ports: ports {
    				};
    			};
    		};
    
    		dss_ports: ports {
    			#address-cells = <1>;
    			#size-cells = <0>;
    		};
    	};

    此致、

    Scott

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Scott:
    因为您的时间是 11.01、所以我没有直接在该 SDK 版本上应用和测试这些补丁、但如果您在应用以下内容时遇到任何困难、请告诉我:

     1. https://lore.kernel.org/all/20260513-beagley-ai-display-v2-9-9e9bcefde6bc@ideasonboard.com/ (共享的最后一个修补程序的更新版本)
     2. https://lore.kernel.org/all/20260513-beagley-ai-display-v2-14-9e9bcefde6bc@ideasonboard.com/ (添加到 arch/arm64/boot/dts/ti/k3-am62-main.dtsi)  
    3.将以下内容添加到 arch/arm64/boot/dts/ti/k3-am62-main.dtsi 中的 DSS 节点:
    TI、dpi-io-ctrl =<&main_conf 0x8300>;
    4.在面板简单的驱动程序中,使用以下标志:  
    .BUS_FLAGS = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSedge |
               DRM_BUS_FLAG_SYNC_DRIVE_POSedge

    应用上述补丁后、以下寄存器中的预期值将为:
    0x3020b04c:0x73000
    0x00108300:0x300

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Divyansh

    感谢您提供补丁、预期值为  

    0x3020b04c:0x73000
    0x00108300:0x300

    此致、

    Scott