summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell King <rmk_cubox@arm.linux.org.uk>2013-06-14 12:14:34 +0100
committerRussell King <rmk@arm.linux.org.uk>2013-06-14 13:07:26 +0100
commit457cc1fadb456c68a5226e67c95ccd0f1c5e6893 (patch)
tree781a78be8d6551acb53c592acc6e51247a171a01
parent204ea08a1598909ae05c217e1e7ca709776efbde (diff)
downloadxf86-video-armada-457cc1fadb456c68a5226e67c95ccd0f1c5e6893.tar.gz
xf86-video-armada-457cc1fadb456c68a5226e67c95ccd0f1c5e6893.tar.xz
Initialize vivante drm_fd in vivante_ScreenInit
Move drm_fd out of the DRI2 code into the upper vivante layer. Signed-off-by: Russell King <rmk_cubox@arm.linux.org.uk>
-rw-r--r--src/vivante.c4
-rw-r--r--src/vivante_accel.h2
-rw-r--r--src/vivante_dri2.c7
-rw-r--r--src/vivante_dri2.h2
4 files changed, 7 insertions, 8 deletions
diff --git a/src/vivante.c b/src/vivante.c
index d9bdb5c..bbc1c8d 100644
--- a/src/vivante.c
+++ b/src/vivante.c
@@ -558,7 +558,6 @@ vivante_Composite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
Bool vivante_ScreenInit(ScreenPtr pScreen, struct drm_armada_bufmgr *mgr)
{
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- int drm_fd = GET_DRM_INFO(pScrn)->fd;
#ifdef RENDER
PictureScreenPtr ps = GetPictureScreenIfSet(pScreen);
#endif
@@ -572,6 +571,7 @@ Bool vivante_ScreenInit(ScreenPtr pScreen, struct drm_armada_bufmgr *mgr)
if (!vivante)
return FALSE;
+ vivante->drm_fd = GET_DRM_INFO(pScrn)->fd;
vivante->scrnIndex = pScrn->scrnIndex;
list_init(&vivante->batch_list);
vivante->bufmgr = mgr;
@@ -609,7 +609,7 @@ Bool vivante_ScreenInit(ScreenPtr pScreen, struct drm_armada_bufmgr *mgr)
vivante_set_screen_priv(pScreen, vivante);
#ifdef HAVE_DRI2
- if (!vivante_dri2_ScreenInit(pScreen, drm_fd))
+ if (!vivante_dri2_ScreenInit(pScreen))
goto fail;
#endif
diff --git a/src/vivante_accel.h b/src/vivante_accel.h
index 1d1bb31..b1441e7 100644
--- a/src/vivante_accel.h
+++ b/src/vivante_accel.h
@@ -42,6 +42,7 @@ struct armada_drm_info;
#define dbg(fmt...) fprintf(stderr, fmt)
struct vivante {
+ int drm_fd;
gcoOS os;
gcoHAL hal;
gco2D e2d;
@@ -65,7 +66,6 @@ struct vivante {
int scrnIndex;
#ifdef HAVE_DRI2
struct vivante_dri2_info *dri2;
- int drm_fd;
#endif
CloseScreenProcPtr CloseScreen;
diff --git a/src/vivante_dri2.c b/src/vivante_dri2.c
index 42c3876..2a6f0fe 100644
--- a/src/vivante_dri2.c
+++ b/src/vivante_dri2.c
@@ -674,7 +674,7 @@ vivante_dri2_ScheduleWaitMSC(ClientPtr client, DrawablePtr draw,
static int dri2_server_generation;
-Bool vivante_dri2_ScreenInit(ScreenPtr pScreen, int drm_fd)
+Bool vivante_dri2_ScreenInit(ScreenPtr pScreen)
{
struct vivante *vivante = vivante_get_screen_priv(pScreen);
struct vivante_dri2_info *dri;
@@ -711,14 +711,13 @@ Bool vivante_dri2_ScreenInit(ScreenPtr pScreen, int drm_fd)
}
dri = xnfcalloc(1, sizeof *dri);
- dri->devname = drmGetDeviceNameFromFd(drm_fd);
+ dri->devname = drmGetDeviceNameFromFd(vivante->drm_fd);
vivante->dri2 = dri;
- vivante->drm_fd = drm_fd;
memset(&info, 0, sizeof(info));
info.version = 4;
- info.fd = drm_fd;
+ info.fd = vivante->drm_fd;
info.driverName = "galdri";
info.deviceName = dri->devname;
diff --git a/src/vivante_dri2.h b/src/vivante_dri2.h
index 615d528..ef2c39e 100644
--- a/src/vivante_dri2.h
+++ b/src/vivante_dri2.h
@@ -7,7 +7,7 @@
#ifndef VIVANTE_DRI2_H
#define VIVANTE_DRI2_H
-Bool vivante_dri2_ScreenInit(ScreenPtr pScreen, int drm_fd);
+Bool vivante_dri2_ScreenInit(ScreenPtr pScreen);
void vivante_dri2_CloseScreen(int scrnIndex, ScreenPtr pScreen);
void vivante_dri2_vblank(int fd, unsigned frame, unsigned tv_sec,
unsigned tv_usec, void *event);