Need to Connect 2 X HDMI on TX2 R32.1

Hi NV people

i followed nv fae step ,i can use two hdmi monitors on R28.x version.
https://devtalk.nvidia.com/default/topic/1004141/jetson-tx2/need-to-connect-2-x-hdmi-/post/5170965/#5170965

when i use same method to modify on R32.1 , second hdmi port can’t ouput.

could you give me some modify suggestion??

nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ dmesg | grep "15220000.nvdisplay"
[    0.460090] iommu: Adding device 15220000.nvdisplay to group 33
[    0.460205] platform 15220000.nvdisplay: OF IOVA linear map 0x9607b000 size (0x800000)
[    0.460249] platform 15220000.nvdisplay: OF IOVA linear map 0x96078000 size (0x2008)
[    4.630469] tegradc 15220000.nvdisplay: disp1 connected to head2->/host1x/sor
[    4.641646] tegradc 15220000.nvdisplay: DT parsed successfully
[    4.647515] tegradc 15220000.nvdisplay: Display dc.ffffff800bbd0000 registered with id=1
[    4.655875] tegradc 15220000.nvdisplay: vblank syncpt # 11 for dc 2
[    4.662161] tegradc 15220000.nvdisplay: vpulse3 syncpt # 12 for dc 2
[    4.671483] tegradc 15220000.nvdisplay: hdmi: invalid prod list prod_list_hdmi_board
[    4.679260] tegradc 15220000.nvdisplay: hdmi: tegra_hdmi_tmds_range_read(bd) failed
[    4.698803] tegradc 15220000.nvdisplay: probed
[    4.712520] tegradc 15220000.nvdisplay: fb registered
[   64.738975] tegradc 15220000.nvdisplay: blank - powerdown
[   64.739622] tegradc 15220000.nvdisplay: unblank
[   64.752686] tegradc 15220000.nvdisplay: hdmi: tmds rate:297000K prod-setting:prod_c_hdmi_223m_300m
[   64.754192] tegradc 15220000.nvdisplay: hdmi: get RGB quant from EDID.
[   64.754206] tegradc 15220000.nvdisplay: hdmi: get YCC quant from EDID.
[   64.784162] tegradc 15220000.nvdisplay: hdmi: plugged
[   82.259588] tegradc 15220000.nvdisplay: blank - powerdown
[   82.259651] tegradc 15220000.nvdisplay: hdmi: unplugged
[  115.115608] tegradc 15220000.nvdisplay: blank - powerdown
[  115.115637] tegradc 15220000.nvdisplay: unblank
[  115.121056] tegradc 15220000.nvdisplay: hdmi: tmds rate:106500K prod-setting:prod_c_hdmi_54m_111m
[  115.122578] tegradc 15220000.nvdisplay: hdmi: get RGB quant from EDID.
[  115.122598] tegradc 15220000.nvdisplay: hdmi: get YCC quant from EDID.
[  115.139380] tegradc 15220000.nvdisplay: hdmi: plugged
[  138.138696] tegradc 15220000.nvdisplay: blank - powerdown
[  138.138775] tegradc 15220000.nvdisplay: hdmi: unplugged
[  142.444525] tegradc 15220000.nvdisplay: blank - powerdown
[  142.444559] tegradc 15220000.nvdisplay: unblank
[  142.456836] tegradc 15220000.nvdisplay: hdmi: tmds rate:297000K prod-setting:prod_c_hdmi_223m_300m
[  142.458352] tegradc 15220000.nvdisplay: hdmi: get RGB quant from EDID.
[  142.458371] tegradc 15220000.nvdisplay: hdmi: get YCC quant from EDID.
[  142.468223] tegradc 15220000.nvdisplay: hdmi: plugged
nvidia@nvidia-desktop:~$

The dtb for rel-28 based kernel is no longer working for rel-32, but the logic is basically the same.

I think you could refer to tegra186-quill-p3310-1000-c03-00-dsi-dp.dts and change the dp-display to hdmi-display under nvdisplay@15210000 and @15220000.

Please share the dts with us if it is still not working.

Hi WayneWWW

but tx2 only two sor node.
so i need try sor0 on nvdisplay@15210000 and nvdispla@15220000 to test, right??

Yes, you will need to set sor0 under first nvdisplay and sor1 under the second one.

Hi WayneWWW

our carried board have two hdmi output.
one is original hdmi , other one is dp to hdmi.

in R28.2, after modify the dts i can use two monitor.
but now i have some error.

i modify the tegra186-quill-p3310-1000-a00-00-base.dts

