Bug#596741: regression: CPU fan fast after resume: won't climb back down (patch from upstream)

2012-05-04 Thread Jonathan Nieder
Jon Dowland wrote:

>>  3. Configure, build, and test:
>>
>>  git checkout squeeze-drm/master
[...]
> Alas no — the patch which fixes the issue has already been applied to this 
> branch.
> So this worked ☺

Thanks.  Interesting.  What does "git log -1 --oneline
squeeze-drm/master" show?  (For me it says "ba52a5bbe327 Linux
2.6.32.59".)  Does

git show squeeze-drm/master:drivers/gpu/drm/radeon/atom.c |
grep ATOM_CMD_SPDFANCNTL

yield any results?  (For me it doesn't.)  Does kernel modesetting seem
to be working?  "dmesg" output from booting and suspending would also
be interesting.

Puzzled,
Jonathan



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Bug#596741: regression: CPU fan fast after resume: won't climb back down (patch from upstream)

2012-05-04 Thread Jon Dowland
On Thu, Apr 26, 2012 at 02:59:29PM -0500, Jonathan Nieder wrote:
> Even easier is testing using the upstream source.  It works like this:

Thanks again for the detailed instructions.  They really are a help. I was
not aware this was possible for the debian flavours. Good stuff.

>  2. Fetch point release (KMS variant):
> 
>   cd linux
>   git remote add squeeze-drm \
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/smb/linux-2.6.32.y-drm33.z.git
>   git fetch squeeze-drm
> 
>  3. Configure, build, and test:
> 
>   git checkout squeeze-drm/master
>   cp /boot/config-2.6.32-5-* .config; # stock configuration
>   scripts/config --disable DEBUG_INFO
>   make localmodconfig; # optional: minimize configuration
>   make deb-pkg; # optionally with -j for parallel build
>   dpkg -i ../; # as root
> 
> Hopefully it reproduces the problem.  So:

Alas no — the patch which fixes the issue has already been applied to this 
branch.
So this worked ☺

I haven't tried reverting it to reproduce the issue again, yet, but I can if you
want.




-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Bug#596741: regression: CPU fan fast after resume: won't climb back down (patch from upstream)

2012-04-26 Thread Jonathan Nieder
tags 596741 = upstream patch moreinfo
quit

Hi Jon,

Jon Dowland wrote:

> I'm happy to: but after a few hours I've totally failed to build the squeeze
> kernel for various reasons, the last attempt (in a pbuilder) without any clear
> idea why it failed.

Sorry for the trouble.  Building the full kernel package is generally not a
great idea, since it is enormous.  Building just one variant of the kernel
works better, as described at [1].

Even easier is testing using the upstream source.  It works like this:

 0. Prerequisites:

apt-get install git build-essential

 1. Get a copy of the kernel history if you don't already have it:

git clone \
  git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

 2. Fetch point release (KMS variant):

cd linux
git remote add squeeze-drm \
  
git://git.kernel.org/pub/scm/linux/kernel/git/smb/linux-2.6.32.y-drm33.z.git
git fetch squeeze-drm

 3. Configure, build, and test:

git checkout squeeze-drm/master
cp /boot/config-2.6.32-5-* .config; # stock configuration
scripts/config --disable DEBUG_INFO
make localmodconfig; # optional: minimize configuration
make deb-pkg; # optionally with -j for parallel build
dpkg -i ../; # as root

Hopefully it reproduces the problem.  So:

 4. Test the patch:

cd linux
git am -3sc /path/to/the/patch
make deb-pkg; # maybe with -j4
dpkg -i ../
reboot

Patch attached.

Hope that helps,
Jonathan

[1] 
http://kernel-handbook.alioth.debian.org/ch-common-tasks.html#s-common-official
or the corresponding page in the debian-kernel-handbook package
From: Alex Deucher 
Date: Thu, 29 Mar 2012 19:04:08 -0400
Subject: drm/radeon/kms: fix fans after resume

commit 402976fe51b2d1a58a29ba06fa1ca5ace3a4cdcd upstream.

On pre-R600 asics, the SpeedFanControl table is not
executed as part of ASIC_Init as it is on newer asics.

Fixes:
https://bugzilla.kernel.org/show_bug.cgi?id=29412

Signed-off-by: Alex Deucher 
Reviewed-by: Michel Dänzer 
Signed-off-by: Dave Airlie 
Signed-off-by: Jonathan Nieder 
---
 drivers/gpu/drm/radeon/atom.c |9 +
 drivers/gpu/drm/radeon/atom.h |1 +
 2 files changed, 10 insertions(+)

diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c
index 052312f5ff97..0272ea8bd6cf 100644
--- a/drivers/gpu/drm/radeon/atom.c
+++ b/drivers/gpu/drm/radeon/atom.c
@@ -31,6 +31,7 @@
 #include "atom.h"
 #include "atom-names.h"
 #include "atom-bits.h"
+#include "radeon.h"
 
 #define ATOM_COND_ABOVE0
 #define ATOM_COND_ABOVEOREQUAL 1
@@ -1247,8 +1248,10 @@ struct atom_context *atom_parse(struct card_info *card, 
void *bios)
 
 int atom_asic_init(struct atom_context *ctx)
 {
+   struct radeon_device *rdev = ctx->card->dev->dev_private;
int hwi = CU16(ctx->data_table + ATOM_DATA_FWI_PTR);
uint32_t ps[16];
+
memset(ps, 0, 64);
 
ps[0] = cpu_to_le32(CU32(hwi + ATOM_FWI_DEFSCLK_PTR));
@@ -1260,6 +1263,12 @@ int atom_asic_init(struct atom_context *ctx)
return 1;
atom_execute_table(ctx, ATOM_CMD_INIT, ps);
 
+   memset(ps, 0, 64);
+
+   if (rdev->family < CHIP_R600) {
+   if (CU16(ctx->cmd_table + 4 + 2 * ATOM_CMD_SPDFANCNTL))
+   atom_execute_table(ctx, ATOM_CMD_SPDFANCNTL, ps);
+   }
return 0;
 }
 
diff --git a/drivers/gpu/drm/radeon/atom.h b/drivers/gpu/drm/radeon/atom.h
index bc73781423a1..d3b7c967e44e 100644
--- a/drivers/gpu/drm/radeon/atom.h
+++ b/drivers/gpu/drm/radeon/atom.h
@@ -44,6 +44,7 @@
 #define ATOM_CMD_SETSCLK   0x0A
 #define ATOM_CMD_SETMCLK   0x0B
 #define ATOM_CMD_SETPCLK   0x0C
+#define ATOM_CMD_SPDFANCNTL0x39
 
 #define ATOM_DATA_FWI_PTR  0xC
 #define ATOM_DATA_IIO_PTR  0x32
-- 
1.7.10