Changeset 1864948 in mainline for uspace/drv/bus/isa/isa.c


Ignore:
Timestamp:
2012-08-18T14:24:40Z (12 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b28dabe
Parents:
6fd365d
Message:

isa: Implement DMA remain size query.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/bus/isa/isa.c

    r6fd365d r1864948  
    169169}
    170170
     171static int isa_fun_remain_dma(ddf_fun_t *fnode,
     172    unsigned channel, uint16_t *size)
     173{
     174        assert(size);
     175        assert(fnode);
     176        isa_fun_t *isa_fun = fnode->driver_data;
     177        assert(isa_fun);
     178        const hw_resource_list_t *res = &isa_fun->hw_resources;
     179        assert(res);
     180       
     181        for (size_t i = 0; i < res->count; ++i) {
     182                /* Check for assigned channel */
     183                if (((res->resources[i].type == DMA_CHANNEL_16) &&
     184                    (res->resources[i].res.dma_channel.dma16 == channel)) ||
     185                    ((res->resources[i].type == DMA_CHANNEL_8) &&
     186                    (res->resources[i].res.dma_channel.dma8 == channel))) {
     187                        return dma_channel_remain(channel, size);
     188                }
     189        }
     190       
     191        return EINVAL;
     192}
     193
    171194static hw_res_ops_t isa_fun_hw_res_ops = {
    172195        .get_resource_list = isa_fun_get_resources,
    173196        .enable_interrupt = isa_fun_enable_interrupt,
    174197        .dma_channel_setup = isa_fun_setup_dma,
     198        .dma_channel_remain = isa_fun_remain_dma,
    175199};
    176200
Note: See TracChangeset for help on using the changeset viewer.