summaryrefslogtreecommitdiff
path: root/hw/xfree86/drivers/modesetting/driver.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/xfree86/drivers/modesetting/driver.c')
-rw-r--r--hw/xfree86/drivers/modesetting/driver.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c
index 4754e0138..76fc7b952 100644
--- a/hw/xfree86/drivers/modesetting/driver.c
+++ b/hw/xfree86/drivers/modesetting/driver.c
@@ -133,6 +133,7 @@ static const OptionInfoRec Options[] = {
{OPTION_DOUBLE_SHADOW, "DoubleShadow", OPTV_BOOLEAN, {0}, FALSE},
{OPTION_SHADOW_PRIMARY, "ShadowPrimary", OPTV_BOOLEAN, {0}, FALSE},
{OPTION_TEARFREE, "TearFree", OPTV_BOOLEAN, {0}, FALSE},
+ {OPTION_NO_ATOMIC, "NoAtomic", OPTV_BOOLEAN, {0}, FALSE},
{-1, NULL, OPTV_NONE, {0}, FALSE}
};
@@ -1122,8 +1123,17 @@ PreInit(ScrnInfoPtr pScrn, int flags)
#endif
}
- ret = drmSetClientCap(ms->fd, DRM_CLIENT_CAP_ATOMIC, 1);
- ms->atomic_modeset = (ret == 0);
+ if (!xf86ReturnOptValBool(ms->drmmode.Options, OPTION_NO_ATOMIC, FALSE)) {
+ ret = drmSetClientCap(ms->fd, DRM_CLIENT_CAP_ATOMIC, 1);
+ ms->atomic_modeset = (ret == 0);
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Atomic Mode Setting support: %s\n",
+ ms->atomic_modeset ? "True" : "False");
+ } else {
+ ms->atomic_modeset = FALSE;
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "The use Atomic Mode Setting has "
+ "been disabled\n");
+ }
+
ms->kms_has_modifiers = FALSE;
ret = drmGetCap(ms->fd, DRM_CAP_ADDFB2_MODIFIERS, &value);