Ticket #1590: broadcom_2.diff
File broadcom_2.diff, 3.6 KB (added by , 15 years ago) |
---|
-
build/jam/HaikuImage
137 137 $(X86_ONLY)s3 $(X86_ONLY)vesa #$(X86_ONLY)via #$(X86_ONLY)vmware 138 138 ; 139 139 BEOS_ADD_ONS_DRIVERS_MIDI = emuxki ; 140 BEOS_ADD_ONS_DRIVERS_NET = $(X86_ONLY)3com $(X86_ONLY)broadcom440x etherpci $(X86_ONLY)ipro1000 140 BEOS_ADD_ONS_DRIVERS_NET = $(X86_ONLY)3com $(X86_ONLY)broadcom440x 141 $(X86_ONLY)broadcom570x etherpci $(X86_ONLY)ipro1000 141 142 pegasus $(X86_ONLY)rtl8139 rtl8169 $(X86_ONLY)rtl81xx sis900 142 143 $(X86_ONLY)via_rhine wb840 $(X86_ONLY)ipro100 $(X86_ONLY)nforce 143 144 #vlance 144 145 $(X86_ONLY)marvell_yukon $(X86_ONLY)syskonnect usb_ecm 145 $(GPL_ONLY)bcm570x146 146 ; 147 147 #BEOS_ADD_ONS_DRIVERS_ACPI = $(X86_ONLY)acpi_button ; 148 148 BEOS_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
2586 2586 #define BGE_LOCK_ASSERT(_sc) mtx_assert(&(_sc)->bge_mtx, MA_OWNED) 2587 2587 #define BGE_UNLOCK(_sc) mtx_unlock(&(_sc)->bge_mtx) 2588 2588 #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 2592 void bge_writembx(struct bge_softc *, int, int); 2593 #endif -
src/add-ons/kernel/drivers/network/broadcom570x/dev/bge/if_bge.c
378 378 static int bge_has_eaddr(struct bge_softc *); 379 379 static uint32_t bge_readmem_ind(struct bge_softc *, int); 380 380 static void bge_writemem_ind(struct bge_softc *, int, int); 381 #ifndef __HAIKU__ 381 382 static void bge_writembx(struct bge_softc *, int, int); 383 #endif 382 384 #ifdef notdef 383 385 static uint32_t bge_readreg_ind(struct bge_softc *, int); 384 386 #endif … … 553 555 CSR_WRITE_4(sc, off, val); 554 556 } 555 557 558 #ifndef __HAIKU__ 556 559 static void 560 #else 561 void 562 #endif 557 563 bge_writembx(struct bge_softc *sc, int off, int val) 558 564 { 559 565 if (sc->bge_asicrev == BGE_ASICREV_BCM5906) -
src/add-ons/kernel/drivers/network/broadcom570x/dev/bge/glue.c
31 31 } 32 32 33 33 34 // copied from if_bge.c35 static void36 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 45 34 int 46 35 __haiku_disable_interrupts(device_t dev) 47 36 { 48 37 struct bge_softc *sc = device_get_softc(dev); 49 38 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 51 43 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) 54 45 return 0; 55 46 56 47 BGE_SETBIT(sc, BGE_PCI_MISC_CTL, BGE_PCIMISCCTL_MASK_PCI_INTR);