drm/radeon/kms/igp: sideport is AMD only
authorAlex Deucher <alexdeucher@gmail.com>
Mon, 2 Aug 2010 23:39:15 +0000 (19:39 -0400)
committerDave Airlie <airlied@redhat.com>
Tue, 3 Aug 2010 23:49:35 +0000 (09:49 +1000)
Intel variants don't support it.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Cc: stable@kernel.org
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/radeon_atombios.c
drivers/gpu/drm/radeon/radeon_combios.c
drivers/gpu/drm/radeon/rs600.c
drivers/gpu/drm/radeon/rs690.c

index 6df7bd5694954e78bf8b410e77cefdae8bd77fe4..3bc2bcdf530815635c351743a6db7b95f1688462 100644 (file)
@@ -1032,21 +1032,18 @@ 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;
+
        if (atom_parse_data_header(mode_info->atom_context, index, NULL,
                                   &frev, &crev, &data_offset)) {
                igp_info = (union igp_info *)(mode_info->atom_context->bios +
                                      data_offset);
                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)
index cd2a6c254e3e23c97dcc970d129d7fc8ee3d0464..5e1474cde4b4245b7ce8c6b6968da03568a6dc5f 100644 (file)
@@ -693,6 +693,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) {
index 85cd911952c1715eb0165393bb842ed142bb51dd..cc05b230d7effbbae88524da0d698dace6228ccf 100644 (file)
@@ -696,7 +696,6 @@ void rs600_mc_init(struct radeon_device *rdev)
        rdev->mc.igp_sideport_enabled = radeon_atombios_sideport_present(rdev);
        base = RREG32_MC(R_000004_MC_FB_LOCATION);
        base = G_000004_MC_FB_START(base) << 16;
-       rdev->mc.igp_sideport_enabled = radeon_atombios_sideport_present(rdev);
        radeon_vram_location(rdev, &rdev->mc, base);
        rdev->mc.gtt_base_align = 0;
        radeon_gtt_location(rdev, &rdev->mc);
index 6fbb874583f4425306e92572a2fdd2f6a564347b..3e3f75718be3e83ab156465dc80a11f604b58a64 100644 (file)
@@ -159,8 +159,8 @@ void rs690_mc_init(struct radeon_device *rdev)
        rdev->mc.visible_vram_size = rdev->mc.aper_size;
        base = RREG32_MC(R_000100_MCCFG_FB_LOCATION);
        base = G_000100_MC_FB_START(base) << 16;
-       rs690_pm_info(rdev);
        rdev->mc.igp_sideport_enabled = radeon_atombios_sideport_present(rdev);
+       rs690_pm_info(rdev);
        radeon_vram_location(rdev, &rdev->mc, base);
        rdev->mc.gtt_base_align = rdev->mc.gtt_size - 1;
        radeon_gtt_location(rdev, &rdev->mc);