svn commit: r216519 - head/sys/dev/hifn
Tijl Coosemans
tijl at FreeBSD.org
Sat Dec 18 14:24:24 UTC 2010
Author: tijl
Date: Sat Dec 18 14:24:24 2010
New Revision: 216519
URL: http://svn.freebsd.org/changeset/base/216519
Log:
No need to zero the softc. It's allocated with M_ZERO.
Use pci_enable_busmaster instead of setting PCIM_CMD_BUSMASTEREN
directly. There's no need to set PCIM_CMD_MEMEN. The bit is set when a
SYS_RES_MEMORY resource is activated.
Remove redundant pci_* function calls from suspend/resume methods. The
bus driver already saves and restores the PCI configuration.
Write 1 byte instead of 4 when setting the HIFN_TRDY_TIMEOUT register.
It is only 1 byte according to the specification.
Reviewed by: jhb
Approved by: kib (mentor)
Modified:
head/sys/dev/hifn/hifn7751.c
Modified: head/sys/dev/hifn/hifn7751.c
==============================================================================
--- head/sys/dev/hifn/hifn7751.c Sat Dec 18 14:21:28 2010 (r216518)
+++ head/sys/dev/hifn/hifn7751.c Sat Dec 18 14:24:24 2010 (r216519)
@@ -355,14 +355,11 @@ static int
hifn_attach(device_t dev)
{
struct hifn_softc *sc = device_get_softc(dev);
- u_int32_t cmd;
caddr_t kva;
int rseg, rid;
char rbase;
u_int16_t ena, rev;
- KASSERT(sc != NULL, ("hifn_attach: null software carrier!"));
- bzero(sc, sizeof (*sc));
sc->sc_dev = dev;
mtx_init(&sc->sc_mtx, device_get_nameunit(dev), "hifn driver", MTX_DEF);
@@ -402,30 +399,13 @@ hifn_attach(device_t dev)
}
/*
- * Configure support for memory-mapped access to
- * registers and for DMA operations.
- */
-#define PCIM_ENA (PCIM_CMD_MEMEN|PCIM_CMD_BUSMASTEREN)
- cmd = pci_read_config(dev, PCIR_COMMAND, 4);
- cmd |= PCIM_ENA;
- pci_write_config(dev, PCIR_COMMAND, cmd, 4);
- cmd = pci_read_config(dev, PCIR_COMMAND, 4);
- if ((cmd & PCIM_ENA) != PCIM_ENA) {
- device_printf(dev, "failed to enable %s\n",
- (cmd & PCIM_ENA) == 0 ?
- "memory mapping & bus mastering" :
- (cmd & PCIM_CMD_MEMEN) == 0 ?
- "memory mapping" : "bus mastering");
- goto fail_pci;
- }
-#undef PCIM_ENA
-
- /*
* Setup PCI resources. Note that we record the bus
* tag and handle for each register mapping, this is
* used by the READ_REG_0, WRITE_REG_0, READ_REG_1,
* and WRITE_REG_1 macros throughout the driver.
*/
+ pci_enable_busmaster(dev);
+
rid = HIFN_BAR0;
sc->sc_bar0res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid,
RF_ACTIVE);
@@ -727,10 +707,6 @@ hifn_resume(device_t dev)
{
struct hifn_softc *sc = device_get_softc(dev);
#ifdef notyet
- /* reenable busmastering */
- pci_enable_busmaster(dev);
- pci_enable_io(dev, HIFN_RES);
-
/* reinitialize interface if necessary */
if (ifp->if_flags & IFF_UP)
rl_init(sc);
@@ -910,7 +886,7 @@ hifn_set_retry(struct hifn_softc *sc)
{
/* NB: RETRY only responds to 8-bit reads/writes */
pci_write_config(sc->sc_dev, HIFN_RETRY_TIMEOUT, 0, 1);
- pci_write_config(sc->sc_dev, HIFN_TRDY_TIMEOUT, 0, 4);
+ pci_write_config(sc->sc_dev, HIFN_TRDY_TIMEOUT, 0, 1);
}
/*
More information about the svn-src-all
mailing list