Ticket #1590: broadcom_2.diff

File broadcom_2.diff, 3.6 KB (added by PieterPanman, 15 years ago)

Cleaned up some more and added #ifndef HAIKU stuff

  • build/jam/HaikuImage

     
    137137    $(X86_ONLY)s3 $(X86_ONLY)vesa #$(X86_ONLY)via #$(X86_ONLY)vmware
    138138;
    139139BEOS_ADD_ONS_DRIVERS_MIDI = emuxki ;
    140 BEOS_ADD_ONS_DRIVERS_NET = $(X86_ONLY)3com $(X86_ONLY)broadcom440x etherpci $(X86_ONLY)ipro1000
     140BEOS_ADD_ONS_DRIVERS_NET = $(X86_ONLY)3com $(X86_ONLY)broadcom440x
     141    $(X86_ONLY)broadcom570x etherpci $(X86_ONLY)ipro1000
    141142    pegasus $(X86_ONLY)rtl8139 rtl8169 $(X86_ONLY)rtl81xx sis900
    142143    $(X86_ONLY)via_rhine wb840 $(X86_ONLY)ipro100 $(X86_ONLY)nforce
    143144    #vlance
    144145    $(X86_ONLY)marvell_yukon $(X86_ONLY)syskonnect usb_ecm
    145     $(GPL_ONLY)bcm570x
    146146;
    147147#BEOS_ADD_ONS_DRIVERS_ACPI = $(X86_ONLY)acpi_button ;
    148148BEOS_ADD_ONS_BUS_MANAGERS = pci $(X86_ONLY)ps2 $(X86_ONLY)isa ide scsi
  • src/add-ons/kernel/drivers/network/broadcom570x/dev/bge/if_bgereg.h

     
    25862586#define BGE_LOCK_ASSERT(_sc)    mtx_assert(&(_sc)->bge_mtx, MA_OWNED)
    25872587#define BGE_UNLOCK(_sc)     mtx_unlock(&(_sc)->bge_mtx)
    25882588#define BGE_LOCK_DESTROY(_sc)   mtx_destroy(&(_sc)->bge_mtx)
     2589
     2590#ifdef __HAIKU__
     2591// this function declaration is placed here because it is used in glue.c
     2592void bge_writembx(struct bge_softc *, int, int);
     2593#endif
  • src/add-ons/kernel/drivers/network/broadcom570x/dev/bge/if_bge.c

     
    378378static int bge_has_eaddr(struct bge_softc *);
    379379static uint32_t bge_readmem_ind(struct bge_softc *, int);
    380380static void bge_writemem_ind(struct bge_softc *, int, int);
     381#ifndef __HAIKU__
    381382static void bge_writembx(struct bge_softc *, int, int);
     383#endif
    382384#ifdef notdef
    383385static uint32_t bge_readreg_ind(struct bge_softc *, int);
    384386#endif
     
    553555    CSR_WRITE_4(sc, off, val);
    554556}
    555557
     558#ifndef __HAIKU__
    556559static void
     560#else
     561void
     562#endif
    557563bge_writembx(struct bge_softc *sc, int off, int val)
    558564{
    559565    if (sc->bge_asicrev == BGE_ASICREV_BCM5906)
  • src/add-ons/kernel/drivers/network/broadcom570x/dev/bge/glue.c

     
    3131}
    3232
    3333
    34 // copied from if_bge.c
    35 static void
    36 bge_writembx(struct bge_softc *sc, int off, int val)
    37 {
    38     if (sc->bge_asicrev == BGE_ASICREV_BCM5906)
    39         off += BGE_LPMBX_IRQ0_HI - BGE_MBX_IRQ0_HI;
    40 
    41     CSR_WRITE_4(sc, off, val);
    42 }
    43 
    44 
    4534int
    4635__haiku_disable_interrupts(device_t dev)
    4736{
    4837    struct bge_softc *sc = device_get_softc(dev);
    4938
    50     uint32 statusword = CSR_READ_4(sc, BGE_MAC_STS) & BGE_MACSTAT_LINK_CHANGED;
     39    uint32 notInterrupted = pci_read_config(sc->bge_dev, BGE_PCI_PCISTATE, 4)
     40        & BGE_PCISTATE_INTR_STATE;
     41    // bit of a strange register name. a nonzero actually means
     42    // it is _not_ interrupted by the network chip
    5143
    52     if ((sc->bge_ifp->if_drv_flags & IFF_DRV_RUNNING) == 0 && !statusword
    53         && (pci_read_config(sc->bge_dev, BGE_PCI_PCISTATE,4) & BGE_PCISTATE_INTR_STATE))
     44    if (notInterrupted)
    5445        return 0;
    5546
    5647    BGE_SETBIT(sc, BGE_PCI_MISC_CTL, BGE_PCIMISCCTL_MASK_PCI_INTR);