diff --git a/bsp/qemu-vexpress-a9/drivers/audio/drv_audio.c b/bsp/qemu-vexpress-a9/drivers/audio/drv_audio.c index eb3cc82ea2f63570ac774130b9cb1ebe011e35f2..53161ef22bae810565927dc9f798e3ad704efbdd 100644 --- a/bsp/qemu-vexpress-a9/drivers/audio/drv_audio.c +++ b/bsp/qemu-vexpress-a9/drivers/audio/drv_audio.c @@ -274,6 +274,18 @@ static rt_err_t codec_control(rt_device_t dev, int cmd, void *args) return result; } +#ifdef RT_USING_DEVICE_OPS +const static struct rt_device_ops codec_ops = +{ + codec_init, + codec_open, + codec_close, + codec_read, + codec_write, + codec_control +}; +#endif + int audio_hw_init(void) { struct audio_device *codec = &audio_device_drive; @@ -282,12 +294,16 @@ int audio_hw_init(void) codec->parent.rx_indicate = RT_NULL; codec->parent.tx_complete = RT_NULL; +#ifdef RT_USING_DEVICE_OPS + codec->parent.ops = &codec_ops; +#else codec->parent.init = codec_init; codec->parent.open = codec_open; codec->parent.close = codec_close; codec->parent.read = codec_read; codec->parent.write = codec_write; codec->parent.control = codec_control; +#endif codec->parent.user_data = RT_NULL;