Hello Florian, thanks for your responds and sorry for my late answer. Now to your objections:Ok, the next one will come within the mail and I tried to keep any line below 80 culomns. Here comes my next try: --- drivers-net-lne390.c 2008-04-13 22:02:38.000000000 +0200 +++ lne390.c 2008-04-13 22:14:36.000000000 +0200 @@ -95,6 +95,8 @@ #define LNE390_DEBUG 0 static unsigned char irq_map[] __initdata = {15, 12, 11, 10, 9, 7, 5, 3}; +static unsigned char irq_reverse_map[] __initdata = {0xff, 0xff, 0xff, 7, +0xff, 6, 0xff, 5, 0xff, 4, 3, 2, 1, 0xff, 0xff, 0}; static unsigned int shmem_mapA[] __initdata = {0xff, 0xfe, 0xfd, 0xfff, 0xffe, 0xffc, 0x0d, 0x0}; static unsigned int shmem_mapB[] __initdata = {0xff, 0xfe, 0x0e, 0xfff, 0xffe, 0xffc, 0x0d, 0x0}; @@ -242,6 +244,10 @@ printk("%dkB memory at physical address %#lx\n", LNE390_STOP_PG/4, dev->mem_start); +#ifdef CONFIG_ALPHA_JENSEN + /* On the Jensen board EISA cards will see their own address + * space */ +#else /* BEWARE!! Some dain-bramaged EISA SCUs will allow you to put the card mem within the region covered by `normal' RAM !!! @@ -260,6 +266,7 @@ LNE390_STOP_PG/4, ei_status.mem); dev->mem_start = (unsigned long)ei_status.mem; +#endif /* CONFIG_ALPHA_JENSEN */ dev->mem_end = dev->mem_start + (LNE390_STOP_PG - LNE390_START_PG)*256; /* The 8390 offset is zero for the LNE390 */ @@ -372,7 +379,25 @@ void __iomem *shmem = ei_status.mem + ((start_page - LNE390_START_PG)<<8); count = (count + 3) & ~3; /* Round up to doubleword */ +#ifndef CONFIG_ALPHA_JENSEN memcpy_toio(shmem, buf, count); +#else + /* The mylex lne390 adapter requires 32bit access (see above) for every + * operation to the shared mem buffer. Since the block buffer is hardly + * aligned to a 32bit boundary memcpy_toio() will use 16bit + * operations to access the buffer ... we must use something else here. */ + + const void *from = buf; + count -= 4; + do { + __raw_writel(*(const u16 *)from | (*(const u16 *)(from+2))<<16, + (unsigned long) shmem); + count -= 4; + (unsigned long) shmem += 4; + from += 4; + } while (count >= 0); +#endif + } static int lne390_open(struct net_device *dev) Right, the activation part is not Jensen-Alpha specific but is a kind of a goodie for 2.4.x kernels to force the configuration of an lne390 adapter despite of different settings with the EISA configuration utility. On the SRM console of the Jensen Alpha this is even obligatory since that console does not initialize any EISA cards but the Adaptec 1740 for system start. I think in kernel 2.6 you would do it more cleanly with the /sys filesystem. A problem is also, that the patch above should apply well on the lne390.c source of the 2.6 kernel but since I run kernel 2.4.27 I have no way to actually test that code. Is it possible to merge fixes for 2.4.36 first? With kind regards, Carsten Jacobi -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
| Dave Hansen | Re: [RFC/PATCH] Documentation of kernel messages |
| Ingo Molnar | [patch] CFS scheduler, -v19 |
| Karl Meyer | PROBLEM: 2.6.23-rc "NETDEV WATCHDOG: eth0: transmit timed out" |
| Greg KH | [patch 02/60] SCSI: ses: fix VPD inquiry overrun |
git: | |
| Linus Torvalds | Re: git on MacOSX and files with decomposed utf-8 file names |
| Matthieu Moy | git push to a non-bare repository |
| linux | Re: Change set based shallow clone |
| Jon Smirl | Something is broken in repack |
| GVG GVG | ssh_exchange_identification: Connection closed by remote host |
| Otto Moerbeek | Re: identifying sparse files and get ride of them trick available? |
| Richard Stallman | Real men don't attack straw men |
| Jon Morby | IPv6 and OpenBGPD - Protocol not available |
| Linux Kernel Mailing List | [ALSA] hda - Fix ALC262 fujitsu model |
| Linux Kernel Mailing List | USB Serial Sierra: clean-up |
| Linux Kernel Mailing List | ssb: Fix watchdog access for devices without a chipcommon |
| Linux Kernel Mailing List | USB Serial Sierra: Dynamic interface detection |
