aboutsummaryrefslogtreecommitdiff
path: root/sys/arm/freescale
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arm/freescale')
-rw-r--r--sys/arm/freescale/imx/imx6_ssi.c30
-rw-r--r--sys/arm/freescale/imx/imx_gpio.c4
-rw-r--r--sys/arm/freescale/vybrid/vf_sai.c22
3 files changed, 30 insertions, 26 deletions
diff --git a/sys/arm/freescale/imx/imx6_ssi.c b/sys/arm/freescale/imx/imx6_ssi.c
index cb77f1454e63..76870cfb29c9 100644
--- a/sys/arm/freescale/imx/imx6_ssi.c
+++ b/sys/arm/freescale/imx/imx6_ssi.c
@@ -173,7 +173,7 @@ struct sc_info {
bus_space_tag_t bst;
bus_space_handle_t bsh;
device_t dev;
- struct mtx *lock;
+ struct mtx lock;
void *ih;
int pos;
int dma_size;
@@ -242,10 +242,10 @@ ssimixer_init(struct snd_mixer *m)
mask = SOUND_MASK_PCM;
mask |= SOUND_MASK_VOLUME;
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
pcm_setflags(scp->dev, pcm_getflags(scp->dev) | SD_F_SOFTPCMVOL);
mix_setdevs(m, mask);
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return (0);
}
@@ -290,14 +290,14 @@ ssichan_init(kobj_t obj, void *devinfo, struct snd_dbuf *b,
scp = (struct sc_pcminfo *)devinfo;
sc = scp->sc;
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
ch = &scp->chan[0];
ch->dir = dir;
ch->run = 0;
ch->buffer = b;
ch->channel = c;
ch->parent = scp;
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
if (sndbuf_setup(ch->buffer, sc->buf_base, sc->dma_size) != 0) {
device_printf(scp->dev, "Can't setup sndbuf.\n");
@@ -318,9 +318,9 @@ ssichan_free(kobj_t obj, void *data)
device_printf(scp->dev, "ssichan_free()\n");
#endif
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
/* TODO: free channel buffer */
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return (0);
}
@@ -398,7 +398,7 @@ ssichan_setblocksize(kobj_t obj, void *data, uint32_t blocksize)
setup_dma(scp);
- return (sndbuf_getblksz(ch->buffer));
+ return (ch->buffer->blksz);
}
uint32_t
@@ -415,7 +415,7 @@ ssi_dma_intr(void *arg, int chn)
sc = scp->sc;
conf = sc->conf;
- bufsize = sndbuf_getsize(ch->buffer);
+ bufsize = ch->buffer->bufsize;
sc->pos += conf->period;
if (sc->pos >= bufsize)
@@ -487,8 +487,8 @@ setup_dma(struct sc_pcminfo *scp)
conf->saddr = sc->buf_base_phys;
conf->daddr = rman_get_start(sc->res[0]) + SSI_STX0;
conf->event = sc->sdma_ev_tx; /* SDMA TX event */
- conf->period = sndbuf_getblksz(ch->buffer);
- conf->num_bd = sndbuf_getblkcnt(ch->buffer);
+ conf->period = ch->buffer->blksz;
+ conf->num_bd = ch->buffer->blkcnt;
/*
* Word Length
@@ -497,7 +497,7 @@ setup_dma(struct sc_pcminfo *scp)
* SSI supports 24 at max.
*/
- fmt = sndbuf_getfmt(ch->buffer);
+ fmt = ch->buffer->fmt;
if (fmt & AFMT_16BIT) {
conf->word_length = 16;
@@ -565,7 +565,7 @@ ssichan_trigger(kobj_t obj, void *data, int go)
scp = ch->parent;
sc = scp->sc;
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
switch (go) {
case PCMTRIG_START:
@@ -590,7 +590,7 @@ ssichan_trigger(kobj_t obj, void *data, int go)
break;
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return (0);
}
@@ -736,7 +736,7 @@ ssi_attach(device_t dev)
sc->pos = 0;
sc->conf = malloc(sizeof(struct sdma_conf), M_DEVBUF, M_WAITOK | M_ZERO);
- sc->lock = snd_mtxcreate(device_get_nameunit(dev), "ssi softc");
+ mtx_init(&sc->lock, device_get_nameunit(dev), "ssi softc");
if (sc->lock == NULL) {
device_printf(dev, "Can't create mtx\n");
return (ENXIO);
diff --git a/sys/arm/freescale/imx/imx_gpio.c b/sys/arm/freescale/imx/imx_gpio.c
index 3b19ef1b5e67..60b8d79ab27e 100644
--- a/sys/arm/freescale/imx/imx_gpio.c
+++ b/sys/arm/freescale/imx/imx_gpio.c
@@ -918,6 +918,10 @@ static device_method_t imx51_gpio_methods[] = {
DEVMETHOD(device_detach, imx51_gpio_detach),
#ifdef INTRNG
+ /* Bus interface */
+ DEVMETHOD(bus_setup_intr, bus_generic_setup_intr),
+ DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr),
+
/* Interrupt controller interface */
DEVMETHOD(pic_disable_intr, gpio_pic_disable_intr),
DEVMETHOD(pic_enable_intr, gpio_pic_enable_intr),
diff --git a/sys/arm/freescale/vybrid/vf_sai.c b/sys/arm/freescale/vybrid/vf_sai.c
index e895529c4810..6ccfcae2bc2e 100644
--- a/sys/arm/freescale/vybrid/vf_sai.c
+++ b/sys/arm/freescale/vybrid/vf_sai.c
@@ -138,7 +138,7 @@ struct sc_info {
bus_space_tag_t bst;
bus_space_handle_t bsh;
device_t dev;
- struct mtx *lock;
+ struct mtx lock;
uint32_t speed;
uint32_t period;
void *ih;
@@ -206,10 +206,10 @@ saimixer_init(struct snd_mixer *m)
mask = SOUND_MASK_PCM;
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
pcm_setflags(scp->dev, pcm_getflags(scp->dev) | SD_F_SOFTPCMVOL);
mix_setdevs(m, mask);
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return (0);
}
@@ -252,14 +252,14 @@ saichan_init(kobj_t obj, void *devinfo, struct snd_dbuf *b,
scp = (struct sc_pcminfo *)devinfo;
sc = scp->sc;
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
ch = &scp->chan[0];
ch->dir = dir;
ch->run = 0;
ch->buffer = b;
ch->channel = c;
ch->parent = scp;
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
if (sndbuf_setup(ch->buffer, sc->buf_base, sc->dma_size) != 0) {
device_printf(scp->dev, "Can't setup sndbuf.\n");
@@ -280,9 +280,9 @@ saichan_free(kobj_t obj, void *data)
device_printf(scp->dev, "saichan_free()\n");
#endif
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
/* TODO: free channel buffer */
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return (0);
}
@@ -369,7 +369,7 @@ saichan_setblocksize(kobj_t obj, void *data, uint32_t blocksize)
sndbuf_resize(ch->buffer, sc->dma_size / blocksize, blocksize);
- sc->period = sndbuf_getblksz(ch->buffer);
+ sc->period = ch->buffer->blksz;
return (sc->period);
}
@@ -513,7 +513,7 @@ saichan_trigger(kobj_t obj, void *data, int go)
struct sc_pcminfo *scp = ch->parent;
struct sc_info *sc = scp->sc;
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
switch (go) {
case PCMTRIG_START:
@@ -532,7 +532,7 @@ saichan_trigger(kobj_t obj, void *data, int go)
break;
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return (0);
}
@@ -691,7 +691,7 @@ sai_attach(device_t dev)
sc->sr = &rate_map[0];
sc->pos = 0;
- sc->lock = snd_mtxcreate(device_get_nameunit(dev), "sai softc");
+ mtx_init(&sc->lock, device_get_nameunit(dev), "sai softc");
if (sc->lock == NULL) {
device_printf(dev, "Cant create mtx\n");
return (ENXIO);