Changeset 93c3163 in mainline


Ignore:
Timestamp:
2014-08-25T22:11:12Z (10 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
99cb9bf
Parents:
31ccd42a
Message:

Dummy pcm_iface.

Location:
uspace/drv/audio/hdaudio
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/audio/hdaudio/Makefile

    r31ccd42a r93c3163  
    2929USPACE_PREFIX = ../../..
    3030LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     31EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include -I$(LIBPCM_PREFIX)/include
    3232BINARY = hdaudio
    3333
     
    3737        hdactl.c \
    3838        hdaudio.c \
     39        pcm_iface.c \
    3940        stream.c
    4041
  • uspace/drv/audio/hdaudio/hdaudio.c

    r31ccd42a r93c3163  
    4646#include "hdactl.h"
    4747#include "hdaudio.h"
     48#include "pcm_iface.h"
    4849#include "spec/regs.h"
    4950
     
    7172};
    7273
     74ddf_dev_ops_t hda_pcm_ops = {
     75        .interfaces[AUDIO_PCM_BUFFER_IFACE] = &hda_pcm_iface
     76};
     77
    7378irq_pio_range_t hdaudio_irq_pio_ranges[] = {
    7479        {
     
    144149static int hda_dev_add(ddf_dev_t *dev)
    145150{
    146         ddf_fun_t *fun_a;
     151        ddf_fun_t *fun_pcm;
    147152        hda_t *hda = NULL;
    148153        hw_res_list_parsed_t res;
     
    264269
    265270        ddf_msg(LVL_NOTE, "create function");
    266         fun_a = ddf_fun_create(dev, fun_exposed, "a");
    267         if (fun_a == NULL) {
    268                 ddf_msg(LVL_ERROR, "Failed creating function 'a'.");
     271        fun_pcm = ddf_fun_create(dev, fun_exposed, "pcm");
     272        if (fun_pcm == NULL) {
     273                ddf_msg(LVL_ERROR, "Failed creating function 'pcm'.");
    269274                rc = ENOMEM;
    270275                goto error;
    271276        }
    272277
    273         hda->fun_a = fun_a;
    274 
    275         rc = ddf_fun_bind(fun_a);
     278        hda->fun_pcm = fun_pcm;
     279
     280        ddf_fun_set_ops(fun_pcm, &hda_pcm_ops);
     281
     282        rc = ddf_fun_bind(fun_pcm);
    276283        if (rc != EOK) {
    277                 ddf_msg(LVL_ERROR, "Failed binding function 'a'.");
    278                 ddf_fun_destroy(fun_a);
    279                 goto error;
    280         }
    281 
    282         ddf_fun_add_to_category(fun_a, "virtual");
     284                ddf_msg(LVL_ERROR, "Failed binding function 'pcm'.");
     285                ddf_fun_destroy(fun_pcm);
     286                goto error;
     287        }
     288
     289        ddf_fun_add_to_category(fun_pcm, "audio-pcm");
    283290        return EOK;
    284291error:
     
    299306        ddf_msg(LVL_DEBUG, "hda_dev_remove(%p)", dev);
    300307
    301         if (hda->fun_a != NULL) {
    302                 rc = ddf_fun_offline(hda->fun_a);
     308        if (hda->fun_pcm != NULL) {
     309                rc = ddf_fun_offline(hda->fun_pcm);
    303310                if (rc != EOK)
    304311                        return rc;
    305312
    306                 rc = ddf_fun_unbind(hda->fun_a);
     313                rc = ddf_fun_unbind(hda->fun_pcm);
    307314                if (rc != EOK)
    308315                        return rc;
     
    319326        ddf_msg(LVL_DEBUG, "hda_dev_remove(%p)", dev);
    320327
    321         if (hda->fun_a != NULL) {
    322                 rc = ddf_fun_unbind(hda->fun_a);
     328        if (hda->fun_pcm != NULL) {
     329                rc = ddf_fun_unbind(hda->fun_pcm);
    323330                if (rc != EOK)
    324331                        return rc;
  • uspace/drv/audio/hdaudio/hdaudio.h

    r31ccd42a r93c3163  
    4545typedef struct hda {
    4646        async_sess_t *parent_sess;
    47         ddf_fun_t *fun_a;
     47        ddf_fun_t *fun_pcm;
    4848        uint64_t rwbase;
    4949        size_t rwsize;
Note: See TracChangeset for help on using the changeset viewer.