fixes in interrupt handler
This commit is contained in:
parent
2f5d09601d
commit
016469efaa
|
@ -41,6 +41,8 @@
|
|||
#include "adapter.h"
|
||||
#include "uxio.h"
|
||||
|
||||
#include <linux/isdn_compat.h>
|
||||
|
||||
#ifdef MODULE
|
||||
#include "idi.h"
|
||||
void DIVA_DIDD_Write(DESCRIPTOR *, int);
|
||||
|
|
|
@ -63,6 +63,7 @@ void io_out_buffer(ADAPTER *a, void *adr, void *P, word length);
|
|||
void io_inc(ADAPTER *a, void *adr);
|
||||
|
||||
static int diva_server_bri_test_int(card_t *card);
|
||||
static int bri_ISR (card_t* card);
|
||||
|
||||
#define PLX_IOBASE 0
|
||||
#define DIVAS_IOBASE 1
|
||||
|
@ -80,7 +81,6 @@ void UxCardPortIoOut(ux_diva_card_t *card, byte *base, int offset, byte);
|
|||
void UxCardPortIoOutW(ux_diva_card_t *card, byte *base, int offset, word);
|
||||
|
||||
int DivasBRIInitPCI(card_t *card, dia_card_t *cfg);
|
||||
int bri_ISR (card_t* card);
|
||||
|
||||
static
|
||||
int diva_server_bri_reset(card_t *card)
|
||||
|
@ -361,7 +361,7 @@ int diva_server_bri_config(card_t *card, dia_config_t *config)
|
|||
UxCardPortIoOut(card->hw, DivasIOBase, REG_DATA, config->nt2);
|
||||
|
||||
UxCardPortIoOutW(card->hw, DivasIOBase, REG_ADDRLO, 10);
|
||||
UxCardPortIoOut(card->hw, DivasIOBase, REG_DATA, 0);
|
||||
UxCardPortIoOut(card->hw, DivasIOBase, REG_DATA, config->sig_flags);
|
||||
|
||||
UxCardPortIoOutW(card->hw, DivasIOBase, REG_ADDRLO, 11);
|
||||
UxCardPortIoOut(card->hw, DivasIOBase, REG_DATA, config->watchdog);
|
||||
|
|
|
@ -67,7 +67,7 @@ void mem_out_buffer(ADAPTER *a, void *adr, void *P, word length);
|
|||
void mem_inc(ADAPTER *a, void *adr);
|
||||
|
||||
int Divas4BRIInitPCI(card_t *card, dia_card_t *cfg);
|
||||
int fourbri_ISR (card_t* card);
|
||||
static int fourbri_ISR (card_t* card);
|
||||
|
||||
int FPGA_Download(word, dword, byte *, byte *, int);
|
||||
extern byte FPGA_Bytes[];
|
||||
|
@ -113,7 +113,7 @@ static int diva_server_4bri_config(card_t *card, dia_config_t *config)
|
|||
|
||||
UxCardMemOut(card->hw, &shared[ 8], config->tei);
|
||||
UxCardMemOut(card->hw, &shared[ 9], config->nt2);
|
||||
UxCardMemOut(card->hw, &shared[10], 0);
|
||||
UxCardMemOut(card->hw, &shared[10], config->sig_flags);
|
||||
UxCardMemOut(card->hw, &shared[11], config->watchdog);
|
||||
UxCardMemOut(card->hw, &shared[12], config->permanent);
|
||||
UxCardMemOut(card->hw, &shared[13], config->x_interface);
|
||||
|
@ -561,23 +561,16 @@ int memcm(byte *dst, byte *src, dword dwLen)
|
|||
}*/
|
||||
|
||||
|
||||
int fourbri_ISR (card_t* card)
|
||||
static int fourbri_ISR (card_t* card)
|
||||
{
|
||||
int served = 0;
|
||||
byte *ctl;
|
||||
byte *reg = UxCardMemAttach(card->hw, DIVAS_REG_MEMORY);
|
||||
|
||||
if (UxCardPortIoIn(card->hw, reg, PLX9054_INTCSR) & 0x80)
|
||||
{
|
||||
served = 1;
|
||||
card->int_pend += 1;
|
||||
DivasDpcSchedule(); /* ISR DPC */
|
||||
card->int_pend += 1;
|
||||
DivasDpcSchedule(); /* ISR DPC */
|
||||
|
||||
ctl = UxCardMemAttach(card->hw, DIVAS_CTL_MEMORY);
|
||||
UxCardMemOut(card->hw, &ctl[MQ_BREG_IRQ_TEST], MQ_IRQ_REQ_OFF);
|
||||
UxCardMemDetach(card->hw, ctl);
|
||||
}
|
||||
ctl = UxCardMemAttach(card->hw, DIVAS_CTL_MEMORY);
|
||||
UxCardMemOut(card->hw, &ctl[MQ_BREG_IRQ_TEST], MQ_IRQ_REQ_OFF);
|
||||
UxCardMemDetach(card->hw, ctl);
|
||||
|
||||
UxCardMemDetach(card->hw, reg);
|
||||
return (served != 0);
|
||||
return (1);
|
||||
}
|
||||
|
|
|
@ -248,7 +248,6 @@ void next_req(ADAPTER * a)
|
|||
/*
|
||||
* IDI request function for active cards
|
||||
*/
|
||||
|
||||
static
|
||||
void request(card_t *card, ENTITY *e)
|
||||
{
|
||||
|
@ -256,6 +255,7 @@ void request(card_t *card, ENTITY *e)
|
|||
int i;
|
||||
int ipl;
|
||||
|
||||
|
||||
if (card->log_types & DIVAS_LOG_IDI)
|
||||
{
|
||||
DivasLogIdi(card, e, TRUE);
|
||||
|
|
|
@ -82,7 +82,7 @@ void mem_out_buffer(ADAPTER *a, void *adr, void *P, word length);
|
|||
void mem_inc(ADAPTER *a, void *adr);
|
||||
|
||||
int DivasPRIInitPCI(card_t *card, dia_card_t *cfg);
|
||||
int pri_ISR (card_t* card);
|
||||
static int pri_ISR (card_t* card);
|
||||
|
||||
static int diva_server_reset(card_t *card)
|
||||
{
|
||||
|
@ -156,7 +156,7 @@ static int diva_server_config(card_t *card, dia_config_t *config)
|
|||
|
||||
UxCardMemOut(card->hw, &shared[ 8], config->tei);
|
||||
UxCardMemOut(card->hw, &shared[ 9], config->nt2);
|
||||
UxCardMemOut(card->hw, &shared[10], 0);
|
||||
UxCardMemOut(card->hw, &shared[10], config->sig_flags);
|
||||
UxCardMemOut(card->hw, &shared[11], config->watchdog);
|
||||
UxCardMemOut(card->hw, &shared[12], config->permanent);
|
||||
UxCardMemOut(card->hw, &shared[13], config->x_interface);
|
||||
|
@ -509,7 +509,7 @@ int DivasPriInit(card_t *card, dia_card_t *cfg)
|
|||
}
|
||||
|
||||
|
||||
int pri_ISR (card_t* card)
|
||||
static int pri_ISR (card_t* card)
|
||||
{
|
||||
int served = 0;
|
||||
byte* cfg = UxCardMemAttach(card->hw, DIVAS_CFG_MEMORY);
|
||||
|
|
Loading…
Reference in New Issue