>From 6d58c7712414dcd80e837292e99ce6aab4cb4271 Mon Sep 17 00:00:00 2001
From: Alex Deucher <alexdeuc...@gmail.com>
Date: Tue, 8 Dec 2009 14:07:03 -0500
Subject: [PATCH] drm/radeon/kms: make sure ss id matches

entries in the ss table aren't always ordered
by id.

Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>
---
 drivers/gpu/drm/radeon/radeon_atombios.c |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c
b/drivers/gpu/drm/radeon/radeon_atombios.c
index b762a57..40d470a 100644
--- a/drivers/gpu/drm/radeon/radeon_atombios.c
+++ b/drivers/gpu/drm/radeon/radeon_atombios.c
@@ -997,6 +997,7 @@ static struct radeon_atom_ss
*radeon_atombios_get_ss_info(struct
        struct _ATOM_SPREAD_SPECTRUM_INFO *ss_info;
        uint8_t frev, crev;
        struct radeon_atom_ss *ss = NULL;
+       int i;

        if (id > ATOM_MAX_SS_ENTRY)
                return NULL;
@@ -1014,12 +1015,17 @@ static struct radeon_atom_ss
*radeon_atombios_get_ss_info(struct
                if (!ss)
                        return NULL;

-               ss->percentage =
le16_to_cpu(ss_info->asSS_Info[id].usSpreadSpectrumPercentage);
-               ss->type = ss_info->asSS_Info[id].ucSpreadSpectrumType;
-               ss->step = ss_info->asSS_Info[id].ucSS_Step;
-               ss->delay = ss_info->asSS_Info[id].ucSS_Delay;
-               ss->range = ss_info->asSS_Info[id].ucSS_Range;
-               ss->refdiv = ss_info->asSS_Info[id].ucRecommendedRef_Div;
+               for (i = 0; i < ATOM_MAX_SS_ENTRY; i++) {
+                       if (ss_info->asSS_Info[i].ucSS_Id == id) {
+                               ss->percentage =
+                                       
le16_to_cpu(ss_info->asSS_Info[i].usSpreadSpectrumPercentage);
+                               ss->type = 
ss_info->asSS_Info[i].ucSpreadSpectrumType;
+                               ss->step = ss_info->asSS_Info[i].ucSS_Step;
+                               ss->delay = ss_info->asSS_Info[i].ucSS_Delay;
+                               ss->range = ss_info->asSS_Info[i].ucSS_Range;
+                               ss->refdiv = 
ss_info->asSS_Info[i].ucRecommendedRef_Div;
+                       }
+               }
        }
        return ss;
 }
-- 
1.5.6.3
From 6d58c7712414dcd80e837292e99ce6aab4cb4271 Mon Sep 17 00:00:00 2001
From: Alex Deucher <alexdeuc...@gmail.com>
Date: Tue, 8 Dec 2009 14:07:03 -0500
Subject: [PATCH] drm/radeon/kms: make sure ss id matches

entries in the ss table aren't always ordered
by id.

Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>
---
 drivers/gpu/drm/radeon/radeon_atombios.c |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c
index b762a57..40d470a 100644
--- a/drivers/gpu/drm/radeon/radeon_atombios.c
+++ b/drivers/gpu/drm/radeon/radeon_atombios.c
@@ -997,6 +997,7 @@ static struct radeon_atom_ss *radeon_atombios_get_ss_info(struct
 	struct _ATOM_SPREAD_SPECTRUM_INFO *ss_info;
 	uint8_t frev, crev;
 	struct radeon_atom_ss *ss = NULL;
+	int i;
 
 	if (id > ATOM_MAX_SS_ENTRY)
 		return NULL;
@@ -1014,12 +1015,17 @@ static struct radeon_atom_ss *radeon_atombios_get_ss_info(struct
 		if (!ss)
 			return NULL;
 
-		ss->percentage = le16_to_cpu(ss_info->asSS_Info[id].usSpreadSpectrumPercentage);
-		ss->type = ss_info->asSS_Info[id].ucSpreadSpectrumType;
-		ss->step = ss_info->asSS_Info[id].ucSS_Step;
-		ss->delay = ss_info->asSS_Info[id].ucSS_Delay;
-		ss->range = ss_info->asSS_Info[id].ucSS_Range;
-		ss->refdiv = ss_info->asSS_Info[id].ucRecommendedRef_Div;
+		for (i = 0; i < ATOM_MAX_SS_ENTRY; i++) {
+			if (ss_info->asSS_Info[i].ucSS_Id == id) {
+				ss->percentage =
+					le16_to_cpu(ss_info->asSS_Info[i].usSpreadSpectrumPercentage);
+				ss->type = ss_info->asSS_Info[i].ucSpreadSpectrumType;
+				ss->step = ss_info->asSS_Info[i].ucSS_Step;
+				ss->delay = ss_info->asSS_Info[i].ucSS_Delay;
+				ss->range = ss_info->asSS_Info[i].ucSS_Range;
+				ss->refdiv = ss_info->asSS_Info[i].ucRecommendedRef_Div;
+			}
+		}
 	}
 	return ss;
 }
-- 
1.5.6.3

------------------------------------------------------------------------------
Return on Information:
Google Enterprise Search pays you back
Get the facts.
http://p.sf.net/sfu/google-dev2dev
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to