diff --git a/sys/dev/hme/if_hme.c b/sys/dev/hme/if_hme.c index 9d6ed407c94..0c8f1d24ee1 100644 --- a/sys/dev/hme/if_hme.c +++ b/sys/dev/hme/if_hme.c @@ -1310,13 +1310,6 @@ hme_mii_statchg(device_t dev) HME_MAC_WRITE_4(sc, HME_MACI_TXCFG, v); if (!hme_mac_bitflip(sc, HME_MACI_TXCFG, v, 0, HME_MAC_TXCFG_ENABLE)) return; - - /* If an external transceiver is selected, enable its MII drivers */ - v = HME_MAC_READ_4(sc, HME_MACI_XIF); - v &= ~HME_MAC_XIF_MIIENABLE; - if (phy == HME_PHYAD_EXTERNAL) - v |= HME_MAC_XIF_MIIENABLE; - HME_MAC_WRITE_4(sc, HME_MACI_XIF, v); } static int diff --git a/sys/dev/hme/if_hme_pci.c b/sys/dev/hme/if_hme_pci.c index 3978e0027b8..8e2409c6e92 100644 --- a/sys/dev/hme/if_hme_pci.c +++ b/sys/dev/hme/if_hme_pci.c @@ -151,7 +151,7 @@ hme_pci_attach(device_t dev) } hsc->hsc_irid = 0; hsc->hsc_ires = bus_alloc_resource(dev, SYS_RES_IRQ, &hsc->hsc_irid, 0, - ~0, 1, RF_ACTIVE); + ~0, 1, RF_SHAREABLE | RF_ACTIVE); if (hsc->hsc_ires == NULL) { device_printf(dev, "could not allocate interrupt\n"); error = ENXIO; diff --git a/sys/dev/hme/if_hme_sbus.c b/sys/dev/hme/if_hme_sbus.c index 1e6d82ce516..46eaa4569e7 100644 --- a/sys/dev/hme/if_hme_sbus.c +++ b/sys/dev/hme/if_hme_sbus.c @@ -222,7 +222,7 @@ hme_sbus_attach(device_t dev) hsc->hsc_irid = 0; hsc->hsc_ires = bus_alloc_resource(dev, SYS_RES_IRQ, &hsc->hsc_irid, 0, - ~0, 1, RF_ACTIVE); + ~0, 1, RF_SHAREABLE | RF_ACTIVE); if (hsc->hsc_ires == NULL) { device_printf(dev, "could not allocate interrupt\n"); error = ENXIO; diff --git a/sys/dev/hme/if_hmevar.h b/sys/dev/hme/if_hmevar.h index 13bf90cd1cf..bef2b13ab15 100644 --- a/sys/dev/hme/if_hmevar.h +++ b/sys/dev/hme/if_hmevar.h @@ -48,9 +48,8 @@ * TX descriptors have less static cost (a dma map is allocated which could * cause bounce buffers to be reserved; other that that, the only required * memory is sizeof(struct hme_txdesc)). - * Both must be a multiple of 16, and <= 128. */ -#define HME_NRXDESC 32 +#define HME_NRXDESC 128 #define HME_NTXDESC 64 /* Maximum size of a mapped RX buffer. */