Le vendredi 20 octobre 2006 15:35, Luiz Fernando N. Capitulino a écrit :
> Hi,
>
> Em Thu, 19 Oct 2006 00:33:57 +0200
>
> Couriousous <[EMAIL PROTECTED]> escreveu:
> | Hello
> |
> | In the next update, can you include this patch, it fix the mach64 drm
> | driver:
>
> Care to describe the problem it fixes and generate the patch again with
> diff -Nparu ?
The problem is:
- Currently thoses fields are not initialised. Since the structure is declared
"static", they are initialised at 0.
So the driver claim to be compatible with DRM version 0.0.0 and the pointers
are NULL. This lead to the following log in dmesg:
Oct 5 19:18:48 portable kernel: [drm] Initialized drm 1.0.1 20051102
Oct 5 19:18:48 portable kernel: ACPI: PCI Interrupt 0000:01:00.0[A] -> Link
[LNKC] -> GSI 5 (level, low) -> IRQ 5
Oct 5 19:18:48 portable kernel: [drm] Initialized <NULL> 0.0.0 <NULL> on minor 0
Oct 5 19:18:48 portable kernel: [drm:mach64_dma_init] *ERROR* mach64_dma_init
called without lock held
Oct 5 19:18:48 portable kernel: [drm:drm_unlock] *ERROR* Process 2971 using
kernel context 0
And X complain that the DRM version is incompatible then DRI fail to initialize.
With the patch, the driver claim to support the correct version, and everything
is fine:
Oct 8 20:50:48 portable kernel: [drm] Initialized drm 1.0.1 20051102
Oct 8 20:50:48 portable kernel: ACPI: PCI Interrupt 0000:01:00.0[A] -> Link
[LNKC] -> GSI 5 (level, low) -> IRQ 5
Oct 8 20:50:48 portable kernel: [drm] Initialized mach64 1.0.0 20020904 on
minor 0
Oct 8 20:50:48 portable kernel: agpgart: Found an AGP 2.0 compliant device at
0000:00:00.0.
Oct 8 20:50:48 portable kernel: agpgart: Putting AGP V2 device at 0000:00:00.0
into 2x mode
Oct 8 20:50:48 portable kernel: agpgart: Putting AGP V2 device at 0000:01:00.0
into 2x mode
Oct 8 20:50:48 portable kernel: [drm] descriptor ring: cpu addr d0b40000, bus
addr: 0xf0000000
Oct 8 20:50:48 portable kernel: [drm] Forcing pseudo-DMA mode
So here is the diff -Nparu :
--- linux/drivers/char/drm/mach64_drv.c.orig 2006-10-06 00:40:02.000000000
+0200
+++ linux/drivers/char/drm/mach64_drv.c 2006-10-06 00:42:55.000000000 +0200
@@ -70,7 +70,13 @@ static struct drm_driver driver = {
.pci_driver = {
.name = DRIVER_NAME,
.id_table = pciidlist,
- }
+ },
+ .major = DRIVER_MAJOR,
+ .minor = DRIVER_MINOR,
+ .patchlevel = DRIVER_PATCHLEVEL,
+ .name = DRIVER_NAME,
+ .desc = DRIVER_DESC,
+ .date = DRIVER_DATE
};
static int __init mach64_init(void)
Regards,
Couriousous