Lines Matching full:offload
21 #include <linux/spi/offload/provider.h>
160 struct spi_offload *offload; member
270 /* If we have an offload transfer, we can't rx to buffer */ in spi_engine_precompile_message()
271 if (msg->offload && xfer->rx_buf) in spi_engine_precompile_message()
578 struct spi_engine_offload *priv = msg->offload->priv; in spi_engine_offload_prepare()
612 * This protects against calling spi_optimize_message() with an offload in spi_engine_offload_prepare()
651 static void spi_engine_offload_unprepare(struct spi_offload *offload) in spi_engine_offload_unprepare() argument
653 struct spi_engine_offload *priv = offload->priv; in spi_engine_offload_unprepare()
683 msg->offload ? 0 : AXI_SPI_ENGINE_CUR_MSG_SYNC_ID)); in spi_engine_optimize_message()
687 if (msg->offload) { in spi_engine_optimize_message()
701 if (msg->offload) in spi_engine_unoptimize_message()
702 spi_engine_offload_unprepare(msg->offload); in spi_engine_unoptimize_message()
717 if (!spi_engine->offload) in spi_engine_get_offload()
723 priv = spi_engine->offload->priv; in spi_engine_get_offload()
728 return spi_engine->offload; in spi_engine_get_offload()
731 static void spi_engine_put_offload(struct spi_offload *offload) in spi_engine_put_offload() argument
733 struct spi_engine_offload *priv = offload->priv; in spi_engine_put_offload()
770 if (msg->offload) { in spi_engine_transfer_one_message()
771 dev_err(&host->dev, "Single transfer offload not supported\n"); in spi_engine_transfer_one_message()
831 static int spi_engine_trigger_enable(struct spi_offload *offload) in spi_engine_trigger_enable() argument
833 struct spi_engine_offload *priv = offload->priv; in spi_engine_trigger_enable()
845 static void spi_engine_trigger_disable(struct spi_offload *offload) in spi_engine_trigger_disable() argument
847 struct spi_engine_offload *priv = offload->priv; in spi_engine_trigger_disable()
859 *spi_engine_tx_stream_request_dma_chan(struct spi_offload *offload) in spi_engine_tx_stream_request_dma_chan() argument
861 struct spi_engine_offload *priv = offload->priv; in spi_engine_tx_stream_request_dma_chan()
864 snprintf(name, sizeof(name), "offload%u-tx", priv->offload_num); in spi_engine_tx_stream_request_dma_chan()
866 return dma_request_chan(offload->provider_dev, name); in spi_engine_tx_stream_request_dma_chan()
870 *spi_engine_rx_stream_request_dma_chan(struct spi_offload *offload) in spi_engine_rx_stream_request_dma_chan() argument
872 struct spi_engine_offload *priv = offload->priv; in spi_engine_rx_stream_request_dma_chan()
875 snprintf(name, sizeof(name), "offload%u-rx", priv->offload_num); in spi_engine_rx_stream_request_dma_chan()
877 return dma_request_chan(offload->provider_dev, name); in spi_engine_rx_stream_request_dma_chan()
917 * REVISIT: for now, all SPI Engines only have one offload. In the in spi_engine_probe()
920 * now, we can tell if an offload is present if there is a trigger in spi_engine_probe()
926 spi_engine->offload = in spi_engine_probe()
929 if (IS_ERR(spi_engine->offload)) in spi_engine_probe()
930 return PTR_ERR(spi_engine->offload); in spi_engine_probe()
932 priv = spi_engine->offload->priv; in spi_engine_probe()
936 spi_engine->offload->ops = &spi_engine_offload_ops; in spi_engine_probe()
941 spi_engine->offload->xfer_flags |= SPI_OFFLOAD_XFER_RX_STREAM; in spi_engine_probe()
946 spi_engine->offload->xfer_flags |= SPI_OFFLOAD_XFER_TX_STREAM; in spi_engine_probe()