From 7ee69ef245bd0c6c84a002245736e6ebb682820e Mon Sep 17 00:00:00 2001 From: Thomas Moestl Date: Sat, 23 Mar 2002 19:37:11 +0000 Subject: [PATCH] Assorted fixes: - remove some useless code from the status change handler that was intended to enable the the MII drivers for external phys; this is already done during interface initialization, and the deleted code made some assumptions about phy addresses that do not seem to hold true on newer cards. This should get at least one of the two hmes of newer Netra t1 machines working. - correct the interrupt resource allocation - bump the number of RX descriptors, lower values cause promblems on some machines --- sys/dev/hme/if_hme.c | 7 ------- sys/dev/hme/if_hme_pci.c | 2 +- sys/dev/hme/if_hme_sbus.c | 2 +- sys/dev/hme/if_hmevar.h | 3 +-- 4 files changed, 3 insertions(+), 11 deletions(-) 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. */