static int dummy_num_buffers;
struct pipe {
- struct most_aim *ptr;
+ struct most_aim *aim;
int refs;
int num_buffers;
};
list_for_each_entry(i, &instance_list, list) {
list_for_each_entry(c, &i->channel_list, list) {
- if (c->aim0.ptr == aim || c->aim1.ptr == aim) {
+ if (c->aim0.aim == aim || c->aim1.aim == aim) {
offs += snprintf(buf + offs, PAGE_SIZE - offs,
"%s:%s\n",
dev_name(&i->iface->dev),
int ret;
struct most_aim **aim_ptr;
- if (!c->aim0.ptr)
- aim_ptr = &c->aim0.ptr;
- else if (!c->aim1.ptr)
- aim_ptr = &c->aim1.ptr;
+ if (!c->aim0.aim)
+ aim_ptr = &c->aim0.aim;
+ else if (!c->aim1.aim)
+ aim_ptr = &c->aim1.aim;
else
return -ENOSPC;
if (aim->disconnect_channel(c->iface, c->channel_id))
return -EIO;
- if (c->aim0.ptr == aim)
- c->aim0.ptr = NULL;
- if (c->aim1.ptr == aim)
- c->aim1.ptr = NULL;
+ if (c->aim0.aim == aim)
+ c->aim0.aim = NULL;
+ if (c->aim1.aim == aim)
+ c->aim1.aim = NULL;
return len;
}
list_add_tail(&mbo->list, &c->fifo);
spin_unlock_irqrestore(&c->fifo_lock, flags);
- if (c->aim0.refs && c->aim0.ptr->tx_completion)
- c->aim0.ptr->tx_completion(c->iface, c->channel_id);
+ if (c->aim0.refs && c->aim0.aim->tx_completion)
+ c->aim0.aim->tx_completion(c->iface, c->channel_id);
- if (c->aim1.refs && c->aim1.ptr->tx_completion)
- c->aim1.ptr->tx_completion(c->iface, c->channel_id);
+ if (c->aim1.refs && c->aim1.aim->tx_completion)
+ c->aim1.aim->tx_completion(c->iface, c->channel_id);
}
/**
return -EINVAL;
if (c->aim0.refs && c->aim1.refs &&
- ((aim == c->aim0.ptr && c->aim0.num_buffers <= 0) ||
- (aim == c->aim1.ptr && c->aim1.num_buffers <= 0)))
+ ((aim == c->aim0.aim && c->aim0.num_buffers <= 0) ||
+ (aim == c->aim1.aim && c->aim1.num_buffers <= 0)))
return 0;
spin_lock_irqsave(&c->fifo_lock, flags);
return NULL;
if (c->aim0.refs && c->aim1.refs &&
- ((aim == c->aim0.ptr && c->aim0.num_buffers <= 0) ||
- (aim == c->aim1.ptr && c->aim1.num_buffers <= 0)))
+ ((aim == c->aim0.aim && c->aim0.num_buffers <= 0) ||
+ (aim == c->aim1.aim && c->aim1.num_buffers <= 0)))
return NULL;
- if (aim == c->aim0.ptr)
+ if (aim == c->aim0.aim)
num_buffers_ptr = &c->aim0.num_buffers;
- else if (aim == c->aim1.ptr)
+ else if (aim == c->aim1.aim)
num_buffers_ptr = &c->aim1.num_buffers;
else
num_buffers_ptr = &dummy_num_buffers;
if (atomic_sub_and_test(1, &c->mbo_nq_level))
c->is_starving = 1;
- if (c->aim0.refs && c->aim0.ptr->rx_completion &&
- c->aim0.ptr->rx_completion(mbo) == 0)
+ if (c->aim0.refs && c->aim0.aim->rx_completion &&
+ c->aim0.aim->rx_completion(mbo) == 0)
return;
- if (c->aim1.refs && c->aim1.ptr->rx_completion &&
- c->aim1.ptr->rx_completion(mbo) == 0)
+ if (c->aim1.refs && c->aim1.aim->rx_completion &&
+ c->aim1.aim->rx_completion(mbo) == 0)
return;
most_put_mbo(mbo);
atomic_set(&c->mbo_ref, num_buffer);
out:
- if (aim == c->aim0.ptr)
+ if (aim == c->aim0.aim)
c->aim0.refs++;
- if (aim == c->aim1.ptr)
+ if (aim == c->aim1.aim)
c->aim1.refs++;
mutex_unlock(&c->start_mutex);
return 0;
c->is_poisoned = false;
out:
- if (aim == c->aim0.ptr)
+ if (aim == c->aim0.aim)
c->aim0.refs--;
- if (aim == c->aim1.ptr)
+ if (aim == c->aim1.aim)
c->aim1.refs--;
mutex_unlock(&c->start_mutex);
return 0;
list_for_each_entry_safe(i, i_tmp, &instance_list, list) {
list_for_each_entry_safe(c, tmp, &i->channel_list, list) {
- if (c->aim0.ptr == aim || c->aim1.ptr == aim)
+ if (c->aim0.aim == aim || c->aim1.aim == aim)
aim->disconnect_channel(
c->iface, c->channel_id);
- if (c->aim0.ptr == aim)
- c->aim0.ptr = NULL;
- if (c->aim1.ptr == aim)
- c->aim1.ptr = NULL;
+ if (c->aim0.aim == aim)
+ c->aim0.aim = NULL;
+ if (c->aim1.aim == aim)
+ c->aim1.aim = NULL;
}
}
device_unregister(&aim->dev);
inst = iface->priv;
for (i = 0; i < iface->num_channels; i++) {
c = inst->channel[i];
- if (c->aim0.ptr)
- c->aim0.ptr->disconnect_channel(c->iface,
+ if (c->aim0.aim)
+ c->aim0.aim->disconnect_channel(c->iface,
c->channel_id);
- if (c->aim1.ptr)
- c->aim1.ptr->disconnect_channel(c->iface,
+ if (c->aim1.aim)
+ c->aim1.aim->disconnect_channel(c->iface,
c->channel_id);
- c->aim0.ptr = NULL;
- c->aim1.ptr = NULL;
+ c->aim0.aim = NULL;
+ c->aim1.aim = NULL;
list_del(&c->list);
device_unregister(&c->dev);
kfree(c);