From a905216770435fda675e8abf83f9c696144515bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Wed, 16 Oct 2013 17:34:29 +0200 Subject: [PATCH] pcnet: only disable interrupts, without acknowledging them. * related bug #10088. --- .../drivers/network/pcnet/dev/pcn/glue.c | 35 +++---------------- 1 file changed, 4 insertions(+), 31 deletions(-) diff --git a/src/add-ons/kernel/drivers/network/pcnet/dev/pcn/glue.c b/src/add-ons/kernel/drivers/network/pcnet/dev/pcn/glue.c index 41b5f20d33..60d624ba2e 100644 --- a/src/add-ons/kernel/drivers/network/pcnet/dev/pcn/glue.c +++ b/src/add-ons/kernel/drivers/network/pcnet/dev/pcn/glue.c @@ -8,39 +8,11 @@ #include -#define PCN_CSR_SETBIT(sc, reg, x) \ - pcn_csr_write(sc, reg, pcn_csr_read(sc, reg) | (x)) - -#define PCN_CSR_CLRBIT(sc, reg, x) \ - pcn_csr_write(sc, reg, pcn_csr_read(sc, reg) & ~(x)) - int check_disable_interrupts_pcn(device_t dev); void reenable_interrupts_pcn(device_t dev); -static u_int32_t -pcn_csr_read(sc, reg) - struct pcn_softc *sc; - int reg; -{ - CSR_WRITE_4(sc, PCN_IO32_RAP, reg); - return(CSR_READ_4(sc, PCN_IO32_RDP)); -} - - -static void -pcn_csr_write(sc, reg, val) - struct pcn_softc *sc; - int reg; - int val; -{ - CSR_WRITE_4(sc, PCN_IO32_RAP, reg); - CSR_WRITE_4(sc, PCN_IO32_RDP, val); - return; -} - - int check_disable_interrupts_pcn(device_t dev) { @@ -60,8 +32,8 @@ check_disable_interrupts_pcn(device_t dev) return 0; } - /* set the new flags, disable interrupts */ - PCN_CSR_CLRBIT(sc, PCN_CSR_CSR, PCN_CSR_INTEN); + /* disable interrupts */ + CSR_WRITE_4(sc, PCN_IO32_RDP, 0); HAIKU_INTR_REGISTER_LEAVE(); @@ -73,5 +45,6 @@ void reenable_interrupts_pcn(device_t dev) { struct pcn_softc *sc = device_get_softc(dev); - PCN_CSR_SETBIT(sc, PCN_CSR_CSR, PCN_CSR_INTEN); + CSR_WRITE_4(sc, PCN_IO32_RAP, PCN_CSR_CSR); + CSR_WRITE_4(sc, PCN_IO32_RDP, PCN_CSR_INTEN); }