Re: [pull] radeon drm-fixes-3.11

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jul 17, 2013 at 4:24 PM, Andre Heider <a.heider@xxxxxxxxx> wrote:
> On Wed, Jul 17, 2013 at 9:54 PM,  <alexdeucher@xxxxxxxxx> wrote:
>> From: Alex Deucher <alexander.deucher@xxxxxxx>
>>
>> Hi Dave,
>>
>> Just a few DPM fixes.
>>
>> The following changes since commit d1ce3d5496f2a7c90dd00a9133572f931d2acdcc:
>>
>>   uvesafb: Really allow mtrr being 0, as documented and warn()ed (2013-07-16 10:24:28 +1000)
>>
>> are available in the git repository at:
>>   git://people.freedesktop.org/~agd5f/linux drm-fixes-3.11
>>
>> Alex Deucher (3):
>>       drm/radeon: add a module parameter to disable aspm
>>       drm/radeon: fix an endian bug in atom table parsing
>>       drm/radeon/dpm: fix atom vram table parsing
>>
>> Andre Heider (1):
>>       drm/radeon/dpm/atom: restructure logic to work around a compiler bug
>
> Discarding the debug patches from bug #66932 and then merging your
> branch makes it break again :P
> Seems like the printk()s mattered and the gcc 4.8 still hates the code.
>
> I still think its due to the asRegIndexBuf[1] definition + accessing
> the array with i>0, let me poke at it a little

Does the attached patch help?

Alex
From f90555cbe629e14c6af1dcec1933a3833ecd321f Mon Sep 17 00:00:00 2001
From: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Wed, 17 Jul 2013 16:34:12 -0400
Subject: [PATCH] drm/radeon/dpm/atom: fix broken gcc harder

See bugs:
https://bugs.freedesktop.org/show_bug.cgi?id=66932
https://bugs.freedesktop.org/show_bug.cgi?id=66972
https://bugs.freedesktop.org/show_bug.cgi?id=66945

Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
---
 drivers/gpu/drm/radeon/radeon_atombios.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c
index 2606ec6..e3f3e88 100644
--- a/drivers/gpu/drm/radeon/radeon_atombios.c
+++ b/drivers/gpu/drm/radeon/radeon_atombios.c
@@ -3699,18 +3699,21 @@ int radeon_atom_init_mc_reg_table(struct radeon_device *rdev,
 						(ATOM_MEMORY_SETTING_DATA_BLOCK *)
 						((u8 *)reg_block + (2 * sizeof(u16)) +
 						 le16_to_cpu(reg_block->usRegIndexTblSize));
+					ATOM_INIT_REG_INDEX_FORMAT *format = &reg_block->asRegIndexBuf[0];
 					num_entries = (u8)((le16_to_cpu(reg_block->usRegIndexTblSize)) /
 							   sizeof(ATOM_INIT_REG_INDEX_FORMAT)) - 1;
 					if (num_entries > VBIOS_MC_REGISTER_ARRAY_SIZE)
 						return -EINVAL;
 					while (i < num_entries) {
-						if (reg_block->asRegIndexBuf[i].ucPreRegDataLength & ACCESS_PLACEHOLDER)
+						if (format->ucPreRegDataLength & ACCESS_PLACEHOLDER)
 							break;
 						reg_table->mc_reg_address[i].s1 =
-							(u16)(le16_to_cpu(reg_block->asRegIndexBuf[i].usRegIndex));
+							(u16)(le16_to_cpu(format->usRegIndex));
 						reg_table->mc_reg_address[i].pre_reg_data =
-							(u8)(reg_block->asRegIndexBuf[i].ucPreRegDataLength);
+							(u8)(format->ucPreRegDataLength);
 						i++;
+						format = (ATOM_INIT_REG_INDEX_FORMAT *)
+							((u8 *)format + sizeof(ATOM_INIT_REG_INDEX_FORMAT));
 					}
 					reg_table->last = i;
 					while ((*(u32 *)reg_data != END_OF_REG_DATA_BLOCK) &&
-- 
1.7.7.5

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel

[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux