[haiku-development] Re: My "monkey-port" of DEC/Intel 21143 "dc" FreeBSD driver. Some advices needed.

Hi, Adrian!

Adrian Panasiuk wrote:
http://fxr.watson.org/fxr/source/dev/dc/if_dc.c?v=FREEBSD7#L3054

3054         if ((CSR_READ_4(sc, DC_ISR) & DC_INTRS) == 0)
3055                 return;

This looks promising, try to fit it into haiku_disable_interrupts ().
Do you meant add it into following implementation?

 32 int
 33 HAIKU_CHECK_DISABLE_INTERRUPTS(device_t dev)
 34 {
 35         struct dc_softc *sc = device_get_softc(dev);
 36         uint32_t status;
 37
 38         status = CSR_READ_4(sc, DC_ISR);
 39         if (status == 0xffffffff) {
 40                 return 0;
 41         }
 42
 43         if (status != 0 && (status & DC_INTRS) == 0) {
 44                 CSR_WRITE_4(sc, DC_ISR, status);
 45                 return 0;
 46         }
 47
 48         if ((status & DC_INTRS) == 0) {
 49                 return 0;
 50         }
 51
 52         CSR_WRITE_4(sc, DC_IMR, 0x00000000);
 53
 54         return 1;
 55 }


But such check already exists as you can see. :-|


Kind Regards,
  S.Zharski.


Other related posts: