From 52afc6ea6184d1906c4a24c8f715ce5714c24ebd Mon Sep 17 00:00:00 2001 From: Kai Germaschewski Date: Tue, 28 Nov 2000 09:35:07 +0000 Subject: [PATCH] reversing the previous changes - wrong branch, sorry --- drivers/isdn/Config.in | 35 ++++++++++++++++++++++++++ drivers/isdn/Makefile | 6 +++++ drivers/isdn/hisax/hfc_pci.c | 45 +++++++++++++++++++++++++++++++--- drivers/isdn/hisax/md5sums.asc | 32 ++++++++++++------------ include/linux/kernelcapi.h | 4 +-- 5 files changed, 101 insertions(+), 21 deletions(-) diff --git a/drivers/isdn/Config.in b/drivers/isdn/Config.in index f42516b1..e1c2061b 100644 --- a/drivers/isdn/Config.in +++ b/drivers/isdn/Config.in @@ -16,6 +16,41 @@ if [ "$CONFIG_X25" != "n" ]; then bool ' X.25 PLP on top of ISDN' CONFIG_ISDN_X25 fi +mainmenu_option next_comment +comment 'ISDN abc-dw-extension' +bool 'Enable isdn-abc-dw-extension' CONFIG_ISDN_WITH_ABC +if [ "$CONFIG_ISDN_WITH_ABC" != "n" ]; then + bool ' Use D-Channel-Callback with Channel in use check' CONFIG_ISDN_WITH_ABC_CALLB + bool ' Enable Outgoing-EAZ-Support' CONFIG_ISDN_WITH_ABC_OUTGOING_EAZ + bool ' Enable LCR-Support (need isdnlog)' CONFIG_ISDN_WITH_ABC_LCR_SUPPORT + bool ' TCP keepalive detect and response (ip4 only)' CONFIG_ISDN_WITH_ABC_IPV4_TCP_KEEPALIVE + bool ' RX dont reset hanguptimeout' CONFIG_ISDN_WITH_ABC_RCV_NO_HUPTIMER + bool ' Drop frames with s_addr != iface_addr (ip4 only)' CONFIG_ISDN_WITH_ABC_IPV4_DYNADDR + if [ "$CONFIG_EXPERIMENTAL" != "n" ]; then + if [ "$CONFIG_ISDN_WITH_ABC_IPV4_DYNADDR" != "n" ]; then + bool ' Rewrite socket and frame saddr-field (ipv4 only)' CONFIG_ISDN_WITH_ABC_IPV4_RW_SOCKADDR + fi + if [ "$CONFIG_NETFILTER" != "n" ]; then + if [ "$CONFIG_IP_NF_IPTABLES" != "n" ]; then + bool ' Iptables-support (IPV4 kernel >= 2.4.0)' CONFIG_ISDN_WITH_ABC_IPTABLES_NETFILTER + fi + fi + bool ' Enable UDP-Info-Support' CONFIG_ISDN_WITH_ABC_UDP_CHECK + if [ "$CONFIG_ISDN_WITH_ABC_UDP_CHECK" != "n" ]; then + bool ' Enable Hangup-Support with UDP-INFO' CONFIG_ISDN_WITH_ABC_UDP_CHECK_HANGUP + bool ' Enable Dial-Support with UDP-INFO' CONFIG_ISDN_WITH_ABC_UDP_CHECK_DIAL + fi + fi + + bool ' Support (device-channel)<->(bind-groups)' CONFIG_ISDN_WITH_ABC_ICALL_BIND + bool ' Skip channel if used external (dial only)' CONFIG_ISDN_WITH_ABC_CH_EXTINUSE + bool ' Support interface-auto-disable if config-error' CONFIG_ISDN_WITH_ABC_CONN_ERROR + if [ "$CONFIG_ISDN_PPP" != "n" ]; then + bool ' Enable Compression with rawip and x75i' CONFIG_ISDN_WITH_ABC_RAWIPCOMPRESS + fi +fi +endmenu + mainmenu_option next_comment comment 'ISDN feature submodules' dep_tristate 'isdnloop support' CONFIG_ISDN_DRV_LOOP $CONFIG_ISDN diff --git a/drivers/isdn/Makefile b/drivers/isdn/Makefile index b1e43f48..b68f3a8e 100644 --- a/drivers/isdn/Makefile +++ b/drivers/isdn/Makefile @@ -28,6 +28,9 @@ ifeq ($(CONFIG_ISDN),y) L_OBJS += isdn_ttyfax.o endif endif + ifdef CONFIG_ISDN_WITH_ABC + L_OBJS += isdn_dwabc.o + endif else ifeq ($(CONFIG_ISDN),m) M_OBJS += isdn.o @@ -48,6 +51,9 @@ else O_OBJS += isdn_ttyfax.o endif endif + ifdef CONFIG_ISDN_WITH_ABC + O_OBJS += isdn_dwabc.o + endif endif endif diff --git a/drivers/isdn/hisax/hfc_pci.c b/drivers/isdn/hisax/hfc_pci.c index fb264cb2..b5f757c3 100644 --- a/drivers/isdn/hisax/hfc_pci.c +++ b/drivers/isdn/hisax/hfc_pci.c @@ -1653,13 +1653,15 @@ hfcpci_card_msg(struct IsdnCardState *cs, int mt, void *arg) /* this variable is used as card index when more than one cards are present */ -static struct pci_dev *dev_hfcpci __initdata = NULL; +static struct pci_dev *dev_hfcpci __initdata; #endif /* CONFIG_PCI */ -int __init setup_hfcpci(struct IsdnCard *card) +int __init +setup_hfcpci(struct IsdnCard *card) { struct IsdnCardState *cs = card->cs; + unsigned short cmd; char tmp[64]; int i; struct pci_dev *tmp_hfcpci = NULL; @@ -1669,11 +1671,15 @@ int __init setup_hfcpci(struct IsdnCard *card) #endif strcpy(tmp, hfcpci_revision); printk(KERN_INFO "HiSax: HFC-PCI driver Rev. %s\n", HiSax_getrev(tmp)); -#ifdef CONFIG_PCI +#if CONFIG_PCI cs->hw.hfcpci.int_s1 = 0; cs->dc.hfcpci.ph_state = 0; cs->hw.hfcpci.fifo = 255; if (cs->typ == ISDN_CTYPE_HFC_PCI) { + if (!pci_present()) { + printk(KERN_ERR "HFC-PCI: no PCI bus present\n"); + return (0); + } i = 0; while (id_list[i].vendor_id) { tmp_hfcpci = pci_find_device(id_list[i].vendor_id, @@ -1706,6 +1712,39 @@ int __init setup_hfcpci(struct IsdnCard *card) printk(KERN_WARNING "HFC-PCI: No PCI card found\n"); return (0); } + if (((int) cs->hw.hfcpci.pci_io & (PAGE_SIZE - 1))) { + printk(KERN_WARNING "HFC-PCI shared mem address will be corrected\n"); + pcibios_write_config_word(cs->hw.hfcpci.pci_bus, + cs->hw.hfcpci.pci_device_fn, + PCI_COMMAND, + 0x0103); /* set SERR */ + pcibios_read_config_word(cs->hw.hfcpci.pci_bus, + cs->hw.hfcpci.pci_device_fn, + PCI_COMMAND, + &cmd); + pcibios_write_config_word(cs->hw.hfcpci.pci_bus, + cs->hw.hfcpci.pci_device_fn, + PCI_COMMAND, + cmd & ~2); + (int) cs->hw.hfcpci.pci_io &= ~(PAGE_SIZE - 1); + pcibios_write_config_dword(cs->hw.hfcpci.pci_bus, + cs->hw.hfcpci.pci_device_fn, + PCI_BASE_ADDRESS_1, + (int) cs->hw.hfcpci.pci_io); + pcibios_write_config_word(cs->hw.hfcpci.pci_bus, + cs->hw.hfcpci.pci_device_fn, + PCI_COMMAND, + cmd); + pcibios_read_config_dword(cs->hw.hfcpci.pci_bus, + cs->hw.hfcpci.pci_device_fn, + PCI_BASE_ADDRESS_1, + (void *) &cs->hw.hfcpci.pci_io); + if (((int) cs->hw.hfcpci.pci_io & (PAGE_SIZE - 1))) { + printk(KERN_WARNING "HFC-PCI unable to align address %x\n", (unsigned) cs->hw.hfcpci.pci_io); + return (0); + } + dev_hfcpci->resource[1].start = (int) cs->hw.hfcpci.pci_io; + } if (!cs->hw.hfcpci.pci_io) { printk(KERN_WARNING "HFC-PCI: No IO-Mem for PCI card found\n"); return (0); diff --git a/drivers/isdn/hisax/md5sums.asc b/drivers/isdn/hisax/md5sums.asc index a8e65d8b..f3d1efcd 100644 --- a/drivers/isdn/hisax/md5sums.asc +++ b/drivers/isdn/hisax/md5sums.asc @@ -7,27 +7,27 @@ # cards in the moment. # Read ../../../Documentation/isdn/HiSax.cert for more informations. # -f4573d10ffe38b49f6c94e4c966b7bab isac.c -a29f5270c0c89626d8d6fa5dd09e7005 isdnl1.c -fbe41751c8130a8c3c607bfe1b41cb4e isdnl2.c -7915b7e802b98f6f4f05b931c4736ad4 isdnl3.c -7c31c12b3c2cfde33596bd2c406f775c tei.c -f1fbd532016f005e01decf36e5197d8f callc.c +6054f869e005b722428635c079ca3931 isac.c +d3cb83a85bb766bdf60b658b8d88e884 isdnl1.c +7b92aed462df57c67bee108e75dcb3da isdnl2.c +481ad0bea7c3173b7a5d834cf41577c7 isdnl3.c +6ec1fc92d3a11d6c7850341201c28784 tei.c +b8ea4e7b682256655782e0fc21eb22af callc.c a1834e9b2ec068440cff2e899eff4710 cert.c -a1f908f8b4f225c5c2f2a13842549b72 l3dss1.c -5bcab52f9937beb352aa02093182e039 l3_1tr6.c -030d4600ee59a2b246410d6a73977412 elsa.c -9e800b8e05c24542d731721eb192f305 diva.c -f32fae58dd9b2b3a73b2e5028f68dc4c sedlbauer.c +d0593aafc67f7a25ed23cdb3f6bb3c96 l3dss1.c +6582fa167edf491c625516b900ff1b19 l3_1tr6.c +df5467d16a10998e930837b468796aa6 elsa.c +852a107bee885c03ea3e43086bc8c6cf diva.c +de266f6f40f0e432affbb2f544258283 sedlbauer.c # end of md5sums -----BEGIN PGP SIGNATURE----- Version: 2.6.3i Charset: noconv -iQCVAwUBOaARmDpxHvX/mS9tAQFT7wP/TEEhtP96uKKgzr2o3GpJ5rRik0Q1HbKY -dzeA3U79QCEYqyptU09Uz96Av3dt1lNxpQyaahX419NjHH53HCaZgFCxgRxFWBYS -M9s4aSXLPTCSNM/kWiZkzWQ2lZ7ISNk2/+fF73w4l3G+4zF5y+VotjZCPx7OJj6i -R/L1m4vZXys= -=6DzE +iQCVAwUBOhPmOjpxHvX/mS9tAQHA6QP/SxdB84ddS9Rj75sJzyxxiX8mvMzs9BO3 +9YUvRt7EJBUL3/hKXmw0AFn1/+UOt/AZphl4Tybaye3FzGLF00a9I64+0FCGQxS2 +NBN8boZn8X6C/+63Y50yy8dPQlVO2t63xOcFOwYFqTP8UKtQyGhNcswii+yf4NN4 +Y9UJwHgt5gE= +=Jb6o -----END PGP SIGNATURE----- diff --git a/include/linux/kernelcapi.h b/include/linux/kernelcapi.h index 4adec6d1..4f217c7c 100644 --- a/include/linux/kernelcapi.h +++ b/include/linux/kernelcapi.h @@ -10,8 +10,8 @@ #ifndef __KERNELCAPI_H__ #define __KERNELCAPI_H__ -#define CAPI_MAXAPPL 20 /* maximum number of applications */ -#define CAPI_MAXCONTR 10 /* maximum number of controller */ +#define CAPI_MAXAPPL 128 /* maximum number of applications */ +#define CAPI_MAXCONTR 16 /* maximum number of controller */ #define CAPI_MAXDATAWINDOW 8