こんにちは、
Linux カーネルを 5.15.52 から 6.6 にアップグレードします。アップグレード後、パネルには小さなストライプのみが表示されます。デバイスツリーには変更を加えませんでした。panel-lvds の代わりに panel-simple ドライバを使用すると、ディスプレイが動作するようになりました。ドライバの変更について知っている人はいますか。
私は iMX8MP を使用しており、パネルは LVDS1 インターフェースにコネクテッドされています。
dmesgにメッセージは表示されるCAN、失敗の原因が分からない
dmesg | grep lvds
[ 0.077630] platform panel-lvds1: Fixed dependency cycle(s) with /ldb-display-controller/lvds-channel@1
[ 2.511277] imx8mp-ldb ldb-display-controller: Failed to create device link (0x180) with phy-lvds
[ 2.552129] imx8mp-ldb ldb-display-controller: Failed to create device link (0x180) with panel-lvds1よろしくお願いします。
これは古いThreadですが、私も同じ問題に直面しました。
私のCASE、これを修正するには de-active = <1>; プロパティを渡す必要がありました。
起動中に早期に障害が発生します。これはクロックの問題を示している可能性があります。ドライバによって読み取られたノード LDB 内のクロック名などを確認します。何を使っていますか?drm ディスプレイ サブシステムかフレーム バッファー (mxc) か?
これが私の設定です。間違いを見つけるかもしれない
/ {
backlight1: backlight1 {
compatible = "pwm-backlight";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lvds1>;
default-brightness-level = <6>;
pwms = <&pwm3 0 50000 0>;
power-supply = <®_lvds1_reg_en>;
enable-gpios = <&gpio2 20 GPIO_ACTIVE_LOW>;
brightness-levels= <0 4 8 16 32 64 128 255>;
status = "okay";
};
panel_lvds: panel-lvds1 {
compatible = "panel-lvds";
backlight = <&backlight1>;
width-mm = <218>;
height-mm = <137>;
data-mapping = "vesa-24";
status = "okay";
panel-timing {
clock-frequency = <71000000>;
hactive = <1280>;
hfront-porch = <30>;
hsync-len = <48>;
hback-porch = <80>;
vactive = <800>;
vfront-porch = <3>;
vsync-len = <6>;
vback-porch = <14>;
};
port {
panel1_in: endpoint {
remote-endpoint = <&lvds1_out>;
};
};
};
};
&lcdif2 {
status = "okay";
};
/* LVDS1 */
&ldb {
status = "okay";
lvds-channel@1 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
primary;
port@1 {
reg = <1>;
lvds1_out: endpoint {
remote-endpoint = <&panel1_in>;
};
};
};
};
&ldb_phy {
status = "okay";
};はい、dtbを確認しました。dtb を dts に戻します。新しいものも古いものも。違いはCANません。
私はDataModul 10.1インチTFT – WXGA – LVDSパネル(TX26D207VM0AAA)を使用しています。
こんにちは、
dtbを確認しましたか?変更されていますか?どの LVDS デバイスを扱っていますか?
よろしくお願いします。
@broodシェアしていただきありがとうございます。すでに同じアプローチを試しましたが、うまくいきませんでした。私もこのことについては全くの初心者です。以下に私のコードがあります。修正を手伝っていただけますか?
私のボード: 8MPLUSLPD4-EVK
こんにちは@brood
私も同じ問題を経験しています。DTS ファイルをチャットで共有していただけますか?非常に助かります。
@SanthoshRajavel 'lvds-channel@1' ノードの 'fsl,data-mapping' および 'fsl,data-width' プロパティが正しいかどうかを確認します。これらを自分の DTS でパネルで想定される特定の値に定義しましたが、これはドライバーで定義されているデフォルトとは異なります。
また、「pinctrl-0」および「pinctrl-names」プロパティ定義も確認します。バックライト ノード定義にこの定義がありますが、これは必要ないと思います。代わりに、このプロパティは「パネル」ノードで定義されます。
これらは単なる指針です。私はデバイス ツリー構成の専門家ではありませんが、これらのことは興味深い領域として浮かび上がりました。
こんにちは@SanthoshRajavelさん、
私の製品は独自のものであるため、DTS の内容を共有することはできません。ただし、上記の DTS からのこのスニペットは、必要な修正である 'de-active = <1>' プロパティを追加した場所を示しています。
/ {
backlight1: backlight1 {
compatible = "pwm-backlight";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lvds1>;
default-brightness-level = <6>;
pwms = <&pwm3 0 50000 0>;
power-supply = <®_lvds1_reg_en>;
enable-gpios = <&gpio2 20 GPIO_ACTIVE_LOW>;
brightness-levels= <0 4 8 16 32 64 128 255>;
status = "okay";
};
panel_lvds: panel-lvds1 {
compatible = "panel-lvds";
backlight = <&backlight1>;
width-mm = <218>;
height-mm = <137>;
data-mapping = "vesa-24";
status = "okay";
panel-timing {
clock-frequency = <71000000>;
hactive = <1280>;
hfront-porch = <30>;
hsync-len = <48>;
hback-porch = <80>;
vactive = <800>;
vfront-porch = <3>;
vsync-len = <6>;
vback-porch = <14>;
de-active = <1>;
};
port {
panel1_in: endpoint {
remote-endpoint = <&lvds1_out>;
};
};
};
};
&lcdif2 {
status = "okay";
};
/* LVDS1 */
&ldb {
status = "okay";
lvds-channel@1 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
primary;
port@1 {
reg = <1>;
lvds1_out: endpoint {
remote-endpoint = <&panel1_in>;
};
};
};
};
&ldb_phy {
status = "okay";
};@brood
HDMI を無効にしてセットアップを再試行しても、問題は解決しません。
@MicMoba
別途バックライト モジュールがあり、それを通じてバックライトを制御しています。私の場合、内蔵バックライトは必要ありません。
役に立つかも知れません。あなたの段階では、このパッチによってさらに次のことが実現したのを覚えています。
diff --git a/drivers/video/backlight/pwm_bl.cb/ドライバ/ビデオ/バックライト/pwm_bl.c
--- a/ドライバ/video/backlight/pwm_bl.c
+++ b/drivers/video/backlight/pwm_bl.c
@@ -462,7 +462,7 @@ 静的int pwm_backlight_initial_power_state(const struct pwm_bl_data *pb)
* 別のドライバがバックライトをオンにすると仮定します
* 適切な時間。したがって、無効になっている場合は、そのままにしておいてください。
*/
- アクティブを返しますか?FB_BLANK_UNBLANK: FB_BLANK_POWERDOWN;
+ FB_BLANK_UNBLANK を返します。
}
静的 int pwm_backlight_probe(構造体 platform_device *pdev)
HDMIパネルを使用していますか?HDMI ノードが有効になっているようですが、ピンマックスによっては競合が発生している可能性があります。
@broodバックライトの設定を更新し、コードは正常にビルドされました。LVDS インターフェイスは DRM に表示されるようになりましたが、ディスプレイには出力がありません。私は現在この段階で行き詰まっています。ご検討とご提案のために、以下にコードと表示の詳細を添付しました。
ディスプレイ: Innolux G070Y2-L01