Lines Matching full:offload
14 * processor core to offload the work.
28 #include <linux/spi/offload/consumer.h>
29 #include <linux/spi/offload/provider.h>
30 #include <linux/spi/offload/types.h>
36 struct spi_offload *offload; member
57 * devm_spi_offload_alloc() - Allocate offload instance
61 * Offload providers should use this to allocate offload instances.
63 * Return: Pointer to new offload instance or error on failure.
68 struct spi_offload *offload; in devm_spi_offload_alloc() local
71 offload = devm_kzalloc(dev, sizeof(*offload), GFP_KERNEL); in devm_spi_offload_alloc()
72 if (!offload) in devm_spi_offload_alloc()
79 offload->provider_dev = dev; in devm_spi_offload_alloc()
80 offload->priv = priv; in devm_spi_offload_alloc()
82 return offload; in devm_spi_offload_alloc()
90 resource->controller->put_offload(resource->offload); in spi_offload_put()
95 * devm_spi_offload_get() - Get an offload instance
98 * @config: Offload configuration
100 * Peripheral drivers call this function to get an offload instance that meets
101 * the requirements specified in @config. If no suitable offload instance is
104 * Return: Offload instance or error on failure.
111 struct spi_offload *offload; in devm_spi_offload_get() local
124 offload = spi->controller->get_offload(spi, config); in devm_spi_offload_get()
125 if (IS_ERR(offload)) { in devm_spi_offload_get()
127 return offload; in devm_spi_offload_get()
131 resource->offload = offload; in devm_spi_offload_get()
137 return offload; in devm_spi_offload_get()
201 * devm_spi_offload_trigger_get() - Get an offload trigger instance
203 * @offload: Offload instance connected to a trigger.
206 * Return: Offload trigger instance or error on failure.
210 struct spi_offload *offload, in devm_spi_offload_trigger_get() argument
217 ret = fwnode_property_get_reference_args(dev_fwnode(offload->provider_dev), in devm_spi_offload_trigger_get()
239 * @trigger: Offload trigger instance
267 * spi_offload_trigger_enable - enables trigger for offload
268 * @offload: Offload instance
269 * @trigger: Offload trigger instance
272 * There must be a prepared offload instance with the specified ID (i.e.
273 * spi_optimize_message() was called with the same offload assigned to the
274 * message). This will also reserve the bus for exclusive use by the offload
283 int spi_offload_trigger_enable(struct spi_offload *offload, in spi_offload_trigger_enable() argument
294 if (offload->ops && offload->ops->trigger_enable) { in spi_offload_trigger_enable()
295 ret = offload->ops->trigger_enable(offload); in spi_offload_trigger_enable()
303 if (offload->ops->trigger_disable) in spi_offload_trigger_enable()
304 offload->ops->trigger_disable(offload); in spi_offload_trigger_enable()
314 * spi_offload_trigger_disable - disables hardware trigger for offload
315 * @offload: Offload instance
316 * @trigger: Offload trigger instance
318 * Disables the hardware trigger for the offload instance with the specified ID
323 void spi_offload_trigger_disable(struct spi_offload *offload, in spi_offload_trigger_disable() argument
326 if (offload->ops && offload->ops->trigger_disable) in spi_offload_trigger_disable()
327 offload->ops->trigger_disable(offload); in spi_offload_trigger_disable()
347 * @offload: Offload instance
350 * %SPI_OFFLOAD_XFER_TX_STREAM offload flag.
356 struct spi_offload *offload) in devm_spi_offload_tx_stream_request_dma_chan() argument
361 if (!offload->ops || !offload->ops->tx_stream_request_dma_chan) in devm_spi_offload_tx_stream_request_dma_chan()
364 chan = offload->ops->tx_stream_request_dma_chan(offload); in devm_spi_offload_tx_stream_request_dma_chan()
379 * @offload: Offload instance
382 * %SPI_OFFLOAD_XFER_RX_STREAM offload flag.
388 struct spi_offload *offload) in devm_spi_offload_rx_stream_request_dma_chan() argument
393 if (!offload->ops || !offload->ops->rx_stream_request_dma_chan) in devm_spi_offload_rx_stream_request_dma_chan()
396 chan = offload->ops->rx_stream_request_dma_chan(offload); in devm_spi_offload_rx_stream_request_dma_chan()
426 * devm_spi_offload_trigger_register() - Allocate and register an offload trigger
460 * @trigger: Offload trigger instance.