lkml.org 
[lkml]   [2001]   [Aug]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: yenta_socket hangs sager laptop in kernel 2.4.6
Date
From
Hello!

> Same problem here. I've spend some time today to figure what is going
> on. Workaround:
>
> ---------------------------- cut here -----------------------------
> --- 2.4.9/drivers/pcmcia/yenta.c.fix Mon Aug 20 11:02:23 2001
> +++ 2.4.9/drivers/pcmcia/yenta.c Mon Aug 20 14:21:33 2001
> @@ -729,7 +729,7 @@
> if (type & IORESOURCE_IO) {
> align = 1024;
> size = 256;
> - min = PCIBIOS_MIN_IO;
> + min = 0x4000 /* PCIBIOS_MIN_IO */;
> max = 0xffff;
> }
>
> ---------------------------- cut here -----------------------------

I do not know how to thank you... You saved my life. :-)
How did you guess this?



> Looks like a ressource conflict to me. The kernel gives I/O ranges to
> the cardbus socket which it thinks are free but which are *not* free for
> some reason (and probably used for APM stuff). BIOS bug? PCI quirks
> time?

The same hardware is here, Mitac M722. :-) BTW what bios is installed
on your one?

Anyway, Windows with the _same_ bios manages to guess and to reserve
a few of ports tagged as some obscure "motherboard resources":
230-233, 398-399, 4d0-4d1, 1000-103f(!), 1400-140f(!) and 3810-381f.
yenta_socket eats ones marked with !. At least 1400 is really critical,
it is interface to SM mode. So, probably, more correct fix
is something sort of:

--- mitac-quirk.c

#include <linux/config.h>
#include <linux/version.h>
#include <linux/module.h>

#include <linux/kernel.h>
#include <linux/ioport.h>
#include <linux/init.h>

static __init int mitac_init(void)
{
/* No guesses */
request_region(0x230, 4, "Mitac");

/* Hmm... look at 0x64 @ 0:7.3, 0x398 is set there, no doubts.
* What is this? */
request_region(0x398, 2, "Mitac");

/* 82440MX: ELCR 1&2, Edge/Level Control Regs */
request_region(0x4D0, 2, "82440MX INT CNTRL");

/* No guesses */
request_region(0x1000, 0x40, "Mitac");

/* SMBus: selected with bits 4:15 at 0x90 @ 0:7.3 */
request_region(0x1400, 0x10, "82440MX SMBus");

/* No guesses. */
request_region(0x3810, 0x10, "Mitac");
return 0;
}

module_init(mitac_init);

/*
* Local variables:
* compile-command: "gcc -DMODULE -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2 -c mitac.c"
* End:
*/


Alexey

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:57    [W:1.110 / U:0.008 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site