Re: [suse-isdn] I-Surf 1.x Siemens ISDN Karte unter SuSE 9.2 2.6.8-24.14
On Mon, Apr 18, 2005 at 03:46:48PM +0200, Daniel Tausch wrote:
Das Problem ist das der verwendete PnP Chip selbst Fehlerhaft ist und Maemoryresourcen nicht ab Anfang an zuweist, deshalb sind die PEEK/POKE Anweisungen notwendig. Wahrscheinlich kommen sie aber zu spaet und der Kernel hat keine Information darueber, wo das MemoryIO Fenster liegt.
Diese Vermutung hat sich nicht bestaetigt.
Hallo Herr Keil,
Vielen Dank für die schnelle Antwort.
Ich habe jetzt verstanden, dass /etc/isapnp.conf bei mir nicht benutzt wird, falls sie nicht vorhanden ist. D.h. dann imho die Einstellung kann/wird noch an anderer Stelle vorgenommen.
Also ein /etc/isapnp.conf muss bei dieser Karte vorhanden sein, wegen dem PnP Chip Fehler, deswegen ist das PEEK/POKE notwendig, einfach die .old kopieren. Ich habe jetzt mit meiner defekten Karte mal das Laden debugged, da sind 2 Fehler im Treiber, hier ein Patch fuer den Kernel Source. Ich kann leider nicht mehr testen, deswegen bitte Bescheid sagen, ob der patch hilft. Falls es Probleme mit dem Selbstbauen des kernels gibt: wenn Sie mir die genaue Version (uname -a) sagen, kann ich ein passendes Modul schicken. --- linux-2.6.8-24.10/drivers/isdn/hisax/isurf.c.org 2005-04-18 22:13:28.880407862 +0200 +++ linux-2.6.8-24.10/drivers/isdn/hisax/isurf.c 2005-04-18 22:14:20.095582818 +0200 @@ -234,7 +234,7 @@ pnp_disable_dev(pnp_d); err = pnp_activate_dev(pnp_d); cs->hw.isurf.reset = pnp_port_start(pnp_d, 0); - cs->hw.isurf.phymem = pnp_mem_start(pnp_d, 1); + cs->hw.isurf.phymem = pnp_mem_start(pnp_d, 0); cs->irq = pnp_irq(pnp_d, 0); if (!cs->irq || !cs->hw.isurf.reset || !cs->hw.isurf.phymem) { printk(KERN_ERR "ISurfPnP:some resources are missing %d/%x/%lx\n", @@ -263,6 +263,7 @@ cs->hw.isurf.reset); return (0); } +#if 0 if (!request_region(cs->hw.isurf.phymem, ISURF_IOMEM_SIZE, "isurf iomem")) { printk(KERN_WARNING "HiSax: %s memory region %lx-%lx already in use\n", @@ -272,6 +273,7 @@ release_region(cs->hw.isurf.reset, 1); return (0); } +#endif cs->hw.isurf.isar = (unsigned long) ioremap(cs->hw.isurf.phymem, ISURF_IOMEM_SIZE); cs->hw.isurf.isac = cs->hw.isurf.isar + ISURF_ISAC_OFFSET; -- Karsten Keil SuSE Labs ISDN development
participants (1)
-
Karsten Keil