mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-15 13:15:57 +00:00
drm/radeon: R300 AD only has one quad pipe.
Gleaned from the Mesa code. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=27355 . Signed-off-by: Michel Dänzer <daenzer@vmware.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
d668046c13
commit
57b54ea6b7
@ -324,11 +324,12 @@ void r300_gpu_init(struct radeon_device *rdev)
|
||||
|
||||
r100_hdp_reset(rdev);
|
||||
/* FIXME: rv380 one pipes ? */
|
||||
if ((rdev->family == CHIP_R300) || (rdev->family == CHIP_R350)) {
|
||||
if ((rdev->family == CHIP_R300 && rdev->pdev->device != 0x4144) ||
|
||||
(rdev->family == CHIP_R350)) {
|
||||
/* r300,r350 */
|
||||
rdev->num_gb_pipes = 2;
|
||||
} else {
|
||||
/* rv350,rv370,rv380 */
|
||||
/* rv350,rv370,rv380,r300 AD */
|
||||
rdev->num_gb_pipes = 1;
|
||||
}
|
||||
rdev->num_z_pipes = 1;
|
||||
|
@ -417,8 +417,9 @@ static int radeon_do_wait_for_idle(drm_radeon_private_t * dev_priv)
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
static void radeon_init_pipes(drm_radeon_private_t *dev_priv)
|
||||
static void radeon_init_pipes(struct drm_device *dev)
|
||||
{
|
||||
drm_radeon_private_t *dev_priv = dev->dev_private;
|
||||
uint32_t gb_tile_config, gb_pipe_sel = 0;
|
||||
|
||||
if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV530) {
|
||||
@ -436,11 +437,12 @@ static void radeon_init_pipes(drm_radeon_private_t *dev_priv)
|
||||
dev_priv->num_gb_pipes = ((gb_pipe_sel >> 12) & 0x3) + 1;
|
||||
} else {
|
||||
/* R3xx */
|
||||
if (((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R300) ||
|
||||
if (((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R300 &&
|
||||
dev->pdev->device != 0x4144) ||
|
||||
((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R350)) {
|
||||
dev_priv->num_gb_pipes = 2;
|
||||
} else {
|
||||
/* R3Vxx */
|
||||
/* RV3xx/R300 AD */
|
||||
dev_priv->num_gb_pipes = 1;
|
||||
}
|
||||
}
|
||||
@ -736,7 +738,7 @@ static int radeon_do_engine_reset(struct drm_device * dev)
|
||||
|
||||
/* setup the raster pipes */
|
||||
if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R300)
|
||||
radeon_init_pipes(dev_priv);
|
||||
radeon_init_pipes(dev);
|
||||
|
||||
/* Reset the CP ring */
|
||||
radeon_do_cp_reset(dev_priv);
|
||||
|
Loading…
x
Reference in New Issue
Block a user