summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorxtraeme <xtraeme@NetBSD.org>2008-05-04 15:58:51 +0000
committerxtraeme <xtraeme@NetBSD.org>2008-05-04 15:58:51 +0000
commite9025ab64a8ea51281fada4eee2a46b04dfc1433 (patch)
treeed5b7611fd8722b9c89ecfad9639337136003649 /sys/dev
parent6dc246f785740d4d93bb597bb127df5876595cd3 (diff)
device_t/softc split and other related cosmetic changes.
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/pci/auich.c96
1 files changed, 47 insertions, 49 deletions
diff --git a/sys/dev/pci/auich.c b/sys/dev/pci/auich.c
index bb7b1d6e8c9..e2869ce3cf7 100644
--- a/sys/dev/pci/auich.c
+++ b/sys/dev/pci/auich.c
@@ -1,4 +1,4 @@
-/* $NetBSD: auich.c,v 1.126 2008/04/28 20:23:54 martin Exp $ */
+/* $NetBSD: auich.c,v 1.127 2008/05/04 15:58:51 xtraeme Exp $ */
/*-
* Copyright (c) 2000, 2004, 2005 The NetBSD Foundation, Inc.
@@ -111,7 +111,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: auich.c,v 1.126 2008/04/28 20:23:54 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: auich.c,v 1.127 2008/05/04 15:58:51 xtraeme Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -162,10 +162,10 @@ struct auich_cdata {
#define ICH_MICI_OFF(x) ICH_CDOFF(ic_dmalist_mici[(x)])
struct auich_softc {
- struct device sc_dev;
+ device_t sc_dev;
void *sc_ih;
- struct device *sc_audiodev;
+ device_t sc_audiodev;
audio_device_t sc_audev;
pci_chipset_tag_t sc_pc;
@@ -238,13 +238,13 @@ int auich_debug = 0xfffe;
#define DPRINTF(x,y) /* nothing */
#endif
-static int auich_match(struct device *, struct cfdata *, void *);
-static void auich_attach(struct device *, struct device *, void *);
-static int auich_detach(struct device *, int);
-static int auich_activate(struct device *, enum devact);
+static int auich_match(device_t, cfdata_t, void *);
+static void auich_attach(device_t, device_t, void *);
+static int auich_detach(device_t, int);
+static int auich_activate(device_t, enum devact);
static int auich_intr(void *);
-CFATTACH_DECL(auich, sizeof(struct auich_softc),
+CFATTACH_DECL_NEW(auich, sizeof(struct auich_softc),
auich_match, auich_attach, auich_detach, auich_activate);
static int auich_open(void *, int);
@@ -283,7 +283,7 @@ static int auich_freemem(struct auich_softc *, struct auich_dma *);
static bool auich_resume(device_t PMF_FN_PROTO);
static int auich_set_rate(struct auich_softc *, int, u_long);
static int auich_sysctl_verify(SYSCTLFN_ARGS);
-static void auich_finish_attach(struct device *);
+static void auich_finish_attach(device_t);
static void auich_calibrate(struct auich_softc *);
static void auich_clear_cas(struct auich_softc *);
@@ -427,8 +427,7 @@ auich_lookup(struct pci_attach_args *pa, const struct auich_devtype *auich_devic
}
static int
-auich_match(struct device *parent, struct cfdata *match,
- void *aux)
+auich_match(device_t parent, cfdata_t match, void *aux)
{
struct pci_attach_args *pa;
@@ -442,9 +441,9 @@ auich_match(struct device *parent, struct cfdata *match,
}
static void
-auich_attach(struct device *parent, struct device *self, void *aux)
+auich_attach(device_t parent, device_t self, void *aux)
{
- struct auich_softc *sc;
+ struct auich_softc *sc = device_private(self);
struct pci_attach_args *pa;
pcireg_t v, subdev;
const char *intrstr;
@@ -452,7 +451,7 @@ auich_attach(struct device *parent, struct device *self, void *aux)
const struct sysctlnode *node, *node_ac97clock;
int err, node_mib, i;
- sc = (struct auich_softc *)self;
+ sc->sc_dev = self;
pa = aux;
if ((d = auich_lookup(pa, auich_modem_devices)) != NULL) {
@@ -489,7 +488,7 @@ auich_attach(struct device *parent, struct device *self, void *aux)
if (pci_mapreg_map(pa, ICH_NAMBAR, PCI_MAPREG_TYPE_IO,
0, &sc->iot, &sc->mix_ioh, NULL,
&sc->mix_size)) {
- aprint_error_dev(&sc->sc_dev, "can't map codec i/o space\n");
+ aprint_error_dev(self, "can't map codec i/o space\n");
return;
}
}
@@ -501,19 +500,19 @@ auich_attach(struct device *parent, struct device *self, void *aux)
if (pci_mapreg_map(pa, ICH_NABMBAR, PCI_MAPREG_TYPE_IO,
0, &sc->iot, &sc->aud_ioh, NULL,
&sc->aud_size)) {
- aprint_error_dev(&sc->sc_dev, "can't map device i/o space\n");
+ aprint_error_dev(self, "can't map device i/o space\n");
return;
}
}
} else {
if (pci_mapreg_map(pa, ICH_NAMBAR, PCI_MAPREG_TYPE_IO, 0,
&sc->iot, &sc->mix_ioh, NULL, &sc->mix_size)) {
- aprint_error_dev(&sc->sc_dev, "can't map codec i/o space\n");
+ aprint_error_dev(self, "can't map codec i/o space\n");
return;
}
if (pci_mapreg_map(pa, ICH_NABMBAR, PCI_MAPREG_TYPE_IO, 0,
&sc->iot, &sc->aud_ioh, NULL, &sc->aud_size)) {
- aprint_error_dev(&sc->sc_dev, "can't map device i/o space\n");
+ aprint_error_dev(self, "can't map device i/o space\n");
return;
}
}
@@ -526,25 +525,25 @@ auich_attach(struct device *parent, struct device *self, void *aux)
/* Map and establish the interrupt. */
if (pci_intr_map(pa, &sc->intrh)) {
- aprint_error_dev(&sc->sc_dev, "can't map interrupt\n");
+ aprint_error_dev(self, "can't map interrupt\n");
return;
}
intrstr = pci_intr_string(pa->pa_pc, sc->intrh);
sc->sc_ih = pci_intr_establish(pa->pa_pc, sc->intrh, IPL_AUDIO,
auich_intr, sc);
if (sc->sc_ih == NULL) {
- aprint_error_dev(&sc->sc_dev, "can't establish interrupt");
+ aprint_error_dev(self, "can't establish interrupt");
if (intrstr != NULL)
aprint_normal(" at %s", intrstr);
aprint_normal("\n");
return;
}
- aprint_normal_dev(&sc->sc_dev, "interrupting at %s\n", intrstr);
+ aprint_normal_dev(self, "interrupting at %s\n", intrstr);
snprintf(sc->sc_audev.name, MAX_AUDIO_DEV_LEN, "%s AC97", d->shortname);
snprintf(sc->sc_audev.version, MAX_AUDIO_DEV_LEN,
"0x%02x", PCI_REVISION(pa->pa_class));
- strlcpy(sc->sc_audev.config, device_xname(&sc->sc_dev), MAX_AUDIO_DEV_LEN);
+ strlcpy(sc->sc_audev.config, device_xname(self), MAX_AUDIO_DEV_LEN);
/* SiS 7012 needs special handling */
if (d->id == PCIID_SIS7012) {
@@ -563,7 +562,7 @@ auich_attach(struct device *parent, struct device *self, void *aux)
sc->sc_dmamap_flags = BUS_DMA_COHERENT;
if (d->id == PCIID_440MX) {
sc->sc_dmamap_flags |= BUS_DMA_NOCACHE;
- printf("%s: DMA bug workaround enabled\n", device_xname(&sc->sc_dev));
+ aprint_normal_dev(self, "DMA bug workaround enabled\n");
}
/* Set up DMA lists. */
@@ -647,7 +646,7 @@ auich_attach(struct device *parent, struct device *self, void *aux)
if (err != 0)
goto sysctl_err;
err = sysctl_createv(&sc->sc_log, 0, NULL, &node, 0,
- CTLTYPE_NODE, device_xname(&sc->sc_dev), NULL, NULL, 0,
+ CTLTYPE_NODE, device_xname(self), NULL, NULL, 0,
NULL, 0, CTL_HW, CTL_CREATE, CTL_EOL);
if (err != 0)
goto sysctl_err;
@@ -670,7 +669,7 @@ auich_attach(struct device *parent, struct device *self, void *aux)
sysctl_err:
printf("%s: failed to add sysctl nodes. (%d)\n",
- device_xname(&sc->sc_dev), err);
+ device_xname(self), err);
return; /* failure of sysctl is not fatal. */
}
@@ -750,15 +749,14 @@ auich_sysctl_verify(SYSCTLFN_ARGS)
}
static void
-auich_finish_attach(struct device *self)
+auich_finish_attach(device_t self)
{
- struct auich_softc *sc;
+ struct auich_softc *sc = device_private(self);
- sc = (void *)self;
if (!AC97_IS_FIXED_RATE(sc->codec_if))
auich_calibrate(sc);
- sc->sc_audiodev = audio_attach_mi(&auich_hw_if, sc, &sc->sc_dev);
+ sc->sc_audiodev = audio_attach_mi(&auich_hw_if, sc, sc->sc_dev);
return;
}
@@ -791,7 +789,7 @@ auich_read_codec(void *v, uint8_t reg, uint16_t *val)
status & ~(ICH_SRI|ICH_PRI|ICH_GSCI));
*val = 0xffff;
DPRINTF(ICH_DEBUG_CODECIO,
- ("%s: read_codec error\n", device_xname(&sc->sc_dev)));
+ ("%s: read_codec error\n", device_xname(sc->sc_dev)));
if (reg == AC97_REG_GPIO_STATUS)
auich_clear_cas(sc);
return -1;
@@ -800,7 +798,7 @@ auich_read_codec(void *v, uint8_t reg, uint16_t *val)
auich_clear_cas(sc);
return 0;
} else {
- aprint_normal_dev(&sc->sc_dev, "read_codec timeout\n");
+ aprint_normal_dev(sc->sc_dev, "read_codec timeout\n");
if (reg == AC97_REG_GPIO_STATUS)
auich_clear_cas(sc);
return -1;
@@ -826,7 +824,7 @@ auich_write_codec(void *v, uint8_t reg, uint16_t val)
reg + (sc->sc_codecnum * ICH_CODEC_OFFSET), val);
return 0;
} else {
- aprint_normal_dev(&sc->sc_dev, "write_codec timeout\n");
+ aprint_normal_dev(sc->sc_dev, "write_codec timeout\n");
return -1;
}
}
@@ -870,16 +868,16 @@ auich_reset_codec(void *v)
DELAY(1);
}
if (i <= 0) {
- aprint_error_dev(&sc->sc_dev, "auich_reset_codec: time out\n");
+ aprint_error_dev(sc->sc_dev, "auich_reset_codec: time out\n");
return ETIMEDOUT;
}
#ifdef AUICH_DEBUG
if (status & ICH_SCR)
printf("%s: The 2nd codec is ready.\n",
- device_xname(&sc->sc_dev));
+ device_xname(sc->sc_dev));
if (status & ICH_S2CR)
printf("%s: The 3rd codec is ready.\n",
- device_xname(&sc->sc_dev));
+ device_xname(sc->sc_dev));
#endif
return 0;
}
@@ -1064,7 +1062,7 @@ auich_halt_output(void *v)
struct auich_softc *sc;
sc = v;
- DPRINTF(ICH_DEBUG_DMA, ("%s: halt_output\n", device_xname(&sc->sc_dev)));
+ DPRINTF(ICH_DEBUG_DMA, ("%s: halt_output\n", device_xname(sc->sc_dev)));
auich_halt_pipe(sc, ICH_PCMO);
sc->pcmo.intr = NULL;
@@ -1078,7 +1076,7 @@ auich_halt_input(void *v)
struct auich_softc *sc;
sc = v;
- DPRINTF(ICH_DEBUG_DMA, ("%s: halt_input\n", device_xname(&sc->sc_dev)));
+ DPRINTF(ICH_DEBUG_DMA, ("%s: halt_input\n", device_xname(sc->sc_dev)));
auich_halt_pipe(sc, ICH_PCMI);
sc->pcmi.intr = NULL;
@@ -1225,7 +1223,7 @@ auich_intr(void *v)
sc = v;
- if (!device_has_power(&sc->sc_dev))
+ if (!device_has_power(sc->sc_dev))
return (0);
ret = 0;
@@ -1250,7 +1248,7 @@ auich_intr(void *v)
("auich_intr: osts=0x%x\n", sts));
if (sts & ICH_FIFOE)
- printf("%s: fifo underrun\n", device_xname(&sc->sc_dev));
+ printf("%s: fifo underrun\n", device_xname(sc->sc_dev));
if (sts & ICH_BCIS)
auich_intr_pipe(sc, ICH_PCMO, &sc->pcmo);
@@ -1277,7 +1275,7 @@ auich_intr(void *v)
("auich_intr: ists=0x%x\n", sts));
if (sts & ICH_FIFOE)
- printf("%s: fifo overrun\n", device_xname(&sc->sc_dev));
+ printf("%s: fifo overrun\n", device_xname(sc->sc_dev));
if (sts & ICH_BCIS)
auich_intr_pipe(sc, ICH_PCMI, &sc->pcmi);
@@ -1303,7 +1301,7 @@ auich_intr(void *v)
("auich_intr: ists=0x%x\n", sts));
if (sts & ICH_FIFOE)
- printf("%s: fifo overrun\n", device_xname(&sc->sc_dev));
+ printf("%s: fifo overrun\n", device_xname(sc->sc_dev));
if (sts & ICH_BCIS)
auich_intr_pipe(sc, ICH_MICI, &sc->mici);
@@ -1318,7 +1316,7 @@ auich_intr(void *v)
#ifdef AUICH_MODEM_DEBUG
if (sc->sc_codectype == AC97_CODEC_TYPE_MODEM && gsts & ICH_GSCI) {
- printf("%s: gsts=0x%x\n", device_xname(&sc->sc_dev), gsts);
+ printf("%s: gsts=0x%x\n", device_xname(sc->sc_dev), gsts);
/* int ack */
bus_space_write_4(sc->iot, sc->aud_ioh,
ICH_GSTS + sc->sc_modem_offset, ICH_GSCI);
@@ -1527,7 +1525,7 @@ auich_alloc_cdata(struct auich_softc *sc)
if ((error = bus_dmamem_alloc(sc->dmat,
sizeof(struct auich_cdata),
PAGE_SIZE, 0, &seg, 1, &rseg, 0)) != 0) {
- aprint_error_dev(&sc->sc_dev, "unable to allocate control data, error = %d\n", error);
+ aprint_error_dev(sc->sc_dev, "unable to allocate control data, error = %d\n", error);
goto fail_0;
}
@@ -1535,14 +1533,14 @@ auich_alloc_cdata(struct auich_softc *sc)
sizeof(struct auich_cdata),
(void **) &sc->sc_cdata,
sc->sc_dmamap_flags)) != 0) {
- aprint_error_dev(&sc->sc_dev, "unable to map control data, error = %d\n", error);
+ aprint_error_dev(sc->sc_dev, "unable to map control data, error = %d\n", error);
goto fail_1;
}
if ((error = bus_dmamap_create(sc->dmat, sizeof(struct auich_cdata), 1,
sizeof(struct auich_cdata), 0, 0,
&sc->sc_cddmamap)) != 0) {
- aprint_error_dev(&sc->sc_dev, "unable to create control data DMA map, "
+ aprint_error_dev(sc->sc_dev, "unable to create control data DMA map, "
"error = %d\n", error);
goto fail_2;
}
@@ -1550,7 +1548,7 @@ auich_alloc_cdata(struct auich_softc *sc)
if ((error = bus_dmamap_load(sc->dmat, sc->sc_cddmamap,
sc->sc_cdata, sizeof(struct auich_cdata),
NULL, 0)) != 0) {
- aprint_error_dev(&sc->sc_dev, "unable tp load control data DMA map, "
+ aprint_error_dev(sc->sc_dev, "unable tp load control data DMA map, "
"error = %d\n", error);
goto fail_3;
}
@@ -1679,7 +1677,7 @@ auich_calibrate(struct auich_softc *sc)
if (nciv == ociv) {
printf("%s: ac97 link rate calibration timed out after %"
- PRIu64 " us\n", device_xname(&sc->sc_dev), wait_us);
+ PRIu64 " us\n", device_xname(sc->sc_dev), wait_us);
return;
}
@@ -1691,7 +1689,7 @@ auich_calibrate(struct auich_softc *sc)
ac97rate = ((actual_48k_rate + 500) / 1000) * 1000;
printf("%s: measured ac97 link rate at %d Hz",
- device_xname(&sc->sc_dev), actual_48k_rate);
+ device_xname(sc->sc_dev), actual_48k_rate);
if (ac97rate != actual_48k_rate)
printf(", will use %d Hz", ac97rate);
printf("\n");