]> git.hungrycats.org Git - linux/commitdiff
drm/radeon/kms/igp: sideport is AMD only
authorAlex Deucher <alexdeucher@gmail.com>
Mon, 2 Aug 2010 23:39:15 +0000 (19:39 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 10 Aug 2010 17:54:14 +0000 (10:54 -0700)
commit 4c70b2eae371ebe83019ac47de6088b78124ab36 upstream.

Intel variants don't support it.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
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 1bac9ee62ad04db8324984886b8ce86efa6be2fb..0fb8fc1ff0ca829e21a5789d0e4fbf8a0b87a90f 100644 (file)
@@ -1024,21 +1024,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 37db8adb27481678b959f74f1f7432a177485ddb..61136a4c0f0bba323e9de3598e6409a3f3593659 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 a81bc7a21e14b967c23a218c3095031371f7d327..85bd022df96d7880dea15a460771c473ce608241 100644 (file)
@@ -475,7 +475,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);
        radeon_gtt_location(rdev, &rdev->mc);
        radeon_update_bandwidth_info(rdev);
index bbf3da790fd59fc7a8a03e65f260487d6fa7bca0..97e30023d5e7967dab4f2b94059bad9bd396c97f 100644 (file)
@@ -158,8 +158,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);
        radeon_gtt_location(rdev, &rdev->mc);
        radeon_update_bandwidth_info(rdev);