summaryrefslogtreecommitdiffstats
path: root/sys/dev/hme
diff options
context:
space:
mode:
authortmm <tmm@FreeBSD.org>2002-03-23 19:37:11 +0000
committertmm <tmm@FreeBSD.org>2002-03-23 19:37:11 +0000
commit96f89601bec8d2572d482a8d78c1b5f67932a00b (patch)
tree253feb44c82db144040d376f620649fee350d496 /sys/dev/hme
parentc379ca4071dae4b5dd20358faaf108a23306e77c (diff)
downloadFreeBSD-src-96f89601bec8d2572d482a8d78c1b5f67932a00b.zip
FreeBSD-src-96f89601bec8d2572d482a8d78c1b5f67932a00b.tar.gz
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
Diffstat (limited to 'sys/dev/hme')
-rw-r--r--sys/dev/hme/if_hme.c7
-rw-r--r--sys/dev/hme/if_hme_pci.c2
-rw-r--r--sys/dev/hme/if_hme_sbus.c2
-rw-r--r--sys/dev/hme/if_hmevar.h3
4 files changed, 3 insertions, 11 deletions
diff --git a/sys/dev/hme/if_hme.c b/sys/dev/hme/if_hme.c
index 9d6ed40..0c8f1d2 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 3978e00..8e2409c 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 1e6d82c..46eaa45 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 13bf90c..bef2b13 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. */
OpenPOWER on IntegriCloud