Esempio n. 1
0
int __hsi_read_cancel(struct hsi_channel *ch)
{
	int err = -ENODATA;

	if (ch->read_data.size == 1)
		err = hsi_driver_cancel_read_interrupt(ch);
	else if (ch->read_data.size > 1)
		err = hsi_driver_cancel_read_dma(ch);
	else
		dev_dbg(ch->dev->device.parent, "%s : Nothing to cancel %d\n",
			__func__, ch->read_data.size);

	dev_dbg(ch->dev->device.parent, "%s : %d\n", __func__, err);

	return err;
}
Esempio n. 2
0
int __hsi_read_cancel(struct hsi_channel *ch)
{
	int err = -ENODATA;
	struct hsi_dev *hsi_ctrl = ch->hsi_port->hsi_controller;

	if (ch->read_data.size == 1)
		err = hsi_driver_cancel_read_interrupt(ch);
	else if (ch->read_data.size > 1)
		err = hsi_driver_cancel_read_dma(ch);
	else
		dev_dbg(hsi_ctrl->dev, "%s : Nothing to cancel %d\n", __func__,
			ch->read_data.size);

	/* Trash any frame still in the FIFO */
	hsi_hsr_fifo_flush_channel(hsi_ctrl, ch->hsi_port->port_number,
				   ch->channel_number);

	dev_dbg(hsi_ctrl->dev, "%s : %d\n", __func__, err);

	return err;
}