Changeset 03362fbd in mainline for uspace/drv/audio
- Timestamp:
- 2013-02-09T23:14:45Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 22dfd38
- Parents:
- b5d2e57 (diff), 005b765 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- uspace/drv/audio/sb16
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/audio/sb16/dsp.c
rb5d2e57 r03362fbd 34 34 35 35 #include <as.h> 36 #include < bool.h>36 #include <stdbool.h> 37 37 #include <ddi.h> 38 38 #include <devman.h> … … 159 159 { 160 160 async_sess_t *sess = devman_parent_device_connect(EXCHANGE_ATOMIC, 161 d sp->sb_dev->handle, IPC_FLAG_BLOCKING);161 ddf_dev_get_handle(dsp->sb_dev), IPC_FLAG_BLOCKING); 162 162 163 163 const int ret = hw_res_dma_channel_setup(sess, … … 182 182 } 183 183 184 ddf_log_verbose("Setup dma buffer at %p(%p) .", buffer, pa, size);184 ddf_log_verbose("Setup dma buffer at %p(%p) %zu.", buffer, pa, size); 185 185 assert((uintptr_t)pa < (1 << 25)); 186 186 … … 301 301 assert(dsp->buffer.data); 302 302 async_sess_t *sess = devman_parent_device_connect(EXCHANGE_ATOMIC, 303 d sp->sb_dev->handle, IPC_FLAG_BLOCKING);303 ddf_dev_get_handle(dsp->sb_dev), IPC_FLAG_BLOCKING); 304 304 305 305 // TODO: Assumes DMA 16 -
uspace/drv/audio/sb16/main.c
rb5d2e57 r03362fbd 49 49 50 50 static int sb_add_device(ddf_dev_t *device); 51 static int sb_get_res( constddf_dev_t *device, uintptr_t *sb_regs,51 static int sb_get_res(ddf_dev_t *device, uintptr_t *sb_regs, 52 52 size_t *sb_regs_size, uintptr_t *mpu_regs, size_t *mpu_regs_size, 53 53 int *irq, int *dma8, int *dma16); … … 75 75 { 76 76 printf(NAME": HelenOS SB16 audio driver.\n"); 77 ddf_log_init(NAME , LVL_DEBUG2);77 ddf_log_init(NAME); 78 78 return ddf_driver_main(&sb_driver); 79 79 } … … 82 82 { 83 83 assert(dev); 84 assert(dev->driver_data); 85 sb16_interrupt(dev->driver_data); 84 sb16_t *sb16_dev = ddf_dev_data_get(dev); 85 assert(sb16_dev); 86 sb16_interrupt(sb16_dev); 86 87 } 87 88 … … 166 167 } 167 168 168 static int sb_get_res( constddf_dev_t *device, uintptr_t *sb_regs,169 static int sb_get_res(ddf_dev_t *device, uintptr_t *sb_regs, 169 170 size_t *sb_regs_size, uintptr_t *mpu_regs, size_t *mpu_regs_size, 170 171 int *irq, int *dma8, int *dma16) … … 172 173 assert(device); 173 174 174 async_sess_t *parent_sess = 175 devman_parent_device_connect(EXCHANGE_SERIALIZE, device->handle, 176 IPC_FLAG_BLOCKING); 175 async_sess_t *parent_sess = devman_parent_device_connect( 176 EXCHANGE_SERIALIZE, ddf_dev_get_handle(device), IPC_FLAG_BLOCKING); 177 177 if (!parent_sess) 178 178 return ENOMEM; … … 245 245 int sb_enable_interrupts(ddf_dev_t *device) 246 246 { 247 async_sess_t *parent_sess = 248 devman_parent_device_connect(EXCHANGE_SERIALIZE, device->handle, 249 IPC_FLAG_BLOCKING); 247 async_sess_t *parent_sess = devman_parent_device_connect( 248 EXCHANGE_SERIALIZE, ddf_dev_get_handle(device), IPC_FLAG_BLOCKING); 250 249 if (!parent_sess) 251 250 return ENOMEM; -
uspace/drv/audio/sb16/mixer.c
rb5d2e57 r03362fbd 28 28 29 29 #include <assert.h> 30 #include < bool.h>30 #include <stdbool.h> 31 31 #include <errno.h> 32 32 #include <libarch/ddi.h> -
uspace/drv/audio/sb16/mixer_iface.c
rb5d2e57 r03362fbd 41 41 { 42 42 assert(fun); 43 assert(fun->driver_data);44 const sb_mixer_t *mixer = fun->driver_data;43 const sb_mixer_t *mixer = ddf_fun_data_get(fun); 44 assert(mixer); 45 45 if (name) 46 46 *name = sb_mixer_type_str(mixer->type); … … 55 55 { 56 56 assert(fun); 57 assert(fun->driver_data);58 const sb_mixer_t *mixer = fun->driver_data;57 const sb_mixer_t *mixer = ddf_fun_data_get(fun); 58 assert(mixer); 59 59 return 60 60 sb_mixer_get_control_item_info(mixer, item, name, channels); … … 65 65 { 66 66 assert(fun); 67 assert(fun->driver_data);68 const sb_mixer_t *mixer = fun->driver_data;67 const sb_mixer_t *mixer = ddf_fun_data_get(fun); 68 assert(mixer); 69 69 return sb_mixer_get_channel_info(mixer, item, channel, name, levels); 70 70 } … … 87 87 { 88 88 assert(fun); 89 assert(fun->driver_data);90 const sb_mixer_t *mixer = fun->driver_data;89 const sb_mixer_t *mixer = ddf_fun_data_get(fun); 90 assert(mixer); 91 91 return sb_mixer_set_volume_level(mixer, item, channel, volume); 92 92 } … … 96 96 { 97 97 assert(fun); 98 assert(fun->driver_data);99 const sb_mixer_t *mixer = fun->driver_data;98 const sb_mixer_t *mixer = ddf_fun_data_get(fun); 99 assert(mixer); 100 100 unsigned levels; 101 101 const int ret = -
uspace/drv/audio/sb16/pcm_iface.c
rb5d2e57 r03362fbd 43 43 { 44 44 assert(fun); 45 assert(fun->driver_data); 46 return fun->driver_data; 45 sb_dsp_t *dsp = ddf_fun_data_get(fun); 46 assert(dsp); 47 return dsp; 47 48 } 48 49 -
uspace/drv/audio/sb16/sb16.c
rb5d2e57 r03362fbd 27 27 */ 28 28 29 #define _DDF_DATA_IMPLANT 30 29 31 #include <errno.h> 30 32 #include <str_error.h> … … 115 117 return ret; 116 118 } 117 dsp_fun->driver_data = &sb->dsp; 118 dsp_fun->ops = &sb_pcm_ops; 119 //TODO remove data implant 120 ddf_fun_data_implant(dsp_fun, &sb->dsp); 121 ddf_fun_set_ops(dsp_fun, &sb_pcm_ops); 119 122 ddf_log_note("Sound blaster DSP (%x.%x) initialized.", 120 123 sb->dsp.version.major, sb->dsp.version.minor); … … 124 127 ddf_log_error( 125 128 "Failed to bind PCM function: %s.", str_error(ret)); 126 dsp_fun->driver_data = NULL;129 // TODO implanted data 127 130 ddf_fun_destroy(dsp_fun); 128 131 return ret; … … 133 136 ddf_log_error("Failed register PCM function in category: %s.", 134 137 str_error(ret)); 135 d sp_fun->driver_data = NULL;136 ddf_fun_unbind(dsp_fun);138 ddf_fun_unbind(dsp_fun); 139 // TODO implanted data 137 140 ddf_fun_destroy(dsp_fun); 138 141 return ret; … … 147 150 ddf_log_error("Failed to create mixer function."); 148 151 ddf_fun_unbind(dsp_fun); 149 dsp_fun->driver_data = NULL;152 // TODO implanted data 150 153 ddf_fun_destroy(dsp_fun); 151 154 return ENOMEM; … … 156 159 str_error(ret)); 157 160 ddf_fun_unbind(dsp_fun); 158 dsp_fun->driver_data = NULL;161 // TODO implanted data 159 162 ddf_fun_destroy(dsp_fun); 160 163 ddf_fun_destroy(mixer_fun); … … 164 167 ddf_log_note("Initialized mixer: %s.", 165 168 sb_mixer_type_str(sb->mixer.type)); 166 mixer_fun->driver_data = &sb->mixer;167 mixer_fun->ops = &sb_mixer_ops;169 ddf_fun_data_implant(mixer_fun, &sb->mixer); 170 ddf_fun_set_ops(mixer_fun, &sb_mixer_ops); 168 171 169 172 ret = ddf_fun_bind(mixer_fun); … … 171 174 ddf_log_error( 172 175 "Failed to bind mixer function: %s.", str_error(ret)); 173 mixer_fun->driver_data = NULL;176 // TODO implanted data 174 177 ddf_fun_destroy(mixer_fun); 175 178 176 179 ddf_fun_unbind(dsp_fun); 177 dsp_fun->driver_data = NULL;180 // TODO implanted data 178 181 ddf_fun_destroy(dsp_fun); 179 182 return ret;
Note:
See TracChangeset
for help on using the changeset viewer.