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

Re: Bug#246627: Radeon card firmware problem



X works again

Thanks everyone

David

P.S.  I can't say anything about 3d apps since I don't use any.

On Thu, 2004-04-29 at 23:53, Fabio Massimo Di Nitto wrote:
> 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



Reply to: