RE: eata.c module and PCI setup problem (RAID SCSI card)

2002-06-17 Thread Ballabio_Dario
Now I understand the problem much better. I plan to redraw the info structure in full big endian and to perform the correct translation (both 16 bit word byte swap and 32 bit word full swap) one for all in read_pio. I'll have a patched version in the next few days. Cheers, -db -Original Me

RE: eata.c module and PCI setup problem (RAID SCSI card)

2002-06-10 Thread Ballabio_Dario
Unfortunately the EATA PIO protocol just works for 16 bits transfers, so inw is the only option. le16_to_cpu(inw()) should give the expected result for both BE and LE. Since the detection routine checks for both "EATA" and "ATAE" signatures, all should be fine if immediately after the test if (inf

RE: eata.c module and PCI setup problem (RAID SCSI card)

2002-06-09 Thread Ballabio_Dario
Inside the driver I consistently use the address from pci_resource_start(dev, 0) + PCI_BASE_ADDRESS_0. That's the origin of the 0x10 offset in the io_port compared to the resource start value. Apart from this I see your point and it is basically correct. I'm thinking about using inb() in read_p

RE: eata.c module and PCI setup problem (RAID SCSI card)

2002-06-07 Thread Ballabio_Dario
I only agree on the fact that if the io_port is specified as a parameter or boot option pci_enable_device in not called. This is easily fixed by adding this fragment of code at the beginning of port_detect: return FALSE; } + pdev = get_pci_dev(port_base); + + if (pdev && !pci_e

RE: eata.c module and PCI setup problem (RAID SCSI card)

2002-06-06 Thread Ballabio_Dario
The eata driver really does not care whether it is using an ISA, EISA or PCI board as long as it has identified the I/O address where the EATA registers are available. The PCI detection routine find out an I/O address, nothing else. If you do not specify the io_port=0x1400 parameter at module load,