Date: Tue, 11 Jul 2006 13:10:11 -0400 (EDT) From: Daniel Eischen <deischen@freebsd.org> To: "M. Warner Losh" <imp@bsdimp.com> Cc: mobile@freebsd.org Subject: Re: Dell laptops Message-ID: <Pine.GSO.4.64.0607111252150.24473@sea.ntplx.net> In-Reply-To: <20060711.104708.1159134898.imp@bsdimp.com> References: <20060711.104708.1159134898.imp@bsdimp.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 11 Jul 2006, M. Warner Losh wrote: > Greetings, > > What are the current problems, if any, on current Dell laptops have > with FreeBSD? Yeah, thanks for asking! My Inspiron E1405 came with an Intel 3945 A/B/G mini-PCI wireless that isn't supported (OpenBSD has a seemingly actively maintained wpi driver for this card, and I have an experimental FreeBSD driver from damien that I haven't yet been able to get to work). I've ordered an Atheros-based mini-PCI in the meantime, and can lend out the 3945 to anyone willing to work on it. Also, the Fn (the blue key) can't be used to suspend, control volume, switch CRT/LCD, etc, and most importantly enable the radio on the wireless card (Fn + F2). Even if the wpi driver works, it's worthless if I can't enable the radio. Also, the ICH7-based sound chip isn't detected. I've got patches to dev/sound/pci/ich.c that detects it, but bus_alloc_resource[_any]() is failing to allocate the memory IO resource thingy. See patch below. The following lines from ich_pci_attach() are failing: sc->nambar = bus_alloc_resource_any(dev, sc->regtype, &sc->nambarid, RF_ACTIVE); sc->nabmbar = bus_alloc_resource_any(dev, sc->regtype, &sc->nabmbarid, RF_ACTIVE); if (!sc->nambar || !sc->nabmbar) { device_printf(dev, "unable to map IO port space\n"); goto bad; } Both bus_alloc_resource_any()'s return NULL. They also don't work if you massage the patch to use IO space instead of memory. I kind of gave up there because I don't really know how to debug it further. The system is at home, so I don't have any more useful info handy. I have't yet tried to get X working on the Intel 945 (I think) video chip. Index: ich.c =================================================================== RCS file: /opt/FreeBSD/cvs/src/sys/dev/sound/pci/ich.c,v retrieving revision 1.66 diff -u -r1.66 ich.c --- ich.c 18 Jun 2006 14:14:41 -0000 1.66 +++ ich.c 11 Jul 2006 16:28:13 -0000 @@ -56,6 +56,7 @@ #define INTEL_6300ESB 0x25a6 /* 6300ESB needs to be treated as ICH4 */ #define INTEL_82801FB 0x266e /* ICH6 needs to be treated as ICH4 */ #define INTEL_82801GB 0x27de /* ICH7 needs to be treated as ICH4 */ +#define INTEL_82801G 0x27d8 /* ICH7 needs to be treated as ICH4 */ #define SIS_7012 0x7012 /* SiS 7012 needs special handling */ #define NVIDIA_NFORCE 0x01b1 #define NVIDIA_NFORCE2 0x006a @@ -98,6 +99,8 @@ "Intel ICH6 (82801FB)" }, { INTEL_VENDORID, INTEL_82801GB, PROBE_LOW, "Intel ICH7 (82801GB)" }, + { INTEL_VENDORID, INTEL_82801G, PROBE_LOW, + "Intel ICH7 (82801G)" }, { SIS_VENDORID, SIS_7012, 0, "SiS 7012" }, { NVIDIA_VENDORID, NVIDIA_NFORCE, 0, @@ -693,7 +696,7 @@ if (sc->vendor == INTEL_VENDORID && ( sc->devid == INTEL_82801DB || sc->devid == INTEL_82801EB || sc->devid == INTEL_6300ESB || sc->devid == INTEL_82801FB || - sc->devid == INTEL_82801GB)) { + sc->devid == INTEL_82801GB || sc->devid == INTEL_82801G)) { sc->flags |= IGNORE_PCR; device_printf(sc->dev, "primary codec not ready!\n"); } @@ -781,7 +784,8 @@ */ if (vendor == INTEL_VENDORID && (devid == INTEL_82801DB || devid == INTEL_82801EB || devid == INTEL_6300ESB || - devid == INTEL_82801FB || devid == INTEL_82801GB)) { + devid == INTEL_82801FB || devid == INTEL_82801GB || + devid == INTEL_82801G)) { sc->nambarid = PCIR_MMBAR; sc->nabmbarid = PCIR_MBBAR; sc->regtype = SYS_RES_MEMORY; -- DE
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.64.0607111252150.24473>