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

Re: Bug#246627: Radeon card firmware problem



reassign 246627 kernel-source-2.6.5
stop

Hi all,

On Fri, 30 Apr 2004, David Meggy wrote:

> On startup it quickly kills my console and I never get an X-window
> server.  Logging in remotely and running dmesg, I get the following at
> the end.

[SNIP]

> [drm] Initialized radeon 1.9.0 20020828 on minor 0
> agpgart: Found an AGP 2.0 compliant device at 0000:00:00.0.
> agpgart: Putting AGP V2 device at 0000:00:00.0 into 1x mode
> agpgart: Putting AGP V2 device at 0000:01:00.0 into 1x mode
> [drm:radeon_cp_load_microcode] *ERROR* Firmware file "r200_cp_microcode" not available.

[SNIP]

> Other useful information:
> I'm running Debian Sid, using the 2.6-k7 kernel
> package, and this problem started after my daily
> update this evening which would be the early hours of
> April 30 GMT

With the last X update, some non-free code has been revomed, and source
patched accordingly. X itself does not handle the load of the microcode to
the board, the kernel does (therefor i am reassigning the bug).

For completness I did a check on the radeon code inside X and there is no
reference to radeon_cp_load_microcode or similar calls. On the other side
that can be spotted inside the kernel at:

kernel-source-2.6.5-2.6.5/drivers/char/drm/radeon_cp.c:675

/* Load the microcode for the CP */
static void radeon_cp_load_microcode( drm_radeon_private_t *dev_priv )
[SNIP]


that is called twice in the same file. Specifically at lines 1258 for
radeon_do_init_cp and 1339 for radeon_do_resume_cp.

X uses these two functions via ioctl but cannot disable the
radeon_cp_load_microcode itself.

Herbert, would you be so kind to take a look at this patch?

--- radeon_cp.c.orig	2004-04-30 06:50:24.000000000 +0000
+++ radeon_cp.c	2004-04-30 06:51:02.000000000 +0000
@@ -1255,7 +1255,7 @@
 		radeon_set_pcigart( dev_priv, 1 );
 	}

-	radeon_cp_load_microcode( dev_priv );
+	/* radeon_cp_load_microcode( dev_priv ); */
 	radeon_cp_init_ring_buffer( dev, dev_priv );

 	dev_priv->last_buf = 0;
@@ -1336,7 +1336,7 @@
 		radeon_set_pcigart( dev_priv, 1 );
 	}

-	radeon_cp_load_microcode( dev_priv );
+	/* radeon_cp_load_microcode( dev_priv ); */
 	radeon_cp_init_ring_buffer( dev, dev_priv );

 	radeon_do_engine_reset( dev );

It should be able to fix the problem but i cannot test it myself since I
lack that kind of hardware.

Thanks a lot
Fabio

-- 
<user> fajita: step one
<fajita> Whatever the problem, step one is always to look in the error log.
<user> fajita: step two
<fajita> When in danger or in doubt, step two is to scream and shout.



Reply to: