Added io parameter for HFC-PCI based cards. Needed only with multiple cards
when initialisation/selection order needs to be set.
This commit is contained in:
parent
f612684f87
commit
10c992afc0
|
@ -20,6 +20,21 @@ This enables the echo mode. If Hex logging is activated the isdnctrlx
|
|||
devices show a output with a line beginning of HEX: for the providers
|
||||
exchange and ECHO: for isdn devices sending to the provider.
|
||||
|
||||
If more than one HFC-PCI cards are installed, a specific card may be selected
|
||||
at the hisax module load command line. Supply the load command with the desired
|
||||
IO-address of the desired card.
|
||||
Example:
|
||||
There tree cards installed in your machine at IO-base addresses 0xd000, 0xd400
|
||||
and 0xdc00
|
||||
If you want to use the card at 0xd400 standalone you should supply the insmod
|
||||
or depmod with type=35 io=0xd400.
|
||||
If you want to use all three cards, but the order needs to be at 0xdc00,0xd400,
|
||||
0xd000 you may give the parameters type=35,35,35 io=0xdc00,0xd400,0xd00
|
||||
Then the desired card will be the initialised in the desired order.
|
||||
If the io parameter is used the io addresses of all used cards should be
|
||||
supplied else the parameter is assumed 0 and a auto search for a free card is
|
||||
invoked which may not give the wanted result.
|
||||
|
||||
Comments and reports to werner@isdn4linux.de or werner@titro.de .
|
||||
|
||||
|
||||
|
|
|
@ -23,6 +23,9 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.19 1999/09/04 06:20:06 keil
|
||||
* Changes from kernel set_current_state()
|
||||
*
|
||||
* Revision 1.18 1999/08/29 17:05:44 werner
|
||||
* corrected tx_lo line setup. Datasheet is not correct.
|
||||
*
|
||||
|
@ -1636,11 +1639,17 @@ __initfunc(int
|
|||
tmp_hfcpci = pci_find_device(id_list[i].vendor_id,
|
||||
id_list[i].device_id,
|
||||
dev_hfcpci);
|
||||
if (tmp_hfcpci) break;
|
||||
i++;
|
||||
if (tmp_hfcpci) {
|
||||
if ((card->para[0]) && (card->para[0] != (get_pcibase(tmp_hfcpci,0) & PCI_BASE_ADDRESS_IO_MASK)))
|
||||
continue;
|
||||
else
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (tmp_hfcpci) {
|
||||
i--;
|
||||
dev_hfcpci = tmp_hfcpci; /* old device */
|
||||
cs->hw.hfcpci.pci_bus = dev_hfcpci->bus->number;
|
||||
cs->hw.hfcpci.pci_device_fn = dev_hfcpci->devfn;
|
||||
|
@ -1670,6 +1679,14 @@ __initfunc(int
|
|||
if (!id_list[i].vendor_id)
|
||||
continue;
|
||||
|
||||
if (card->para[0]) {
|
||||
pcibios_read_config_dword(cs->hw.hfcpci.pci_bus,
|
||||
cs->hw.hfcpci.pci_device_fn, PCI_BASE_ADDRESS_0,
|
||||
(void *) &cs->hw.hfcpci.pci_io);
|
||||
if ((cs->hw.hfcpci.pci_io & PCI_BASE_ADDRESS_IO_MASK) != card->para[0])
|
||||
continue;
|
||||
}
|
||||
|
||||
pcibios_read_config_byte(cs->hw.hfcpci.pci_bus, cs->hw.hfcpci.pci_device_fn,
|
||||
PCI_INTERRUPT_LINE, &irq);
|
||||
cs->irq = irq;
|
||||
|
|
Loading…
Reference in New Issue