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.

[参考译文] Linux/DRA722:dra722 Vout2无法启用 lcd2输出

Guru**** 2556870 points
Other Parts Discussed in Thread: DRA722

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/583789/linux-dra722-dra722-vout2-cannot-enable-lcd2-output

器件型号:DRA722
主题中讨论的其他器件: DRA72

工具/软件:Linux

大家好、我遇到了一个问题。我的项目需要支持两个 LCD 显示屏、默认情况下、Vout1启用以支持 lcd1输出、因此我尝试先启用 Vout2以单独支持 lcd2、但我没有工作。我已经在 attatchment 中上传了一些文件。pinmux 配置在 ds.txt 中、io_delay 为 configutation 在 mux_data.txt 中,我还运行 dss_dumclocks.sh 以获取一些消息,我感到困惑的是,当从 DSS_CTRL 读取时,我会发现一些类似“DPI1输出    :  HDMI"、因为您可以从 附件中的 dss_dumclocks.txt 中获得详细信息。此外、在我运行 dmesg 后、我发现了一些消息、例如"OMAP_CRTC_flush () timeout"、"注册的恐慌通知程序"和等等。我是 TI DSS 系统的新手、您能给我一些帮助吗?非常感谢!

e2e.ti.com/.../TO-TI.rar

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

    您能否说明您使用的 SDK/内核版本以及它是 EVM 还是定制板?

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

    您好、Yordan、

    它基于 sdk7.04.00.03、内核3.14、它不是 EVM 板、而是基于 dra722、谢谢!

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

    此 SDK 非常旧、SDK 版本3.02中的内核4.4更新得多:
    processors.wiki.ti.com/.../Category:Processor_SDK_Linux_Automotive

    您使用此类旧 SDK 是否有任何原因?

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan Kamenov,您好!
    将 kernel3.14迁移到 kernel4.4不适合我们当前的项目、这将给我们带来一些意外的风险、我们将在 futrue 中使用较新的 SDK、但现在不会。从您可以为我提供一些指导的文档中、您可以获得一些指导?非常感谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Samgyung、

    我已将您的问题转交给 DSS 专家。

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

    到目前为止、有多个有关多个 VOUT 的线程。 请在汽车论坛中搜索它们。
    它很可能是时钟问题。
    除了我提到的线程之外、您还可以下载并安装交互式时钟树工具。 它将帮助您了解 DSS 时钟。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Stanislav Stilyanov:
    感谢您的建议、我在下面找到了一些内核3.14的补丁来支持 lcd2输出、它可以正常工作!您可以建议遇到类似问题的其他人尝试一下!
    review.omapzoom.org/37626
    review.omapzoom.org/37627

    另一个问题、 LCD1输出是否已关联到 DPLL_VIDEO1、而 LCD2输出则关联到 DPLL_VIDEO2?我的项目基于 dra722、据我所知、draRM 仅具有 DPLL_VIDEO1、不具有 DPLL_VIDEO2.IS、这意味着从 T722安静地同时不支持双显示器 不理解 DPLL_VIDEO1、因为描述很少。谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    很高兴听到您解决了您的问题。 感谢您的分享。

    关于您的问题、DPLL_VIDEO1/2可能与 LCD1/2相对应、也可能与 LCD1/2不对应。 多路复用逻辑允许这种情况、但这不是必需的。 一切都取决于特定的用例。

    请参阅 DSS 一章中的图:

    此致、

    STAN

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

    您好,Stanislav Stilyanov:

    我的项目基于 dra722、dra722没有 DPLL_VIDEO2、只有 DPLL_VIDEO1。我尝试将 DPLL_VIDEO1作为 lcd2的源时钟、但系统损坏、表现得像"内核恐慌"。DPLL_VIDEO1不能同时用作 LCD1和 LCD2的源时钟、这样可以帮助您 检查 Linux /drivers/video/fbdev/omap2/dss/dpi.c 中的代码如下所示:

    静态结构 pll_data * dpI_get_pll_data (enum omap_channel 通道)

    OMAPDSS_VER_DRA72xx 案例:
      开关(通道){
      OMAP-DSS_CHANGE_LCD 案例:
      //案例 OMAP-DSS_CHANNEL LCD2:
      OMAP-DSS_CHANGE_LCD3案例:
       DSS_CTRL_PLL_SET_CONTRAL_mux (0、通道);
       返回 DSS_DPLL_GET_PLL_DATA (0);
      OMAP-DSS_CHANGE_LCD2案例:
       dss_ctrl_pll_set_control_mux (1、通道);//it chang 1至0、系统损坏
       返回 DSS_DPLL_GET_PLL_DATA (1);
      默认值:
       返回空;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    DPLL_VIDEO1至 LCD1和 LCD2是一个有效选项。 对此没有限制。
    问题出在其他地方。
    -例如、您可能还需要将 DSS_DPLL_GET_PLL_DATA (1)更改为0? 它是 DPLL 代码,但哪个代码是 DPLL?

    -此外、您是否知道设置 DSS_CTRL_PLL_SET_CONTRAL_mux (0、CHANNEL);参数设置为0实际上选择 VIDEO1_DPLL? 寄存器值对应、但函数中是否实现了该值?

    -您能否检查 VIDEO1_DPLL 是否已实际锁定并正在运行?

    此致、
    STAN
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Stanislav Stilyanov:
    感谢您的耐心等待。事实上,我之前也已将 DSS_DPLL_GET_PLL_DATA (1)更改为0,请原谅我的疏忽。我知道设置 DSS_CTRL_PLL_SET_CONTRAL_mux (0,通道); 参数为0实际上选择 VIDEO1_DPLL、这正是我要做的。我要使 DPLL_VIDEO1同时用作 lcd1和 lcd2的源时钟。这是因为被选中的只具有一个 DPLL_VIDEO。但在我这么做之后、系统损坏了、是否需要特殊处理?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Samgyung、
    我不熟悉 DSS 和 DPLL 的软件。
    我知道 LCD1、LCD2和 LCD3可以通过 DPLL_VIDEO1工作。 如果多路复用器正确且 DPLL 已锁定、我将不会看到任何问题。
    您能否在函数末尾的地址0x4A00 2538打印多路复用器寄存器? (CTRL_CORE_DSS_PLL_CONTROL)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Stanislav Stilyanov

    我不知道为什么 VOUT1和 VOUT2不能同时共享 DPLL_VID1、因此我使用另一种方法、如 以下所示、当我运行"devmem2 0x4a002538"时、我发现 DSI1_A_CLK1选择 DPLL_VID1、DSI1_B_DEOCLK→在 DSL_CLK_CLK_CLK_1→,→中运行时钟时、如"DSLCLK_DCLK_DEOCLK_CLK_CLK_CLK_CLK_1所示 TRM、我找到了 DSS 时钟树的说明、它指示 DS_CLK 也可以用作所有 LCD 的源时钟。但在当前时间、两个显示屏幕 是黑色的。在运行 DSS_dumclock.sh 后、我发现 LCD1 和 LCD2的时钟都是正确的、我发现 Weston 有两个 输出已 存在。为什么没有输出传输到屏幕?e2e.ti.com/.../LCD1_2600_LCD2_5F00_dss_5F00_dumclocks.txt

    静态结构 pll_data * dpI_get_pll_data (enum omap_channel 通道)

    OMAPDSS_VER_DRA72xx 案例:

     开关(通道){

     OMAP-DSS_CHANGE_LCD 案例:

     //案例 OMAP-DSS_CHANNEL LCD2:

     OMAP-DSS_CHANGE_LCD3案例:

     DSS_CTRL_PLL_SET_CONTRAL_mux (0、通道);

     返回 DSS_DPLL_GET_PLL_DATA (0);

     OMAP-DSS_CHANGE_LCD2案例:

     DSS_CTRL_PLL_SET_CONTRAL_mux (1、通道);

     返回 DSS_DPLL_GET_PLL_DATA (1);

     默认值:

     返回空;

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

    您好、Samgyung、

    下面是一组补丁、用于在 DRA72x 上同时启用 VOUT2和 VOUT1。 通过在 LCD 上放置 VOUT1和 VOUT2输出、这些仅在 DRA72x EVM 上进行了完整性测试。

    1、 review.omapzoom.org/37626 、omapdss:pll:修复编写 m6和 m7 divs 的问题
    2, review.omapzoom.org/37627 ,tmp:fix,用于启用 VOUT1 + VOUT2的 LCD1和 LCD2
    3、 review.omapzoom.org/38278 、hack:始终启用 M4和 M6分频器。
    4、 review.omapzoom.org/38279 、dra72:dts: enable vout2

    请使用这些作为参考并在内核树上进行必要的更改、以同时启用 VOUT2和 VOUT1。

    此致、
    Venkat

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

    您好、Venkat:

    非常感谢您详细地回答了我的问题、我的项目要求用 dra722显示两个 LCD。似乎只有 LCD1或只有 LCD1、一切都正常、但如果我希望同时显示 LCD1和 LCD2、则会出现两个显示屏幕意外的情况 无输出。在我参考您的代码后、问题仍然存在。

    在 drivers/video/fbdev/omap2/dss/dpi.c 中、我感到很困惑、

    静态结构 pll_data * dpI_get_pll_data (enum omap_channel 通道)

    /*……………………………………………………………… *

    OMAPDSS_VER_DRA72xx 案例:

     开关(通道){

     OMAP-DSS_CHANGE_LCD 案例:

     //案例 OMAP-DSS_CHANNEL LCD2:

     OMAP-DSS_CHANGE_LCD3案例:

      DSS_CTRL_PLL_SET_CONTRAL_MUX (0、通道);//IT 意味着 LCD1选择 DPLL_VIDEO1

      返回 DSS_DPLL_GET_PLL_DATA (0);

     OMAP-DSS_CHANGE_LCD2案例

      DSS_CTRL_PLL_SET_CONTRAL_mux (1、通道);

    /*IT 意味着 LCD2选择保留(CTRL_CORE_DSS_PLL_CONTROL),必须指出的是,如果我在这里将1更改为0,就像您的补丁代码一样,系统已损坏,但如果我在这里设置1,它会产生一些错误,如"[DRM:OMAP-CRTC_ERROR_IRQ]*ERROR* LCD:错误: 00004000"在 OMAP-CRTC.c 中,我已经将 OMAP-CRTC.c 与 EVM SDK 进行了比较,它几乎是一样的。*/

      返回 DSS_DPLL_GET_PLL_DATA (1);

     默认值:

      返回空;

    /*……………………………………………………………… *

    您能给我一些建议吗?非常感谢!

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

    您是否有 DRA72x EVM? 如果是、您能否先验证我在 EVM 上共享的4个补丁、以确保我们两个都具有相同的结果? 我能够使 VOUT1和 VOUT2同时工作。 我通过更改寄存器 DSS_CTRL (0x58000040)的[17:16]位来检查 VOUT2的输出、从而将 VOUT2的输出放置在 VOUT1上。 您可以使用 omapconf 读/写命令尝试执行此操作。

    您的显示屏测试用例是什么? 您是否正在运行任何应用程序或只是引导至提示?

    此致、
    Venkat
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Venkat
    很抱歉,我在过去两个月的工作时间太晚了,谢谢你们的出色工作,这是我的所有问题。现在两个 LCD 同时工作。非常感谢你们,希望你们能有一个美好的一天!