Kernel 5.x, LVDS, rockchipdrm problem
Hello! Has anyone tried to run the 5.x kernel with lvds panel support? I can't get lvds to work ( I have enabled lvds in DT, but when rockchipdrm module is loading I get this messages:[ 29.355853] rockchip-vop ff930000.vop: Adding to iommu group 0
[ 29.362659] rockchip-vop ff940000.vop: Adding to iommu group 1
[ 29.371731] rockchip-drm display-subsystem: bound ff930000.vop (ops vop_component_ops )
[ 29.382206] rockchip-drm display-subsystem: bound ff940000.vop (ops vop_component_ops )
[ 29.392482] rockchip-lvds ff96c000.lvds: ] *ERROR* failed to find panel and bridge node
[ 29.405058] rockchip-drm display-subsystem: failed to bind ff96c000.lvds (ops rockchip_lvds_component_ops ): -517
[ 29.417924] rockchip-drm display-subsystem: master bind failed: -517
DTS:
/ {
...
lvds_panel: lvds-panel {
compatible = "simple-panel";
enable-gpios = <&gpio7 3 GPIO_ACTIVE_HIGH>;
bus-format = <0x1009>;
rockchip,data-mapping = "vesa";
rockchip,data-width = <24>;
rockchip,output = "lvds";
status = "okay";
display-timings {
native-mode = <&timing0>;
timing0: timing0 {
clock-frequency = <85000000>;
hactive = <1280>;
vactive = <480>;
hback-porch = <24>;
hfront-porch = <368>;
vback-porch = <9>;
vfront-porch = <33>;
hsync-len = <16>;
vsync-len = <3>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <0>;
pixelclk-active = <0>;
};
};
ports {
port {
panel_in_lvds: endpoint {
remote-endpoint = <&lvds_out_panel>;
};
};
};
};
...
};
&lvds {
rockchip,output = "lvds";
rockchip,panel = <&lvds_panel>;
status = "okay";
ports {
lvds_out: port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
lvds_out_panel: endpoint@0 {
reg = <0>;
remote-endpoint = <&panel_in_lvds>;
};
};
};
};
可能原因:
1.dts配置节点里面compatible = "panel-simple";这个没有起到作用;
2.由于enable-gpios 配置错误或者被其他节点占用;
3.没有配置背光节点。 举例(平台RK3326+Linux 4.4):
backlight: backlight {
compatible = "pwm-backlight";
pwms = <&pwm1 0 25000 0>;
brightness-levels = <
0 1 2 3 4 5 6 7
(省略N行)
248 249 250 251 252 253 254 255>;
default-brightness-level = <200>;
enable-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>;
};
panel {
status = "okay";
compatible = "simple-panel";
backlight = <&backlight>;
power-supply = <&vcc_3v0>;
init-delay-ms = <20>;
enable-delay-ms = <20>;
prepare-delay-ms = <20>;
unprepare-delay-ms = <20>;
disable-delay-ms = <20>;
bus-format = <MEDIA_BUS_FMT_RGB888_1X7X4_SPWG>;
enable-gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_HIGH>;
standby-gpios = <&gpio3 RK_PB6 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
width-mm = <217>;
height-mm = <136>;
rockchip,output = "lvds";
display-timings {
native-mode = <&timing0>;
timing0: timing0 {
clock-frequency = <46000000>;
hactive = <1024>;
vactive = <600>;
hback-porch = <90>;
hfront-porch = <160>;
vback-porch = <13>;
vfront-porch = <12>;
hsync-len = <70>;
vsync-len = <10>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <0>;
pixelclk-active = <0>;
};
};
port {
panel_in_lvds: endpoint {
remote-endpoint = <&lvds_out_panel>;
};
};
};
This issue occurs equally with calls such as clEnqueueMapBuffer() or clEnqueueReadBuffer(), even when using images clEnqueueMapImage() or clEnqueueReadImage()...
A comprehensive e-learning platform offering insights into academic courses, career options, and exam details. At Shikshade, we aim to assist students in making informed decisions about their education and future by providing valuable content on colleges, exams, and diverse educational pathway.
thanks for the info It seems like the issue is with the panel or bridge node not being found when the `rockchipdrm` module loads. Double-check the `lvds_panel` node and ensure the `compatible` property, `remote-endpoint` links, and other references in the Device Tree are correct. Confirm the panel driver for "simple-panel" is enabled in your kernel configuration. Rebuild and re-test. It seems you are facing an issue with Kernel 5.x and the rockchipdrm driver related to LVDS. Have you tried checking the configuration settings or ensuring the driver is compatible with your specific hardware?
Page:
[1]