diff options
author | crondog <patches@crondog.com> | 2014-03-07 12:09:36 +1100 |
---|---|---|
committer | Rob Clark <robdclark@gmail.com> | 2014-03-06 20:48:35 -0500 |
commit | 076cad8098a5df07e38123c69e853510c8a0d83e (patch) | |
tree | 10a136d5ee3d926f7842d50e6dcca15a08a9cfd6 | |
parent | 652da8f602a35b89398d50564bbf6e5347f05ccb (diff) |
Add option to disable SW_REFRESHER (KGSL)
Signed-off-by: Rob Clark <robdclark@gmail.com>
-rw-r--r-- | man/freedreno.man | 5 | ||||
-rw-r--r-- | src/fbmode_display.c | 6 | ||||
-rw-r--r-- | src/msm-driver.c | 4 | ||||
-rw-r--r-- | src/msm.h | 2 |
4 files changed, 16 insertions, 1 deletions
diff --git a/man/freedreno.man b/man/freedreno.man index 7e19716..a70c810 100644 --- a/man/freedreno.man +++ b/man/freedreno.man @@ -42,6 +42,11 @@ Disable HW mouse cursor. .IP Default: Disabled .TP +.BI "Option \*qSWRefresher\*q \*q" boolean \*q +Enable SW Refresher. Only applicable for fbdev/kgsl, unused for drm/msm. +.IP +Default: Enabled +.TP .BI "Option \*qfb\*q \*q" string \*q Path to fbdev device file. Required to use fbdev/kgsl, unused for drm/msm. .IP diff --git a/src/fbmode_display.c b/src/fbmode_display.c index 54f7118..78abaee 100644 --- a/src/fbmode_display.c +++ b/src/fbmode_display.c @@ -572,6 +572,8 @@ static const xf86CrtcConfigFuncsRec MSMCrtcConfigFuncs = { Bool fbmode_pre_init(ScrnInfoPtr pScrn) { + MSMPtr pMsm = MSMPTR(pScrn); + fbmode_ptr fbmode; EntityInfoPtr pEnt; const char *dev; @@ -596,7 +598,9 @@ Bool fbmode_pre_init(ScrnInfoPtr pScrn) ioctl(fbmode->fd, FBIOBLANK, FB_BLANK_UNBLANK); /* Make sure the software refresher is on */ - ioctl(fbmode->fd, MSMFB_RESUME_SW_REFRESHER, 0); + if(pMsm->SWRefresher){ + ioctl(fbmode->fd, MSMFB_RESUME_SW_REFRESHER, 0); + } /* Get the fixed info (par) structure */ diff --git a/src/msm-driver.c b/src/msm-driver.c index 620527f..be2b9e3 100644 --- a/src/msm-driver.c +++ b/src/msm-driver.c @@ -77,6 +77,7 @@ static const OptionInfoRec MSMOptions[] = { {OPTION_FB, "fb", OPTV_STRING, {0}, FALSE}, {OPTION_NOACCEL, "NoAccel", OPTV_BOOLEAN, {0}, FALSE}, {OPTION_SWCURSOR, "SWCursor", OPTV_BOOLEAN, {0}, FALSE}, + {OPTION_SWREFRESHER, "SWRefresher", OPTV_BOOLEAN, {0}, FALSE}, {OPTION_VSYNC, "DefaultVsync", OPTV_INTEGER, {0}, FALSE}, {OPTION_DEBUG, "Debug", OPTV_BOOLEAN, {0}, FALSE}, {-1, NULL, OPTV_NONE, {0}, FALSE} @@ -249,6 +250,9 @@ MSMPreInit(ScrnInfoPtr pScrn, int flags) /* SWCursor - default FALSE */ pMsm->HWCursor = !xf86ReturnOptValBool(pMsm->options, OPTION_SWCURSOR, FALSE); + /* SWRefresher - default TRUE */ + pMsm->SWRefresher = xf86ReturnOptValBool(pMsm->options, OPTION_SWREFRESHER, TRUE); + xf86PrintModes(pScrn); /* FIXME: We will probably need to be more exact when setting @@ -54,6 +54,7 @@ typedef enum OPTION_FB, OPTION_NOACCEL, OPTION_SWCURSOR, + OPTION_SWREFRESHER, OPTION_VSYNC, OPTION_DEBUG, } MSMOpts; @@ -74,6 +75,7 @@ typedef struct _MSMRec Bool NoKMS; Bool NoAccel; Bool HWCursor; + Bool SWRefresher; int drmFD; |