Find a file
Devarsh Thakkar a2d588fe12 modetest: Add support for setting mode having floating vertical refresh rate
For the scenario where user may require to modeset with a mode
supporting a fractional value for vertical refresh-rate,
appropriate mode can be selected by searching for mode
having matching fractional vertical refresh rate using
below equation.

vrefresh = (1000 * pixel clock) / (htotal * vtotal) Hz.

We do this way since driver doesn't return float value of vrefresh
as it use int for vrefresh in struct drm_mode_info, but we can derive
the actual value using pixel clock, horizontal total size and
vertical total size values.

So for e.g. if user want to select mode having 59.94 Hz as refresh rate
then with this patch it be can done as shown in below command,
given there is an appropriate mode is available :

modetest -M xlnx -s 39:1920x1080-59.94@BG24 -v

NOTE: Above command was tested on xilinx DRM driver with DP
monitor which was supporting mode having 59.94 Hz refresh rate.

V2: Update commit message
V3: Update with below changes as per review comments :
  1) Use epsilon for vrefresh comparison
  2) Use implicit type-casting wherever possible
V4: Keep patch version history on main commit message

Signed-off-by: Devarsh Thakkar <devarsh.thakkar@xilinx.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2019-11-25 16:13:43 +02:00
.gitlab-ci gitlab-ci: add PowerPC build 2019-11-23 00:37:06 +00:00
amdgpu amdgpu: convert to new symbols check 2019-11-11 22:57:14 +00:00
android android: Fix 32-bit app crashing in 64-bit Android 2018-12-18 21:18:19 +01:00
data Revert "Revert "libdrm: remove autotools support"" 2019-10-18 18:05:45 +01:00
etnaviv etnaviv: convert to new symbols check 2019-11-11 22:57:14 +00:00
exynos exynos: convert to new symbols check 2019-11-11 22:57:14 +00:00
freedreno freedreno: convert to new symbols check 2019-11-11 22:57:14 +00:00
include/drm sync up drm.h 2019-10-26 03:11:14 +00:00
intel intel: convert to new symbols check 2019-11-11 22:57:14 +00:00
libkms libkms: convert to new symbols check 2019-11-11 22:57:14 +00:00
man Revert "Revert "libdrm: remove autotools support"" 2019-10-18 18:05:45 +01:00
nouveau nouveau: convert to new symbols check 2019-11-11 22:57:14 +00:00
omap omap: convert to new symbols check 2019-11-11 22:57:14 +00:00
radeon radeon: convert to new symbols check 2019-11-11 22:57:14 +00:00
tegra tegra: convert to new symbols check 2019-11-11 22:57:14 +00:00
tests modetest: Add support for setting mode having floating vertical refresh rate 2019-11-25 16:13:43 +02:00
vc4 Revert "Revert "libdrm: remove autotools support"" 2019-10-18 18:05:45 +01:00
.editorconfig Add meson build system 2018-01-12 09:40:48 -08:00
.gitlab-ci.yml gitlab-ci: add PowerPC build 2019-11-23 00:37:06 +00:00
Android.common.mk android: make symbols hidden by default 2018-10-04 14:42:54 +01:00
Android.mk libdrm: Android.mk: Add minimal Android platform check 2019-04-25 10:55:02 +01:00
CleanSpec.mk tests: Split helpers into library 2015-12-18 17:43:40 +00:00
CONTRIBUTING.rst doc: Rename README&CONTRIBUTING to .rst 2018-10-17 17:17:19 +02:00
libdrm.pc.in Revert "Fix pkgconfig includes for /usr/include/drm" 2010-04-09 16:33:38 -04:00
libdrm_lists.h lists: add nicer+unsafe foreach, and list join macros 2012-04-14 02:47:04 +10:00
libdrm_macros.h libdrm: Use mmap64 instead of __mmap2 2019-04-25 10:55:13 +01:00
libsync.h add libsync.h helper 2016-11-05 10:16:46 -04:00
Makefile.sources libdrm: add msm drm uapi header 2018-08-23 08:48:45 -07:00
meson.build meson: drop old symbols check environment 2019-11-11 22:57:14 +00:00
meson_options.txt Add meson build system 2018-01-12 09:40:48 -08:00
README.rst Revert "Revert "libdrm: remove autotools support"" 2019-10-18 18:05:45 +01:00
RELEASING RELEASING: update instructions to use meson instead of autotools 2019-10-14 15:57:26 +00:00
symbols-check.py meson: import Mesa's symbols check script 2019-11-11 22:57:14 +00:00
util_double_list.h list: fix an issue with android build using clang 2016-08-02 16:22:45 -04:00
util_math.h Fix build with -std=c11 2018-09-05 13:09:29 +01:00
xf86atomic.h freedreno: revert bad freedreno/atomic_ops commits 2019-02-19 09:50:26 +00:00
xf86drm.c libdrm: wrap new flexible syncobj query interface v2 2019-10-26 03:11:14 +00:00
xf86drm.h libdrm: wrap new flexible syncobj query interface v2 2019-10-26 03:11:14 +00:00
xf86drmHash.c xf86drmHash: remove unused loop variable 2018-11-09 10:59:11 +00:00
xf86drmHash.h tests/hash: extract test out of xf86drmHash.c 2015-04-05 15:19:42 +01:00
xf86drmMode.c xf86drm: Fix possible memory leak with drmModeGetPropertyPtr() 2019-05-03 12:47:42 +01:00
xf86drmMode.h Fix missing stdlib includes in xf86drmMode.h 2019-11-12 00:16:58 +00:00
xf86drmRandom.c libdrm: annotate public functions 2018-09-19 22:46:45 -07:00
xf86drmRandom.h tests/random: extract test out of xf86drmRandom.c 2015-04-05 15:33:33 +01:00
xf86drmSL.c libdrm: annotate public functions 2018-09-19 22:46:45 -07:00

libdrm - userspace library for drm
----------------------------------

This is libdrm, a userspace library for accessing the DRM, direct rendering
manager, on Linux, BSD and other operating systems that support the ioctl
interface.
The library provides wrapper functions for the ioctls to avoid exposing the
kernel interface directly, and for chipsets with drm memory manager, support
for tracking relocations and buffers.
New functionality in the kernel DRM drivers typically requires a new libdrm,
but a new libdrm will always work with an older kernel.

libdrm is a low-level library, typically used by graphics drivers such as
the Mesa drivers, the X drivers, libva and similar projects.


Compiling
---------

To set up meson:

    meson builddir/

By default this will install into /usr/local, you can change your prefix
with --prefix=/usr (or `meson configure builddir/ -Dprefix=/usr` after 
the initial meson setup).

Then use ninja to build and install:

    ninja -C builddir/ install

If you are installing into a system location you will need to run install
separately, and as root.