Subject: Re: DRI/DRM Intel 945GM problem
To: Ahmad M. Afuni <pseudo.statistic@gmail.com>
From: Chavdar Ivanov <ci4ic4@gmail.com>
List: tech-x11
Date: 05/20/2007 19:23:50
------=_Part_47261_17216099.1179685430607
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On 20/05/07, Ahmad M. Afuni <pseudo.statistic@gmail.com> wrote:
> Hey,
>
> Applied your patch but, unfortunately, it caused my system to lock up.
> Xorg.0.log says the same thing about being unable to load the module.

I've had the lock-ups if AIGLX is not disabled in this setup -
attached is my xorg.conf, if it may be of any help.

>
> Thanks anyway,
>
> Ahmad
> On 5/20/07, Chavdar Ivanov <ci4ic4@gmail.com> wrote:
> > On 20/05/07, Ahmad M. Afuni <pseudo.statistic@gmail.com> wrote:
> > > Hey,
> > > I compiled my kernel (GENERIC.MP) with:
> > > i915drm*        at vga?         # Intel i915, i945 DRM driver
> > > And so dmesg tells me:
> > > i915drm0 at vga1
> > > info: [drm] Intel i945GM (unit 0)
> > > info: [drm] AGP at 0xc0000000 256MB
> > > info: [drm] Initialized i915 1.5.0 20060119
> > > Which seems OK.
> > > Now, to install xorg, I installed (from pkgsrc) x11/xf86-video-i810,
> > > modular-xorg-server, and the usual mouse/keyboard input drivers.
> > > I had:
> > > X11_TYPE=modular
> > > PKG_OPTIONS.xorg-server=dri
> > > in my mk.conf.
> > > Now, after installing the above, I tried X out, only to have this in
> > > my Xorg.0.log:
> > > drmOpenDevice: node name is /dev/dri/card0
> > > drmOpenDevice: open result is 8, (OK)
> > > drmOpenDevice: node name is /dev/dri/card0
> > > drmOpenDevice: open result is 8, (OK)
> > > [drm] failed to load kernel module "i915"
> >
> > I am sure I have been there at some point, but I can hardly remember
> > exactly how I fixed it. I've kinda lost the number of
> > modular-xorg-server* and mesa-dri* compilations; it's good fun,
> > anyway.
> >
> >  You got your /dev/dri/card0 as expected with the right mode?
> >
> > You followed generally what is in:
> > http://mail-index.netbsd.org/tech-x11/2007/03/19/0000.html ?
> >
> > Maybe the following will help you (it did it for me), taken against
> > -current from a few days ago:
> >
> > +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> > --- sys/dev/pci/agp_i810.c.orig 2007-05-14 20:13:55.000000000 +0100
> > +++ sys/dev/pci/agp_i810.c      2007-05-14 14:43:51.000000000 +0100
> > @@ -71,28 +71,6 @@
> >                 }                                                       \
> >         } while (0)
> >
> > -#define CHIP_I810 0    /* i810/i815 */
> > -#define CHIP_I830 1    /* 830M/845G */
> > -#define CHIP_I855 2    /* 852GM/855GM/865G */
> > -#define CHIP_I915 3    /* 915G/915GM/945G/945GM */
> > -
> > -struct agp_i810_softc {
> > -       u_int32_t initial_aperture;     /* aperture size at startup */
> > -       struct agp_gatt *gatt;
> > -       int chiptype;                   /* i810-like or i830 */
> > -       u_int32_t dcache_size;          /* i810 only */
> > -       u_int32_t stolen;               /* number of i830/845 gtt entries
> > -                                          for stolen memory */
> > -       bus_space_tag_t bst;            /* register bus_space tag */
> > -       bus_space_handle_t bsh;         /* register bus_space handle */
> > -       bus_space_tag_t gtt_bst;        /* GTT bus_space tag */
> > -       bus_space_handle_t gtt_bsh;     /* GTT bus_space handle */
> > -       struct pci_attach_args vga_pa;
> > -
> > -       void *sc_powerhook;
> > -       struct pci_conf_state sc_pciconf;
> > -};
> > -
> >  static u_int32_t agp_i810_get_aperture(struct agp_softc *);
> >  static int agp_i810_set_aperture(struct agp_softc *, u_int32_t);
> >  static int agp_i810_bind_page(struct agp_softc *, off_t, bus_addr_t);
> > @@ -725,7 +703,7 @@
> >          * Until the issue is solved, simply restore it.
> >          */
> >
> > -#if 0
> > +#if 1
> >         regval = bus_space_read_4(isc->bst, isc->bsh, AGP_I810_PGTBL_CTL);
> >         if (regval != (isc->gatt->ag_physical | 1)) {
> >                 printf("agp_i810_bind_memory: PGTBL_CTL is 0x%x - fixing\n",
> > --- sys/dev/pci/agpvar.h.orig   2007-05-14 20:13:55.000000000 +0100
> > +++ sys/dev/pci/agpvar.h        2007-05-14 14:45:43.000000000 +0100
> > @@ -161,6 +161,28 @@
> >         size_t            ag_size;
> >  };
> >
> > +#define CHIP_I810 0    /* i810/i815 */
> > +#define CHIP_I830 1    /* 830M/845G */
> > +#define CHIP_I855 2    /* 852GM/855GM/865G */
> > +#define CHIP_I915 3    /* 915G/915GM/945G/945GM */
> > +
> > +struct agp_i810_softc {
> > +       u_int32_t initial_aperture;     /* aperture size at startup */
> > +       struct agp_gatt *gatt;
> > +       int chiptype;                   /* i810-like or i830 */
> > +       u_int32_t dcache_size;          /* i810 only */
> > +       u_int32_t stolen;               /* number of i830/845 gtt entries
> > +                                          for stolen memory */
> > +       bus_space_tag_t bst;            /* register bus_space tag */
> > +       bus_space_handle_t bsh;         /* register bus_space handle */
> > +       bus_space_tag_t gtt_bst;        /* GTT bus_space tag */
> > +       bus_space_handle_t gtt_bsh;     /* GTT bus_space handle */
> > +       struct pci_attach_args vga_pa;
> > +
> > +       void *sc_powerhook;
> > +       struct pci_conf_state sc_pciconf;
> > +};
> > +
> >  int agpbusprint(void *, const char *);
> >
> >  /*
> > --- sys/dev/drm/drm_drv.c.orig  2007-05-14 20:14:08.000000000 +0100
> > +++ sys/dev/drm/drm_drv.c       2007-05-14 14:49:54.000000000 +0100
> > @@ -526,7 +526,7 @@
> >         }
> >
> >         for(i = 0; i<DRM_MAX_PCI_RESOURCE; i++) {
> > -               if (dev->pci_map_data[i].mapped > 1) {
> > +               if (dev->pci_map_data[i].mapped > 0) {
> >                         bus_space_unmap(dev->pci_map_data[i].maptype,
> >                                         dev->pci_map_data[i].bsh,
> >                                         dev->pci_map_data[i].size);
> > @@ -691,7 +691,7 @@
> >         i = 0;
> >
> >         for (i = 0; i < DRM_MAX_PCI_RESOURCE; i++)
> > -               if (dev->pci_map_data[i].mapped != 0)
> > +               if (dev->pci_map_data[i].mapped > 0)
> >                 {
> >                         bus_space_unmap(dev->pa.pa_memt,
> >                                         dev->pci_map_data[i].bsh,
> > --- sys/dev/drm/drm_memory.c.orig       2007-05-14 20:14:08.000000000 +0100
> > +++ sys/dev/drm/drm_memory.c    2007-05-14 14:51:39.000000000 +0100
> > @@ -97,8 +97,9 @@
> >                         map->bst = dev->pa.pa_memt;
> >                         map->cnt = &(dev->pci_map_data[i].mapped);
> >                         map->mapsize = dev->pci_map_data[i].size;
> > -                       dev->pci_map_data[i].mapped++;
> > -                       if (dev->pci_map_data[i].mapped > 1)
> > +                        if (dev->pci_map_data[i].mapped >= 0)
> > +                                dev->pci_map_data[i].mapped++;
> > +                        if (dev->pci_map_data[i].mapped != 1)
> >                         {
> >                                 map->bsh = dev->pci_map_data[i].bsh;
> >                                 return dev->pci_map_data[i].vaddr;
> > --- sys/dev/pci/drm/i915_drv.c.orig     2007-05-14 20:13:55.000000000 +0100
> > +++ sys/dev/pci/drm/i915_drv.c  2007-05-14 14:54:36.000000000 +0100
> > @@ -39,6 +39,8 @@
> >  #include "i915_drm.h"
> >  #include "i915_drv.h"
> >  #include "drm_pciids.h"
> > +#include "agp_i810.h"
> > +
> >
> >  /* drv_PCI_IDs comes from drm_pciids.h, generated from drm_pciids.txt. */
> >  static drm_pci_id_list_t i915_pciidlist[] = {
> > @@ -134,9 +136,34 @@
> >         struct pci_attach_args *pa = aux;
> >         drm_device_t *dev = (drm_device_t *)self;
> >
> > +#if NAGP_I810 > 0
> > +       struct agp_softc *agpsc;
> > +       struct agp_i810_softc *agpi810sc;
> > +       int reg;
> > +#endif
> > +
> > +
> >         i915_configure(dev);
> >
> >         drm_attach(self, pa, i915_pciidlist);
> > +
> > +#if NAGP_I810 > 0
> > +       agpsc = (struct agp_softc *)agp_find_device(0);
> > +       if(agpsc == NULL || agpsc->as_chipc == NULL)
> > +               return;
> > +
> > +       agpi810sc = agpsc->as_chipc;
> > +        if(agpi810sc->chiptype == CHIP_I915)
> > +               reg = 0;
> > +       else
> > +               reg = 1;
> > +
> > +       dev->pci_map_data[reg].bsh = agpi810sc->bsh;
> > +       dev->pci_map_data[reg].mapped = -1; /* never unmap */
> > +       dev->pci_map_data[reg].vaddr =
> > +               bus_space_vaddr(agpi810sc->bst, agpi810sc->bsh);
> > +#endif
> > +
> >  }
> >
> >  CFATTACH_DECL(i915drm, sizeof(drm_device_t), i915drm_probe, i915drm_attach,
> > --------------------------------------------------------
> >
> > > (II) I810(0): [drm] drmOpen failed
> > > (EE) I810(0): [dri] DRIScreenInit failed. Disabling DRI.
> > > Afterwards, realizing that I needed mesa-dri, I installed wip/mesa-dri
> > > and copied over the MesaLib.buildlink3.mk file over to
> > > graphics/MesaLib/buildlink3.mk.
> >
> > I am presently running Xorg7.2+Mesa652+dri on my laptop; the only
> > problem is I could not get AIGLX to work. Of the more interesting
> > OpenGL applications available, I got Blender to run accelerated, and
> > of course BZFlag!
> >
> > I got even Xorg7.3 + Mesa653+dri working, but for some reason the
> > server did not recognize the 'vt05' option, which lead to some weird
> > effects when used with gdm - like sometimes the keyboard attached to
> > one of the wscons terminals behind... also on occasions some keys got
> > repeated many times with no reason; this was even running with AIGLX
> > and Composite and   I was able to try starting Compiz and Beryl; the
> > latter kinda ran, but gave mostly white background with occasional
> > window brought in with ALT-Tab; the former did tjhe '--replace' bit
> > but then refused to continue due to the lack of a particular call.
> > I've since reverted back to the initial accelerated setup - mainly
> > because of the problem with the VTs (and also because otherwise I had
> > to recompile every OpenGL application - that's another story).
> >
> > > Furthermore, I pkg_deleted i810's driver and rebuilt it.
> >
> > I also did that just in case, although I don't believe it made any difference.
> >
> > > Still, exact same error. I must've missed something.
> > > Anyone know what that might be?
> > >
> > > Thanks,
> > > Ahmad
> > >
> >
> > Chavdar Ivanov
> >
>

------=_Part_47261_17216099.1179685430607
Content-Type: application/octet-stream; name=xorg.conf
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="xorg.conf"

U2VjdGlvbiAiU2VydmVyTGF5b3V0IgoJSWRlbnRpZmllciAgICAgIlgub3JnIENvbmZpZ3VyZWQi
CglTY3JlZW4gICAgICAwICAiU2NyZWVuMCIgMCAwCglJbnB1dERldmljZSAgICAiTW91c2UwIiAi
Q29yZVBvaW50ZXIiCglJbnB1dERldmljZSAgICAiS2V5Ym9hcmQwIiAiQ29yZUtleWJvYXJkIgpF
bmRTZWN0aW9uCgpTZWN0aW9uICJGaWxlcyIKCVJnYlBhdGggICAgICAiL3Vzci9wa2cvc2hhcmUv
WDExL3JnYiIKCU1vZHVsZVBhdGggICAiL3Vzci9wa2cvbGliL3hvcmcvbW9kdWxlcyIKCUZvbnRQ
YXRoICAgICAiL3Vzci9wa2cvbGliL1gxMS9mb250cy9taXNjLyIKCUZvbnRQYXRoICAgICAiL3Vz
ci9wa2cvbGliL1gxMS9mb250cy9UVEYvIgoJRm9udFBhdGggICAgICIvdXNyL3BrZy9saWIvWDEx
L2ZvbnRzL09URiIKCUZvbnRQYXRoICAgICAiL3Vzci9wa2cvbGliL1gxMS9mb250cy9UeXBlMS8i
CglGb250UGF0aCAgICAgIi91c3IvcGtnL2xpYi9YMTEvZm9udHMvYXJ0d2l6LyIKCUZvbnRQYXRo
ICAgICAiL3Vzci9wa2cvbGliL1gxMS9mb250cy8xMDBkcGkvOnVuc2NhbGVkIgoJRm9udFBhdGgg
ICAgICIvdXNyL3BrZy9saWIvWDExL2ZvbnRzLzc1ZHBpLzp1bnNjYWxlZCIKCUZvbnRQYXRoICAg
ICAiL3Vzci9wa2cvbGliL1gxMS9mb250cy8xMDBkcGkvIgoJRm9udFBhdGggICAgICIvdXNyL3Br
Zy9saWIvWDExL2ZvbnRzLzc1ZHBpLyIKCkVuZFNlY3Rpb24KClNlY3Rpb24gIk1vZHVsZSIKCUxv
YWQgICJkYmUiCglMb2FkICAiZHJpIgoJTG9hZCAgIkdMY29yZSIKCUxvYWQgICJnbHgiCglMb2Fk
ICAiZXh0bW9kIgoJTG9hZCAgInJlY29yZCIKCUxvYWQgICJ4dHJhcCIKCUxvYWQgICJmcmVldHlw
ZSIKCUxvYWQgICJ0eXBlMSIKRW5kU2VjdGlvbgoKU2VjdGlvbiAiU2VydmVyRmxhZ3MiCglPcHRp
b24gIkFJR0xYIiAib2ZmIgpFbmRTZWN0aW9uCgojLiNTZWN0aW9uICJFeHRlbnNpb25zIgojLiMJ
T3B0aW9uICJDb21wb3NpdGUiICJEaXNhYmxlIgojLiNFbmRTZWN0aW9uCgpTZWN0aW9uICJJbnB1
dERldmljZSIKCUlkZW50aWZpZXIgICJLZXlib2FyZDAiCglEcml2ZXIgICAgICAia2JkIgoJT3B0
aW9uCSAgICAiWGtiUnVsZXMiICJ4b3JnIgoJT3B0aW9uCSAgICAiWGtiTW9kZWwiICJwYzEwNSIK
CU9wdGlvbgkgICAgIlhrYkxheW91dCIgImdiIgpFbmRTZWN0aW9uCgpTZWN0aW9uICJJbnB1dERl
dmljZSIKCUlkZW50aWZpZXIgICJNb3VzZTAiCglEcml2ZXIgICAgICAibW91c2UiCglPcHRpb24J
ICAgICJQcm90b2NvbCIgIndzbW91c2UiCglPcHRpb24JICAgICJEZXZpY2UiICIvZGV2L3dzbW91
c2UiCglPcHRpb24JICAgICJaQXhpc01hcHBpbmciICI0IDUgNiA3IgpFbmRTZWN0aW9uCgpTZWN0
aW9uICJNb25pdG9yIgoKCSNEaXNwbGF5U2l6ZQkgIDMwMCAgIDIyMAkjIG1tCglJZGVudGlmaWVy
ICAgIk1vbml0b3IwIgoJVmVuZG9yTmFtZSAgICJMUEwiCglNb2RlbE5hbWUgICAgImJiMDAiCiAj
IyMgQ29tbWVudCBhbGwgSG9yaXpTeW5jIGFuZCBWZXJ0UmVmcmVzaCB2YWx1ZXMgdG8gdXNlIERE
QzoKCUhvcml6U3luYyAgICAzMS41IC0gNTcuMAoJVmVydFJlZnJlc2ggIDQwLjAgLSAxNTAuMApF
bmRTZWN0aW9uCgpTZWN0aW9uICJEZXZpY2UiCgogICAgICAgICMjIyBBdmFpbGFibGUgRHJpdmVy
IG9wdGlvbnMgYXJlOi0KICAgICAgICAjIyMgVmFsdWVzOiA8aT46IGludGVnZXIsIDxmPjogZmxv
YXQsIDxib29sPjogIlRydWUiLyJGYWxzZSIsCiAgICAgICAgIyMjIDxzdHJpbmc+OiAiU3RyaW5n
IiwgPGZyZXE+OiAiPGY+IEh6L2tIei9NSHoiCiAgICAgICAgIyMjIFthcmddOiBhcmcgb3B0aW9u
YWwKICAgICAgICAjT3B0aW9uICAgICAiTm9BY2NlbCIgICAgICAgICAgICAJIyBbPGJvb2w+XQog
ICAgICAgICNPcHRpb24gICAgICJTV2N1cnNvciIgICAgICAgICAgIAkjIFs8Ym9vbD5dCiAgICAg
ICAgI09wdGlvbiAgICAgIkNvbG9yS2V5IiAgICAgICAgICAgCSMgPGk+CiAgICAgICAgI09wdGlv
biAgICAgIkNhY2hlTGluZXMiICAgICAgICAgCSMgPGk+CiAgICAgICAgI09wdGlvbiAgICAgIkRh
YzZCaXQiICAgICAgICAgICAgCSMgWzxib29sPl0KICAgICAgICAjT3B0aW9uICAgICAiRFJJIiAg
ICAgICAgICAgICAgICAJIyBbPGJvb2w+XQogICAgICAgICNPcHRpb24gICAgICJOb0REQyIgICAg
ICAgICAgICAgIAkjIFs8Ym9vbD5dCiAgICAgICAgI09wdGlvbiAgICAgIlNob3dDYWNoZSIgICAg
ICAgICAgCSMgWzxib29sPl0KICAgICAgICAjT3B0aW9uICAgICAiWHZNQ1N1cmZhY2VzIiAgICAg
ICAJIyA8aT4KICAgICAgICAjT3B0aW9uICAgICAiUGFnZUZsaXAiICAgICAgICAgICAJIyBbPGJv
b2w+XQoJSWRlbnRpZmllciAgIkNhcmQwIgojCURyaXZlciAgICAgICJpbnRlbCIKCURyaXZlciAg
ICAgICJpODEwIgoJVmVuZG9yTmFtZSAgIkludGVsIENvcnBvcmF0aW9uIgoJQm9hcmROYW1lICAg
Ik1vYmlsZSA5NDVHTS9HTVMvOTQwR01MIEV4cHJlc3MgSW50ZWdyYXRlZCBHcmFwaGljcyBDb250
cm9sbGVyIgoJQnVzSUQgICAgICAgIlBDSTowOjI6MCIKCU9wdGlvbiAiRGlzcGxheUluZm8iICJG
QUxTRSIKRW5kU2VjdGlvbgoKU2VjdGlvbiAiRFJJIgoJR3JvdXAgIldoZWVsIgoJTW9kZQkwNjYw
CkVuZFNlY3Rpb24KClNlY3Rpb24gIlNjcmVlbiIKCUlkZW50aWZpZXIgIlNjcmVlbjAiCglEZXZp
Y2UgICAgICJDYXJkMCIKCU1vbml0b3IgICAgIk1vbml0b3IwIgoJRGVmYXVsdERlcHRoICAgICAy
NAoJU3ViU2VjdGlvbiAiRGlzcGxheSIKCQlWaWV3cG9ydCAgIDAgMAoJCURlcHRoICAgICAxCglF
bmRTdWJTZWN0aW9uCglTdWJTZWN0aW9uICJEaXNwbGF5IgoJCVZpZXdwb3J0ICAgMCAwCgkJRGVw
dGggICAgIDQKCUVuZFN1YlNlY3Rpb24KCVN1YlNlY3Rpb24gIkRpc3BsYXkiCgkJVmlld3BvcnQg
ICAwIDAKCQlEZXB0aCAgICAgOAoJRW5kU3ViU2VjdGlvbgoJU3ViU2VjdGlvbiAiRGlzcGxheSIK
CQlWaWV3cG9ydCAgIDAgMAoJCURlcHRoICAgICAxNQoJRW5kU3ViU2VjdGlvbgoJU3ViU2VjdGlv
biAiRGlzcGxheSIKCQlWaWV3cG9ydCAgIDAgMAoJCURlcHRoICAgICAxNgoJRW5kU3ViU2VjdGlv
bgoJU3ViU2VjdGlvbiAiRGlzcGxheSIKCQlWaWV3cG9ydCAgIDAgMAoJCURlcHRoICAgICAyNAoJ
CU1vZGVzICAgICIxMDI0eDc2OCIKCUVuZFN1YlNlY3Rpb24KRW5kU2VjdGlvbgoK
------=_Part_47261_17216099.1179685430607--