On Thu, Jun 03, 2010 at 07:07:09PM -0400, Alex Deucher wrote: > This is needed to enable accel in the ddx. However, > due to a bug in older versions of the ddx, it relies > on accel being disabled in order to load properly on > evergreen chips. To maintain compatility, we add a new > get accel param and call that from the ddx. The old one > always returns false for evergreen cards. > > Signed-off-by: Alex Deucher <alexdeucher@xxxxxxxxx> I am not sure i understand how it happened ? This really bad that we have to add accel working2, this is ugly... I am waiting for accel_working3 Cheers, Jerome > --- > drivers/gpu/drm/radeon/evergreen.c | 2 +- > drivers/gpu/drm/radeon/radeon_drv.c | 3 ++- > drivers/gpu/drm/radeon/radeon_kms.c | 9 ++++++++- > include/drm/radeon_drm.h | 1 + > 4 files changed, 12 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c > index 0440c09..49c94ae 100644 > --- a/drivers/gpu/drm/radeon/evergreen.c > +++ b/drivers/gpu/drm/radeon/evergreen.c > @@ -2153,7 +2153,7 @@ int evergreen_init(struct radeon_device *rdev) > if (r) > return r; > > - rdev->accel_working = false; > + rdev->accel_working = true; > r = evergreen_startup(rdev); > if (r) { > dev_err(rdev->dev, "disabling GPU acceleration\n"); > diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c > index 902d173..e166fe4 100644 > --- a/drivers/gpu/drm/radeon/radeon_drv.c > +++ b/drivers/gpu/drm/radeon/radeon_drv.c > @@ -45,9 +45,10 @@ > * - 2.2.0 - add r6xx/r7xx const buffer support > * - 2.3.0 - add MSPOS + 3D texture + r500 VAP regs > * - 2.4.0 - add crtc id query > + * - 2.5.0 - add get accel 2 to work around ddx breakage for evergreen > */ > #define KMS_DRIVER_MAJOR 2 > -#define KMS_DRIVER_MINOR 4 > +#define KMS_DRIVER_MINOR 5 > #define KMS_DRIVER_PATCHLEVEL 0 > int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags); > int radeon_driver_unload_kms(struct drm_device *dev); > diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c > index 0406835..6a70c0d 100644 > --- a/drivers/gpu/drm/radeon/radeon_kms.c > +++ b/drivers/gpu/drm/radeon/radeon_kms.c > @@ -118,7 +118,11 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp) > value = rdev->num_z_pipes; > break; > case RADEON_INFO_ACCEL_WORKING: > - value = rdev->accel_working; > + /* xf86-video-ati 6.13.0 relies on this being false for evergreen */ > + if ((rdev->family >= CHIP_CEDAR) && (rdev->family <= CHIP_HEMLOCK)) > + value = false; > + else > + value = rdev->accel_working; > break; > case RADEON_INFO_CRTC_FROM_ID: > for (i = 0, found = 0; i < rdev->num_crtc; i++) { > @@ -134,6 +138,9 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp) > return -EINVAL; > } > break; > + case RADEON_INFO_ACCEL_WORKING2: > + value = rdev->accel_working; > + break; > default: > DRM_DEBUG("Invalid request %d\n", info->request); > return -EINVAL; > diff --git a/include/drm/radeon_drm.h b/include/drm/radeon_drm.h > index 3ff9fc0..5347063 100644 > --- a/include/drm/radeon_drm.h > +++ b/include/drm/radeon_drm.h > @@ -903,6 +903,7 @@ struct drm_radeon_cs { > #define RADEON_INFO_NUM_Z_PIPES 0x02 > #define RADEON_INFO_ACCEL_WORKING 0x03 > #define RADEON_INFO_CRTC_FROM_ID 0x04 > +#define RADEON_INFO_ACCEL_WORKING2 0x05 > > struct drm_radeon_info { > uint32_t request; > -- > 1.7.0.1 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel