Dell laptops
Daniel Eischen
deischen at freebsd.org
Tue Jul 11 17:10:17 UTC 2006
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
More information about the freebsd-mobile
mailing list