1922948_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

1922948_ja-JP

1922948_ja-JP

カーネル 6.6 にアップグレードした後、panel-lvds ドライバが動作しなくなりました

こんにちは、

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

よろしくお願いします。


i.MX 8M | i.MX 8M ミニ | i.MX 8M ナノLinuxYocto ProjectRe: panel-lvds driver does not work anymore after upgrade to kernel 6.6私も 1 週間以上同じ問題に悩まされてきましたが、デバイス ツリーのパネルタイミング定義にこのプロパティ ('de-active = <1>;') を追加することで、ようやく問題が解決しました。ディスプレイが動作するようになりました。ありがとうございます!もし1つ以上のKudoをCANなら Re: panel-lvds driver does not work anymore after upgrade to kernel 6.6

@MicMoba


これは古いThreadですが、私も同じ問題に直面しました。


私のCASE、これを修正するには de-active = <1>; プロパティを渡す必要がありました。



Re: panel-lvds driver does not work anymore after upgrade to kernel 6.6

起動中に早期に障害が発生します。これはクロックの問題を示している可能性があります。ドライバによって読み取られたノード LDB 内のクロック名などを確認します。何を使っていますか?drm ディスプレイ サブシステムかフレーム バッファー (mxc) か?

Re: panel-lvds driver does not work anymore after upgrade to kernel 6.6

これが私の設定です。間違いを見つけるかもしれない


/ {
    backlight1: backlight1 {
        compatible = "pwm-backlight";
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_lvds1>;
        default-brightness-level = <6>;
        pwms = <&pwm3 0 50000 0>;
        power-supply = <&reg_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";
};

Re: panel-lvds driver does not work anymore after upgrade to kernel 6.6

はい、dtbを確認しました。dtb を dts に戻します。新しいものも古いものも。違いはCANません。

私はDataModul 10.1インチTFT – WXGA – LVDSパネル(TX26D207VM0AAA)を使用しています。

Re: panel-lvds driver does not work anymore after upgrade to kernel 6.6

こんにちは、

dtbを確認しましたか?変更されていますか?どの LVDS デバイスを扱っていますか?

よろしくお願いします。

Re: panel-lvds driver does not work anymore after upgrade to kernel 6.6

@brood

@broodシェアしていただきありがとうございます。すでに同じアプローチを試しましたが、うまくいきませんでした。私もこのことについては全くの初心者です。以下に私のコードがあります。修正を手伝っていただけますか?
私のボード: 8MPLUSLPD4-EVK


#include "imx8mp-evk.dts"
 
/ {
バックライト1: バックライト1 {
互換性 = "pwm-backlight";
pinctrl-names = "デフォルト";
ピンコントロール0 = <&ピンコントロール_lvds1>;
デフォルトの明るさレベル = <6>;
pwms = <&pwm3 0 50000 0>;
電源 = <&reg_lvds1_reg_en>;
enable-gpios = <&gpio2 20 GPIO_ACTIVE_LOW>;
明るさレベル= <0 4 8 16 32 64 128 255>;
ステータス = "正常";
};
 
パネルLVDS: パネルLVDS1 {
互換性 = "パネルLVDS";
バックライト = <&backlight1>;
        
幅-mm = <218>;
高さ-mm = <137>;
 
データマッピング = "vesa-24";
ステータス = "正常";
        
パネルタイミング {
クロック周波数 = <71000000>;
hactive = <1280>;
hフロントポーチ = <30>;
hsync-len = <48>;
hback-porch = <80>;
vアクティブ = <800>;
vfront-porch = <3>;
vsync-len = <6>;
vback-porch = <14>;
非アクティブ = <1>;
};
        
ポート {
panel1_in: エンドポイント {
リモートエンドポイント = <&lvds1_out>;
};
};
};
};
&lcdif2 {
status = "オーケー";
};
/* LVDS1 */
&ldb {
ステータス = "正常";
 
lvds-チャネル@1 {
#アドレスセル = <1>;
#セルサイズ = <0>;
ステータス = "正常";
主要な;
ポート@1 {
レジスタ = <1>;
lvds1_out: エンドポイント {
リモートエンドポイント = <&panel1_in>;
};
};
};
};
 
&ldb_phy {
ステータス = "正常";
};
Re: panel-lvds driver does not work anymore after upgrade to kernel 6.6

こんにちは@brood


私も同じ問題を経験しています。DTS ファイルをチャットで共有していただけますか?非常に助かります。

Re: panel-lvds driver does not work anymore after upgrade to kernel 6.6

@SanthoshRajavel 'lvds-channel@1' ノードの 'fsl,data-mapping' および 'fsl,data-width' プロパティが正しいかどうかを確認します。これらを自分の DTS でパネルで想定される特定の値に定義しましたが、これはドライバーで定義されているデフォルトとは異なります。

また、「pinctrl-0」および「pinctrl-names」プロパティ定義も確認します。バックライト ノード定義にこの定義がありますが、これは必要ないと思います。代わりに、このプロパティは「パネル」ノードで定義されます。

これらは単なる指針です。私はデバイス ツリー構成の専門家ではありませんが、これらのことは興味深い領域として浮かび上がりました。

Re: panel-lvds driver does not work anymore after upgrade to kernel 6.6

こんにちは@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 = <&reg_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";
};


