diff options
Diffstat (limited to 'drivers/isdn/hardware/eicon/io.h')
-rw-r--r-- | drivers/isdn/hardware/eicon/io.h | 514 |
1 files changed, 257 insertions, 257 deletions
diff --git a/drivers/isdn/hardware/eicon/io.h b/drivers/isdn/hardware/eicon/io.h index a6f175596364..01deced18ab8 100644 --- a/drivers/isdn/hardware/eicon/io.h +++ b/drivers/isdn/hardware/eicon/io.h @@ -1,308 +1,308 @@ /* * - Copyright (c) Eicon Networks, 2002. + Copyright (c) Eicon Networks, 2002. * - This source file is supplied for the use with - Eicon Networks range of DIVA Server Adapters. + This source file is supplied for the use with + Eicon Networks range of DIVA Server Adapters. * - Eicon File Revision : 2.1 + Eicon File Revision : 2.1 * - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. * - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU General Public License for more details. * - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * */ #ifndef __DIVA_XDI_COMMON_IO_H_INC__ /* { */ #define __DIVA_XDI_COMMON_IO_H_INC__ /* - maximum = 16 adapters - */ + maximum = 16 adapters +*/ #define DI_MAX_LINKS MAX_ADAPTER #define ISDN_MAX_NUM_LEN 60 /* -------------------------------------------------------------------------- - structure for quadro card management (obsolete for - systems that do provide per card load event) - -------------------------------------------------------------------------- */ + structure for quadro card management (obsolete for + systems that do provide per card load event) + -------------------------------------------------------------------------- */ typedef struct { - dword Num ; - DEVICE_NAME DeviceName[4] ; - PISDN_ADAPTER QuadroAdapter[4] ; -} ADAPTER_LIST_ENTRY, *PADAPTER_LIST_ENTRY ; + dword Num; + DEVICE_NAME DeviceName[4]; + PISDN_ADAPTER QuadroAdapter[4]; +} ADAPTER_LIST_ENTRY, *PADAPTER_LIST_ENTRY; /* -------------------------------------------------------------------------- - Special OS memory support structures - -------------------------------------------------------------------------- */ + Special OS memory support structures + -------------------------------------------------------------------------- */ #define MAX_MAPPED_ENTRIES 8 typedef struct { - void * Address; - dword Length; -} ADAPTER_MEMORY ; + void *Address; + dword Length; +} ADAPTER_MEMORY; /* -------------------------------------------------------------------------- - Configuration of XDI clients carried by XDI - -------------------------------------------------------------------------- */ + Configuration of XDI clients carried by XDI + -------------------------------------------------------------------------- */ #define DIVA_XDI_CAPI_CFG_1_DYNAMIC_L1_ON 0x01 #define DIVA_XDI_CAPI_CFG_1_GROUP_POPTIMIZATION_ON 0x02 typedef struct _diva_xdi_capi_cfg { - byte cfg_1; + byte cfg_1; } diva_xdi_capi_cfg_t; /* -------------------------------------------------------------------------- - Main data structure kept per adapter - -------------------------------------------------------------------------- */ + Main data structure kept per adapter + -------------------------------------------------------------------------- */ struct _ISDN_ADAPTER { - void (* DIRequest)(PISDN_ADAPTER, ENTITY *) ; - int State ; /* from NT4 1.srv, a good idea, but a poor achievement */ - int Initialized ; - int RegisteredWithDidd ; - int Unavailable ; /* callback function possible? */ - int ResourcesClaimed ; - int PnpBiosConfigUsed ; - dword Logging ; - dword features ; - char ProtocolIdString[80] ; - /* - remember mapped memory areas - */ - ADAPTER_MEMORY MappedMemory[MAX_MAPPED_ENTRIES] ; - CARD_PROPERTIES Properties ; - dword cardType ; - dword protocol_id ; /* configured protocol identifier */ - char protocol_name[8] ; /* readable name of protocol */ - dword BusType ; - dword BusNumber ; - dword slotNumber ; - dword slotId ; - dword ControllerNumber ; /* for QUADRO cards only */ - PISDN_ADAPTER MultiMaster ; /* for 4-BRI card only - use MultiMaster or QuadroList */ - PADAPTER_LIST_ENTRY QuadroList ; /* for QUADRO card only */ - PDEVICE_OBJECT DeviceObject ; - dword DeviceId ; - diva_os_adapter_irq_info_t irq_info; - dword volatile IrqCount ; - int trapped ; - dword DspCodeBaseAddr ; - dword MaxDspCodeSize ; - dword downloadAddr ; - dword DspCodeBaseAddrTable[4] ; /* add. for MultiMaster */ - dword MaxDspCodeSizeTable[4] ; /* add. for MultiMaster */ - dword downloadAddrTable[4] ; /* add. for MultiMaster */ - dword MemoryBase ; - dword MemorySize ; - byte __iomem *Address ; - byte __iomem *Config ; - byte __iomem *Control ; - byte __iomem *reset ; - byte __iomem *port ; - byte __iomem *ram ; - byte __iomem *cfg ; - byte __iomem *prom ; - byte __iomem *ctlReg ; - struct pc_maint *pcm ; - diva_os_dependent_devica_name_t os_name; - byte Name[32] ; - dword serialNo ; - dword ANum ; - dword ArchiveType ; /* ARCHIVE_TYPE_NONE ..._SINGLE ..._USGEN ..._MULTI */ - char *ProtocolSuffix ; /* internal protocolfile table */ - char Archive[32] ; - char Protocol[32] ; - char AddDownload[32] ; /* Dsp- or other additional download files */ - char Oad1[ISDN_MAX_NUM_LEN] ; - char Osa1[ISDN_MAX_NUM_LEN] ; - char Oad2[ISDN_MAX_NUM_LEN] ; - char Osa2[ISDN_MAX_NUM_LEN] ; - char Spid1[ISDN_MAX_NUM_LEN] ; - char Spid2[ISDN_MAX_NUM_LEN] ; - byte nosig ; - byte BriLayer2LinkCount ; /* amount of TEI's that adapter will support in P2MP mode */ - dword Channels ; - dword tei ; - dword nt2 ; - dword TerminalCount ; - dword WatchDog ; - dword Permanent ; - dword BChMask ; /* B channel mask for unchannelized modes */ - dword StableL2 ; - dword DidLen ; - dword NoOrderCheck ; - dword ForceLaw; /* VoiceCoding - default:0, a-law: 1, my-law: 2 */ - dword SigFlags ; - dword LowChannel ; - dword NoHscx30 ; - dword ProtVersion ; - dword crc4 ; - dword L1TristateOrQsig ; /* enable Layer 1 Tristate (bit 2)Or Qsig params (bit 0,1)*/ - dword InitialDspInfo ; - dword ModemGuardTone ; - dword ModemMinSpeed ; - dword ModemMaxSpeed ; - dword ModemOptions ; - dword ModemOptions2 ; - dword ModemNegotiationMode ; - dword ModemModulationsMask ; - dword ModemTransmitLevel ; - dword FaxOptions ; - dword FaxMaxSpeed ; - dword Part68LevelLimiter ; - dword UsEktsNumCallApp ; - byte UsEktsFeatAddConf ; - byte UsEktsFeatRemoveConf ; - byte UsEktsFeatCallTransfer ; - byte UsEktsFeatMsgWaiting ; - byte QsigDialect; - byte ForceVoiceMailAlert; - byte DisableAutoSpid; - byte ModemCarrierWaitTimeSec; - byte ModemCarrierLossWaitTimeTenthSec; - byte PiafsLinkTurnaroundInFrames; - byte DiscAfterProgress; - byte AniDniLimiter[3]; - byte TxAttenuation; /* PRI/E1 only: attenuate TX signal */ - word QsigFeatures; - dword GenerateRingtone ; - dword SupplementaryServicesFeatures; - dword R2Dialect; - dword R2CasOptions; - dword FaxV34Options; - dword DisabledDspMask; - dword AdapterTestMask; - dword DspImageLength; - word AlertToIn20mSecTicks; - word ModemEyeSetup; - byte R2CtryLength; - byte CCBSRelTimer; - byte *PcCfgBufferFile;/* flexible parameter via file */ - byte *PcCfgBuffer ; /* flexible parameter via multistring */ - diva_os_dump_file_t dump_file; /* dump memory to file at lowest irq level */ - diva_os_board_trace_t board_trace ; /* traces from the board */ - diva_os_spin_lock_t isr_spin_lock; - diva_os_spin_lock_t data_spin_lock; - diva_os_soft_isr_t req_soft_isr; - diva_os_soft_isr_t isr_soft_isr; - diva_os_atomic_t in_dpc; - PBUFFER RBuffer; /* Copy of receive lookahead buffer */ - word e_max; - word e_count; - E_INFO *e_tbl; - word assign; /* list of pending ASSIGNs */ - word head; /* head of request queue */ - word tail; /* tail of request queue */ - ADAPTER a ; /* not a separate structure */ - void (* out)(ADAPTER * a) ; - byte (* dpc)(ADAPTER * a) ; - byte (* tst_irq)(ADAPTER * a) ; - void (* clr_irq)(ADAPTER * a) ; - int (* load)(PISDN_ADAPTER) ; - int (* mapmem)(PISDN_ADAPTER) ; - int (* chkIrq)(PISDN_ADAPTER) ; - void (* disIrq)(PISDN_ADAPTER) ; - void (* start)(PISDN_ADAPTER) ; - void (* stop)(PISDN_ADAPTER) ; - void (* rstFnc)(PISDN_ADAPTER) ; - void (* trapFnc)(PISDN_ADAPTER) ; - dword (* DetectDsps)(PISDN_ADAPTER) ; - void (* os_trap_nfy_Fnc)(PISDN_ADAPTER, dword) ; - diva_os_isr_callback_t diva_isr_handler; - dword sdram_bar; /* must be 32 bit */ - dword fpga_features; - volatile int pcm_pending; - volatile void * pcm_data; - diva_xdi_capi_cfg_t capi_cfg; - dword tasks; - void *dma_map; - int (*DivaAdapterTestProc)(PISDN_ADAPTER); - void *AdapterTestMemoryStart; - dword AdapterTestMemoryLength; - const byte* cfg_lib_memory_init; - dword cfg_lib_memory_init_length; + void (*DIRequest)(PISDN_ADAPTER, ENTITY *); + int State; /* from NT4 1.srv, a good idea, but a poor achievement */ + int Initialized; + int RegisteredWithDidd; + int Unavailable; /* callback function possible? */ + int ResourcesClaimed; + int PnpBiosConfigUsed; + dword Logging; + dword features; + char ProtocolIdString[80]; + /* + remember mapped memory areas + */ + ADAPTER_MEMORY MappedMemory[MAX_MAPPED_ENTRIES]; + CARD_PROPERTIES Properties; + dword cardType; + dword protocol_id; /* configured protocol identifier */ + char protocol_name[8]; /* readable name of protocol */ + dword BusType; + dword BusNumber; + dword slotNumber; + dword slotId; + dword ControllerNumber; /* for QUADRO cards only */ + PISDN_ADAPTER MultiMaster; /* for 4-BRI card only - use MultiMaster or QuadroList */ + PADAPTER_LIST_ENTRY QuadroList; /* for QUADRO card only */ + PDEVICE_OBJECT DeviceObject; + dword DeviceId; + diva_os_adapter_irq_info_t irq_info; + dword volatile IrqCount; + int trapped; + dword DspCodeBaseAddr; + dword MaxDspCodeSize; + dword downloadAddr; + dword DspCodeBaseAddrTable[4]; /* add. for MultiMaster */ + dword MaxDspCodeSizeTable[4]; /* add. for MultiMaster */ + dword downloadAddrTable[4]; /* add. for MultiMaster */ + dword MemoryBase; + dword MemorySize; + byte __iomem *Address; + byte __iomem *Config; + byte __iomem *Control; + byte __iomem *reset; + byte __iomem *port; + byte __iomem *ram; + byte __iomem *cfg; + byte __iomem *prom; + byte __iomem *ctlReg; + struct pc_maint *pcm; + diva_os_dependent_devica_name_t os_name; + byte Name[32]; + dword serialNo; + dword ANum; + dword ArchiveType; /* ARCHIVE_TYPE_NONE ..._SINGLE ..._USGEN ..._MULTI */ + char *ProtocolSuffix; /* internal protocolfile table */ + char Archive[32]; + char Protocol[32]; + char AddDownload[32]; /* Dsp- or other additional download files */ + char Oad1[ISDN_MAX_NUM_LEN]; + char Osa1[ISDN_MAX_NUM_LEN]; + char Oad2[ISDN_MAX_NUM_LEN]; + char Osa2[ISDN_MAX_NUM_LEN]; + char Spid1[ISDN_MAX_NUM_LEN]; + char Spid2[ISDN_MAX_NUM_LEN]; + byte nosig; + byte BriLayer2LinkCount; /* amount of TEI's that adapter will support in P2MP mode */ + dword Channels; + dword tei; + dword nt2; + dword TerminalCount; + dword WatchDog; + dword Permanent; + dword BChMask; /* B channel mask for unchannelized modes */ + dword StableL2; + dword DidLen; + dword NoOrderCheck; + dword ForceLaw; /* VoiceCoding - default:0, a-law: 1, my-law: 2 */ + dword SigFlags; + dword LowChannel; + dword NoHscx30; + dword ProtVersion; + dword crc4; + dword L1TristateOrQsig; /* enable Layer 1 Tristate (bit 2)Or Qsig params (bit 0,1)*/ + dword InitialDspInfo; + dword ModemGuardTone; + dword ModemMinSpeed; + dword ModemMaxSpeed; + dword ModemOptions; + dword ModemOptions2; + dword ModemNegotiationMode; + dword ModemModulationsMask; + dword ModemTransmitLevel; + dword FaxOptions; + dword FaxMaxSpeed; + dword Part68LevelLimiter; + dword UsEktsNumCallApp; + byte UsEktsFeatAddConf; + byte UsEktsFeatRemoveConf; + byte UsEktsFeatCallTransfer; + byte UsEktsFeatMsgWaiting; + byte QsigDialect; + byte ForceVoiceMailAlert; + byte DisableAutoSpid; + byte ModemCarrierWaitTimeSec; + byte ModemCarrierLossWaitTimeTenthSec; + byte PiafsLinkTurnaroundInFrames; + byte DiscAfterProgress; + byte AniDniLimiter[3]; + byte TxAttenuation; /* PRI/E1 only: attenuate TX signal */ + word QsigFeatures; + dword GenerateRingtone; + dword SupplementaryServicesFeatures; + dword R2Dialect; + dword R2CasOptions; + dword FaxV34Options; + dword DisabledDspMask; + dword AdapterTestMask; + dword DspImageLength; + word AlertToIn20mSecTicks; + word ModemEyeSetup; + byte R2CtryLength; + byte CCBSRelTimer; + byte *PcCfgBufferFile;/* flexible parameter via file */ + byte *PcCfgBuffer; /* flexible parameter via multistring */ + diva_os_dump_file_t dump_file; /* dump memory to file at lowest irq level */ + diva_os_board_trace_t board_trace; /* traces from the board */ + diva_os_spin_lock_t isr_spin_lock; + diva_os_spin_lock_t data_spin_lock; + diva_os_soft_isr_t req_soft_isr; + diva_os_soft_isr_t isr_soft_isr; + diva_os_atomic_t in_dpc; + PBUFFER RBuffer; /* Copy of receive lookahead buffer */ + word e_max; + word e_count; + E_INFO *e_tbl; + word assign; /* list of pending ASSIGNs */ + word head; /* head of request queue */ + word tail; /* tail of request queue */ + ADAPTER a; /* not a separate structure */ + void (*out)(ADAPTER *a); + byte (*dpc)(ADAPTER *a); + byte (*tst_irq)(ADAPTER *a); + void (*clr_irq)(ADAPTER *a); + int (*load)(PISDN_ADAPTER); + int (*mapmem)(PISDN_ADAPTER); + int (*chkIrq)(PISDN_ADAPTER); + void (*disIrq)(PISDN_ADAPTER); + void (*start)(PISDN_ADAPTER); + void (*stop)(PISDN_ADAPTER); + void (*rstFnc)(PISDN_ADAPTER); + void (*trapFnc)(PISDN_ADAPTER); + dword (*DetectDsps)(PISDN_ADAPTER); + void (*os_trap_nfy_Fnc)(PISDN_ADAPTER, dword); + diva_os_isr_callback_t diva_isr_handler; + dword sdram_bar; /* must be 32 bit */ + dword fpga_features; + volatile int pcm_pending; + volatile void *pcm_data; + diva_xdi_capi_cfg_t capi_cfg; + dword tasks; + void *dma_map; + int (*DivaAdapterTestProc)(PISDN_ADAPTER); + void *AdapterTestMemoryStart; + dword AdapterTestMemoryLength; + const byte *cfg_lib_memory_init; + dword cfg_lib_memory_init_length; }; /* --------------------------------------------------------------------- - Entity table + Entity table --------------------------------------------------------------------- */ struct e_info_s { - ENTITY * e; - byte next; /* chaining index */ - word assign_ref; /* assign reference */ + ENTITY *e; + byte next; /* chaining index */ + word assign_ref; /* assign reference */ }; /* --------------------------------------------------------------------- - S-cards shared ram structure for loading + S-cards shared ram structure for loading --------------------------------------------------------------------- */ struct s_load { - byte ctrl; - byte card; - byte msize; - byte fill0; - word ebit; - word elocl; - word eloch; - byte reserved[20]; - word signature; - byte fill[224]; - byte b[256]; + byte ctrl; + byte card; + byte msize; + byte fill0; + word ebit; + word elocl; + word eloch; + byte reserved[20]; + word signature; + byte fill[224]; + byte b[256]; }; #define PR_RAM ((struct pr_ram *)0) #define RAM ((struct dual *)0) /* --------------------------------------------------------------------- - platform specific conversions + platform specific conversions --------------------------------------------------------------------- */ -extern void * PTR_P(ADAPTER * a, ENTITY * e, void * P); -extern void * PTR_X(ADAPTER * a, ENTITY * e); -extern void * PTR_R(ADAPTER * a, ENTITY * e); -extern void CALLBACK(ADAPTER * a, ENTITY * e); -extern void set_ram(void * * adr_ptr); +extern void *PTR_P(ADAPTER *a, ENTITY *e, void *P); +extern void *PTR_X(ADAPTER *a, ENTITY *e); +extern void *PTR_R(ADAPTER *a, ENTITY *e); +extern void CALLBACK(ADAPTER *a, ENTITY *e); +extern void set_ram(void **adr_ptr); /* --------------------------------------------------------------------- - ram access functions for io mapped cards + ram access functions for io mapped cards --------------------------------------------------------------------- */ -byte io_in(ADAPTER * a, void * adr); -word io_inw(ADAPTER * a, void * adr); -void io_in_buffer(ADAPTER * a, void * adr, void * P, word length); -void io_look_ahead(ADAPTER * a, PBUFFER * RBuffer, ENTITY * e); -void io_out(ADAPTER * a, void * adr, byte data); -void io_outw(ADAPTER * a, void * adr, word data); -void io_out_buffer(ADAPTER * a, void * adr, void * P, word length); -void io_inc(ADAPTER * a, void * adr); -void bri_in_buffer (PISDN_ADAPTER IoAdapter, dword Pos, - void *Buf, dword Len); -int bri_out_buffer (PISDN_ADAPTER IoAdapter, dword Pos, - void *Buf, dword Len, int Verify); +byte io_in(ADAPTER *a, void *adr); +word io_inw(ADAPTER *a, void *adr); +void io_in_buffer(ADAPTER *a, void *adr, void *P, word length); +void io_look_ahead(ADAPTER *a, PBUFFER *RBuffer, ENTITY *e); +void io_out(ADAPTER *a, void *adr, byte data); +void io_outw(ADAPTER *a, void *adr, word data); +void io_out_buffer(ADAPTER *a, void *adr, void *P, word length); +void io_inc(ADAPTER *a, void *adr); +void bri_in_buffer(PISDN_ADAPTER IoAdapter, dword Pos, + void *Buf, dword Len); +int bri_out_buffer(PISDN_ADAPTER IoAdapter, dword Pos, + void *Buf, dword Len, int Verify); /* --------------------------------------------------------------------- - ram access functions for memory mapped cards + ram access functions for memory mapped cards --------------------------------------------------------------------- */ -byte mem_in(ADAPTER * a, void * adr); -word mem_inw(ADAPTER * a, void * adr); -void mem_in_buffer(ADAPTER * a, void * adr, void * P, word length); -void mem_look_ahead(ADAPTER * a, PBUFFER * RBuffer, ENTITY * e); -void mem_out(ADAPTER * a, void * adr, byte data); -void mem_outw(ADAPTER * a, void * adr, word data); -void mem_out_buffer(ADAPTER * a, void * adr, void * P, word length); -void mem_inc(ADAPTER * a, void * adr); -void mem_in_dw (ADAPTER *a, void *addr, dword* data, int dwords); -void mem_out_dw (ADAPTER *a, void *addr, const dword* data, int dwords); +byte mem_in(ADAPTER *a, void *adr); +word mem_inw(ADAPTER *a, void *adr); +void mem_in_buffer(ADAPTER *a, void *adr, void *P, word length); +void mem_look_ahead(ADAPTER *a, PBUFFER *RBuffer, ENTITY *e); +void mem_out(ADAPTER *a, void *adr, byte data); +void mem_outw(ADAPTER *a, void *adr, word data); +void mem_out_buffer(ADAPTER *a, void *adr, void *P, word length); +void mem_inc(ADAPTER *a, void *adr); +void mem_in_dw(ADAPTER *a, void *addr, dword *data, int dwords); +void mem_out_dw(ADAPTER *a, void *addr, const dword *data, int dwords); /* --------------------------------------------------------------------- - functions exported by io.c + functions exported by io.c --------------------------------------------------------------------- */ -extern IDI_CALL Requests[MAX_ADAPTER] ; -extern void DIDpcRoutine (struct _diva_os_soft_isr* psoft_isr, - void* context); -extern void request (PISDN_ADAPTER, ENTITY *) ; +extern IDI_CALL Requests[MAX_ADAPTER]; +extern void DIDpcRoutine(struct _diva_os_soft_isr *psoft_isr, + void *context); +extern void request(PISDN_ADAPTER, ENTITY *); /* --------------------------------------------------------------------- - trapFn helpers, used to recover debug trace from dead card + trapFn helpers, used to recover debug trace from dead card --------------------------------------------------------------------- */ typedef struct { - word *buf ; - word cnt ; - word out ; -} Xdesc ; -extern void dump_trap_frame (PISDN_ADAPTER IoAdapter, byte __iomem *exception) ; -extern void dump_xlog_buffer (PISDN_ADAPTER IoAdapter, Xdesc *xlogDesc) ; + word *buf; + word cnt; + word out; +} Xdesc; +extern void dump_trap_frame(PISDN_ADAPTER IoAdapter, byte __iomem *exception); +extern void dump_xlog_buffer(PISDN_ADAPTER IoAdapter, Xdesc *xlogDesc); /* --------------------------------------------------------------------- */ #endif /* } __DIVA_XDI_COMMON_IO_H_INC__ */ |