Armadilloフォーラム

HDMIディスプレイから音声が出力されない

ce_fono

2019年9月10日 13時32分

本田と申します。

Armadilloに組み込んだアプリケーションで再生する音声が、HDMIディスプレイから出力されない場合があります。

環境:
Armadillo-840 量産ボード (1GB版) A8430-U00Z
Atmark-dist-20180330
linux-3.4-at26
Armadillo-840とHDMIディスプレイをHDMIケーブルで接続しています。
アプリケーション: Qtで作成し、rc.localから起動するよう設定しています。
音声再生方法: アプリケーションからQProcessでaplayを実行しています。

現象:
Armadilloを起動すると、ディスプレイにアプリケーションの画面は表示されるのですが、音声が出力されません。
ディスプレイのOSDにHDMI/DVIモードの表示機能があるのですが、現象発生時はDVIモードと表示されます。
OSDにHDMIモードと表示される場合はディスプレイから音声が出力されます。
発生頻度は20回に1回程度です。

linux-3.4-at26/drivers/video/sh_mobile_hdmi.c の sh_hdmi_update_vic()に以下のデバッグログを仕込んで採取した現象発生時の起動ログを添付致します。

  hdmi->preprogrammed_vic = 0;
  hdmi->aspect_ratio_16_9 = 0;
  if (hdmi->monitor_type == MONITOR_DVI)
  {
     dev_dbg(hdmi->dev, "\n*** monitor_type == MONITOR_DVI ***\n");
     dev_dbg(hdmi->dev, "refresh %u ", found->refresh );
     dev_dbg(hdmi->dev, "xres %u ", found->xres );
     dev_dbg(hdmi->dev, "yres %u ", found->yres );
     dev_dbg(hdmi->dev, "pixclock %u ", found->pixclock );
     dev_dbg(hdmi->dev, "left_margin %u ", found->left_margin );
     dev_dbg(hdmi->dev, "right_margin %u ", found->right_margin );
     dev_dbg(hdmi->dev, "upper_margin %u ", found->upper_margin );
     dev_dbg(hdmi->dev, "lower_margin %u ", found->lower_margin );
     dev_dbg(hdmi->dev, "hsync_len %u ", found->hsync_len );
     dev_dbg(hdmi->dev, "vsync_len %u ", found->vsync_len );
     dev_dbg(hdmi->dev, "sync %u ", found->sync );
     dev_dbg(hdmi->dev, "vmode %u ", found->vmode );
     dev_dbg(hdmi->dev, "flag %u \n", found->flag );
 
     return 0;
  }
ファイル ファイルの説明
hdmi_dvi_boot_20190910A.txt HDMI接続で音声が出なかった際の起動ログ
コメント

at_makoto.sato

2019年9月11日 13時33分

佐藤です。

お手数ですが、正常に HDMI として認識された場合のログもいただけますでしょうか。

ce_fono

2019年9月12日 9時09分

お世話になります。本田です。

正常時のログを送ります。

ファイル ファイルの説明
hdmi_normal_boot_20190912A.txt

at_makoto.sato

2019年9月13日 13時29分

佐藤です。

いただいたログを確認する限り、DVI として認識されてしまうケースでは EDID の値が正常時とは違っているように見えます。

以下の観点でも発生するかどうか確認できますでしょうか。
・別のHDMIディスプレイを A840 に接続しても発生するか
・該当ディスプレイを、別個体の A840 に接続しても発生するか

ce_fono

2019年9月13日 13時57分

> 佐藤です。
>
> いただいたログを確認する限り、DVI として認識されてしまうケースでは EDID の値が正常時とは違っているように見えます。
>
> 以下の観点でも発生するかどうか確認できますでしょうか。
> ・別のHDMIディスプレイを A840 に接続しても発生するか
> ・該当ディスプレイを、別個体の A840 に接続しても発生するか

本田です。

> ・該当ディスプレイを、別個体の A840 に接続しても発生するか

今回A8430-U00Zを14台購入しましたが、その内2台を開梱し2台とも発生を確認しています。

at_makoto.sato

2019年9月13日 14時08分

佐藤です。

こちらでも再現確認を行いたいと思いますのでもう一点ほど確認させてください。
A840を起動したまま HDMI の挿抜でも発生しますでしょうか。

ce_fono

2019年9月13日 14時16分

> 佐藤です。
>
> こちらでも再現確認を行いたいと思いますのでもう一点ほど確認させてください。
> A840を起動したまま HDMI の挿抜でも発生しますでしょうか。
>

本田です。

> A840を起動したまま HDMI の挿抜でも発生しますでしょうか。

画面、音声とも出力されるようになります。
今のところHDMI挿抜後の現象再現はありません。

at_makoto.sato

2019年9月13日 14時27分

佐藤です。

ありがとうございます。

現象発生時のA840の起動方法についても確認させてください。
reboot コマンドによる再起動でも発生しますでしょうか。
電源ケーブルの挿抜による起動でのみで発生する現象でしょうか。

ce_fono

2019年9月13日 14時33分

> 佐藤です。
>
> ありがとうございます。
>
> 現象発生時のA840の起動方法についても確認させてください。
> reboot コマンドによる再起動でも発生しますでしょうか。
> 電源ケーブルの挿抜による起動でのみで発生する現象でしょうか。

電源OFF→ONとリセットスイッチによる再起動のみ確認していました。
rebootコマンドは、これから確認します。

ce_fono

2019年9月13日 15時17分

