fixes in interrupt handler

This commit is contained in:
Armin Schindler 2001-01-20 20:20:30 +00:00
parent 2f5d09601d
commit 016469efaa
5 changed files with 17 additions and 22 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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);
}

View File

@ -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);

View File

@ -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);