Lines Matching defs:info

26 	struct dma_info *info;
32 list_for_each_entry(info, &registered_dmac_list, list) {
33 if ((chan < info->first_vchannel_nr) ||
34 (chan >= info->first_vchannel_nr + info->nr_channels))
37 return info;
46 struct dma_info *info;
52 list_for_each_entry(info, &registered_dmac_list, list)
53 nr += info->nr_channels;
60 struct dma_info *info = get_dma_info(chan);
64 if (unlikely(!info))
67 for (i = 0; i < info->nr_channels; i++) {
68 channel = &info->channels[i];
79 struct dma_info *info = get_dma_info(chan);
82 if (info->ops->get_residue)
83 return info->ops->get_residue(channel);
92 struct dma_info *info = get_dma_info(chan);
101 if (info->ops->request) {
102 result = info->ops->request(channel);
115 struct dma_info *info = get_dma_info(chan);
118 if (info->ops->free)
119 info->ops->free(channel);
127 struct dma_info *info = get_dma_info(chan);
132 (info->ops->get_residue(channel) == 0));
136 while (info->ops->get_residue(channel))
143 struct dma_info *info = get_dma_info(chan);
146 if (info->ops->configure)
147 info->ops->configure(channel, flags);
154 struct dma_info *info = get_dma_info(chan);
162 return info->ops->xfer(channel);
168 struct dma_info *info = v;
176 list_for_each_entry(info, &registered_dmac_list, list) {
182 for (i = 0; i < info->nr_channels; i++) {
183 struct dma_channel *channel = info->channels + i;
189 info->name, channel->dev_id);
196 int register_dmac(struct dma_info *info)
200 INIT_LIST_HEAD(&info->list);
203 info->name, info->nr_channels, info->nr_channels > 1 ? "s" : "");
205 BUG_ON((info->flags & DMAC_CHANNELS_CONFIGURED) && !info->channels);
207 info->pdev = platform_device_register_simple(info->name, -1,
209 if (IS_ERR(info->pdev))
210 return PTR_ERR(info->pdev);
215 if (!(info->flags & DMAC_CHANNELS_CONFIGURED)) {
218 size = sizeof(struct dma_channel) * info->nr_channels;
220 info->channels = kzalloc(size, GFP_KERNEL);
221 if (!info->channels)
226 info->first_vchannel_nr = total_channels;
227 for (i = 0; i < info->nr_channels; i++) {
228 struct dma_channel *chan = &info->channels[i];
232 chan->chan = info->first_channel_nr + i;
233 chan->vchan = info->first_channel_nr + i + total_channels;
237 if (info->flags & DMAC_CHANNELS_TEI_CAPABLE)
241 dma_create_sysfs_files(chan, info);
244 list_add(&info->list, &registered_dmac_list);
250 void unregister_dmac(struct dma_info *info)
254 for (i = 0; i < info->nr_channels; i++)
255 dma_remove_sysfs_files(info->channels + i, info);
257 if (!(info->flags & DMAC_CHANNELS_CONFIGURED))
258 kfree(info->channels);
260 list_del(&info->list);
261 platform_device_unregister(info->pdev);