インテルのみ表示可能 — GUID: edv1477299505041
Ixiasoft
インテルのみ表示可能 — GUID: edv1477299505041
Ixiasoft
4.3.8. DisplayPort MST ソース・ユーザー・アプリケーション
MST ソースをインスタンス化する場合、btc_dptxll_syslib ライブラリーのリンク層レベル API 関数を呼び出すために、最上位のソフトウェア層でユーザー・アプリケーションを作成する必要があります。
btc_dptxll_syslib ライブラリーは、Link Layer のほとんどの機能を処理します。ライブラリーは、周辺 SST 操作を行い、その結果が MST操作に反映されます。 btc_dptxll_syslib ライブラリーは、btc_dptx_syslib ライブラリーが提供するサービルを使用します。
単一の API (btc_dptxll_mst_get_device_port()) を呼び出すことで、ユーザー・アプリケーションを使用して MST ディスカバリー・トポロジーを実行できます。 btc_dptxll_syslib ライブラリーは、 btc_dptx_mst_link_address_req()、btc_dptx_mst_enum_path_req()、および btc_dptx_mst_remote_i2c_rd_req() などの btc_dptx_syslib MST メッセージング関数を呼び出すことで、 この関数を実装します。
- HPD 信号が 1 になるまで待機します。
- 接続されたシンクの DPCD バージョンと MST 機能を読み取ります。
- シンクが MST 対応でない場合は、シングルストリーム (SST) 接続のみが可能です。この場合、SST 接続はほとんど自動的に処理されるため、これ以上のアクションは必要ありません。
- シンクが MST をサポートしている場合は、この手順を省略します。
- 接続されたシンクを介して到達可能なすべてのデバイスポートを収集することで、MST トポロジー検出を実行します。btc_dptxll_mst_get_device_ports() を、結果が有効になるかエラーが返されるまで呼び出します。戻り値が成功した場合、次の手順に進みます。
- デバイスポートのリストを参照し、適切なデバイス出力ポートを探します。この手順は、suitable device port の定義に大きく依存します。アプリケーションによっては、ポートがサポートする所定の解像度を確認するために、デバイス・ポートの EDID の読み取りが必要になることがあります (btc_dptxll_mst_edid_read_req() および btc_dptxll_mst_edid_read_rep() API 関数を使用します)。適切なデバイス出力ポートが見つかったら、次の手順に進みます。
- DisplayPort ソースと接続されたシンク間のメインリンク接続がまだ有効かどうかを確認します。
- リンクがダウンしている場合は、新しい Link Training を実行します。
- リンクがアップしている場合は、次の手順に進みます。
注: メインリンク接続がダウンしている場合でも以前の手順を実行できますが、以下の手順では接続がアップである必要があります。ソースが利用可能なデータ帯域幅を計算し、割り当てを行うには、接続が必要です。 - btc_dptxll_stream_set_pixel_rate() を呼び出して、目的のストリームのビデオピクセルレートを設定します。
- btc_dptxll_stream_calc_VCP_size() を呼び出して、ストリームに必要な VCP サイズを計算します。
- 必要な VCP サイズ (ストリームの伝送に必要なタイムスロット数) が、目的のデバイス出力ポートに伝送可能かどうかを確認した後、次の手順に進みます。
- btc_dptxll_stream_allocate_req() を呼び出して、目的のデバイス出力ポートに転送するストリームデータを割り当てます。
- ソースが割り当てを行うのを待ちます。割り当てが完了するかエラーが返されるまで、btc_dptxll_stream_allocate_rep() を呼び出します。割り当てに成功した場合は、次の手順に進みます。
- デバイス出力ポートへのストリームの割り当てが完了します。これで、MST データ・トランスポートがアクティブになります。
- 変更されたトポロジーに従って、受信した CONNECTION_STATUS_NOTIFY メッセージを処理します。