Tool/software:
Hi Ti !
my sdk version is 11.01.05.03 . When I use dpi and lvds separately, I can play videos via these two interfaces , However, if I enable both interfacesIf I both interfaces synchronously ,
some error will occur.
[ 93.313985] panel_simple: loading out-of-tree module taints kernel. [ 93.323512] panel-simple bus@f0000:max9275: supply power not found, using dummy regulator [ 93.331967] panel-simple bus@f0000:max9275: Ignore invalid data-mapping property [ 93.340897] panel-simple bus@f0000:max9277: supply power not found, using dummy regulator root@am62pxx-evm:/test/new_sdk_file# [ 93.353752] tidss 30200000.dss: tidss_dispc_modeset_init: Panel bus@f0000:max9275 has incompatible connector type for vp1 (7 != 17) [ 93.368689] tidss 30200000.dss: failed to init DRM/KMS (-22) [ 93.375067] tidss 30200000.dss: probe with driver tidss failed with error -22
My modifications are as follows
DTS
&max9275_gmsl { status = "okay"; port { max9275_in: endpoint { remote-endpoint = <&dss0_dpi1_out>; }; }; }; &max9277_gmsl { status = "okay"; ports { port@0 { lcd_in0: endpoint { remote-endpoint = <&oldi0_dss0_out>; }; }; }; }; &dss0 { bootph-all; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&main_dpi_pins_default>; }; &oldi0_dss0 { status = "okay"; }; &oldi0_dss0_ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; oldi0_dss0_in: endpoint { remote-endpoint = <&dss0_dpi0_out0>; }; }; port@1 { reg = <1>; oldi0_dss0_out: endpoint { remote-endpoint = <&lcd_in0>; }; }; }; &dss0_ports { #address-cells = <1>; #size-cells = <0>; /* VP1: Output to OLDI */ port@0 { #address-cells = <1>; #size-cells = <0>; reg = <0>; dss0_dpi0_out0: endpoint@0 { reg = <0>; remote-endpoint = <&oldi0_dss0_in>; }; }; /* DSS0-VP2: DPI/HDMI Output */ port@1 { reg = <1>; dss0_dpi1_out: endpoint { remote-endpoint = <&max9275_in>; }; }; };
panel-simple.c
static struct display_timing gmsl_max9277_mode = { .pixelclock = {26160000,26160000,26160000}, .hactive = {256,256,256}, .hfront_porch = {403,403,403}, .hback_porch = {45,45,45}, .hsync_len = {96,96,96}, .vactive = {64,64,64}, .vfront_porch = {415,415,415}, .vback_porch = {3,3,3}, .vsync_len = {63,63,63}, }; static struct panel_desc gmsl_max9277 = { .timings = &gmsl_max9277_mode, .num_timings = 1, .bpc = 8, .size = { .width = 800, .height = 545, }, .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, // .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE, .bus_flags = DRM_BUS_FLAG_DE_HIGH, .connector_type = DRM_MODE_CONNECTOR_LVDS, }; static struct display_timing gmsl_max9275_mode = { .pixelclock = {26160000,26160000,26160000}, .hactive = {256,256,256}, .hfront_porch = {403,403,403}, .hback_porch = {45,45,45}, .hsync_len = {96,96,96}, .vactive = {64,64,64}, .vfront_porch = {415,415,415}, .vback_porch = {3,3,3}, .vsync_len = {63,63,63}, }; static struct panel_desc gmsl_max9275 = { .timings = &gmsl_max9275_mode, .num_timings = 1, .bpc = 8, .size = { .width = 800, .height = 545, }, .bus_format = MEDIA_BUS_FMT_RGB888_1X24, // .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE, .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE, .connector_type = DRM_MODE_CONNECTOR_DPI, }; { .compatible = "maxim,max9275", .data = &gmsl_max9277, }, { .compatible = "maxim,max9277", .data = &gmsl_max9275, },