host1x {
                sor {
                        status = "okay";
                        dp-display {
                                status = "okay";
                        };
                        hdmi-display {
                                status = "disabled";
                        };

                        panel-s-edp-uhdtv-15-6 {
                                smartdimmer {
                                        status = "disabled";
                                };
                        };
                };

                dpaux@155c0000 {
                        status = "okay";
                };

                sor1 {
                        status = "okay";
                        nvidia,active-panel = <&sor1_hdmi_display>;
                        hdmi-display {
                                status = "okay";
                        };
                        dp-display {
                                status = "disabled";
                        };
                };

                nvdisplay@15200000 {
                        status = "disabled";
                };

                nvdisplay@15220000 {
                        status = "okay";

when i plug and unplug the dp-to-hdmi port i will see the error message.
nvidia@nvidia-desktop:~ nvidia@nvidia-desktop:~ [ 43.294204] tegradc 15220000.nvdisplay: dp: aux write got error (0x10000100)
[ 43.301641] tegradc 15220000.nvdisplay: dp: Failed to write DPCD data. CMD 0x600, Status 0x10000100
[ 43.315626] tegradc 15220000.nvdisplay: dp: aux write got error (0x10000100)
[ 43.322745] tegradc 15220000.nvdisplay: dp: Failed to write DPCD data. CMD 0x600, Status 0x10000100
[ 43.336912] tegradc 15220000.nvdisplay: dp: aux write got error (0x10000100)
[ 43.343997] tegradc 15220000.nvdisplay: dp: Failed to write DPCD data. CMD 0x600, Status 0x10000100
[ 43.358162] tegradc 15220000.nvdisplay: dp: aux write got error (0x10000100)
[ 43.365267] tegradc 15220000.nvdisplay: dp: Failed to write DPCD data. CMD 0x600, Status 0x10000100
[ 43.374360] tegradc 15220000.nvdisplay: dp: failed to exit panel power save mode (0xfffffff2)
[ 43.382929] hpd: edid read prepare failed
nvidia@nvidia-desktop:~$

how to fix this issue??

Sorry that I don’t quite understand your case here. Are you on rel-28 or rel-32 now?

Why there is a “dp-to-hdmi” port? Why not just “dp” or “hdmi” port?? Do you mean you connect a converter? Please note that we don’t guarantee the functionality of any converter.

If your port can work with native interface (dp port <-> dp monitor/ hdmi port <-> hdmi monitor) but cannot work with converter, I would suggest you to try different cable.

Hi WayneWWW

thanks for your reply.
i am sorry about my description.

i can work two hdmi monitor on R28.2 , and now i want to enable this feature on R32.1.

one monitor is original hdmi , other one is from dp0 pin and direct to connect the hdmi connector.

i think it can also work on r32.1. am i right??

Hi etta,

If you are using 2 HDMI, then the problem is why there is a DP hpd driver log for 15220000.nvdisplay.

Could you check your nvdisplay->sor assignment and then check if you are using dp-display or hdmi-display under that sor?

Hi WayneWWW

thanks for your reply.
in #5 i use dp-display node in sor.

and now i change to hdmi-display.
please see my modify from tegra186-quill-p3310-1000-a00-00-base.dts

when i connect second hdmi port the error message is

nvidia@nvidia-desktop:~$ dmesg | grep "tegradc"
[    0.835954] tegradccommon 15200000.dc_common: host1x channel mapped
[    0.835996] tegradccommon 15200000.dc_common: dc_common syncpt # 1 allocated
[    0.836052] tegradccommon 15200000.dc_common: dma mapping done
[    0.837759] tegradc 15210000.nvdisplay: disp0 connected to head1->/host1x/sor1
[    0.838109] tegradc 15210000.nvdisplay: DT parsed successfully
[    0.838198] tegradc 15210000.nvdisplay: Display dc.ffffff800b3e0000 registered with id=0
[    0.846201] tegradc 15210000.nvdisplay: vblank syncpt # 8 for dc 1
[    0.846229] tegradc 15210000.nvdisplay: vpulse3 syncpt # 9 for dc 1
[    0.854865] tegradc 15210000.nvdisplay: hdmi: invalid prod list prod_list_hdmi_board
[    0.854905] tegradc 15210000.nvdisplay: hdmi: tegra_hdmi_tmds_range_read(bd) failed
[    0.862085] tegradc 15210000.nvdisplay: probed
[    4.162585] tegradc 15210000.nvdisplay: fb registered
[    4.176861] tegradc 15220000.nvdisplay: disp1 connected to head2->/host1x/sor
[    5.204316] tegradc 15220000.nvdisplay: tegra_dc_parse_panel_ops: panel: /host1x/sor/dp-display is not active
[    5.214234] tegradc 15220000.nvdisplay: err:-19 parsing panel_ops
[   10.438382] tegradc 15210000.nvdisplay: blank - powerdown
nvidia@nvidia-desktop:~$

i change sor to hdmi-display but system always use dp-display.
how can i modify it??

There is also a node called “nvidia,active-panel”. Could you check it too?

I think you should just copy the full sor setting from the default HDMI port. The way to check is to compare the runtime device tree on device or just convert the dtb back to dts and check it.

Hi WayneWWW

here is my dts for sor and sor1

sor {
			compatible = "nvidia,tegra186-sor";
			reg = <0x0 0x15540000 0x0 0x40000>;
			nvidia,sor-ctrlnum = <0x0>;
			nvidia,dpaux = <0x97>;
			nvidia,xbar-ctrl = <0x0 0x1 0x2 0x3 0x4>;
			clocks = <0x10 0x61 0x10 0x27 0x10 0x267 0x10 0x128 0x10 0x20b 0x10 0x10d 0x10 0x88 0x10 0x66 0x10 0x58 0x10 0x62>;
			clock-names = "sor0_ref", "sor_safe", "sor0_pad_clkout", "sor0", "pll_dp", "pllp_out0", "maud", "hda", "hda2codec_2x", "hda2hdmi";
			resets = <0x10 0x27 0x10 0xf 0x10 0x10 0x10 0x11>;
			reset-names = "sor0", "hda_rst", "hda2codec_2x_rst", "hda2hdmi_rst";
			status = "okay";
			nvidia,ddc-i2c-bus = <0x98>;
			nvidia,active-panel = <0x99>;
			nvidia,hpd-gpio = <0x1b 0x78 0x1>;
			linux,phandle = <0x94>;
			phandle = <0x94>;

			hdmi-display {
				compatible = "hdmi,display";
				status = "okay";
				generic-infoframe-type = <0x87>;
				linux,phandle = <0x1d4>;
				phandle = <0x1d4>;

				disp-default-out {
					nvidia,out-type = <0x1>;
					nvidia,out-flags = <0x2>;
					nvidia,out-parent-clk = "plld3";
					nvidia,out-align = <0x0>;
					nvidia,out-order = <0x0>;
					nvidia,out-xres = <0x1000>;
					nvidia,out-yres = <0x870>;
					nvidia,out-hdcp-policy = <0x2>;
				};
			};

			dp-display {
				compatible = "dp, display";
				status = "disabled";
				nvidia,is_ext_dp_panel = <0x1>;
				linux,phandle = <0x99>;
				phandle = <0x99>;

				disp-default-out {
					nvidia,out-type = <0x3>;
					nvidia,out-align = <0x0>;
					nvidia,out-order = <0x0>;
					nvidia,out-flags = <0x0>;
					nvidia,out-pins = <0x1 0x0 0x2 0x0 0x3 0x0 0x0 0x1>;
					nvidia,out-parent-clk = "plld3";
					nvidia,out-xres = <0x1000>;
					nvidia,out-yres = <0x870>;
				};

				lt-data {

					tegra-dp-vs-regs {
						pc2_l0 = <0x13 0x19 0x1e 0x28 0x1e 0x25 0x2d 0x28 0x32 0x39>;
						pc2_l1 = <0x12 0x17 0x1b 0x25 0x1c 0x23 0x2a 0x25 0x2f 0x37>;
						pc2_l2 = <0x12 0x16 0x1a 0x22 0x1b 0x20 0x27 0x24 0x2d 0x35>;
						pc2_l3 = <0x11 0x14 0x17 0x1f 0x19 0x1e 0x24 0x22 0x2a 0x32>;
					};

					tegra-dp-pe-regs {
						pc2_l0 = <0x0 0x8 0x12 0x24 0x1 0xe 0x1d 0x1 0x13 0x0>;
						pc2_l1 = <0x0 0x8 0x12 0x24 0x0 0xe 0x1d 0x0 0x13 0x0>;
						pc2_l2 = <0x0 0x8 0x12 0x24 0x0 0xe 0x1d 0x0 0x13 0x0>;
						pc2_l3 = <0x0 0x8 0x12 0x24 0x0 0xe 0x1d 0x0 0x13 0x0>;
					};

					tegra-dp-pc-regs {
						pc2_l0 = <0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0>;
						pc2_l1 = <0x2 0x2 0x4 0x5 0x2 0x4 0x5 0x4 0x5 0x5>;
						pc2_l2 = <0x4 0x5 0x8 0xb 0x5 0x9 0xb 0x8 0xa 0xb>;
						pc2_l3 = <0x5 0x9 0xb 0x12 0x9 0xd 0x12 0xb 0xf 0x12>;
					};

					tegra-dp-tx-pu {
						pc2_l0 = <0x22 0x33 0x44 0x66 0x33 0x44 0x66 0x44 0x66 0x66>;
						pc2_l1 = <0x22 0x22 0x33 0x55 0x33 0x44 0x55 0x44 0x55 0x66>;
						pc2_l2 = <0x22 0x22 0x33 0x44 0x33 0x33 0x44 0x44 0x55 0x66>;
						pc2_l3 = <0x22 0x22 0x22 0x44 0x33 0x33 0x44 0x44 0x44 0x66>;
					};
				};

				dp-lt-settings {

					lt-setting@0 {
						nvidia,drive-current = <0x0 0x0 0x0 0x0>;
						nvidia,lane-preemphasis = <0x0 0x0 0x0 0x0>;
						nvidia,post-cursor = <0x0 0x0 0x0 0x0>;
						nvidia,tx-pu = <0x0>;
						nvidia,load-adj = <0x3>;
					};

					lt-setting@1 {
						nvidia,drive-current = <0x0 0x0 0x0 0x0>;
						nvidia,lane-preemphasis = <0x0 0x0 0x0 0x0>;
						nvidia,post-cursor = <0x0 0x0 0x0 0x0>;
						nvidia,tx-pu = <0x0>;
						nvidia,load-adj = <0x4>;
					};

					lt-setting@2 {
						nvidia,drive-current = <0x0 0x0 0x0 0x0>;
						nvidia,lane-preemphasis = <0x1 0x1 0x1 0x1>;
						nvidia,post-cursor = <0x0 0x0 0x0 0x0>;
						nvidia,tx-pu = <0x0>;
						nvidia,load-adj = <0x6>;
					};
				};
			};

			prod-settings {
				#prod-cells = <0x3>;
				prod_list_hdmi_soc = "prod_c_hdmi_0m_54m", "prod_c_hdmi_54m_111m", "prod_c_hdmi_111m_223m", "prod_c_hdmi_223m_300m", "prod_c_hdmi_300m_600m";

				prod_c_hdmi_0m_54m {
					prod = <0x138 0xffffffff 0x333a3a3a 0x148 0xffffffff 0x0 0x58c 0xf0f0f00 0x5050000 0x590 0xf01f00 0x301f00 0x598 0xff000ff0 0x38000440 0x5a0 0x40ff00 0x0 0x5a8 0xff000000 0x54000000>;
				};

				prod_c_hdmi_54m_111m {
					prod = <0x138 0xffffffff 0x333a3a3a 0x148 0xffffffff 0x0 0x58c 0xf0f0f00 0x5050100 0x590 0xf01f00 0x301f00 0x598 0xff000ff0 0x38000440 0x5a0 0x40ff00 0x400000 0x5a8 0xff000000 0x44000000>;
				};

				prod_c_hdmi_111m_223m {
					prod = <0x138 0xffffffff 0x373a3a3a 0x148 0xffffffff 0x0 0x58c 0xf0f0f00 0x5050300 0x590 0xf01f00 0x301f00 0x598 0xff000ff0 0x38000440 0x5a0 0x40ff00 0x400000 0x5a8 0xff000000 0x34000000>;
				};

				prod_c_hdmi_223m_300m {
					prod = <0x138 0xffffffff 0x333d3d3d 0x148 0xffffffff 0x0 0x58c 0xf0f0f00 0x5050300 0x590 0xf01f00 0x301f00 0x598 0xff000ff0 0x38000440 0x5a0 0x40ff00 0x404000 0x5a8 0xff000000 0x34000000>;
				};

				prod_c_hdmi_300m_600m {
					prod = <0x138 0xffffffff 0x333d3d3d 0x148 0xffffffff 0x0 0x58c 0xf0f0f00 0x5050300 0x590 0xf01f00 0x301900 0x598 0xff000ff0 0x38000440 0x5a0 0x40ff00 0x406000 0x5a8 0xff000000 0x34000000>;
				};

				prod_c_54M {
					prod = <0x58c 0xf0f0f00 0x5050000 0x590 0xf01f00 0x301f00 0x598 0xff000ff0 0x38000440 0x138 0xffffffff 0x333a3a3a 0x148 0xffffffff 0x0 0x5a0 0x40ff00 0x0 0x5a8 0xff000000 0x54000000>;
				};

				prod_c_75M {
					prod = <0x58c 0xf0f0f00 0x5050100 0x590 0xf01f00 0x301f00 0x598 0xff000ff0 0x38000440 0x138 0xffffffff 0x333a3a3a 0x148 0xffffffff 0x0 0x5a0 0x40ff00 0x400000 0x5a8 0xff000000 0x44000000>;
				};

				prod_c_150M {
					prod = <0x58c 0xf0f0f00 0x5050300 0x590 0xf01f00 0x301f00 0x598 0xff000ff0 0x38000440 0x138 0xffffffff 0x373a3a3a 0x148 0xffffffff 0x0 0x5a0 0x40ff00 0x400000 0x5a8 0xff000000 0x34000000>;
				};

				prod_c_300M {
					prod = <0x58c 0xf0f0f00 0x5050300 0x590 0xf01f00 0x301f00 0x598 0xff000ff0 0x38000440 0x138 0xffffffff 0x333d3d3d 0x148 0xffffffff 0x0 0x5a0 0x40ff00 0x404000 0x5a8 0xff000000 0x34000000>;
				};

				prod_c_600M {
					prod = <0x58c 0xf0f0f00 0x5050300 0x590 0xf01f00 0x301900 0x598 0xff000ff0 0x38000440 0x138 0xffffffff 0x333d3d3d 0x148 0xffffffff 0x0 0x5a0 0x40ff00 0x406000 0x5a8 0xff000000 0x34000000>;
				};

				prod_c_dp {
					prod = <0x58c 0xf0f0f10 0x5050310 0x590 0x3000100 0x100 0x594 0xf0000000 0x0 0x598 0x2ff0 0x2440 0x59c 0x401800 0x0 0x5a0 0x400000 0x400000 0x5a8 0xff000000 0x34000000 0x70 0xffffffff 0x0 0x180 0x1 0x1>;
				};

				prod_c_hbr {
					prod = <0x590 0xf00000 0x300000>;
				};

				prod_c_hbr2 {
					prod = <0x590 0xf00000 0x400000>;
				};

				prod_c_rbr {
					prod = <0x590 0xf00000 0x300000>;
				};
			};

			panel-s-edp-uhdtv-15-6 {
				status = "disabled";
				compatible = "s-edp,uhdtv-15-6";
				nvidia,tx-pu-disable = <0x1>;
				nvidia,panel-bl-pwm-gpio = <0x28 0xd 0x0>;
				linux,phandle = <0x129>;
				phandle = <0x129>;

				disp-default-out {
					nvidia,out-type = <0x3>;
					nvidia,out-align = <0x0>;
					nvidia,out-order = <0x0>;
					nvidia,out-flags = <0x0>;
					nvidia,out-pins = <0x1 0x0 0x2 0x0 0x3 0x0 0x0 0x1>;
					nvidia,out-depth = <0x18>;
					nvidia,out-parent-clk = "pll_d_out0";
					nvidia,out-width = <0x15a>;
					nvidia,out-height = <0xc2>;
					nvidia,out-xres = <0xf00>;
					nvidia,out-yres = <0x870>;
				};

				display-timings {

					3840x2160-32 {
						clock-frequency = <0x1f1e7610>;
						hactive = <0xf00>;
						vactive = <0x870>;
						hfront-porch = <0x30>;
						hback-porch = <0x50>;
						hsync-len = <0x20>;
						vfront-porch = <0x3>;
						vback-porch = <0x36>;
						vsync-len = <0x5>;
						nvidia,h-ref-to-sync = <0x1>;
						nvidia,v-ref-to-sync = <0x1>;
					};
				};

				dp-lt-settings {

					lt-setting@0 {
						nvidia,drive-current = <0x0 0x0 0x0 0x0>;
						nvidia,lane-preemphasis = <0x0 0x0 0x0 0x0>;
						nvidia,post-cursor = <0x0 0x0 0x0 0x0>;
						nvidia,tx-pu = <0x0>;
						nvidia,load-adj = <0x3>;
					};

					lt-setting@1 {
						nvidia,drive-current = <0x0 0x0 0x0 0x0>;
						nvidia,lane-preemphasis = <0x0 0x0 0x0 0x0>;
						nvidia,post-cursor = <0x0 0x0 0x0 0x0>;
						nvidia,tx-pu = <0x0>;
						nvidia,load-adj = <0x4>;
					};

					lt-setting@2 {
						nvidia,drive-current = <0x0 0x0 0x0 0x0>;
						nvidia,lane-preemphasis = <0x1 0x1 0x1 0x1>;
						nvidia,post-cursor = <0x0 0x0 0x0 0x0>;
						nvidia,tx-pu = <0x0>;
						nvidia,load-adj = <0x6>;
					};
				};

				smartdimmer {
					status = "disabled";
					nvidia,use-auto-pwm = <0x0>;
					nvidia,hw-update-delay = <0x0>;
					nvidia,bin-width = <0xffffffff>;
					nvidia,aggressiveness = <0x5>;
					nvidia,use-vid-luma = <0x0>;
					nvidia,phase-in-settings = <0x0>;
					nvidia,phase-in-adjustments = <0x0>;
					nvidia,k-limit-enable = <0x1>;
					nvidia,k-limit = <0xc8>;
					nvidia,sd-window-enable = <0x0>;
					nvidia,soft-clipping-enable = <0x1>;
					nvidia,soft-clipping-threshold = <0x80>;
					nvidia,smooth-k-enable = <0x0>;
					nvidia,smooth-k-incr = <0x40>;
					nvidia,coeff = <0x5 0x9 0x2>;
					nvidia,fc = <0x0 0x0>;
					nvidia,blp = <0x400 0xff>;
					nvidia,bltf = <0x39 0x41 0x49 0x52 0x5c 0x67 0x72 0x7d 0x8a 0x96 0xa4 0xb2 0xc1 0xd0 0xe0 0xf1>;
					nvidia,lut = <0xff 0xff 0xff 0xc7 0xc7 0xc7 0x99 0x99 0x99 0x74 0x74 0x74 0x55 0x55 0x55 0x3b 0x3b 0x3b 0x24 0x24 0x24 0x11 0x11 0x11 0x0 0x0 0x0>;
					nvidia,use-vpulse2 = <0x1>;
					nvidia,bl-device-name = "pwm-backlight";
				};
			};

			panel-a-edp-1080p-14-0 {
				status = "disabled";
				compatible = "a-edp,1080p-14-0";
				nvidia,tx-pu-disable = <0x1>;
				linux,phandle = <0x1d5>;
				phandle = <0x1d5>;

				disp-default-out {
					nvidia,out-type = <0x3>;
					nvidia,out-align = <0x0>;
					nvidia,out-order = <0x0>;
					nvidia,out-flags = <0x0>;
					nvidia,out-pins = <0x1 0x0 0x2 0x0 0x3 0x0 0x0 0x1>;
					nvidia,out-depth = <0x12>;
					nvidia,out-parent-clk = "pll_d_out0";
				};

				dp-lt-settings {

					lt-setting@0 {
						nvidia,drive-current = <0x0 0x0 0x0 0x0>;
						nvidia,lane-preemphasis = <0x0 0x0 0x0 0x0>;
						nvidia,post-cursor = <0x0 0x0 0x0 0x0>;
						nvidia,tx-pu = <0x0>;
						nvidia,load-adj = <0x3>;
					};

					lt-setting@1 {
						nvidia,drive-current = <0x0 0x0 0x0 0x0>;
						nvidia,lane-preemphasis = <0x0 0x0 0x0 0x0>;
						nvidia,post-cursor = <0x0 0x0 0x0 0x0>;
						nvidia,tx-pu = <0x0>;
						nvidia,load-adj = <0x4>;
					};

					lt-setting@2 {
						nvidia,drive-current = <0x0 0x0 0x0 0x0>;
						nvidia,lane-preemphasis = <0x1 0x1 0x1 0x1>;
						nvidia,post-cursor = <0x0 0x0 0x0 0x0>;
						nvidia,tx-pu = <0x0>;
						nvidia,load-adj = <0x6>;
					};
				};

				smartdimmer {
					status = "okay";
					nvidia,use-auto-pwm = <0x0>;
					nvidia,hw-update-delay = <0x0>;
					nvidia,bin-width = <0xffffffff>;
					nvidia,aggressiveness = <0x5>;
					nvidia,use-vid-luma = <0x0>;
					nvidia,phase-in-settings = <0x0>;
					nvidia,phase-in-adjustments = <0x0>;
					nvidia,k-limit-enable = <0x1>;
					nvidia,k-limit = <0xc8>;
					nvidia,sd-window-enable = <0x0>;
					nvidia,soft-clipping-enable = <0x1>;
					nvidia,soft-clipping-threshold = <0x80>;
					nvidia,smooth-k-enable = <0x0>;
					nvidia,smooth-k-incr = <0x40>;
					nvidia,coeff = <0x5 0x9 0x2>;
					nvidia,fc = <0x0 0x0>;
					nvidia,blp = <0x400 0xff>;
					nvidia,bltf = <0x39 0x41 0x49 0x52 0x5c 0x67 0x72 0x7d 0x8a 0x96 0xa4 0xb2 0xc1 0xd0 0xe0 0xf1>;
					nvidia,lut = <0xff 0xff 0xff 0xc7 0xc7 0xc7 0x99 0x99 0x99 0x74 0x74 0x74 0x55 0x55 0x55 0x3b 0x3b 0x3b 0x24 0x24 0x24 0x11 0x11 0x11 0x0 0x0 0x0>;
					nvidia,use-vpulse2 = <0x1>;
					nvidia,bl-device-name = "pwm-backlight";
				};
			};
		};

		sor1 {
			compatible = "nvidia,tegra186-sor1";
			reg = <0x0 0x15580000 0x0 0x40000>;
			interrupts = <0x0 0x9e 0x4>;
			nvidia,sor-ctrlnum = <0x1>;
			nvidia,dpaux = <0x9a>;
			nvidia,xbar-ctrl = <0x0 0x1 0x2 0x3 0x4>;
			clocks = <0x10 0x5d 0x10 0x27 0x10 0x268 0x10 0x129 0x10 0x20b 0x10 0x10d 0x10 0x88 0x10 0x66 0x10 0x58 0x10 0x62>;
			clock-names = "sor1_ref", "sor_safe", "sor1_pad_clkout", "sor1", "pll_dp", "pllp_out0", "maud", "hda", "hda2codec_2x", "hda2hdmi";
			resets = <0x10 0x6c 0x10 0xf 0x10 0x10 0x10 0x11>;
			reset-names = "sor1", "hda_rst", "hda2codec_2x_rst", "hda2hdmi_rst";
			status = "okay";
			nvidia,ddc-i2c-bus = <0x9b>;
			nvidia,active-panel = <0x9c>;
			nvidia,hpd-gpio = <0x1b 0x79 0x1>;
			linux,phandle = <0x93>;
			phandle = <0x93>;

			hdmi-display {
				compatible = "hdmi,display";
				status = "okay";
				generic-infoframe-type = <0x87>;
				linux,phandle = <0x9c>;
				phandle = <0x9c>;

				disp-default-out {
					nvidia,out-type = <0x1>;
					nvidia,out-flags = <0x2>;
					nvidia,out-parent-clk = "plld2";
					nvidia,out-align = <0x0>;
					nvidia,out-order = <0x0>;
					nvidia,out-xres = <0x1000>;
					nvidia,out-yres = <0x870>;
				};
			};

			dp-display {
				compatible = "dp, display";
				status = "disabled";
				nvidia,is_ext_dp_panel = <0x1>;
				linux,phandle = <0x1d6>;
				phandle = <0x1d6>;

				disp-default-out {
					nvidia,out-type = <0x3>;
					nvidia,out-align = <0x0>;
					nvidia,out-order = <0x0>;
					nvidia,out-flags = <0x0>;
					nvidia,out-pins = <0x1 0x0 0x2 0x0 0x3 0x0 0x0 0x1>;
					nvidia,out-parent-clk = "plld2";
					nvidia,out-xres = <0x1000>;
					nvidia,out-yres = <0x870>;
				};

				lt-data {

					tegra-dp-vs-regs {
						pc2_l0 = <0x13 0x19 0x1e 0x28 0x1e 0x25 0x2d 0x28 0x32 0x39>;
						pc2_l1 = <0x12 0x17 0x1b 0x25 0x1c 0x23 0x2a 0x25 0x2f 0x37>;
						pc2_l2 = <0x12 0x16 0x1a 0x22 0x1b 0x20 0x27 0x24 0x2d 0x35>;
						pc2_l3 = <0x11 0x14 0x17 0x1f 0x19 0x1e 0x24 0x22 0x2a 0x32>;
					};

					tegra-dp-pe-regs {
						pc2_l0 = <0x0 0x8 0x12 0x24 0x1 0xe 0x1d 0x1 0x13 0x0>;
						pc2_l1 = <0x0 0x8 0x12 0x24 0x0 0xe 0x1d 0x0 0x13 0x0>;
						pc2_l2 = <0x0 0x8 0x12 0x24 0x0 0xe 0x1d 0x0 0x13 0x0>;
						pc2_l3 = <0x0 0x8 0x12 0x24 0x0 0xe 0x1d 0x0 0x13 0x0>;
					};

					tegra-dp-pc-regs {
						pc2_l0 = <0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0>;
						pc2_l1 = <0x2 0x2 0x4 0x5 0x2 0x4 0x5 0x4 0x5 0x5>;
						pc2_l2 = <0x4 0x5 0x8 0xb 0x5 0x9 0xb 0x8 0xa 0xb>;
						pc2_l3 = <0x5 0x9 0xb 0x12 0x9 0xd 0x12 0xb 0xf 0x12>;
					};

					tegra-dp-tx-pu {
						pc2_l0 = <0x22 0x33 0x44 0x66 0x33 0x44 0x66 0x44 0x66 0x66>;
						pc2_l1 = <0x22 0x22 0x33 0x55 0x33 0x44 0x55 0x44 0x55 0x66>;
						pc2_l2 = <0x22 0x22 0x33 0x44 0x33 0x33 0x44 0x44 0x55 0x66>;
						pc2_l3 = <0x22 0x22 0x22 0x44 0x33 0x33 0x44 0x44 0x44 0x66>;
					};
				};

				display-timings {

					1920x1080-32 {
						clock-frequency = <0x8d9ee20>;
						hactive = <0x780>;
						vactive = <0x438>;
						hfront-porch = <0x58>;
						hback-porch = <0x94>;
						hsync-len = <0x2c>;
						vfront-porch = <0x4>;
						vback-porch = <0x24>;
						vsync-len = <0x5>;
						nvidia,h-ref-to-sync = <0x1>;
						nvidia,v-ref-to-sync = <0x1>;
					};

					720x480-32 {
						clock-frequency = <0x19bfcc0>;
						hactive = <0x2d0>;
						vactive = <0x1e0>;
						hfront-porch = <0x10>;
						hback-porch = <0x3c>;
						hsync-len = <0x3e>;
						vfront-porch = <0x9>;
						vback-porch = <0x1e>;
						vsync-len = <0x6>;
						nvidia,h-ref-to-sync = <0x1>;
						nvidia,v-ref-to-sync = <0x1>;
					};
				};

				dp-lt-settings {

					lt-setting@0 {
						nvidia,drive-current = <0x0 0x0 0x0 0x0>;
						nvidia,lane-preemphasis = <0x0 0x0 0x0 0x0>;
						nvidia,post-cursor = <0x0 0x0 0x0 0x0>;
						nvidia,tx-pu = <0x0>;
						nvidia,load-adj = <0x3>;
					};

					lt-setting@1 {
						nvidia,drive-current = <0x0 0x0 0x0 0x0>;
						nvidia,lane-preemphasis = <0x0 0x0 0x0 0x0>;
						nvidia,post-cursor = <0x0 0x0 0x0 0x0>;
						nvidia,tx-pu = <0x0>;
						nvidia,load-adj = <0x4>;
					};

					lt-setting@2 {
						nvidia,drive-current = <0x0 0x0 0x0 0x0>;
						nvidia,lane-preemphasis = <0x1 0x1 0x1 0x1>;
						nvidia,post-cursor = <0x0 0x0 0x0 0x0>;
						nvidia,tx-pu = <0x0>;
						nvidia,load-adj = <0x6>;
					};
				};
			};

			prod-settings {
				#prod-cells = <0x3>;
				prod_list_hdmi_soc = "prod_c_hdmi_0m_54m", "prod_c_hdmi_54m_111m", "prod_c_hdmi_111m_223m", "prod_c_hdmi_223m_300m", "prod_c_hdmi_300m_600m";

				prod_c_hdmi_0m_54m {
					prod = <0x138 0xffffffff 0x333a3a3a 0x148 0xffffffff 0x0 0x58c 0xf0f0f00 0x5050000 0x590 0xf01f00 0x301f00 0x598 0xff000ff0 0x38000440 0x5a0 0x40ff00 0x0 0x5a8 0xff000000 0x54000000>;
				};

				prod_c_hdmi_54m_111m {
					prod = <0x138 0xffffffff 0x333a3a3a 0x148 0xffffffff 0x0 0x58c 0xf0f0f00 0x5050100 0x590 0xf01f00 0x301f00 0x598 0xff000ff0 0x38000440 0x5a0 0x40ff00 0x400000 0x5a8 0xff000000 0x44000000>;
				};

				prod_c_hdmi_111m_223m {
					prod = <0x138 0xffffffff 0x373a3a3a 0x148 0xffffffff 0x0 0x58c 0xf0f0f00 0x5050300 0x590 0xf01f00 0x301f00 0x598 0xff000ff0 0x38000440 0x5a0 0x40ff00 0x400000 0x5a8 0xff000000 0x34000000>;
				};

				prod_c_hdmi_223m_300m {
					prod = <0x138 0xffffffff 0x333d3d3d 0x148 0xffffffff 0x0 0x58c 0xf0f0f00 0x5050300 0x590 0xf01f00 0x301f00 0x598 0xff000ff0 0x38000440 0x5a0 0x40ff00 0x404000 0x5a8 0xff000000 0x34000000>;
				};

				prod_c_hdmi_300m_600m {
					prod = <0x138 0xffffffff 0x333d3d3d 0x148 0xffffffff 0x0 0x58c 0xf0f0f00 0x5050300 0x590 0xf01f00 0x301900 0x598 0xff000ff0 0x38000440 0x5a0 0x40ff00 0x406000 0x5a8 0xff000000 0x34000000>;
				};

				prod_c_54M {
					prod = <0x58c 0xf0f0f00 0x5050000 0x590 0xf01f00 0x301f00 0x598 0xff000ff0 0x38000440 0x138 0xffffffff 0x333a3a3a 0x148 0xffffffff 0x0 0x5a0 0x40ff00 0x0 0x5a8 0xff000000 0x54000000>;
				};

				prod_c_75M {
					prod = <0x58c 0xf0f0f00 0x5050100 0x590 0xf01f00 0x301f00 0x598 0xff000ff0 0x38000440 0x138 0xffffffff 0x333a3a3a 0x148 0xffffffff 0x0 0x5a0 0x40ff00 0x400000 0x5a8 0xff000000 0x44000000>;
				};

				prod_c_150M {
					prod = <0x58c 0xf0f0f00 0x5050300 0x590 0xf01f00 0x301f00 0x598 0xff000ff0 0x38000440 0x138 0xffffffff 0x373a3a3a 0x148 0xffffffff 0x0 0x5a0 0x40ff00 0x400000 0x5a8 0xff000000 0x34000000>;
				};

				prod_c_300M {
					prod = <0x58c 0xf0f0f00 0x5050300 0x590 0xf01f00 0x301f00 0x598 0xff000ff0 0x38000440 0x138 0xffffffff 0x333d3d3d 0x148 0xffffffff 0x0 0x5a0 0x40ff00 0x404000 0x5a8 0xff000000 0x34000000>;
				};

				prod_c_600M {
					prod = <0x58c 0xf0f0f00 0x5050300 0x590 0xf01f00 0x301900 0x598 0xff000ff0 0x38000440 0x138 0xffffffff 0x333d3d3d 0x148 0xffffffff 0x0 0x5a0 0x40ff00 0x406000 0x5a8 0xff000000 0x34000000>;
				};

				prod_c_dp {
					prod = <0x58c 0xf0f0f10 0x5050310 0x590 0x3000100 0x100 0x594 0xf0000000 0x0 0x598 0x2ff0 0x2440 0x59c 0x401800 0x0 0x5a0 0x400000 0x400000 0x5a8 0xff000000 0x34000000 0x70 0xffffffff 0x0 0x180 0x1 0x1>;
				};

				prod_c_hbr {
					prod = <0x590 0xf00000 0x300000>;
				};

				prod_c_hbr2 {
					prod = <0x590 0xf00000 0x400000>;
				};

				prod_c_rbr {
					prod = <0x590 0xf00000 0x300000>;
				};
			};
		};

the kernel log is

nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ dmesg | grep dc
[    0.000000]               0xffffffbf00000000 - 0xffffffbf07dc8000   (   125 MB actual)
[    0.183894] Tegra Revision: A02p SKU: 0xdc CPU Process: 0 SoC Process: 0
[    0.441091] padctrl padctrl.0: Pad control driver tegra-pmc-padctrl registered
[    0.441120] tegra-pmc c360000.pmc: IO padctrl driver initialized
[    0.466830] iommu: Adding device 3550000.xudc to group 46
[    0.466853] arm-smmu: forcing sodev map for 3550000.xudc
[    0.791561] tegra-xusb-padctl 3520000.xusb_padctl: VBUS over-current detection enabled
[    0.846149] tegradccommon 15200000.dc_common: host1x channel mapped
[    0.846192] tegradccommon 15200000.dc_common: dc_common syncpt # 1 allocated
[    0.846244] tegradccommon 15200000.dc_common: dma mapping done
[    0.847946] tegradc 15210000.nvdisplay: disp0 connected to head1->/host1x/sor1
[    0.848310] tegradc 15210000.nvdisplay: DT parsed successfully
[    0.848398] tegradc 15210000.nvdisplay: Display dc.ffffff800b3e0000 registered with id=0
[    0.858441] tegradc 15210000.nvdisplay: vblank syncpt # 8 for dc 1
[    0.858470] tegradc 15210000.nvdisplay: vpulse3 syncpt # 9 for dc 1
[    0.861123] tegradc 15210000.nvdisplay: Bootloader disp_param detected. Detected mode: 1920x1080 (on 0x0mm) pclk=148350937
[    0.865164] tegradc 15210000.nvdisplay: hdmi: invalid prod list prod_list_hdmi_board
[    0.865202] tegradc 15210000.nvdisplay: hdmi: tegra_hdmi_tmds_range_read(bd) failed
[    0.868412] tegradc 15210000.nvdisplay: probed
[    3.306403] usbcore: registered new interface driver cdc_ether
[    3.306464] usbcore: registered new interface driver cdc_subset
[    3.306530] usbcore: registered new interface driver cdc_ncm
[    3.321656] tegra-xudc-new 3550000.xudc: device count: 1
[    3.322771] tegra-xudc-new 3550000.xudc: vbus state: 1
[    3.409125] tegra-xudc-new 3550000.xudc: device mode on: 0
[    3.409360] tegra-xudc-new 3550000.xudc: active: 0 => 1
[    4.141028] tegradc 15210000.nvdisplay: fb registered
[    4.234415] tegradc 15210000.nvdisplay: hdmi: tmds rate:148351K prod-setting:prod_c_hdmi_111m_223m
[    4.243936] tegradc 15210000.nvdisplay: hdmi: get RGB quant from REG programmed by BL.
[    4.251872] tegradc 15210000.nvdisplay: hdmi: get YCC quant from REG programmed by BL.
[    4.271870] tegradc 15220000.nvdisplay: disp1 connected to head2->/host1x/sor
[    4.279049] tegra_dc_get_panel_ops: unknown panel: /host1x/dpaux@155c0000
[    4.285879] tegradc 15220000.nvdisplay: err:-19 parsing panel_ops
[    4.408373] tegradc 15210000.nvdisplay: blank - powerdown
[    4.411878] tegra186-cam-rtcpu b000000.rtcpu: firmware version cpu=sce cmd=5 sha1=3ecb1dca25fa98771f988f238c025334776c9a96
[    4.579005] tegradc 15210000.nvdisplay: unblank
[    4.590477] tegradc 15210000.nvdisplay: hdmi: tmds rate:297000K prod-setting:prod_c_hdmi_223m_300m
[    4.591849] tegradc 15210000.nvdisplay: hdmi: get RGB quant from EDID.
[    4.591872] tegradc 15210000.nvdisplay: hdmi: get YCC quant from EDID.
[    7.838827] tegradc 15210000.nvdisplay: hdmi: plugged
[   10.307373] tegra-xudc-new 3550000.xudc: ep 0 (type: 0, dir: out) enabled
[   10.699207] tegra-xudc-new 3550000.xudc: ep 5 (type: 3, dir: in) enabled
[   10.699222] tegra-xudc-new 3550000.xudc: ep 3 (type: 2, dir: in) enabled
[   10.699237] tegra-xudc-new 3550000.xudc: ep 2 (type: 2, dir: out) enabled
[   10.699305] tegra-xudc-new 3550000.xudc: ep 9 (type: 3, dir: in) enabled
[   10.699320] tegra-xudc-new 3550000.xudc: ep 7 (type: 2, dir: in) enabled
[   10.699334] tegra-xudc-new 3550000.xudc: ep 4 (type: 2, dir: out) enabled
[   10.699361] tegra-xudc-new 3550000.xudc: ep 15 (type: 3, dir: in) enabled
[   10.699378] tegra-xudc-new 3550000.xudc: ep 11 (type: 2, dir: in) enabled
[   10.699397] tegra-xudc-new 3550000.xudc: ep 6 (type: 2, dir: out) enabled
[   10.704008] tegra-xudc-new 3550000.xudc: ep 13 (type: 2, dir: in) enabled
[   10.704025] tegra-xudc-new 3550000.xudc: ep 8 (type: 2, dir: out) enabled
[   16.965751] tegradc 15210000.nvdisplay: blank - powerdown
[   17.131493] tegradc 15210000.nvdisplay: unblank
[   17.138551] tegradc 15210000.nvdisplay: hdmi: tmds rate:297000K prod-setting:prod_c_hdmi_223m_300m
[   17.139765] tegradc 15210000.nvdisplay: hdmi: get RGB quant from EDID.
[   17.139771] tegradc 15210000.nvdisplay: hdmi: get YCC quant from EDID.
[   17.143333] tegradc 15210000.nvdisplay: unblank
[  311.794633] tegradc 15210000.nvdisplay: blank - powerdown
[  311.794836] tegradc 15210000.nvdisplay: hdmi: unplugged
[  311.846840] tegradc 15210000.nvdisplay: blank - powerdown
[  311.846850] tegradc 15210000.nvdisplay: unblank
[  311.846864] tegradc 15210000.nvdisplay: unblank
nvidia@nvidia-desktop:~$

i dont know why the system unknown panel “tegra_dc_get_panel_ops: unknown panel: /host1x/dpaux@155c0000”

Maybe because the active panel of your sor is still dp but you set dp-display status to disabled while hdmi-display status is okay.

Could you go to the device tree source code and compare it?

Hi WayneWWW

how to compare it?

use DTC change dtb to dts and compare with original one???

could you give me more information?

Go to the dts source downloaded from the download center and check each device tree. Just compare the content between sor and sor1 should be sufficient…

Since we already provided a working HDMI device tree in our original file, you just need to make a similar one in sor and nvdisplay.

Hi WayneWWW
i success to open two HDMI on my tx2 caried board.
but i have some problem on second hdmi port.

case 1
when i connect two hdmi monitor,i can boot up the device and use two hdmi monitor.
the console is

[    0.446199] iommu: Adding device c250000.i2c to group 9
[    0.446541] iommu: Adding device 31e0000.i2c to group 10
[    0.448011] iommu: Adding device 3210000.spi to group 11
[    0.448355] iommu: Adding device c260000.spi to group 12
[    0.448694] iommu: Adding device 3240000.spi to group 13
[    0.449410] iommu: Adding device 3100000.serial to group 14
[    0.449768] iommu: Adding device 3110000.serial to group 15
[    0.450108] iommu: Adding device c280000.serial to group 16
[    0.450444] iommu: Adding device 3130000.serial to group 17
[    0.451779] iommu: Adding device 2490000.ether_qos to group 18
[    0.451802] arm-smmu: forcing sodev map for 2490000.ether_qos
[    0.452414] iommu: Adding device b000000.rtcpu to group 19
[    0.454646] iommu: Adding device 13e10000.host1x to group 20
[    0.454963] iommu: Adding device 13e10000.host1x:ctx0 to group 21
[    0.455288] iommu: Adding device 13e10000.host1x:ctx1 to group 22
[    0.455607] iommu: Adding device 13e10000.host1x:ctx2 to group 23
[    0.455916] iommu: Adding device 13e10000.host1x:ctx3 to group 24
[    0.456229] iommu: Adding device 13e10000.host1x:ctx4 to group 25
[    0.456538] iommu: Adding device 13e10000.host1x:ctx5 to group 26
[    0.456864] iommu: Adding device 13e10000.host1x:ctx6 to group 27
[    0.457176] iommu: Adding device 13e10000.host1x:ctx7 to group 28
[    0.457680] iommu: Adding device 150c0000.nvcsi to group 29
[    0.458343] iommu: Adding device 15700000.vi to group 30
[    0.458696] iommu: Adding device 15600000.isp to group 31
[    0.459168] iommu: Adding device 15210000.nvdisplay to group 32
[    0.459288] platform 15210000.nvdisplay: OF IOVA linear map 0x9607b000 size (0x800000)
[    0.459341] platform 15210000.nvdisplay: OF IOVA linear map 0x96078000 size (0x2008)
[    0.459446] platform 15210000.nvdisplay: OF IOVA linear map 0x96880000 size (0x800000)
[    0.459486] platform 15210000.nvdisplay: OF IOVA linear map 0x9687d000 size (0x2008)
[    0.459925] iommu: Adding device 15220000.nvdisplay to group 33
[    0.460040] platform 15220000.nvdisplay: OF IOVA linear map 0x9607b000 size (0x800000)
[    0.460062] arm__alloc_iova_at():136: iova alloc don't match, dh=0x000000009607b000, da=0x0000000095878000
[    0.460083] platform 15220000.nvdisplay: OF IOVA linear map 0x96078000 size (0x2008)
[    0.460102] arm__alloc_iova_at():136: iova alloc don't match, dh=0x0000000096078000, da=0x0000000096075000
[    0.460205] platform 15220000.nvdisplay: OF IOVA linear map 0x96880000 size (0x800000)
[    0.460224] arm__alloc_iova_at():136: iova alloc don't match, dh=0x0000000096880000, da=0x0000000095878000
[    0.460244] platform 15220000.nvdisplay: OF IOVA linear map 0x9687d000 size (0x2008)
[    0.460262] arm__alloc_iova_at():136: iova alloc don't match, dh=0x000000009687d000, da=0x0000000096075000
[    0.460687] iommu: Adding device 15340000.vic to group 34
[    0.460918] iommu: Adding device 154c0000.nvenc to group 35
[    0.461144] iommu: Adding device 15480000.nvdec to group 36
[    0.461520] iommu: Adding device 15380000.nvjpg to group 37
[    0.461748] iommu: Adding device 15500000.tsec to group 38
[    0.461972] iommu: Adding device 15100000.tsecb to group 39
[    0.576152] spmic-ldo1: at 800 mV
[    0.924950] tegradccommon 15200000.dc_common: host1x channel mapped
[    0.924993] tegradccommon 15200000.dc_common: dc_common syncpt # 1 allocated
[    0.925053] tegradccommon 15200000.dc_common: dma mapping done
[    0.926163] tegradc 15210000.nvdisplay: disp0 connected to head1->/host1x/sor1
[    0.926399] tegradc 15210000.nvdisplay: DT parsed successfully
[    0.926434] tegradc 15210000.nvdisplay: Display dc.ffffff800b3e0000 registered with id=0
[    0.936531] tegradc 15210000.nvdisplay: vblank syncpt # 8 for dc 1
[    0.936561] tegradc 15210000.nvdisplay: vpulse3 syncpt # 9 for dc 1
[    0.938899] tegradc 15210000.nvdisplay: Bootloader disp_param detected. Detected mode: 1920x1080 (on 0x0mm) pclk=148350937
[    0.943254] tegradc 15210000.nvdisplay: hdmi: invalid prod list prod_list_hdmi_board
[    0.943294] tegradc 15210000.nvdisplay: hdmi: tegra_hdmi_tmds_range_read(bd) failed
[    0.949076] tegradc 15210000.nvdisplay: probed
[    3.719686] tegradc 15210000.nvdisplay: fb registered
[    3.768346] usbcore: registered new interface driver r8152
[    4.440208] tegradc 15210000.nvdisplay: hdmi: tmds rate:148351K prod-setting:prod_c_hdmi_111m_223m
[    4.440707] tegradc 15210000.nvdisplay: hdmi: get RGB quant from REG programmed by BL.
[    4.440715] tegradc 15210000.nvdisplay: hdmi: BL set VIC 0
[    4.440718] tegradc 15210000.nvdisplay: hdmi: get YCC quant from REG programmed by BL.
[    4.441736] tegradc 15220000.nvdisplay: disp1 connected to head2->/host1x/sor
[    4.441824] tegradc 15220000.nvdisplay: DT parsed successfully
[    4.441848] tegradc 15220000.nvdisplay: Display dc.ffffff800bb90000 registered with id=1
[    4.442127] tegradc 15220000.nvdisplay: vblank syncpt # 11 for dc 2
[    4.442131] tegradc 15220000.nvdisplay: vpulse3 syncpt # 12 for dc 2
[    4.442816] tegradc 15220000.nvdisplay: Bootloader disp_param detected. Detected mode: 1920x1080 (on 0x0mm) pclk=148350937
[    4.445299] tegradc 15220000.nvdisplay: hdmi: invalid prod list prod_list_hdmi_board
[    4.445302] tegradc 15220000.nvdisplay: hdmi: tegra_hdmi_tmds_range_read(bd) failed
[    4.446906] tegradc 15220000.nvdisplay: probed
[    4.552993] tegradc 15220000.nvdisplay: fb registered
[    4.603249] tegradc 15210000.nvdisplay: blank - powerdown
[    4.670250] tegradc 15220000.nvdisplay: hdmi: tmds rate:148351K prod-setting:prod_c_hdmi_111m_223m
[    4.671001] tegradc 15220000.nvdisplay: hdmi: get RGB quant from REG programmed by BL.
[    4.671010] tegradc 15220000.nvdisplay: hdmi: get YCC quant from REG programmed by BL.
[    4.752770] tegradc 15210000.nvdisplay: unblank
[    4.759684] tegradc 15210000.nvdisplay: hdmi: tmds rate:297000K prod-setting:prod_c_hdmi_223m_300m
[    4.761351] tegradc 15210000.nvdisplay: hdmi: get RGB quant from EDID.
[    4.761374] tegradc 15210000.nvdisplay: hdmi: get YCC quant from EDID.
[    4.831526] tegra-asoc: sound: ADMAIF14 <-> ADMAIF14 mapping ok
[    8.270706] tegradc 15220000.nvdisplay: blank - powerdown
[    8.328718] tegradc 15220000.nvdisplay: unblank
[    8.332562] tegradc 15220000.nvdisplay: hdmi: tmds rate:148500K prod-setting:prod_c_hdmi_111m_223m
[    8.333919] tegradc 15220000.nvdisplay: hdmi: get RGB quant from EDID.
[    8.333926] tegradc 15220000.nvdisplay: hdmi: get YCC quant from EDID.
[    9.412169] tegradc 15210000.nvdisplay: hdmi: plugged
[    9.434191] tegradc 15220000.nvdisplay: hdmi: plugged
[   18.229277] tegradc 15210000.nvdisplay: blank - powerdown
[   18.399390] tegradc 15210000.nvdisplay: unblank
[   18.402998] tegradc 15210000.nvdisplay: hdmi: tmds rate:297000K prod-setting:prod_c_hdmi_223m_300m
[   18.404229] tegradc 15210000.nvdisplay: hdmi: get RGB quant from EDID.
[   18.404235] tegradc 15210000.nvdisplay: hdmi: get YCC quant from EDID.
[   18.407891] tegradc 15210000.nvdisplay: unblank
[   18.407900] tegradc 15220000.nvdisplay: blank - powerdown
[   18.488471] tegradc 15220000.nvdisplay: unblank
[   18.492042] tegradc 15220000.nvdisplay: hdmi: tmds rate:148500K prod-setting:prod_c_hdmi_111m_223m
[   18.493275] tegradc 15220000.nvdisplay: hdmi: get RGB quant from EDID.
[   18.493284] tegradc 15220000.nvdisplay: hdmi: get YCC quant from EDID.
[   18.496851] tegradc 15220000.nvdisplay: unblank
nvidia@nvidia-desktop:~$

case 2:
after boot up i plug in the second hdmi monitor.
the system will crash.
the console is

[    0.464903] iommu: Adding device 13e10000.host1x:ctx0 to group 21
[    0.465385] iommu: Adding device 13e10000.host1x:ctx1 to group 22
[    0.465878] iommu: Adding device 13e10000.host1x:ctx2 to group 23
[    0.466356] iommu: Adding device 13e10000.host1x:ctx3 to group 24
[    0.466809] iommu: Adding device 13e10000.host1x:ctx4 to group 25
[    0.467263] iommu: Adding device 13e10000.host1x:ctx5 to group 26
[    0.467740] iommu: Adding device 13e10000.host1x:ctx6 to group 27
[    0.468223] iommu: Adding device 13e10000.host1x:ctx7 to group 28
[    0.468864] iommu: Adding device 150c0000.nvcsi to group 29
[    0.469822] iommu: Adding device 15700000.vi to group 30
[    0.470328] iommu: Adding device 15600000.isp to group 31
[    0.471069] iommu: Adding device 15210000.nvdisplay to group 32
[    0.471276] platform 15210000.nvdisplay: OF IOVA linear map 0x9607b000 size (0x800000)
[    0.471427] platform 15210000.nvdisplay: OF IOVA linear map 0x96078000 size (0x2008)
[    0.471598] platform 15210000.nvdisplay: OF IOVA linear map 0x96880000 size (0x800000)
[    0.471741] platform 15210000.nvdisplay: OF IOVA linear map 0x9687d000 size (0x2008)
[    0.472333] iommu: Adding device 15220000.nvdisplay to group 33
[    0.472496] platform 15220000.nvdisplay: OF IOVA linear map 0x9607b000 size (0x800000)
[    0.472571] arm__alloc_iova_at():136: iova alloc don't match, dh=0x000000009607b000, da=0x0000000095878000
[    0.472661] platform 15220000.nvdisplay: OF IOVA linear map 0x96078000 size (0x2008)
[    0.472708] arm__alloc_iova_at():136: iova alloc don't match, dh=0x0000000096078000, da=0x0000000096075000
[    0.472866] platform 15220000.nvdisplay: OF IOVA linear map 0x96880000 size (0x800000)
[    0.472913] arm__alloc_iova_at():136: iova alloc don't match, dh=0x0000000096880000, da=0x0000000095878000
[    0.472983] platform 15220000.nvdisplay: OF IOVA linear map 0x9687d000 size (0x2008)
[    0.473028] arm__alloc_iova_at():136: iova alloc don't match, dh=0x000000009687d000, da=0x0000000096075000
[    0.473705] iommu: Adding device 15340000.vic to group 34
[    0.474049] iommu: Adding device 154c0000.nvenc to group 35
[    0.474426] iommu: Adding device 15480000.nvdec to group 36
[    0.474936] iommu: Adding device 15380000.nvjpg to group 37
[    0.951461] tegradccommon 15200000.dc_common: host1x channel mapped
[    0.951503] tegradccommon 15200000.dc_common: dc_common syncpt # 1 allocated
[    0.951558] tegradccommon 15200000.dc_common: dma mapping done
[    0.953466] tegradc 15210000.nvdisplay: disp0 connected to head1->/host1x/sor1
[    0.953848] tegradc 15210000.nvdisplay: DT parsed successfully
[    0.953893] tegradc 15210000.nvdisplay: Display dc.ffffff800b3e0000 registered with id=0
[    0.964276] tegradc 15210000.nvdisplay: vblank syncpt # 8 for dc 1
[    0.964304] tegradc 15210000.nvdisplay: vpulse3 syncpt # 9 for dc 1
[    0.966626] tegradc 15210000.nvdisplay: Bootloader disp_param detected. Detected mode: 1920x1080 (on 0x0mm) pclk=148350937
[    0.971211] tegradc 15210000.nvdisplay: hdmi: invalid prod list prod_list_hdmi_board
[    0.971246] tegradc 15210000.nvdisplay: hdmi: tegra_hdmi_tmds_range_read(bd) failed
[    0.977987] tegradc 15210000.nvdisplay: probed
[    3.737745] tegradc 15210000.nvdisplay: fb registered
[    3.783150] usbcore: registered new interface driver r8152
[    4.655151] tegradc 15210000.nvdisplay: hdmi: tmds rate:148351K prod-setting:prod_c_hdmi_111m_223m
[    4.664657] tegradc 15210000.nvdisplay: hdmi: get RGB quant from REG programmed by BL.
[    4.672590] tegradc 15210000.nvdisplay: hdmi: BL set VIC 0
[    4.678089] tegradc 15210000.nvdisplay: hdmi: get YCC quant from REG programmed by BL.
[    4.711346] tegradc 15220000.nvdisplay: disp1 connected to head2->/host1x/sor
[    4.722603] tegradc 15220000.nvdisplay: DT parsed successfully
[    4.728507] tegradc 15220000.nvdisplay: Display dc.ffffff800bcd0000 registered with id=1
[    4.736845] tegradc 15220000.nvdisplay: vblank syncpt # 12 for dc 2
[    4.743132] tegradc 15220000.nvdisplay: vpulse3 syncpt # 13 for dc 2
[    4.750196] tegradc 15220000.nvdisplay: Bootloader disp_param detected. Detected mode: 1920x1080 (on 0x0mm) pclk=148350937
[    4.763755] tegradc 15220000.nvdisplay: hdmi: invalid prod list prod_list_hdmi_board
[    4.771527] tegradc 15220000.nvdisplay: hdmi: tegra_hdmi_tmds_range_read(bd) failed
[    4.780770] tegradc 15220000.nvdisplay: probed
[    4.795030] tegradc 15220000.nvdisplay: fb registered
[    4.848429] tegradc 15210000.nvdisplay: blank - powerdown
[    4.962796] tegradc 15210000.nvdisplay: unblank
[    4.971296] tegradc 15210000.nvdisplay: hdmi: tmds rate:297000K prod-setting:prod_c_hdmi_223m_300m
[    4.972950] tegradc 15210000.nvdisplay: hdmi: get RGB quant from EDID.
[    4.972957] tegradc 15210000.nvdisplay: hdmi: get YCC quant from EDID.
[    8.254851] tegradc 15210000.nvdisplay: hdmi: plugged
[   16.867039] tegradc 15210000.nvdisplay: blank - powerdown
[   17.012390] tegradc 15210000.nvdisplay: unblank
[   17.017500] tegradc 15210000.nvdisplay: hdmi: tmds rate:297000K prod-setting:prod_c_hdmi_223m_300m
[   17.018713] tegradc 15210000.nvdisplay: hdmi: get RGB quant from EDID.
[   17.018721] tegradc 15210000.nvdisplay: hdmi: get YCC quant from EDID.
[   17.022280] tegradc 15210000.nvdisplay: unblank
[   17.022285] tegradc 15220000.nvdisplay: blank - powerdown

after boot up and plug in the second hdmi monitor the consile will show

nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ [  165.257233] edid invalid
[  165.490528] CPU4: SError detected, daif=1c0, spsr=0x800000c5, mpidr=80000102, esr=bf40c000
[  165.490543] CPU3: SError detected, daif=1c0, spsr=0x800000c5, mpidr=80000101, esr=bf40c000
[  165.490558] CPU5: SError detected, daif=1c0, spsr=0x800000c5, mpidr=80000103, esr=bf40c000
[  165.490619] CPU0: SError detected, daif=140, spsr=0x40000145, mpidr=80000100, esr=bf40c000
[  165.493344] ROC:IOB Machine Check Error:
[  165.590914] CPU3: SError detected, daif=1c0, spsr=0x800000c5, mpidr=80000101, esr=bf40c000
[  165.590935] CPU0: SError detected, daif=140, spsr=0x40000145, mpidr=80000100, esr=bf000002
[  165.593581] ROC:IOB Machine Check Error:
[  165.593644] CPU4: SError detected, daif=1c0, spsr=0x800000c5, mpidr=80000102, esr=bf000002
[  165.690673] CPU4: SError detected, daif=140, spsr=0x60000045, mpidr=80000102, esr=bf40c000
[  165.787493] CPU0: SError detected, daif=140, spsr=0x80000045, mpidr=80000100, esr=bf000002
[  165.790173] ROC:CCE Machine Check Error:
[  165.790418] ROC:IOB Machine Check Error:
[  165.790472] CPU4: SError detected, daif=140, spsr=0x60000045, mpidr=80000102, esr=bf000002
[  165.887452] CPU0: SError detected, daif=1c0, spsr=0xc5, mpidr=80000100, esr=bf000002
[  165.890055] ROC:IOB Machine Check Error:
[  165.890108] CPU4: SError detected, daif=140, spsr=0x60000045, mpidr=80000102, esr=bf40c000
[  166.053258] CPU4: SError detected, daif=1c0, spsr=0x800000c5, mpidr=80000102, esr=bf40c000
[  166.053286] CPU0: SError detected, daif=140, spsr=0x40000145, mpidr=80000100, esr=bf000002
[  166.056082] ROC:IOB Machine Check Error:
[  166.249892] CPU0: SError detected, daif=140, spsr=0x40000145, mpidr=80000100, esr=bf00c002
[  166.252466] ROC:CCE Machine Check Error:
[  166.252713] ROC:IOB Machine Check Error:
[  166.252769] CPU4: SError detected, daif=1c0, spsr=0x800000c5, mpidr=80000102, esr=bf000002
[  166.371426] CPU0: SError detected, daif=1c0, spsr=0xc5, mpidr=80000100, esr=bf000002
[  166.371473] CPU4: SError detected, daif=140, spsr=0x40000045, mpidr=80000102, esr=bf40c000
[  166.374149] ROC:CCE Machine Check Error:
[  166.374431] ROC:IOB Machine Check Error:
[  166.492516] CPU4: SError detected, daif=1c0, spsr=0x800000c5, mpidr=80000102, esr=bf40c000
[  166.492558] CPU0: SError detected, daif=140, spsr=0x20000045, mpidr=80000100, esr=bf000002
[  166.495350] ROC:IOB Machine Check Error:
[  166.689105] CPU0: SError detected, daif=140, spsr=0x80000045, mpidr=80000100, esr=bf00c002
[  166.691697] ROC:CCE Machine Check Error:
[  166.691939] ROC:IOB Machine Check Error:
[  166.691993] CPU4: SError detected, daif=1c0, spsr=0x800000c5, mpidr=80000102, esr=bf000002
[  166.810499] CPU0: SError detected, daif=1c0, spsr=0xc5, mpidr=80000100, esr=bf000002
[  166.810502] CPU4: SError detected, daif=1c0, spsr=0x800000c5, mpidr=80000102, esr=bf40c000
[  166.812341] ROC:CCE Machine Check Error:
[  166.812463] ROC:IOB Machine Check Error:

i am confuse for iommu 15220000.nvdisplay match error.
do you test two monitor on R32.1??
or how should i fixed this issue??

Please tell us which tegradc (nvidisplay) is for your “second” monitor. This is rare that display driver issue would cause cpu to have SError. How about plug the second hdmi in the beginning (before boot up)? Would you hit this issue?

Hi WayneWWW

tegradc 15220000.nvdisplay is my second hdmi display

in the #15
case1 test step is

  1. connect two hdmi monitor
  2. power on
  3. login
  4. it’s can use two monitor

in the case 1 , after boot up i can free to change monitor. tx2 display can work fine.

case 2 test step is

  1. connect original hdmi monitor
  2. power on
  3. login
  4. connect second hdmi monitor
  5. system broke and show SError detected log

how to fixed it???

Hi etta,

In case 2, is first monitor a must-have? How about use single monitor case here?

Hi WayneWWW

thanks for your reply.
but our carried board have two hdmi port.
so i hope it can work on R32.1

this issue will fixed on next version??

Please understand all our steps here are just for debug. I knew you need 2 hdmi ports.