Re: panel-lvds driver does not work anymore after upgrade to kernel 6.6

@brood
HDMI を無効にしてセットアップを再試行しても、問題は解決しません。

@MicMoba
別途バックライト モジュールがあり、それを通じてバックライトを制御しています。私の場合、内蔵バックライトは必要ありません。

Re: panel-lvds driver does not work anymore after upgrade to kernel 6.6

役に立つかも知れません。あなたの段階では、このパッチによってさらに次のことが実現したのを覚えています。

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)



Re: panel-lvds driver does not work anymore after upgrade to kernel 6.6

HDMIパネルを使用していますか?HDMI ノードが有効になっているようですが、ピンマックスによっては競合が発生している可能性があります。

Re: panel-lvds driver does not work anymore after upgrade to kernel 6.6

@broodバックライトの設定を更新し、コードは正常にビルドされました。LVDS インターフェイスは DRM に表示されるようになりましたが、ディスプレイには出力がありません。私は現在この段階で行き詰まっています。ご検討とご提案のために、以下にコードと表示の詳細を添付しました。

// SPDXライセンス識別子: GPL-2.0+
/*
* 著作権 2020 NXP
*/
 
#include "imx8mp-evk.dts"
 
/
{
   
 
パネルLVDS: パネルLVDS1 {
互換性 = "パネルLVDS";
バックライト = <&lvds_backlight>;
        
幅-mm = <165>;
高さ-mm = <104>;
 
データマッピング = "vesa-24";
ステータス = "正常";
        
パネルタイミング {
クロック周波数 = <29760000>; /* 29.76 MHz */
 
/* 水平 */
hactive = <800>;
hフロントポーチ = <24>;
hsync-len = <72>;
hback-porch = <96>;
      
/* 垂直 */
vアクティブ = <480>;
vfront-porch = <3>;
vsync-len = <7>;
vback-porch = <10>;
      
/* 極性 */
hsync-アクティブ = <0>;
vsync-active = <0>;
非アクティブ = <1>;
ピクセルクロックアクティブ = <0>;
};
        
ポート {
panel1_in: エンドポイント {
リモートエンドポイント = <&lvds1_out>;
};
};
};
};
 
&hdmi {
ステータス = "正常";
};
 
&lcdif2 {
status = "オーケー";
};
 
/* LVDS1 */
&ldb {
ステータス = "正常";
 
lvds-チャネル@1 {
#アドレスセル = <1>;
#セルサイズ = <0>;
ステータス = "正常";
主要な;
ポート@1 {
レジスタ = <1>;
lvds1_out: エンドポイント {
リモートエンドポイント = <&panel1_in>;
};
};
};
};
 
&ldb_phy {
ステータス = "正常";
};


ディスプレイ: Innolux G070Y2-L01

Tags (1)
No ratings
Version history
Last update:
‎02-26-2026 03:45 AM
Updated by: