In the short term: I found that the DRM fixes in 2.6.34.3-rc1 all seem to be applicable to Debian. We have DRM from 2.6.33 plus Dave's backport of Radeon Evergreen support; full gory details at: git://git.debian.org/kernel/linux-2.6.git squeeze Please advise if any of these are not applicable. commit a1efd14a99483a4fb9308902397ed86b69454c99 Author: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Date: Mon Jul 12 19:35:38 2010 +0100 drm/i915: Check overlay stride errata for i830 and i845 commit 812d046915f48236657f02c06d7dc47140e9ceda Author: Alex Deucher <alexdeucher@xxxxxxxxx> Date: Mon Jul 26 18:51:53 2010 -0400 drm/radeon/kms/r7xx: add workaround for hw issue with HDP flush commit 2e98f10a7a87ebae4dcc3949028a32008b46ceef Author: Dave Airlie <airlied@xxxxxxxxxx> Date: Mon Feb 15 15:54:45 2010 +1000 drm/radeon/kms: flush HDP cache on GART table updates. This is not in 2.6.34.3-rc1 but is necessary for the previous patch. commit 1297c05a8dfb568c689f057d51a65eebe5ddc86f Author: Alex Deucher <alexdeucher@xxxxxxxxx> Date: Wed Aug 4 11:40:00 2010 -0400 drm/radeon: add new pci ids commit 4c70b2eae371ebe83019ac47de6088b78124ab36 Author: Alex Deucher <alexdeucher@xxxxxxxxx> Date: Mon Aug 2 19:39:15 2010 -0400 drm/radeon/kms/igp: sideport is AMD only This required some massaging; here's the backported version: From: Alex Deucher <alexdeucher@xxxxxxxxx> Date: Mon, 2 Aug 2010 19:39:15 -0400 Subject: [PATCH] drm/radeon/kms/igp: sideport is AMD only commit 4c70b2eae371ebe83019ac47de6088b78124ab36 upstream. Intel variants don't support it. Signed-off-by: Alex Deucher <alexdeucher@xxxxxxxxx> Cc: stable@xxxxxxxxxx Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx> [bwh: Backport to 2.6.33] --- drivers/gpu/drm/radeon/radeon_atombios.c | 15 ++++++--------- drivers/gpu/drm/radeon/radeon_combios.c | 4 ++++ drivers/gpu/drm/radeon/rs600.c | 1 - drivers/gpu/drm/radeon/rs690.c | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c index d3d6d86..44f00b6 100644 --- a/drivers/gpu/drm/radeon/radeon_atombios.c +++ b/drivers/gpu/drm/radeon/radeon_atombios.c @@ -1002,6 +1002,10 @@ bool radeon_atombios_sideport_present(struct radeon_device *rdev) u8 frev, crev; u16 data_offset; + /* sideport is AMD only */ + if (rdev->family == CHIP_RS600) + return false; + atom_parse_data_header(mode_info->atom_context, index, NULL, &frev, &crev, &data_offset); @@ -1011,15 +1015,8 @@ bool radeon_atombios_sideport_present(struct radeon_device *rdev) if (igp_info) { switch (crev) { case 1: - /* AMD IGPS */ - if ((rdev->family == CHIP_RS690) || - (rdev->family == CHIP_RS740)) { - if (igp_info->info.ulBootUpMemoryClock) - return true; - } else { - if (igp_info->info.ucMemoryType & 0xf0) - return true; - } + if (igp_info->info.ulBootUpMemoryClock) + return true; break; case 2: if (igp_info->info_2.ucMemoryType & 0x0f) diff --git a/drivers/gpu/drm/radeon/radeon_combios.c b/drivers/gpu/drm/radeon/radeon_combios.c index f611123..f357585 100644 --- a/drivers/gpu/drm/radeon/radeon_combios.c +++ b/drivers/gpu/drm/radeon/radeon_combios.c @@ -601,6 +601,10 @@ bool radeon_combios_sideport_present(struct radeon_device *rdev) struct drm_device *dev = rdev->ddev; u16 igp_info; + /* sideport is AMD only */ + if (rdev->family == CHIP_RS400) + return false; + igp_info = combios_get_table_offset(dev, COMBIOS_INTEGRATED_SYSTEM_INFO_TABLE); if (igp_info) { diff --git a/drivers/gpu/drm/radeon/rs600.c b/drivers/gpu/drm/radeon/rs600.c index a27c09f..d9a0187 100644 --- a/drivers/gpu/drm/radeon/rs600.c +++ b/drivers/gpu/drm/radeon/rs600.c @@ -56,7 +56,6 @@ int rs600_mc_init(struct radeon_device *rdev) rdev->mc.vram_location = G_000004_MC_FB_START(tmp) << 16; rdev->mc.gtt_location = 0xffffffffUL; r = radeon_mc_setup(rdev); - rdev->mc.igp_sideport_enabled = radeon_atombios_sideport_present(rdev); if (r) return r; return 0; diff --git a/drivers/gpu/drm/radeon/rs690.c b/drivers/gpu/drm/radeon/rs690.c index 06e2771..eb4816f 100644 --- a/drivers/gpu/drm/radeon/rs690.c +++ b/drivers/gpu/drm/radeon/rs690.c @@ -150,6 +150,7 @@ void rs690_vram_info(struct radeon_device *rdev) if (rdev->mc.real_vram_size > rdev->mc.aper_size) rdev->mc.real_vram_size = rdev->mc.aper_size; + rdev->mc.igp_sideport_enabled = radeon_atombios_sideport_present(rdev); rs690_pm_info(rdev); /* FIXME: we should enforce default clock in case GPU is not in * default setup @@ -172,7 +173,6 @@ static int rs690_mc_init(struct radeon_device *rdev) rdev->mc.vram_location = G_000100_MC_FB_START(tmp) << 16; rdev->mc.gtt_location = 0xFFFFFFFFUL; r = radeon_mc_setup(rdev); - rdev->mc.igp_sideport_enabled = radeon_atombios_sideport_present(rdev); if (r) return r; return 0; -- Ben. -- Ben Hutchings Once a job is fouled up, anything done to improve it makes it worse.
Attachment:
signature.asc
Description: This is a digitally signed message part
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel