Skip to content

Commit

Permalink
drm: realign sosme radeon code with drm git tree
Browse files Browse the repository at this point in the history
this applies some minor cleanups for the radeon driver, to use the
3D flush and reset the AGP flags on X recycle

Signed-off-by: Dave Airlie <airlied@linux.ie>
  • Loading branch information
Dave Airlie committed Sep 21, 2006
1 parent d40c853 commit b15ec36
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 9 deletions.
19 changes: 12 additions & 7 deletions drivers/char/drm/radeon_cp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1340,17 +1340,19 @@ static int radeon_do_init_cp(drm_device_t * dev, drm_radeon_init_t * init)
DRM_DEBUG("\n");

/* if we require new memory map but we don't have it fail */
if ((dev_priv->flags & CHIP_NEW_MEMMAP) && !dev_priv->new_memmap)
{
DRM_ERROR("Cannot initialise DRM on this card\nThis card requires a new X.org DDX\n");
if ((dev_priv->flags & CHIP_NEW_MEMMAP) && !dev_priv->new_memmap) {
DRM_ERROR("Cannot initialise DRM on this card\nThis card requires a new X.org DDX for 3D\n");
radeon_do_cleanup_cp(dev);
return DRM_ERR(EINVAL);
}

if (init->is_pci && (dev_priv->flags & CHIP_IS_AGP))
{
if (init->is_pci && (dev_priv->flags & CHIP_IS_AGP)) {
DRM_DEBUG("Forcing AGP card to PCI mode\n");
dev_priv->flags &= ~CHIP_IS_AGP;
} else if (!(dev_priv->flags & (CHIP_IS_AGP | CHIP_IS_PCI | CHIP_IS_PCIE))
&& !init->is_pci) {
DRM_DEBUG("Restoring AGP flag\n");
dev_priv->flags |= CHIP_IS_AGP;
}

if ((!(dev_priv->flags & CHIP_IS_AGP)) && !dev->sg) {
Expand Down Expand Up @@ -2189,7 +2191,9 @@ int radeon_driver_load(struct drm_device *dev, unsigned long flags)
case CHIP_RV200:
case CHIP_R200:
case CHIP_R300:
case CHIP_R350:
case CHIP_R420:
case CHIP_RV410:
dev_priv->flags |= CHIP_HAS_HIERZ;
break;
default:
Expand All @@ -2199,9 +2203,10 @@ int radeon_driver_load(struct drm_device *dev, unsigned long flags)

if (drm_device_is_agp(dev))
dev_priv->flags |= CHIP_IS_AGP;

if (drm_device_is_pcie(dev))
else if (drm_device_is_pcie(dev))
dev_priv->flags |= CHIP_IS_PCIE;
else
dev_priv->flags |= CHIP_IS_PCI;

DRM_DEBUG("%s card detected\n",
((dev_priv->flags & CHIP_IS_AGP) ? "AGP" : (((dev_priv->flags & CHIP_IS_PCIE) ? "PCIE" : "PCI"))));
Expand Down
5 changes: 3 additions & 2 deletions drivers/char/drm/radeon_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,7 @@ enum radeon_chip_flags {
CHIP_HAS_HIERZ = 0x00100000UL,
CHIP_IS_PCIE = 0x00200000UL,
CHIP_NEW_MEMMAP = 0x00400000UL,
CHIP_IS_PCI = 0x00800000UL,
};

#define GET_RING_HEAD(dev_priv) (dev_priv->writeback_works ? \
Expand Down Expand Up @@ -993,12 +994,12 @@ do { \

#define RADEON_FLUSH_CACHE() do { \
OUT_RING( CP_PACKET0( RADEON_RB3D_DSTCACHE_CTLSTAT, 0 ) ); \
OUT_RING( RADEON_RB2D_DC_FLUSH ); \
OUT_RING( RADEON_RB3D_DC_FLUSH ); \
} while (0)

#define RADEON_PURGE_CACHE() do { \
OUT_RING( CP_PACKET0( RADEON_RB3D_DSTCACHE_CTLSTAT, 0 ) ); \
OUT_RING( RADEON_RB2D_DC_FLUSH_ALL ); \
OUT_RING( RADEON_RB3D_DC_FLUSH_ALL ); \
} while (0)

#define RADEON_FLUSH_ZCACHE() do { \
Expand Down

0 comments on commit b15ec36

Please sign in to comment.