Changeset c885a21 in mainline for uspace/drv/audio/sb16/main.c
- Timestamp:
- 2011-11-14T12:38:50Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1269160
- Parents:
- 1b93658
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/audio/sb16/main.c
r1b93658 rc885a21 50 50 static int sb_add_device(ddf_dev_t *device); 51 51 static int sb_get_res(const ddf_dev_t *device, uintptr_t *sb_regs, 52 size_t *sb_regs_size, uintptr_t *mpu_regs, size_t *mpu_regs_size, int *irq); 52 size_t *sb_regs_size, uintptr_t *mpu_regs, size_t *mpu_regs_size, 53 int *irq, int *dma8, int *dma16); 53 54 static int sb_enable_interrupts(ddf_dev_t *device); 54 55 /*----------------------------------------------------------------------------*/ … … 81 82 { 82 83 assert(dev); 83 sb16_drv_t *sb = dev->driver_data; 84 assert(sb); 85 sb16_interrupt(sb); 84 assert(dev->driver_data); 85 sb16_interrupt(dev->driver_data); 86 86 } 87 87 /*----------------------------------------------------------------------------*/ … … 101 101 assert(device); 102 102 103 sb16_ drv_t *soft_state = ddf_dev_data_alloc(device, sizeof(sb16_drv_t));103 sb16_t *soft_state = ddf_dev_data_alloc(device, sizeof(sb16_t)); 104 104 int ret = soft_state ? EOK : ENOMEM; 105 105 CHECK_RET_RETURN(ret, "Failed to allocate sb16 structure.\n"); … … 107 107 uintptr_t sb_regs = 0, mpu_regs = 0; 108 108 size_t sb_regs_size = 0, mpu_regs_size = 0; 109 int irq = 0 ;109 int irq = 0, dma8 = 0, dma16 = 0; 110 110 111 111 ret = sb_get_res(device, &sb_regs, &sb_regs_size, &mpu_regs, 112 &mpu_regs_size, &irq );112 &mpu_regs_size, &irq, &dma8, &dma16); 113 113 CHECK_RET_RETURN(ret, 114 114 "Failed to get resources: %s.\n", str_error(ret)); … … 145 145 CHECK_RET_UNREG_DEST_RETURN(ret, "Failed to create mixer function."); 146 146 147 ret = sb16_init_sb16(soft_state, (void*)sb_regs, sb_regs_size); 147 ret = sb16_init_sb16( 148 soft_state, (void*)sb_regs, sb_regs_size, device, dma8, dma16); 148 149 CHECK_RET_UNREG_DEST_RETURN(ret, 149 150 "Failed to init sb16 driver: %s.\n", str_error(ret)); … … 183 184 /*----------------------------------------------------------------------------*/ 184 185 static int sb_get_res(const ddf_dev_t *device, uintptr_t *sb_regs, 185 size_t *sb_regs_size, uintptr_t *mpu_regs, size_t *mpu_regs_size, int *irq) 186 size_t *sb_regs_size, uintptr_t *mpu_regs, size_t *mpu_regs_size, 187 int *irq, int *dma8, int *dma16) 186 188 { 187 189 assert(device); … … 191 193 assert(mpu_regs_size); 192 194 assert(irq); 195 assert(dma8); 196 assert(dma16); 193 197 194 198 async_sess_t *parent_sess = … … 224 228 } 225 229 break; 230 case DMA_CHANNEL_16: 231 *dma16 = res->res.dma_channel.dma16; 232 ddf_log_debug("Found DMA16 channel: %d.\n", *dma16); 233 break; 234 case DMA_CHANNEL_8: 235 *dma8 = res->res.dma_channel.dma8; 236 ddf_log_debug("Found DMA8 channel: %d.\n", *dma8); 226 237 default: 227 238 break;
Note:
See TracChangeset
for help on using the changeset viewer.