> 佐藤です。
>
> ありがとうございます。
>
> 現象発生時のA840の起動方法についても確認させてください。
> reboot コマンドによる再起動でも発生しますでしょうか。
> 電源ケーブルの挿抜による起動でのみで発生する現象でしょうか。

rebootコマンドでも現象が発生しました。
接続したモニターはiiyama ProLite XB2472です。
正常時と現象発生時の起動ログを添付致します。

ファイル ファイルの説明
iiyama_ProLite_XB2472H_rebootcmd_normal_20190913A.log iiyama ProLite XB2472H rebootコマンド 正常時 起動ログ
iiyama_ProLite_XB2472H_rebootcmd_dvi_20190913A.log iiyama ProLite XB2472H rebootコマンド 現象発生時 起動ログ

at_makoto.sato

2019年9月13日 16時54分

佐藤です。

reboot コマンドでも再現する件、承知しました。

加えて、使用している HDMI ケーブルについても確認させてください。
・現象が発生する際に使用しているケーブルの型番と長さ
・ケーブルをいくつか変えてみた場合の再現性

ce_fono

2019年9月13日 17時10分

> 佐藤です。
>
> reboot コマンドでも再現する件、承知しました。
>
> 加えて、使用している HDMI ケーブルについても確認させてください。
> ・現象が発生する際に使用しているケーブルの型番と長さ
> ・ケーブルをいくつか変えてみた場合の再現性
>

本田です。

以下の2種類のケーブルを使用しています。
1) ELECOM DH-HD14E 5.0m
2) TFTEC JAPAN 2.0m HDMI Ver1.4の表記があります。型番は失念しました。
どちらも同じ頻度で現象が発生しています。

at_makoto.sato

2019年9月18日 9時36分

佐藤です。

こちらでも現象再現することを確認しました。
原因解析を進めます。

ce_fono

2019年10月5日 8時25分

> 佐藤です。
>
> こちらでも現象再現することを確認しました。
> 原因解析を進めます。

本田です。

その後、進展ありましたでしょうか。
情報があれば、お知らせ下さい。

at_makoto.sato

2019年10月7日 15時56分

佐藤です。

ご報告が遅くなり大変申し訳ありません。
頂いたログから正常な場合と異常な場合で読み出した EDID に差があり、このため DVI として認識されてしまうことがわかりました。
このことから、現在は EDID 読み出し処理部分を中心に解析を勧めております。

ce_fono

2019年11月8日 17時31分

本田です。

10/31にArmadillo-840の製品アップデートが行われましたが、本件は対応済でしょうか。
接続するHDMIモニターの機種を限定すれば解決するのでしょうか。

以上、よろしくお願いします。

at_makoto.sato

2019年11月11日 14時29分

佐藤です。

ご報告が遅くなり大変申し訳ありません。
> 10/31にArmadillo-840の製品アップデートが行われましたが、本件は対応済でしょうか。
こちらに対する対応は入っておりません。
https://armadillo.atmark-techno.com/news/20191031/software-update-a800

> 接続するHDMIモニターの機種を限定すれば解決するのでしょうか。
こちらで動作確認した限りでは、IODATA製 EX-LD2381DB では発生しませんでした。

ce_fono

2019年11月29日 20時52分

本件、解析状況はいかがでしょうか?。
EDID読出しが異常とのことですが、ディスプレイモードを固定にしてしまうなどの対策をすれば
この本題は回避されるのでしょうか?。
※もっともディスプレイの汎用性はなくなりますが、それを承知でのハナシです。

> 佐藤です。
>
> ご報告が遅くなり大変申し訳ありません。
> 頂いたログから正常な場合と異常な場合で読み出した EDID に差があり、このため DVI として認識されてしまうことがわかりました。
> このことから、現在は EDID 読み出し処理部分を中心に解析を勧めております。

at_makoto.sato

2019年12月3日 11時03分

佐藤です。

> EDID読出しが異常とのことですが、ディスプレイモードを固定にしてしまうなどの対策をすれば
> この本題は回避されるのでしょうか?。
> ※もっともディスプレイの汎用性はなくなりますが、それを承知でのハナシです。
正常に認識されたときの EDID をダンプし、EDID を read している処理で強制的に正常な EDID を返すようにするとよいかもしれません。

ce_fono

2019年12月13日 14時03分

本田です。

採取したログを見直したところ、DVIモードになっている場合、EDID読み出しの2回目でCEA861 Extensionが読み出されるはすが、BASE EDIDと全く同じ内容が読み出されている事が分かりました。今までに報告した全てのディスプレイで同じ現象が起きています。
EDIDのI2C読み出し開始アドレスがリセットされる場合があるのではないでしょうか。

ce_fono

2019年9月13日 13時39分

本田です。

他のモニターやTVでも現象が再現しましたのでログを送ります。
1)iiyama ProLite XB2472H
2) Panasonic TH-42C300

よろしくお願いします。

ファイル ファイルの説明
iiyama_ProLite_XB2472H_hdmi_normal_boot_20190912A.log iiyama ProLite XB2472H 正常時 起動ログ
iiyama_ProLite_XB2472H_hdmi_dvi_boot_20190912A.log iiyama ProLite XB2472H 現象発生時 起動ログ
Panasonic_TH-42C300_hdmi_normal_boot_20190912A.log Panasonic TH-42C300 正常時 起動ログ
Panasonic_TH-42C300_hdmi_dvi_boot_20190912A.log Panasonic TH-42C300 現象発生時 起動ログ