Thanks Karthick,
Your suggestion works -
T400:~/linux-2.6.38/drivers/gpu/drm/radeon# diff r600.c.orig r600.c 2221a2222,2234 > /* > * Re-read the read and write if the value returned isn't sane. before calling r600_cp_start > */ > do { > rdev->cp.rptr = RREG32(CP_RB_RPTR); > mdelay(15); > } while((int)rdev->cp.rptr < 0); > > do { > rdev->cp.wptr = RREG32(CP_RB_WPTR); > mdelay(15); > } while( (int)rdev->cp.wptr < 0 ); >
If I boot without this fix I run into the Oops. With the patched module it works fine.
If a patch would help kindly let know what steps to use to produce the patch (which directory to run it from) and I can upload the same.
Hope this fix is reviewed and makes into the next release.
Thanks, Mayank
Thanks Karthick,
Your suggestion works -
T400:~/ linux-2. 6.38/drivers/ gpu/drm/ radeon# diff r600.c.orig r600.c int)rdev- >cp.rptr < 0);
2221a2222,2234
> /*
> * Re-read the read and write if the value returned isn't sane. before calling r600_cp_start
> */
> do {
> rdev->cp.rptr = RREG32(CP_RB_RPTR);
> mdelay(15);
> } while((
>
> do {
> rdev->cp.wptr = RREG32(CP_RB_WPTR);
> mdelay(15);
> } while( (int)rdev->cp.wptr < 0 );
>
If I boot without this fix I run into the Oops. With the patched module it works fine.
If a patch would help kindly let know what steps to use to produce the patch (which directory to run it from) and I can upload the same.
Hope this fix is reviewed and makes into the next release.
Thanks,
Mayank