> -----Original Message----- > From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf > Of Michel Dänzer > Sent: Friday, June 30, 2017 5:20 AM > To: amd-gfx at lists.freedesktop.org > Subject: [PATCH xf86-video-ati] Use pRADEONEnt->fd exclusively for the > DRM file descriptor > > From: Michel Dänzer <michel.daenzer at amd.com> > > This brings us closer to amdgpu. > > Signed-off-by: Michel Dänzer <michel.daenzer at amd.com> Reviewed-by: Alex Deucher <alexander.deucher at amd.com> > --- > src/drmmode_display.c | 151 +++++++++++++++++++++++++---------------- > -------- > src/drmmode_display.h | 1 - > src/radeon.h | 14 +++-- > src/radeon_accel.c | 4 +- > src/radeon_bo_helper.c | 8 ++- > src/radeon_dri2.c | 54 ++++++++++-------- > src/radeon_dri2.h | 1 - > src/radeon_dri3.c | 3 +- > src/radeon_exa.c | 4 +- > src/radeon_glamor.c | 3 +- > src/radeon_kms.c | 70 ++++++++++++----------- > src/radeon_present.c | 13 +++-- > 12 files changed, 172 insertions(+), 154 deletions(-) > > diff --git a/src/drmmode_display.c b/src/drmmode_display.c > index dd394ec1d..4b964b7b9 100644 > --- a/src/drmmode_display.c > +++ b/src/drmmode_display.c > @@ -272,7 +272,7 @@ int drmmode_get_current_ust(int drm_fd, CARD64 > *ust) > int drmmode_crtc_get_ust_msc(xf86CrtcPtr crtc, CARD64 *ust, CARD64 > *msc) > { > ScrnInfoPtr scrn = crtc->scrn; > - RADEONInfoPtr info = RADEONPTR(scrn); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); > drmVBlank vbl; > int ret; > > @@ -280,7 +280,7 @@ int drmmode_crtc_get_ust_msc(xf86CrtcPtr crtc, > CARD64 *ust, CARD64 *msc) > vbl.request.type |= radeon_populate_vbl_request_type(crtc); > vbl.request.sequence = 0; > > - ret = drmWaitVBlank(info->dri2.drm_fd, &vbl); > + ret = drmWaitVBlank(pRADEONEnt->fd, &vbl); > if (ret) { > xf86DrvMsg(scrn->scrnIndex, X_WARNING, > "get vblank counter failed: %s\n", strerror(errno)); > @@ -298,7 +298,7 @@ drmmode_do_crtc_dpms(xf86CrtcPtr crtc, int mode) > { > drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private; > ScrnInfoPtr scrn = crtc->scrn; > - RADEONInfoPtr info = RADEONPTR(scrn); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); > CARD64 ust; > int ret; > > @@ -318,7 +318,7 @@ drmmode_do_crtc_dpms(xf86CrtcPtr crtc, int mode) > vbl.request.type = DRM_VBLANK_RELATIVE; > vbl.request.type |= > radeon_populate_vbl_request_type(crtc); > vbl.request.sequence = 0; > - ret = drmWaitVBlank(info->dri2.drm_fd, &vbl); > + ret = drmWaitVBlank(pRADEONEnt->fd, &vbl); > if (ret) > xf86DrvMsg(scrn->scrnIndex, X_ERROR, > "%s cannot get last vblank counter\n", > @@ -345,7 +345,7 @@ drmmode_do_crtc_dpms(xf86CrtcPtr crtc, int mode) > * Off->On transition: calculate and accumulate the > * number of interpolated vblanks while we were in Off state > */ > - ret = drmmode_get_current_ust(info->dri2.drm_fd, &ust); > + ret = drmmode_get_current_ust(pRADEONEnt->fd, &ust); > if (ret) > xf86DrvMsg(scrn->scrnIndex, X_ERROR, > "%s cannot get current time\n", __func__); > @@ -365,7 +365,7 @@ static void > drmmode_crtc_dpms(xf86CrtcPtr crtc, int mode) > { > drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private; > - drmmode_ptr drmmode = drmmode_crtc->drmmode; > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(crtc->scrn); > > /* Disable unused CRTCs */ > if (!crtc->enabled || mode != DPMSModeOn) { > @@ -373,9 +373,9 @@ drmmode_crtc_dpms(xf86CrtcPtr crtc, int mode) > if (drmmode_crtc->flip_pending) > return; > > - drmModeSetCrtc(drmmode->fd, drmmode_crtc- > >mode_crtc->crtc_id, > + drmModeSetCrtc(pRADEONEnt->fd, drmmode_crtc- > >mode_crtc->crtc_id, > 0, 0, 0, NULL, 0, NULL); > - drmmode_fb_reference(drmmode->fd, &drmmode_crtc- > >fb, NULL); > + drmmode_fb_reference(pRADEONEnt->fd, > &drmmode_crtc->fb, NULL); > } else if (drmmode_crtc->dpms_mode != DPMSModeOn) > crtc->funcs->set_mode_major(crtc, &crtc->mode, crtc- > >rotation, > crtc->x, crtc->y); > @@ -385,6 +385,7 @@ static PixmapPtr > create_pixmap_for_fbcon(drmmode_ptr drmmode, > ScrnInfoPtr pScrn, int fbcon_id) > { > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); > RADEONInfoPtr info = RADEONPTR(pScrn); > PixmapPtr pixmap = info->fbcon_pixmap; > struct radeon_bo *bo; > @@ -394,7 +395,7 @@ create_pixmap_for_fbcon(drmmode_ptr drmmode, > if (pixmap) > return pixmap; > > - fbcon = drmModeGetFB(drmmode->fd, fbcon_id); > + fbcon = drmModeGetFB(pRADEONEnt->fd, fbcon_id); > if (fbcon == NULL) > return NULL; > > @@ -404,7 +405,7 @@ create_pixmap_for_fbcon(drmmode_ptr drmmode, > goto out_free_fb; > > flink.handle = fbcon->handle; > - if (ioctl(drmmode->fd, DRM_IOCTL_GEM_FLINK, &flink) < 0) { > + if (ioctl(pRADEONEnt->fd, DRM_IOCTL_GEM_FLINK, &flink) < 0) { > xf86DrvMsg(pScrn->scrnIndex, X_ERROR, > "Couldn't flink fbcon handle\n"); > goto out_free_fb; > @@ -812,8 +813,9 @@ drmmode_crtc_gamma_do_set(xf86CrtcPtr crtc, > uint16_t *red, uint16_t *green, > uint16_t *blue, int size) > { > drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private; > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(crtc->scrn); > > - drmModeCrtcSetGamma(drmmode_crtc->drmmode->fd, > + drmModeCrtcSetGamma(pRADEONEnt->fd, > drmmode_crtc->mode_crtc->crtc_id, size, red, > green, > blue); > } > @@ -825,6 +827,7 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, > DisplayModePtr mode, > ScrnInfoPtr pScrn = crtc->scrn; > ScreenPtr pScreen = pScrn->pScreen; > RADEONInfoPtr info = RADEONPTR(pScrn); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); > xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(crtc- > >scrn); > drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private; > unsigned scanout_id = 0; > @@ -907,13 +910,13 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, > DisplayModePtr mode, > if (!fb) > fb = radeon_pixmap_get_fb(pScreen- > >GetWindowPixmap(pScreen->root)); > if (!fb) { > - fb = radeon_fb_create(drmmode->fd, pScrn- > >virtualX, > + fb = radeon_fb_create(pRADEONEnt->fd, pScrn- > >virtualX, > pScrn->virtualY, pScrn->depth, > pScrn->bitsPerPixel, > pScrn->displayWidth * info- > >pixel_bytes, > info->front_bo->handle); > /* Prevent refcnt of ad-hoc FBs from reaching 2 */ > - drmmode_fb_reference(drmmode->fd, > &drmmode_crtc->fb, NULL); > + drmmode_fb_reference(pRADEONEnt->fd, > &drmmode_crtc->fb, NULL); > drmmode_crtc->fb = fb; > } > if (!fb) { > @@ -923,10 +926,10 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, > DisplayModePtr mode, > > /* Wait for any pending flip to finish */ > do {} while (drmmode_crtc->flip_pending && > - drmHandleEvent(drmmode->fd, > + drmHandleEvent(pRADEONEnt->fd, > &drmmode->event_context) > 0); > > - if (drmModeSetCrtc(drmmode->fd, > + if (drmModeSetCrtc(pRADEONEnt->fd, > drmmode_crtc->mode_crtc->crtc_id, > fb->handle, x, y, output_ids, > output_count, &kmode) != 0) { > @@ -935,7 +938,7 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, > DisplayModePtr mode, > goto done; > } else { > ret = TRUE; > - drmmode_fb_reference(drmmode->fd, > &drmmode_crtc->fb, fb); > + drmmode_fb_reference(pRADEONEnt->fd, > &drmmode_crtc->fb, fb); > } > > if (pScreen) > @@ -1006,7 +1009,7 @@ static void > drmmode_set_cursor_position (xf86CrtcPtr crtc, int x, int y) > { > drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private; > - drmmode_ptr drmmode = drmmode_crtc->drmmode; > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(crtc->scrn); > > #if XF86_CRTC_VERSION >= 4 && XF86_CRTC_VERSION < 7 > if (crtc->driverIsPerformingTransform) { > @@ -1016,7 +1019,7 @@ drmmode_set_cursor_position (xf86CrtcPtr crtc, int > x, int y) > } > #endif > > - drmModeMoveCursor(drmmode->fd, drmmode_crtc->mode_crtc- > >crtc_id, x, y); > + drmModeMoveCursor(pRADEONEnt->fd, drmmode_crtc- > >mode_crtc->crtc_id, x, y); > } > > #if XF86_CRTC_VERSION >= 4 && XF86_CRTC_VERSION < 7 > @@ -1138,9 +1141,9 @@ drmmode_hide_cursor (xf86CrtcPtr crtc) > ScrnInfoPtr pScrn = crtc->scrn; > RADEONInfoPtr info = RADEONPTR(pScrn); > drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private; > - drmmode_ptr drmmode = drmmode_crtc->drmmode; > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); > > - drmModeSetCursor(drmmode->fd, drmmode_crtc->mode_crtc- > >crtc_id, 0, > + drmModeSetCursor(pRADEONEnt->fd, drmmode_crtc->mode_crtc- > >crtc_id, 0, > info->cursor_w, info->cursor_h); > > } > @@ -1151,7 +1154,7 @@ drmmode_show_cursor (xf86CrtcPtr crtc) > ScrnInfoPtr pScrn = crtc->scrn; > RADEONInfoPtr info = RADEONPTR(pScrn); > drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private; > - drmmode_ptr drmmode = drmmode_crtc->drmmode; > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); > uint32_t handle = drmmode_crtc->cursor_bo->handle; > static Bool use_set_cursor2 = TRUE; > > @@ -1191,7 +1194,7 @@ drmmode_show_cursor (xf86CrtcPtr crtc) > } > > ret = > - drmModeSetCursor2(drmmode->fd, drmmode_crtc- > >mode_crtc->crtc_id, > + drmModeSetCursor2(pRADEONEnt->fd, drmmode_crtc- > >mode_crtc->crtc_id, > handle, info->cursor_w, info->cursor_h, > xhot, yhot); > if (ret == -EINVAL) > @@ -1200,7 +1203,7 @@ drmmode_show_cursor (xf86CrtcPtr crtc) > return; > } > > - drmModeSetCursor(drmmode->fd, drmmode_crtc->mode_crtc- > >crtc_id, handle, > + drmModeSetCursor(pRADEONEnt->fd, drmmode_crtc->mode_crtc- > >crtc_id, handle, > info->cursor_w, info->cursor_h); > } > > @@ -1347,8 +1350,7 @@ int drmmode_get_crtc_id(xf86CrtcPtr crtc) > void drmmode_crtc_hw_id(xf86CrtcPtr crtc) > { > drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private; > - ScrnInfoPtr pScrn = crtc->scrn; > - RADEONInfoPtr info = RADEONPTR(pScrn); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(crtc->scrn); > struct drm_radeon_info ginfo; > int r; > uint32_t tmp; > @@ -1357,7 +1359,7 @@ void drmmode_crtc_hw_id(xf86CrtcPtr crtc) > ginfo.request = 0x4; > tmp = drmmode_crtc->mode_crtc->crtc_id; > ginfo.value = (uintptr_t)&tmp; > - r = drmCommandWriteRead(info->dri2.drm_fd, > DRM_RADEON_INFO, &ginfo, sizeof(ginfo)); > + r = drmCommandWriteRead(pRADEONEnt->fd, > DRM_RADEON_INFO, &ginfo, sizeof(ginfo)); > if (r) { > drmmode_crtc->hw_id = -1; > return; > @@ -1377,7 +1379,7 @@ drmmode_crtc_init(ScrnInfoPtr pScrn, > drmmode_ptr drmmode, drmModeResPtr mode_res > return 0; > > drmmode_crtc = xnfcalloc(sizeof(drmmode_crtc_private_rec), 1); > - drmmode_crtc->mode_crtc = drmModeGetCrtc(drmmode->fd, > mode_res->crtcs[num]); > + drmmode_crtc->mode_crtc = drmModeGetCrtc(pRADEONEnt->fd, > mode_res->crtcs[num]); > drmmode_crtc->drmmode = drmmode; > drmmode_crtc->dpms_mode = DPMSModeOff; > drmmode_crtc->pending_dpms_mode = DPMSModeOff; > @@ -1397,11 +1399,11 @@ drmmode_output_detect(xf86OutputPtr > output) > { > /* go to the hw and retrieve a new output struct */ > drmmode_output_private_ptr drmmode_output = output- > >driver_private; > - drmmode_ptr drmmode = drmmode_output->drmmode; > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(output->scrn); > xf86OutputStatus status; > drmModeFreeConnector(drmmode_output->mode_output); > > - drmmode_output->mode_output = > drmModeGetConnector(drmmode->fd, drmmode_output->output_id); > + drmmode_output->mode_output = > drmModeGetConnector(pRADEONEnt->fd, drmmode_output->output_id); > if (!drmmode_output->mode_output) > return XF86OutputStatusDisconnected; > > @@ -1431,7 +1433,7 @@ drmmode_output_get_modes(xf86OutputPtr > output) > { > drmmode_output_private_ptr drmmode_output = output- > >driver_private; > drmModeConnectorPtr koutput = drmmode_output- > >mode_output; > - drmmode_ptr drmmode = drmmode_output->drmmode; > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(output->scrn); > int i; > DisplayModePtr Modes = NULL, Mode; > drmModePropertyPtr props; > @@ -1442,12 +1444,12 @@ drmmode_output_get_modes(xf86OutputPtr > output) > > /* look for an EDID property */ > for (i = 0; i < koutput->count_props; i++) { > - props = drmModeGetProperty(drmmode->fd, koutput- > >props[i]); > + props = drmModeGetProperty(pRADEONEnt->fd, koutput- > >props[i]); > if (props && (props->flags & DRM_MODE_PROP_BLOB)) { > if (!strcmp(props->name, "EDID")) { > if (drmmode_output->edid_blob) > > drmModeFreePropertyBlob(drmmode_output->edid_blob); > - drmmode_output->edid_blob = > drmModeGetPropertyBlob(drmmode->fd, koutput->prop_values[i]); > + drmmode_output->edid_blob = > drmModeGetPropertyBlob(pRADEONEnt->fd, koutput->prop_values[i]); > } > } > if (props) > @@ -1501,7 +1503,7 @@ drmmode_output_dpms(xf86OutputPtr output, int > mode) > drmmode_output_private_ptr drmmode_output = output- > >driver_private; > xf86CrtcPtr crtc = output->crtc; > drmModeConnectorPtr koutput = drmmode_output- > >mode_output; > - drmmode_ptr drmmode = drmmode_output->drmmode; > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(output->scrn); > > if (!koutput) > return; > @@ -1516,7 +1518,7 @@ drmmode_output_dpms(xf86OutputPtr output, int > mode) > return; > } > > - drmModeConnectorSetProperty(drmmode->fd, koutput- > >connector_id, > + drmModeConnectorSetProperty(pRADEONEnt->fd, koutput- > >connector_id, > drmmode_output->dpms_enum_id, > mode); > > if (mode == DPMSModeOn && crtc) { > @@ -1553,7 +1555,7 @@ > drmmode_output_create_resources(xf86OutputPtr output) > RADEONInfoPtr info = RADEONPTR(output->scrn); > drmmode_output_private_ptr drmmode_output = output- > >driver_private; > drmModeConnectorPtr mode_output = drmmode_output- > >mode_output; > - drmmode_ptr drmmode = drmmode_output->drmmode; > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(output->scrn); > drmModePropertyPtr drmmode_prop, tearfree_prop; > int i, j, err; > > @@ -1563,7 +1565,7 @@ > drmmode_output_create_resources(xf86OutputPtr output) > > drmmode_output->num_props = 0; > for (i = 0, j = 0; i < mode_output->count_props; i++) { > - drmmode_prop = drmModeGetProperty(drmmode->fd, > mode_output->props[i]); > + drmmode_prop = drmModeGetProperty(pRADEONEnt->fd, > mode_output->props[i]); > if (drmmode_property_ignore(drmmode_prop)) { > drmModeFreeProperty(drmmode_prop); > continue; > @@ -1657,7 +1659,7 @@ drmmode_output_set_property(xf86OutputPtr > output, Atom property, > RRPropertyValuePtr value) > { > drmmode_output_private_ptr drmmode_output = output- > >driver_private; > - drmmode_ptr drmmode = drmmode_output->drmmode; > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(output->scrn); > int i; > > for (i = 0; i < drmmode_output->num_props; i++) { > @@ -1674,7 +1676,7 @@ drmmode_output_set_property(xf86OutputPtr > output, Atom property, > return FALSE; > val = *(uint32_t *)value->data; > > - drmModeConnectorSetProperty(drmmode->fd, > drmmode_output->output_id, > + drmModeConnectorSetProperty(pRADEONEnt->fd, > drmmode_output->output_id, > p->mode_prop->prop_id, (uint64_t)val); > return TRUE; > } else if (p->mode_prop->flags & DRM_MODE_PROP_ENUM) { > @@ -1703,7 +1705,7 @@ drmmode_output_set_property(xf86OutputPtr > output, Atom property, > } > } > } else { > - drmModeConnectorSetProperty(drmmode->fd, > + drmModeConnectorSetProperty(pRADEONEnt->fd, > drmmode_output- > >output_id, > p->mode_prop->prop_id, > p->mode_prop- > >enums[j].value); > @@ -1876,6 +1878,7 @@ static unsigned int > drmmode_output_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, > drmModeResPtr mode_res, int num, int *num_dvi, int *num_hdmi, int > dynamic) > { > xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); > RADEONInfoPtr info = RADEONPTR(pScrn); > xf86OutputPtr output; > drmModeConnectorPtr koutput; > @@ -1887,15 +1890,15 @@ drmmode_output_init(ScrnInfoPtr pScrn, > drmmode_ptr drmmode, drmModeResPtr mode_r > int i; > const char *s; > > - koutput = drmModeGetConnector(drmmode->fd, mode_res- > >connectors[num]); > + koutput = drmModeGetConnector(pRADEONEnt->fd, mode_res- > >connectors[num]); > if (!koutput) > return 0; > > for (i = 0; i < koutput->count_props; i++) { > - props = drmModeGetProperty(drmmode->fd, koutput- > >props[i]); > + props = drmModeGetProperty(pRADEONEnt->fd, koutput- > >props[i]); > if (props && (props->flags & DRM_MODE_PROP_BLOB)) { > if (!strcmp(props->name, "PATH")) { > - path_blob = > drmModeGetPropertyBlob(drmmode->fd, koutput->prop_values[i]); > + path_blob = > drmModeGetPropertyBlob(pRADEONEnt->fd, koutput->prop_values[i]); > drmModeFreeProperty(props); > break; > } > @@ -1909,7 +1912,7 @@ drmmode_output_init(ScrnInfoPtr pScrn, > drmmode_ptr drmmode, drmModeResPtr mode_r > } > > for (i = 0; i < koutput->count_encoders; i++) { > - kencoders[i] = drmModeGetEncoder(drmmode->fd, > koutput->encoders[i]); > + kencoders[i] = drmModeGetEncoder(pRADEONEnt->fd, > koutput->encoders[i]); > if (!kencoders[i]) { > goto out_free_encoders; > } > @@ -1982,7 +1985,7 @@ drmmode_output_init(ScrnInfoPtr pScrn, > drmmode_ptr drmmode, drmModeResPtr mode_r > output->possible_clones = 0; > > for (i = 0; i < koutput->count_props; i++) { > - props = drmModeGetProperty(drmmode->fd, koutput- > >props[i]); > + props = drmModeGetProperty(pRADEONEnt->fd, koutput- > >props[i]); > if (props && (props->flags & DRM_MODE_PROP_ENUM)) { > if (!strcmp(props->name, "DPMS")) { > drmmode_output->dpms_enum_id = > koutput->props[i]; > @@ -2418,6 +2421,7 @@ static void > drmmode_flip_handler(xf86CrtcPtr crtc, uint32_t frame, uint64_t usec, void > *event_data) > { > drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private; > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(crtc->scrn); > drmmode_flipdata_ptr flipdata = event_data; > > /* Is this the event whose info shall be delivered to higher level? */ > @@ -2440,7 +2444,7 @@ drmmode_flip_handler(xf86CrtcPtr crtc, uint32_t > frame, uint64_t usec, void *even > free(flipdata); > } > > - drmmode_fb_reference(drmmode_crtc->drmmode->fd, > &drmmode_crtc->fb, > + drmmode_fb_reference(pRADEONEnt->fd, &drmmode_crtc->fb, > drmmode_crtc->flip_pending); > drmmode_clear_pending_flip(crtc); > } > @@ -2454,23 +2458,26 @@ static void > drm_wakeup_handler(pointer data, int err, pointer p) > #endif > { > - drmmode_ptr drmmode = data; > + ScrnInfoPtr scrn = data; > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); > + RADEONInfoPtr info = RADEONPTR(scrn); > + > #if !HAVE_NOTIFY_FD > fd_set *read_mask = p; > > - if (err >= 0 && FD_ISSET(drmmode->fd, read_mask)) > + if (err >= 0 && FD_ISSET(pRADEONEnt->fd, read_mask)) > #endif > { > - drmHandleEvent(drmmode->fd, &drmmode- > >event_context); > + drmHandleEvent(pRADEONEnt->fd, &info- > >drmmode.event_context); > } > } > > -static Bool drmmode_probe_page_flip_target(drmmode_ptr drmmode) > +static Bool drmmode_probe_page_flip_target(RADEONEntPtr > pRADEONEnt) > { > #ifdef DRM_CAP_PAGE_FLIP_TARGET > uint64_t cap_value; > > - return drmGetCap(drmmode->fd, DRM_CAP_PAGE_FLIP_TARGET, > + return drmGetCap(pRADEONEnt->fd, > DRM_CAP_PAGE_FLIP_TARGET, > &cap_value) == 0 && cap_value != 0; > #else > return FALSE; > @@ -2478,13 +2485,12 @@ static Bool > drmmode_probe_page_flip_target(drmmode_ptr drmmode) > } > > static int > -drmmode_page_flip(drmmode_crtc_private_ptr drmmode_crtc, int fb_id, > +drmmode_page_flip(RADEONEntPtr pRADEONEnt, > + drmmode_crtc_private_ptr drmmode_crtc, int fb_id, > uint32_t flags, uintptr_t drm_queue_seq) > { > - drmmode_ptr drmmode = drmmode_crtc->drmmode; > - > flags |= DRM_MODE_PAGE_FLIP_EVENT; > - return drmModePageFlip(drmmode->fd, drmmode_crtc- > >mode_crtc->crtc_id, > + return drmModePageFlip(pRADEONEnt->fd, drmmode_crtc- > >mode_crtc->crtc_id, > fb_id, flags, (void*)drm_queue_seq); > } > > @@ -2496,17 +2502,16 @@ > drmmode_page_flip_target_absolute(RADEONEntPtr pRADEONEnt, > { > #ifdef DRM_MODE_PAGE_FLIP_TARGET > if (pRADEONEnt->has_page_flip_target) { > - drmmode_ptr drmmode = drmmode_crtc->drmmode; > - > flags |= DRM_MODE_PAGE_FLIP_EVENT | > DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE; > - return drmModePageFlipTarget(drmmode->fd, > + return drmModePageFlipTarget(pRADEONEnt->fd, > drmmode_crtc->mode_crtc- > >crtc_id, > fb_id, flags, > (void*)drm_queue_seq, > target_msc); > } > #endif > > - return drmmode_page_flip(drmmode_crtc, fb_id, flags, > drm_queue_seq); > + return drmmode_page_flip(pRADEONEnt, drmmode_crtc, fb_id, > flags, > + drm_queue_seq); > } > > int > @@ -2517,17 +2522,16 @@ > drmmode_page_flip_target_relative(RADEONEntPtr pRADEONEnt, > { > #ifdef DRM_MODE_PAGE_FLIP_TARGET > if (pRADEONEnt->has_page_flip_target) { > - drmmode_ptr drmmode = drmmode_crtc->drmmode; > - > flags |= DRM_MODE_PAGE_FLIP_EVENT | > DRM_MODE_PAGE_FLIP_TARGET_RELATIVE; > - return drmModePageFlipTarget(drmmode->fd, > + return drmModePageFlipTarget(pRADEONEnt->fd, > drmmode_crtc->mode_crtc- > >crtc_id, > fb_id, flags, > (void*)drm_queue_seq, > target_msc); > } > #endif > > - return drmmode_page_flip(drmmode_crtc, fb_id, flags, > drm_queue_seq); > + return drmmode_page_flip(pRADEONEnt, drmmode_crtc, fb_id, > flags, > + drm_queue_seq); > } > > Bool drmmode_pre_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int > cpp) > @@ -2544,7 +2548,7 @@ Bool drmmode_pre_init(ScrnInfoPtr pScrn, > drmmode_ptr drmmode, int cpp) > xf86CrtcConfigInit(pScrn, &drmmode_xf86crtc_config_funcs); > > drmmode->scrn = pScrn; > - mode_res = drmModeGetResources(drmmode->fd); > + mode_res = drmModeGetResources(pRADEONEnt->fd); > if (!mode_res) > return FALSE; > > @@ -2594,7 +2598,7 @@ Bool drmmode_pre_init(ScrnInfoPtr pScrn, > drmmode_ptr drmmode, int cpp) > drmmode->event_context.vblank_handler = > radeon_drm_queue_handler; > drmmode->event_context.page_flip_handler = > radeon_drm_queue_handler; > > - pRADEONEnt->has_page_flip_target = > drmmode_probe_page_flip_target(drmmode); > + pRADEONEnt->has_page_flip_target = > drmmode_probe_page_flip_target(pRADEONEnt); > > drmModeFreeResources(mode_res); > return TRUE; > @@ -2611,11 +2615,11 @@ void drmmode_init(ScrnInfoPtr pScrn, > drmmode_ptr drmmode) > info->drmmode_inited = TRUE; > if (pRADEONEnt->fd_wakeup_registered != serverGeneration) { > #if HAVE_NOTIFY_FD > - SetNotifyFd(drmmode->fd, drm_notify_fd, > X_NOTIFY_READ, drmmode); > + SetNotifyFd(pRADEONEnt->fd, drm_notify_fd, > X_NOTIFY_READ, pScrn); > #else > - AddGeneralSocket(drmmode->fd); > + AddGeneralSocket(pRADEONEnt->fd); > > RegisterBlockAndWakeupHandlers((BlockHandlerProcPtr)NoopDDA, > - drm_wakeup_handler, drmmode); > + drm_wakeup_handler, pScrn); > #endif > pRADEONEnt->fd_wakeup_registered = serverGeneration; > pRADEONEnt->fd_wakeup_ref = 1; > @@ -2636,11 +2640,11 @@ void drmmode_fini(ScrnInfoPtr pScrn, > drmmode_ptr drmmode) > if (pRADEONEnt->fd_wakeup_registered == serverGeneration && > !--pRADEONEnt->fd_wakeup_ref) { > #if HAVE_NOTIFY_FD > - RemoveNotifyFd(drmmode->fd); > + RemoveNotifyFd(pRADEONEnt->fd); > #else > - RemoveGeneralSocket(drmmode->fd); > + RemoveGeneralSocket(pRADEONEnt->fd); > > RemoveBlockAndWakeupHandlers((BlockHandlerProcPtr)NoopDDA, > - drm_wakeup_handler, drmmode); > + drm_wakeup_handler, pScrn); > #endif > } > > @@ -2682,6 +2686,7 @@ Bool drmmode_set_desired_modes(ScrnInfoPtr > pScrn, drmmode_ptr drmmode, > Bool set_hw) > { > xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); > int c; > > for (c = 0; c < config->num_crtc; c++) { > @@ -2694,10 +2699,10 @@ Bool drmmode_set_desired_modes(ScrnInfoPtr > pScrn, drmmode_ptr drmmode, > if (!crtc->enabled) { > if (set_hw) { > drmmode_do_crtc_dpms(crtc, > DPMSModeOff); > - drmModeSetCrtc(drmmode->fd, > + drmModeSetCrtc(pRADEONEnt->fd, > drmmode_crtc->mode_crtc- > >crtc_id, > 0, 0, 0, NULL, 0, NULL); > - drmmode_fb_reference(drmmode->fd, > + drmmode_fb_reference(pRADEONEnt->fd, > &drmmode_crtc->fb, > NULL); > } > continue; > @@ -2812,7 +2817,7 @@ radeon_mode_hotplug(ScrnInfoPtr scrn, > drmmode_ptr drmmode) > Bool changed = FALSE; > int num_dvi = 0, num_hdmi = 0; > > - mode_res = drmModeGetResources(drmmode->fd); > + mode_res = drmModeGetResources(pRADEONEnt->fd); > if (!mode_res) > goto out; > > diff --git a/src/drmmode_display.h b/src/drmmode_display.h > index dde27a009..ba1a7bc89 100644 > --- a/src/drmmode_display.h > +++ b/src/drmmode_display.h > @@ -40,7 +40,6 @@ > #endif > > typedef struct { > - int fd; > struct radeon_bo_manager *bufmgr; > ScrnInfoPtr scrn; > #ifdef HAVE_LIBUDEV > diff --git a/src/radeon.h b/src/radeon.h > index febe580b6..ca509561a 100644 > --- a/src/radeon.h > +++ b/src/radeon.h > @@ -694,7 +694,9 @@ uint32_t radeon_get_pixmap_tiling(PixmapPtr pPix); > static inline Bool radeon_set_pixmap_bo(PixmapPtr pPix, struct radeon_bo > *bo) > { > #ifdef USE_GLAMOR > - RADEONInfoPtr info = RADEONPTR(xf86ScreenToScrn(pPix- > >drawable.pScreen)); > + ScrnInfoPtr scrn = xf86ScreenToScrn(pPix->drawable.pScreen); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); > + RADEONInfoPtr info = RADEONPTR(scrn); > > if (info->use_glamor) { > struct radeon_pixmap *priv; > @@ -711,7 +713,7 @@ static inline Bool radeon_set_pixmap_bo(PixmapPtr > pPix, struct radeon_bo *bo) > radeon_bo_unref(priv->bo); > } > > - drmmode_fb_reference(info->drmmode.fd, &priv->fb, NULL); > + drmmode_fb_reference(pRADEONEnt->fd, &priv->fb, NULL); > > if (!bo) { > free(priv); > @@ -831,7 +833,9 @@ radeon_pixmap_create_fb(int drm_fd, PixmapPtr > pix) > static inline struct drmmode_fb* > radeon_pixmap_get_fb(PixmapPtr pix) > { > - RADEONInfoPtr info = RADEONPTR(xf86ScreenToScrn(pix- > >drawable.pScreen)); > + ScrnInfoPtr scrn = xf86ScreenToScrn(pix->drawable.pScreen); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); > + RADEONInfoPtr info = RADEONPTR(scrn); > > #ifdef USE_GLAMOR > if (info->use_glamor) { > @@ -841,7 +845,7 @@ radeon_pixmap_get_fb(PixmapPtr pix) > return NULL; > > if (!priv->fb) > - priv->fb = radeon_pixmap_create_fb(info->drmmode.fd, pix); > + priv->fb = radeon_pixmap_create_fb(pRADEONEnt->fd, pix); > > return priv->fb; > } else > @@ -855,7 +859,7 @@ radeon_pixmap_get_fb(PixmapPtr pix) > return NULL; > > if (!driver_priv->fb) > - driver_priv->fb = radeon_pixmap_create_fb(info->drmmode.fd, > pix); > + driver_priv->fb = radeon_pixmap_create_fb(pRADEONEnt->fd, > pix); > > return driver_priv->fb; > } > diff --git a/src/radeon_accel.c b/src/radeon_accel.c > index 1def2a3fb..fc80ed745 100644 > --- a/src/radeon_accel.c > +++ b/src/radeon_accel.c > @@ -94,11 +94,11 @@ > > static int RADEONDRMGetNumPipes(ScrnInfoPtr pScrn, int *num_pipes) > { > - RADEONInfoPtr info = RADEONPTR(pScrn); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); > struct drm_radeon_info np2; > np2.value = (unsigned long)num_pipes; > np2.request = RADEON_INFO_NUM_GB_PIPES; > - return drmCommandWriteRead(info->dri2.drm_fd, DRM_RADEON_INFO, > &np2, sizeof(np2)); > + return drmCommandWriteRead(pRADEONEnt->fd, DRM_RADEON_INFO, > &np2, sizeof(np2)); > } > > /* Initialize the acceleration hardware */ > diff --git a/src/radeon_bo_helper.c b/src/radeon_bo_helper.c > index 933dc7b37..a8ba76185 100644 > --- a/src/radeon_bo_helper.c > +++ b/src/radeon_bo_helper.c > @@ -201,7 +201,9 @@ Bool radeon_get_pixmap_handle(PixmapPtr pixmap, > uint32_t *handle) > struct radeon_bo *bo = radeon_get_pixmap_bo(pixmap); > #ifdef USE_GLAMOR > ScreenPtr screen = pixmap->drawable.pScreen; > - RADEONInfoPtr info = RADEONPTR(xf86ScreenToScrn(screen)); > + ScrnInfoPtr scrn = xf86ScreenToScrn(screen); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); > + RADEONInfoPtr info = RADEONPTR(scrn); > #endif > > if (bo) { > @@ -230,7 +232,7 @@ Bool radeon_get_pixmap_handle(PixmapPtr pixmap, > uint32_t *handle) > if (fd < 0) > return FALSE; > > - r = drmPrimeFDToHandle(info->dri2.drm_fd, fd, &priv->handle); > + r = drmPrimeFDToHandle(pRADEONEnt->fd, fd, &priv->handle); > close(fd); > if (r == 0) { > struct drm_radeon_gem_set_tiling args = { .handle = priv->handle > }; > @@ -238,7 +240,7 @@ Bool radeon_get_pixmap_handle(PixmapPtr pixmap, > uint32_t *handle) > priv->handle_valid = TRUE; > *handle = priv->handle; > > - if (drmCommandWriteRead(info->dri2.drm_fd, > + if (drmCommandWriteRead(pRADEONEnt->fd, > DRM_RADEON_GEM_GET_TILING, &args, > sizeof(args)) == 0) > priv->tiling_flags = args.tiling_flags; > diff --git a/src/radeon_dri2.c b/src/radeon_dri2.c > index cc72bd52d..435bf5397 100644 > --- a/src/radeon_dri2.c > +++ b/src/radeon_dri2.c > @@ -81,7 +81,7 @@ static DevPrivateKeyRec dri2_window_private_key_rec; > > /* Get GEM flink name for a pixmap */ > static Bool > -radeon_get_flink_name(RADEONInfoPtr info, PixmapPtr pixmap, uint32_t > *name) > +radeon_get_flink_name(RADEONEntPtr pRADEONEnt, PixmapPtr pixmap, > uint32_t *name) > { > struct radeon_bo *bo = radeon_get_pixmap_bo(pixmap); > struct drm_gem_flink flink; > @@ -90,7 +90,7 @@ radeon_get_flink_name(RADEONInfoPtr info, > PixmapPtr pixmap, uint32_t *name) > return radeon_gem_get_kernel_name(bo, name) == 0; > > if (radeon_get_pixmap_handle(pixmap, &flink.handle)) { > - if (drmIoctl(info->dri2.drm_fd, DRM_IOCTL_GEM_FLINK, &flink) != 0) > + if (drmIoctl(pRADEONEnt->fd, DRM_IOCTL_GEM_FLINK, &flink) != 0) > return FALSE; > > *name = flink.name; > @@ -107,6 +107,7 @@ radeon_dri2_create_buffer2(ScreenPtr pScreen, > unsigned int format) > { > ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); > RADEONInfoPtr info = RADEONPTR(pScrn); > BufferPtr buffers; > struct dri2_buffer_priv *privates; > @@ -253,7 +254,7 @@ radeon_dri2_create_buffer2(ScreenPtr pScreen, > pixmap->refcnt++; > } > > - if (!radeon_get_flink_name(info, pixmap, &buffers->name)) > + if (!radeon_get_flink_name(pRADEONEnt, pixmap, &buffers- > >name)) > goto error; > } > > @@ -523,13 +524,13 @@ static Bool radeon_dri2_get_crtc_msc(xf86CrtcPtr > crtc, CARD64 *ust, CARD64 *msc) > drmmode_crtc_get_ust_msc(crtc, ust, msc) != Success) { > /* CRTC is not running, extrapolate MSC and timestamp */ > ScrnInfoPtr scrn = crtc->scrn; > - RADEONInfoPtr info = RADEONPTR(scrn); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); > CARD64 now, delta_t, delta_seq; > > if (!drmmode_crtc->dpms_last_ust) > return FALSE; > > - if (drmmode_get_current_ust(info->dri2.drm_fd, &now) != 0) { > + if (drmmode_get_current_ust(pRADEONEnt->fd, &now) != 0) { > xf86DrvMsg(scrn->scrnIndex, X_ERROR, > "%s cannot get current time\n", __func__); > return FALSE; > @@ -689,7 +690,9 @@ static Bool > update_front(DrawablePtr draw, DRI2BufferPtr front) > { > PixmapPtr pixmap; > - RADEONInfoPtr info = RADEONPTR(xf86ScreenToScrn(draw->pScreen)); > + ScrnInfoPtr scrn = xf86ScreenToScrn(draw->pScreen); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); > + RADEONInfoPtr info = RADEONPTR(scrn); > struct dri2_buffer_priv *priv = front->driverPrivate; > > pixmap = get_drawable_pixmap(draw); > @@ -697,7 +700,7 @@ update_front(DrawablePtr draw, DRI2BufferPtr front) > > if (!info->use_glamor) > exaMoveInPixmap(pixmap); > - if (!radeon_get_flink_name(info, pixmap, &front->name)) { > + if (!radeon_get_flink_name(pRADEONEnt, pixmap, &front->name)) { > (*draw->pScreen->DestroyPixmap)(pixmap); > return FALSE; > } > @@ -937,7 +940,7 @@ CARD32 > radeon_dri2_extrapolate_msc_delay(xf86CrtcPtr crtc, CARD64 *target_msc, > { > drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private; > ScrnInfoPtr pScrn = crtc->scrn; > - RADEONInfoPtr info = RADEONPTR(pScrn); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); > int nominal_frame_rate = drmmode_crtc->dpms_last_fps; > CARD64 last_vblank_ust = drmmode_crtc->dpms_last_ust; > uint32_t last_vblank_seq = drmmode_crtc->dpms_last_seq; > @@ -950,7 +953,7 @@ CARD32 > radeon_dri2_extrapolate_msc_delay(xf86CrtcPtr crtc, CARD64 *target_msc, > *target_msc = 0; > return FALLBACK_SWAP_DELAY; > } > - ret = drmmode_get_current_ust(info->dri2.drm_fd, &now); > + ret = drmmode_get_current_ust(pRADEONEnt->fd, &now); > if (ret) { > xf86DrvMsg(pScrn->scrnIndex, X_ERROR, > "%s cannot get current time\n", __func__); > @@ -1028,7 +1031,7 @@ CARD32 radeon_dri2_deferred_event(OsTimerPtr > timer, CARD32 now, pointer data) > DRI2FrameEventPtr event_info = (DRI2FrameEventPtr)data; > xf86CrtcPtr crtc = event_info->crtc; > ScrnInfoPtr scrn; > - RADEONInfoPtr info; > + RADEONEntPtr pRADEONEnt; > CARD64 drm_now; > int ret; > CARD64 delta_t, delta_seq, frame; > @@ -1051,13 +1054,13 @@ CARD32 > radeon_dri2_deferred_event(OsTimerPtr timer, CARD32 now, pointer data) > } > > scrn = crtc->scrn; > - info = RADEONPTR(scrn); > - ret = drmmode_get_current_ust(info->dri2.drm_fd, &drm_now); > + pRADEONEnt = RADEONEntPriv(scrn); > + ret = drmmode_get_current_ust(pRADEONEnt->fd, &drm_now); > if (ret) { > xf86DrvMsg(scrn->scrnIndex, X_ERROR, > "%s cannot get current time\n", __func__); > if (event_info->drm_queue_seq) > - radeon_drm_queue_handler(info->dri2.drm_fd, 0, 0, 0, > + radeon_drm_queue_handler(pRADEONEnt->fd, 0, 0, 0, > (void*)event_info->drm_queue_seq); > else > radeon_dri2_frame_event_handler(crtc, 0, 0, data); > @@ -1073,7 +1076,7 @@ CARD32 radeon_dri2_deferred_event(OsTimerPtr > timer, CARD32 now, pointer data) > delta_seq /= 1000000; > frame = (CARD64)drmmode_crtc->dpms_last_seq + delta_seq; > if (event_info->drm_queue_seq) > - radeon_drm_queue_handler(info->dri2.drm_fd, frame, drm_now / > 1000000, > + radeon_drm_queue_handler(pRADEONEnt->fd, frame, drm_now / > 1000000, > drm_now % 1000000, > (void*)event_info->drm_queue_seq); > else > @@ -1104,7 +1107,7 @@ static int > radeon_dri2_schedule_wait_msc(ClientPtr client, DrawablePtr draw, > { > ScreenPtr screen = draw->pScreen; > ScrnInfoPtr scrn = xf86ScreenToScrn(screen); > - RADEONInfoPtr info = RADEONPTR(scrn); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); > DRI2FrameEventPtr wait_info = NULL; > uintptr_t drm_queue_seq = 0; > xf86CrtcPtr crtc = radeon_dri2_drawable_crtc(draw, TRUE); > @@ -1152,7 +1155,7 @@ static int > radeon_dri2_schedule_wait_msc(ClientPtr client, DrawablePtr draw, > vbl.request.type = DRM_VBLANK_RELATIVE; > vbl.request.type |= radeon_populate_vbl_request_type(crtc); > vbl.request.sequence = 0; > - ret = drmWaitVBlank(info->dri2.drm_fd, &vbl); > + ret = drmWaitVBlank(pRADEONEnt->fd, &vbl); > if (ret) { > xf86DrvMsg(scrn->scrnIndex, X_WARNING, > "get vblank counter failed: %s\n", strerror(errno)); > @@ -1190,7 +1193,7 @@ static int > radeon_dri2_schedule_wait_msc(ClientPtr client, DrawablePtr draw, > vbl.request.type |= radeon_populate_vbl_request_type(crtc); > vbl.request.sequence = target_msc - msc_delta; > vbl.request.signal = drm_queue_seq; > - ret = drmWaitVBlank(info->dri2.drm_fd, &vbl); > + ret = drmWaitVBlank(pRADEONEnt->fd, &vbl); > if (ret) { > xf86DrvMsg(scrn->scrnIndex, X_WARNING, > "get vblank counter failed: %s\n", strerror(errno)); > @@ -1221,7 +1224,7 @@ static int > radeon_dri2_schedule_wait_msc(ClientPtr client, DrawablePtr draw, > vbl.request.sequence += divisor; > > vbl.request.signal = drm_queue_seq; > - ret = drmWaitVBlank(info->dri2.drm_fd, &vbl); > + ret = drmWaitVBlank(pRADEONEnt->fd, &vbl); > if (ret) { > xf86DrvMsg(scrn->scrnIndex, X_WARNING, > "get vblank counter failed: %s\n", strerror(errno)); > @@ -1266,7 +1269,7 @@ static int radeon_dri2_schedule_swap(ClientPtr > client, DrawablePtr draw, > { > ScreenPtr screen = draw->pScreen; > ScrnInfoPtr scrn = xf86ScreenToScrn(screen); > - RADEONInfoPtr info = RADEONPTR(scrn); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); > xf86CrtcPtr crtc = radeon_dri2_drawable_crtc(draw, TRUE); > uint32_t msc_delta; > drmVBlank vbl; > @@ -1339,7 +1342,7 @@ static int radeon_dri2_schedule_swap(ClientPtr > client, DrawablePtr draw, > vbl.request.type = DRM_VBLANK_RELATIVE; > vbl.request.type |= radeon_populate_vbl_request_type(crtc); > vbl.request.sequence = 0; > - ret = drmWaitVBlank(info->dri2.drm_fd, &vbl); > + ret = drmWaitVBlank(pRADEONEnt->fd, &vbl); > if (ret) { > xf86DrvMsg(scrn->scrnIndex, X_WARNING, > "first get vblank counter failed: %s\n", > @@ -1387,7 +1390,7 @@ static int radeon_dri2_schedule_swap(ClientPtr > client, DrawablePtr draw, > > vbl.request.sequence = *target_msc - msc_delta; > vbl.request.signal = drm_queue_seq; > - ret = drmWaitVBlank(info->dri2.drm_fd, &vbl); > + ret = drmWaitVBlank(pRADEONEnt->fd, &vbl); > if (ret) { > xf86DrvMsg(scrn->scrnIndex, X_WARNING, > "divisor 0 get vblank counter failed: %s\n", > @@ -1432,7 +1435,7 @@ static int radeon_dri2_schedule_swap(ClientPtr > client, DrawablePtr draw, > vbl.request.sequence -= flip; > > vbl.request.signal = drm_queue_seq; > - ret = drmWaitVBlank(info->dri2.drm_fd, &vbl); > + ret = drmWaitVBlank(pRADEONEnt->fd, &vbl); > if (ret) { > xf86DrvMsg(scrn->scrnIndex, X_WARNING, > "final get vblank counter failed: %s\n", > @@ -1475,6 +1478,7 @@ Bool > radeon_dri2_screen_init(ScreenPtr pScreen) > { > ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); > RADEONInfoPtr info = RADEONPTR(pScrn); > DRI2InfoRec dri2_info = { 0 }; > const char *driverNames[2]; > @@ -1483,7 +1487,7 @@ radeon_dri2_screen_init(ScreenPtr pScreen) > if (!info->dri2.available) > return FALSE; > > - info->dri2.device_name = drmGetDeviceNameFromFd(info- > >dri2.drm_fd); > + info->dri2.device_name = drmGetDeviceNameFromFd(pRADEONEnt- > >fd); > > if ( (info->ChipFamily >= CHIP_FAMILY_TAHITI) ) { > dri2_info.driverName = SI_DRIVER_NAME; > @@ -1496,7 +1500,7 @@ radeon_dri2_screen_init(ScreenPtr pScreen) > } else { > dri2_info.driverName = RADEON_DRIVER_NAME; > } > - dri2_info.fd = info->dri2.drm_fd; > + dri2_info.fd = pRADEONEnt->fd; > dri2_info.deviceName = info->dri2.device_name; > dri2_info.version = DRI2INFOREC_VERSION; > dri2_info.CreateBuffer = radeon_dri2_create_buffer; > @@ -1513,7 +1517,7 @@ radeon_dri2_screen_init(ScreenPtr pScreen) > #ifdef DRM_CAP_VBLANK_HIGH_CRTC > uint64_t cap_value; > > - if (drmGetCap(info->dri2.drm_fd, DRM_CAP_VBLANK_HIGH_CRTC, > &cap_value)) { > + if (drmGetCap(pRADEONEnt->fd, DRM_CAP_VBLANK_HIGH_CRTC, > &cap_value)) { > xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "You need a newer > kernel " > "for VBLANKs on CRTC > 1\n"); > scheduling_works = FALSE; > diff --git a/src/radeon_dri2.h b/src/radeon_dri2.h > index 9ba47c78f..4d3f377b4 100644 > --- a/src/radeon_dri2.h > +++ b/src/radeon_dri2.h > @@ -31,7 +31,6 @@ > > struct radeon_dri2 { > drmVersionPtr pKernelDRMVersion; > - int drm_fd; > Bool available; > Bool enabled; > char *device_name; > diff --git a/src/radeon_dri3.c b/src/radeon_dri3.c > index fa24abaee..3e689ffd7 100644 > --- a/src/radeon_dri3.c > +++ b/src/radeon_dri3.c > @@ -43,6 +43,7 @@ > static int open_master_node(ScreenPtr screen, int *out) > { > ScrnInfoPtr scrn = xf86ScreenToScrn(screen); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); > RADEONInfoPtr info = RADEONPTR(scrn); > drm_magic_t magic; > int fd; > @@ -76,7 +77,7 @@ static int open_master_node(ScreenPtr screen, int > *out) > } > } > > - if (drmAuthMagic(info->dri2.drm_fd, magic) < 0) { > + if (drmAuthMagic(pRADEONEnt->fd, magic) < 0) { > close(fd); > return BadMatch; > } > diff --git a/src/radeon_exa.c b/src/radeon_exa.c > index d8dd7fdce..d362e5d9b 100644 > --- a/src/radeon_exa.c > +++ b/src/radeon_exa.c > @@ -300,7 +300,7 @@ void *RADEONEXACreatePixmap2(ScreenPtr pScreen, > int width, int height, > > void RADEONEXADestroyPixmap(ScreenPtr pScreen, void *driverPriv) > { > - RADEONInfoPtr info = RADEONPTR(xf86ScreenToScrn(pScreen)); > + RADEONEntPtr pRADEONEnt = > RADEONEntPriv(xf86ScreenToScrn(pScreen)); > struct radeon_exa_pixmap_priv *driver_priv = driverPriv; > > if (!driverPriv) > @@ -308,7 +308,7 @@ void RADEONEXADestroyPixmap(ScreenPtr pScreen, > void *driverPriv) > > if (driver_priv->bo) > radeon_bo_unref(driver_priv->bo); > - drmmode_fb_reference(info->drmmode.fd, &driver_priv->fb, NULL); > + drmmode_fb_reference(pRADEONEnt->fd, &driver_priv->fb, NULL); > free(driverPriv); > } > > diff --git a/src/radeon_glamor.c b/src/radeon_glamor.c > index e5e35553a..01ff56094 100644 > --- a/src/radeon_glamor.c > +++ b/src/radeon_glamor.c > @@ -74,6 +74,7 @@ radeon_glamor_create_screen_resources(ScreenPtr > screen) > Bool > radeon_glamor_pre_init(ScrnInfoPtr scrn) > { > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); > RADEONInfoPtr info = RADEONPTR(scrn); > pointer glamor_module; > CARD32 version; > @@ -135,7 +136,7 @@ radeon_glamor_pre_init(ScrnInfoPtr scrn) > "Incompatible glamor version, required >= 0.3.0.\n"); > return FALSE; > } else { > - if (glamor_egl_init(scrn, info->dri2.drm_fd)) { > + if (glamor_egl_init(scrn, pRADEONEnt->fd)) { > xf86DrvMsg(scrn->scrnIndex, X_INFO, > "glamor detected, initialising EGL > layer.\n"); > } else { > diff --git a/src/radeon_kms.c b/src/radeon_kms.c > index 691fcdf5b..3f14b4620 100644 > --- a/src/radeon_kms.c > +++ b/src/radeon_kms.c > @@ -187,6 +187,7 @@ static Bool RADEONGetRec(ScrnInfoPtr pScrn) > /* Free our private RADEONInfoRec */ > static void RADEONFreeRec(ScrnInfoPtr pScrn) > { > + RADEONEntPtr pRADEONEnt; > RADEONInfoPtr info; > > if (!pScrn || !pScrn->driverPrivate) return; > @@ -196,7 +197,9 @@ static void RADEONFreeRec(ScrnInfoPtr pScrn) > if (info->fbcon_pixmap) > pScrn->pScreen->DestroyPixmap(info->fbcon_pixmap); > > - if (info->dri2.drm_fd > 0) { > + pRADEONEnt = RADEONEntPriv(pScrn); > + > + if (pRADEONEnt->fd > 0) { > DevUnion *pPriv; > RADEONEntPtr pRADEONEnt; > pPriv = xf86GetEntityPrivate(pScrn->entityList[0], > @@ -719,6 +722,7 @@ > radeon_prime_scanout_update(PixmapDirtyUpdatePtr dirty) > { > ScreenPtr screen = dirty->slave_dst->drawable.pScreen; > ScrnInfoPtr scrn = xf86ScreenToScrn(screen); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); > xf86CrtcPtr xf86_crtc = radeon_prime_dirty_to_crtc(dirty); > drmmode_crtc_private_ptr drmmode_crtc; > uintptr_t drm_queue_seq; > @@ -748,7 +752,7 @@ > radeon_prime_scanout_update(PixmapDirtyUpdatePtr dirty) > vbl.request.type |= radeon_populate_vbl_request_type(xf86_crtc); > vbl.request.sequence = 1; > vbl.request.signal = drm_queue_seq; > - if (drmWaitVBlank(RADEONPTR(scrn)->dri2.drm_fd, &vbl)) { > + if (drmWaitVBlank(pRADEONEnt->fd, &vbl)) { > xf86DrvMsg(scrn->scrnIndex, X_WARNING, > "drmWaitVBlank failed for PRIME update: %s\n", > strerror(errno)); > @@ -772,9 +776,10 @@ static void > radeon_prime_scanout_flip_handler(xf86CrtcPtr crtc, uint32_t msc, uint64_t > usec, > void *event_data) > { > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(crtc->scrn); > drmmode_crtc_private_ptr drmmode_crtc = event_data; > > - drmmode_fb_reference(drmmode_crtc->drmmode->fd, > &drmmode_crtc->fb, > + drmmode_fb_reference(pRADEONEnt->fd, &drmmode_crtc->fb, > drmmode_crtc->flip_pending); > radeon_prime_scanout_flip_abort(crtc, event_data); > } > @@ -1012,6 +1017,7 @@ static void > radeon_scanout_update(xf86CrtcPtr xf86_crtc) > { > drmmode_crtc_private_ptr drmmode_crtc = xf86_crtc->driver_private; > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(xf86_crtc->scrn); > uintptr_t drm_queue_seq; > ScrnInfoPtr scrn; > drmVBlank vbl; > @@ -1056,7 +1062,7 @@ radeon_scanout_update(xf86CrtcPtr xf86_crtc) > vbl.request.type |= radeon_populate_vbl_request_type(xf86_crtc); > vbl.request.sequence = 1; > vbl.request.signal = drm_queue_seq; > - if (drmWaitVBlank(RADEONPTR(scrn)->dri2.drm_fd, &vbl)) { > + if (drmWaitVBlank(pRADEONEnt->fd, &vbl)) { > xf86DrvMsg(scrn->scrnIndex, X_WARNING, > "drmWaitVBlank failed for scanout update: %s\n", > strerror(errno)); > @@ -1136,6 +1142,7 @@ static void > RADEONBlockHandler_KMS(BLOCKHANDLER_ARGS_DECL) > { > SCREEN_PTR(arg); > ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); > RADEONInfoPtr info = RADEONPTR(pScrn); > xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); > int c; > @@ -1151,7 +1158,7 @@ static void > RADEONBlockHandler_KMS(BLOCKHANDLER_ARGS_DECL) > drmmode_crtc_private_ptr drmmode_crtc = > xf86_config->crtc[c]->driver_private; > > - drmmode_fb_reference(info->drmmode.fd, &drmmode_crtc->fb, > NULL); > + drmmode_fb_reference(pRADEONEnt->fd, &drmmode_crtc->fb, > NULL); > } > > return; > @@ -1183,7 +1190,7 @@ static void > RADEONBlockHandler_KMS(BLOCKHANDLER_ARGS_DECL) > > static Bool RADEONIsFastFBWorking(ScrnInfoPtr pScrn) > { > - RADEONInfoPtr info = RADEONPTR(pScrn); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); > struct drm_radeon_info ginfo; > int r; > uint32_t tmp = 0; > @@ -1191,7 +1198,7 @@ static Bool RADEONIsFastFBWorking(ScrnInfoPtr > pScrn) > memset(&ginfo, 0, sizeof(ginfo)); > ginfo.request = RADEON_INFO_FASTFB_WORKING; > ginfo.value = (uintptr_t)&tmp; > - r = drmCommandWriteRead(info->dri2.drm_fd, DRM_RADEON_INFO, > &ginfo, sizeof(ginfo)); > + r = drmCommandWriteRead(pRADEONEnt->fd, DRM_RADEON_INFO, > &ginfo, sizeof(ginfo)); > if (r) { > return FALSE; > } > @@ -1202,7 +1209,7 @@ static Bool RADEONIsFastFBWorking(ScrnInfoPtr > pScrn) > > static Bool RADEONIsFusionGARTWorking(ScrnInfoPtr pScrn) > { > - RADEONInfoPtr info = RADEONPTR(pScrn); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); > struct drm_radeon_info ginfo; > int r; > uint32_t tmp; > @@ -1210,7 +1217,7 @@ static Bool > RADEONIsFusionGARTWorking(ScrnInfoPtr pScrn) > memset(&ginfo, 0, sizeof(ginfo)); > ginfo.request = RADEON_INFO_FUSION_GART_WORKING; > ginfo.value = (uintptr_t)&tmp; > - r = drmCommandWriteRead(info->dri2.drm_fd, DRM_RADEON_INFO, > &ginfo, sizeof(ginfo)); > + r = drmCommandWriteRead(pRADEONEnt->fd, DRM_RADEON_INFO, > &ginfo, sizeof(ginfo)); > if (r) { > return FALSE; > } > @@ -1221,6 +1228,7 @@ static Bool > RADEONIsFusionGARTWorking(ScrnInfoPtr pScrn) > > static Bool RADEONIsAccelWorking(ScrnInfoPtr pScrn) > { > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); > RADEONInfoPtr info = RADEONPTR(pScrn); > struct drm_radeon_info ginfo; > int r; > @@ -1232,7 +1240,7 @@ static Bool RADEONIsAccelWorking(ScrnInfoPtr > pScrn) > else > ginfo.request = RADEON_INFO_ACCEL_WORKING; > ginfo.value = (uintptr_t)&tmp; > - r = drmCommandWriteRead(info->dri2.drm_fd, DRM_RADEON_INFO, > &ginfo, sizeof(ginfo)); > + r = drmCommandWriteRead(pRADEONEnt->fd, DRM_RADEON_INFO, > &ginfo, sizeof(ginfo)); > if (r) { > /* If kernel is too old before 2.6.32 than assume accel is working */ > if (r == -EINVAL) { > @@ -1470,7 +1478,6 @@ static int radeon_get_drm_master_fd(ScrnInfoPtr > pScrn) > > static Bool radeon_open_drm_master(ScrnInfoPtr pScrn) > { > - RADEONInfoPtr info = RADEONPTR(pScrn); > RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); > drmSetVersion sv; > int err; > @@ -1478,14 +1485,12 @@ static Bool > radeon_open_drm_master(ScrnInfoPtr pScrn) > if (pRADEONEnt->fd) { > xf86DrvMsg(pScrn->scrnIndex, X_INFO, > " reusing fd for second head\n"); > - > - info->drmmode.fd = info->dri2.drm_fd = pRADEONEnt->fd; > pRADEONEnt->fd_ref++; > return TRUE; > } > > - info->dri2.drm_fd = radeon_get_drm_master_fd(pScrn); > - if (info->dri2.drm_fd == -1) > + pRADEONEnt->fd = radeon_get_drm_master_fd(pScrn); > + if (pRADEONEnt->fd == -1) > return FALSE; > > /* Check that what we opened was a master or a master-capable FD, > @@ -1496,24 +1501,23 @@ static Bool > radeon_open_drm_master(ScrnInfoPtr pScrn) > sv.drm_di_minor = 1; > sv.drm_dd_major = -1; > sv.drm_dd_minor = -1; > - err = drmSetInterfaceVersion(info->dri2.drm_fd, &sv); > + err = drmSetInterfaceVersion(pRADEONEnt->fd, &sv); > if (err != 0) { > xf86DrvMsg(pScrn->scrnIndex, X_ERROR, > "[drm] failed to set drm interface version.\n"); > - drmClose(info->dri2.drm_fd); > - info->dri2.drm_fd = -1; > + drmClose(pRADEONEnt->fd); > + pRADEONEnt->fd = -1; > > return FALSE; > } > > - pRADEONEnt->fd = info->dri2.drm_fd; > pRADEONEnt->fd_ref = 1; > - info->drmmode.fd = info->dri2.drm_fd; > return TRUE; > } > > static Bool r600_get_tile_config(ScrnInfoPtr pScrn) > { > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); > RADEONInfoPtr info = RADEONPTR(pScrn); > struct drm_radeon_info ginfo; > int r; > @@ -1525,7 +1529,7 @@ static Bool r600_get_tile_config(ScrnInfoPtr pScrn) > memset(&ginfo, 0, sizeof(ginfo)); > ginfo.request = RADEON_INFO_TILING_CONFIG; > ginfo.value = (uintptr_t)&tmp; > - r = drmCommandWriteRead(info->dri2.drm_fd, DRM_RADEON_INFO, > &ginfo, sizeof(ginfo)); > + r = drmCommandWriteRead(pRADEONEnt->fd, DRM_RADEON_INFO, > &ginfo, sizeof(ginfo)); > if (r) > return FALSE; > > @@ -1622,6 +1626,7 @@ static Bool r600_get_tile_config(ScrnInfoPtr pScrn) > static void RADEONSetupCapabilities(ScrnInfoPtr pScrn) > { > #ifdef RADEON_PIXMAP_SHARING > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); > RADEONInfoPtr info = RADEONPTR(pScrn); > uint64_t value; > int ret; > @@ -1632,7 +1637,7 @@ static void RADEONSetupCapabilities(ScrnInfoPtr > pScrn) > if (info->r600_shadow_fb) > return; > > - ret = drmGetCap(info->dri2.drm_fd, DRM_CAP_PRIME, &value); > + ret = drmGetCap(pRADEONEnt->fd, DRM_CAP_PRIME, &value); > if (ret == 0) { > if (value & DRM_PRIME_CAP_EXPORT) > pScrn->capabilities |= RR_Capability_SourceOutput | > RR_Capability_SourceOffload; > @@ -1770,7 +1775,7 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int > flags) > > info->dri2.available = FALSE; > info->dri2.enabled = FALSE; > - info->dri2.pKernelDRMVersion = drmGetVersion(info->dri2.drm_fd); > + info->dri2.pKernelDRMVersion = drmGetVersion(pRADEONEnt->fd); > if (info->dri2.pKernelDRMVersion == NULL) { > xf86DrvMsg(pScrn->scrnIndex, X_ERROR, > "RADEONDRIGetVersion failed to get the DRM version\n"); > @@ -1935,7 +1940,7 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int > flags) > { > struct drm_radeon_gem_info mminfo; > > - if (!drmCommandWriteRead(info->dri2.drm_fd, > DRM_RADEON_GEM_INFO, &mminfo, sizeof(mminfo))) > + if (!drmCommandWriteRead(pRADEONEnt->fd, > DRM_RADEON_GEM_INFO, &mminfo, sizeof(mminfo))) > { > info->vram_size = mminfo.vram_visible; > info->gart_size = mminfo.gart_size; > @@ -2075,10 +2080,7 @@ static Bool RADEONSaveScreen_KMS(ScreenPtr > pScreen, int mode) > > static Bool radeon_set_drm_master(ScrnInfoPtr pScrn) > { > - RADEONInfoPtr info = RADEONPTR(pScrn); > -#ifdef XF86_PDEV_SERVER_FD > RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); > -#endif > int err; > > #ifdef XF86_PDEV_SERVER_FD > @@ -2087,7 +2089,7 @@ static Bool radeon_set_drm_master(ScrnInfoPtr > pScrn) > return TRUE; > #endif > > - err = drmSetMaster(info->dri2.drm_fd); > + err = drmSetMaster(pRADEONEnt->fd); > if (err) > ErrorF("Unable to retrieve master\n"); > > @@ -2096,16 +2098,15 @@ static Bool radeon_set_drm_master(ScrnInfoPtr > pScrn) > > static void radeon_drop_drm_master(ScrnInfoPtr pScrn) > { > - RADEONInfoPtr info = RADEONPTR(pScrn); > -#ifdef XF86_PDEV_SERVER_FD > RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); > > +#ifdef XF86_PDEV_SERVER_FD > if (pRADEONEnt->platform_dev && > (pRADEONEnt->platform_dev->flags & XF86_PDEV_SERVER_FD)) > return; > #endif > > - drmDropMaster(info->dri2.drm_fd); > + drmDropMaster(pRADEONEnt->fd); > } > > /* Called at the end of each server generation. Restore the original > @@ -2177,6 +2178,7 @@ void > RADEONFreeScreen_KMS(FREE_SCREEN_ARGS_DECL) > Bool RADEONScreenInit_KMS(SCREEN_INIT_ARGS_DECL) > { > ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); > RADEONInfoPtr info = RADEONPTR(pScrn); > int subPixelOrder = SubPixelUnknown; > MessageType from; > @@ -2201,9 +2203,9 @@ Bool > RADEONScreenInit_KMS(SCREEN_INIT_ARGS_DECL) > if (info->r600_shadow_fb == FALSE) > info->directRenderingEnabled = radeon_dri2_screen_init(pScreen); > > - info->surf_man = radeon_surface_manager_new(info->dri2.drm_fd); > + info->surf_man = radeon_surface_manager_new(pRADEONEnt->fd); > if (!info->bufmgr) > - info->bufmgr = radeon_bo_manager_gem_ctor(info->dri2.drm_fd); > + info->bufmgr = radeon_bo_manager_gem_ctor(pRADEONEnt->fd); > if (!info->bufmgr) { > xf86DrvMsg(pScrn->scrnIndex, X_ERROR, > "failed to initialise GEM buffer manager"); > @@ -2212,7 +2214,7 @@ Bool > RADEONScreenInit_KMS(SCREEN_INIT_ARGS_DECL) > drmmode_set_bufmgr(pScrn, &info->drmmode, info->bufmgr); > > if (!info->csm) > - info->csm = radeon_cs_manager_gem_ctor(info->dri2.drm_fd); > + info->csm = radeon_cs_manager_gem_ctor(pRADEONEnt->fd); > if (!info->csm) { > xf86DrvMsg(pScrn->scrnIndex, X_ERROR, > "failed to initialise command submission manager"); > diff --git a/src/radeon_present.c b/src/radeon_present.c > index 635d10861..e637d7868 100644 > --- a/src/radeon_present.c > +++ b/src/radeon_present.c > @@ -105,10 +105,11 @@ static Bool > radeon_present_flush_drm_events(ScreenPtr screen) > { > ScrnInfoPtr scrn = xf86ScreenToScrn(screen); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); > xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); > drmmode_crtc_private_ptr drmmode_crtc = xf86_config->crtc[0]- > >driver_private; > drmmode_ptr drmmode = drmmode_crtc->drmmode; > - struct pollfd p = { .fd = drmmode->fd, .events = POLLIN }; > + struct pollfd p = { .fd = pRADEONEnt->fd, .events = POLLIN }; > int r; > > do { > @@ -118,7 +119,7 @@ radeon_present_flush_drm_events(ScreenPtr > screen) > if (r <= 0) > return 0; > > - return drmHandleEvent(drmmode->fd, &drmmode->event_context) >= > 0; > + return drmHandleEvent(pRADEONEnt->fd, &drmmode->event_context) > >= 0; > } > > /* > @@ -155,7 +156,7 @@ radeon_present_queue_vblank(RRCrtcPtr crtc, > uint64_t event_id, uint64_t msc) > xf86CrtcPtr xf86_crtc = crtc->devPrivate; > ScreenPtr screen = crtc->pScreen; > ScrnInfoPtr scrn = xf86ScreenToScrn(screen); > - RADEONInfoPtr info = RADEONPTR(scrn); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); > int crtc_id = drmmode_get_crtc_id(xf86_crtc); > struct radeon_present_vblank_event *event; > uintptr_t drm_queue_seq; > @@ -180,7 +181,7 @@ radeon_present_queue_vblank(RRCrtcPtr crtc, > uint64_t event_id, uint64_t msc) > vbl.request.sequence = msc; > vbl.request.signal = drm_queue_seq; > for (;;) { > - ret = drmWaitVBlank(info->dri2.drm_fd, &vbl); > + ret = drmWaitVBlank(pRADEONEnt->fd, &vbl); > if (!ret) > break; > if (errno != EBUSY || !radeon_present_flush_drm_events(screen)) { > @@ -435,11 +436,11 @@ radeon_present_has_async_flip(ScreenPtr screen) > { > #ifdef DRM_CAP_ASYNC_PAGE_FLIP > ScrnInfoPtr scrn = xf86ScreenToScrn(screen); > - RADEONInfoPtr info = RADEONPTR(scrn); > + RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); > int ret; > uint64_t value; > > - ret = drmGetCap(info->dri2.drm_fd, DRM_CAP_ASYNC_PAGE_FLIP, > &value); > + ret = drmGetCap(pRADEONEnt->fd, DRM_CAP_ASYNC_PAGE_FLIP, > &value); > if (ret == 0) > return value == 1; > #endif > -- > 2.13.1 > > _______________________________________________ > amd-gfx mailing list > amd-gfx at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx