xrandr --addmode HDMI-0 1920x1080_30.00 failed

hello,
I set a new resolution 1920x1080@30Hz in tx1.

$cvt 1920 1080 30
#1920x1080 29.95Hz (CVT) hsync:33.01kHz ; pclk:79.75MHz
Modeline: “1920x1080_30.00” 79.75 1920 1976 2168 2416 1080 1083 1088 1102 -hsync +vsync

$xrandr --newmode “1920x1080_30.00” 79.75 1920 1976 2168 2416 1080 1083 1088 1102 -hsync +vsync

$xrandr --addmode HDMI-0 “1920x1080_30.00”
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 18 (RRAddOutputMode)
Serial number of failed request: 20
Current serial number in output stream:21

But,it failed to set 1920x1080_30.00 resolution.
And how to set that resolution using the command of xrandr?
Thankyou very much.

2284810331,

Tegra only supports those modes from EDID. We didn’t permit to add mode through xrandr command.

More precisely, we block such kind of command in driver.

WayneWWW,

It is appreciated for answering my question in your busy time.

Tx1 connected to a monitor.
$xrandr
screen 0: minimum 8x8,current 1280x720,maximum 16384x16384
HDMI-0 connected primary 1280x720+0+0(normal left inverted right x axis yaxis) 700mm x 390mm
1280x720 60.00*+ 59.94 50.00
1920x1080 60.00 59.95 50.00 61.25 51.04
1440x900 59.89
1440x596 50.08
1024x768 60.01*+

But it doesn’t have the resolution of 1920x1080@30Hz and 1920x1080@25Hz, though my monitor support those two resolution.
And how do I put these two resolution(1920x1080@30Hz 1920x1080@25Hz) in the list(the result of xrandr command) above?

Thank you very much.

Hi 2284810331,

If it does not appear, it probably means this mode is not supported by tegra hardware so that we block it.

Could you share the EDID of your monitor?

Hi WayneWWW,

I’m very sorry for the late reply.
I don’t know the EDID of my monitor.But I’ve added “hdmi-display {…}” to the dts of kernel source,and it display normally.

hdmi-display { //1920x1080@30Hz
nvidia,edid = [00 ff ff ff ff ff ff 00 04 21 00 00 00 00 00 00
01 00 01 03 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 01 1d 80 18 71 38 2d 40 58 2c
45 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e9];
};

How to modify the kernel source to let driver don’t check the monitor?
Thank you very much!

Please follow this thread for dumping edid.

Note that this check is unavoidable. If your EDID has something we cannot support, that mode would be skipped.

You can force edid in device tree as what you’ve done. But notice that this method only works when your hardware (monitor) supports this mode.

You can also check Xorg.log. There would show why your mode disappeared.