Package: x11-xserver-utils Version: 7.7+2 Severity: normal Tags: upstream patch
I have an Samsung eh5000 HDTV that I connect to my Intel Mobile Ivy Bridge chipset via HDMI1 as reported by xrandr. Without modification xrandr reports the display's native resolution as 1920x1080 60.0 + 59.9 30.0 24.0 30.0 24.0* This is confusing because it lists 30.0 and 24.0 twice each. I discovered that I could switch to either one by specifying --rate 30/--rate 29.97 or --rate 24/--rate 23.98. With the attached patch, I have added one more decimal everywhere a frequency is reported so that now it's clearer what the supported refresh rates are and how to switch to them: 1920x1080 60.00 + 59.94 30.00 24.00 29.97 23.98* Kevin -- System Information: Debian Release: jessie/sid APT prefers unstable APT policy: (600, 'unstable'), (500, 'testing'), (400, 'stable'), (300, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.13.0.00 (SMP w/4 CPU cores) Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages x11-xserver-utils depends on: ii cpp 4:4.8.2-2 ii libc6 2.17-97 ii libice6 2:1.0.8-2 ii libx11-6 2:1.6.2-1 ii libxaw7 2:1.0.11-1 ii libxcursor1 1:1.1.14-1 ii libxext6 2:1.3.2-1 ii libxi6 2:1.7.2-1 ii libxmu6 2:1.1.1-1 ii libxmuu1 2:1.1.1-1 ii libxrandr2 2:1.4.1-1 ii libxrender1 1:0.9.8-1 ii libxt6 1:1.1.4-1 ii libxxf86vm1 1:1.1.3-1 x11-xserver-utils recommends no packages. Versions of packages x11-xserver-utils suggests: pn cairo-5c <none> pn nickle <none> pn xorg-docs-core <none> -- no debconf information
--- a/xrandr/xrandr.c +++ b/xrandr/xrandr.c @@ -1566,7 +1566,7 @@ rr_outputs[o] = crtc->outputs[o]->output.xid; mode = crtc->mode_info->id; if (verbose) { - printf ("crtc %d: %12s %6.1f +%d+%d", crtc->crtc.index, + printf ("crtc %d: %12s %6.2f +%d+%d", crtc->crtc.index, crtc->mode_info->name, mode_refresh (crtc->mode_info), crtc->x, crtc->y); for (o = 0; o < crtc->noutput; o++) @@ -3592,7 +3592,7 @@ XRRModeInfo *mode = find_mode_by_xid (output_info->modes[j]); int f; - printf (" %s (0x%x) %6.1fMHz", + printf (" %s (0x%x) %6.2fMHz", mode->name, (int)mode->id, (double)mode->dotClock / 1000000.0); for (f = 0; mode_flags[f].flag; f++) @@ -3603,10 +3603,10 @@ if (j < output_info->npreferred) printf (" +preferred"); printf ("\n"); - printf (" h: width %4d start %4d end %4d total %4d skew %4d clock %6.1fKHz\n", + printf (" h: width %4d start %4d end %4d total %4d skew %4d clock %6.2fKHz\n", mode->width, mode->hSyncStart, mode->hSyncEnd, mode->hTotal, mode->hSkew, mode_hsync (mode) / 1000); - printf (" v: height %4d start %4d end %4d total %4d clock %6.1fHz\n", + printf (" v: height %4d start %4d end %4d total %4d clock %6.2fHz\n", mode->height, mode->vSyncStart, mode->vSyncEnd, mode->vTotal, mode_refresh (mode)); mode->modeFlags |= ModeShown; @@ -3633,7 +3633,7 @@ if (strcmp (jmode->name, kmode->name) != 0) continue; mode_shown[k] = True; kmode->modeFlags |= ModeShown; - printf (" %6.1f", mode_refresh (kmode)); + printf (" %6.2f", mode_refresh (kmode)); if (kmode == output->mode_info) printf ("*"); else @@ -3654,13 +3654,13 @@ if (!(mode->modeFlags & ModeShown)) { - printf (" %s (0x%x) %6.1fMHz\n", + printf (" %s (0x%x) %6.2fMHz\n", mode->name, (int)mode->id, (double)mode->dotClock / 1000000.0); - printf (" h: width %4d start %4d end %4d total %4d skew %4d clock %6.1fKHz\n", + printf (" h: width %4d start %4d end %4d total %4d skew %4d clock %6.2fKHz\n", mode->width, mode->hSyncStart, mode->hSyncEnd, mode->hTotal, mode->hSkew, mode_hsync (mode) / 1000); - printf (" v: height %4d start %4d end %4d total %4d clock %6.1fHz\n", + printf (" v: height %4d start %4d end %4d total %4d clock %6.2fHz\n", mode->height, mode->vSyncStart, mode->vSyncEnd, mode->vTotal, mode_refresh (mode)); }