Beispiel #1
0
int __hsi_write_cancel(struct hsi_channel *ch)
{
	int err = -ENODATA;

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

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

	return err;
}
Beispiel #2
0
int __hsi_write_cancel(struct hsi_channel *ch)
{
	int err = -ENODATA;
	struct hsi_dev *hsi_ctrl = ch->hsi_port->hsi_controller;

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

	/* Trash any frame still in the FIFO */
	hsi_hst_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;
}