mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
Xilinx ZynqMP DisplayPort Subsystem driver
-----BEGIN PGP SIGNATURE----- iQJWBAABCgBAFiEEvZRkio5H7O2/GZsYYiVdKZ4oCyQFAl8SPokiHGxhdXJlbnQu cGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbQAKCRBiJV0pnigLJEfMEACTOIz88BhU UHi/ZiLGrziEgQ/tr+TnGE98Usclm2C1PLOHR+vHQKvm4fhppqvDaAFdXCuDg1Qd korMYFMSBC3iD8TMHrU7CPX5H3tDixpnwE6DreifHnTXWvLSJA9bgYrqLuOD5fv9 dTyhfzQQhfLjNmqwTJDQAmZqW9lBsYwBXxvCwgACjnSZo3CMzNbUEADv7ZdptuzN k+CbR4mgn+plQljaOp1iRvQz30BdNxQMPyIqsFU/oDxjznls/RQ2YFtU40k72mso dUrpP/VdBTkYXAu7nsfGTlATgPoj8z7ZVSAGNGvltmasQw/t2Na62kmmC+AAGNmw KHPP2HUMqTnC1SjlHOZIMncSRr/64fdY8Gr26Z3Qtb/odNlJ2k6pWM4O7/7DBPlJ QBfOWWVBfhezj525KJkLU8MkBa0ztuENFqmDHe3d5SkBtCfIkw0LC6Orjn2HROqd rhsUw8DUKrWxVe8lar+twCueoK21GqvyIc9rAJxvR/Uph7dJUYCzAHeCNysMOjlf hpfCJ4pwksXzUjVSqEUazh3TWqkVwDQSEmg5KO4OM/Tpg3oHFKDE0O4VMsz2CZ4W 1tLlnNwHwXmPX3AS34Qe2LTnXqueIqEj6uqNsNfZNLhYKirDWNKnroigRdfoXvXI I6Eeo5caMBMmdjZwgt+US2y9lhX2YpxQyA== =eq5n -----END PGP SIGNATURE----- Merge tag 'drm-xilinx-dpsub-20200718' of git://linuxtv.org/pinchartl/media into drm-next Xilinx ZynqMP DisplayPort Subsystem driver Signed-off-by: Dave Airlie <airlied@redhat.com> From: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200718001755.GA5962@pendragon.ideasonboard.com
This commit is contained in:
commit
959ed53808
21 changed files with 5984 additions and 1 deletions
|
@ -61,6 +61,8 @@ enum dma_transaction_type {
|
|||
DMA_SLAVE,
|
||||
DMA_CYCLIC,
|
||||
DMA_INTERLEAVE,
|
||||
DMA_REPEAT,
|
||||
DMA_LOAD_EOT,
|
||||
/* last transaction type for creation of the capabilities mask */
|
||||
DMA_TX_TYPE_END,
|
||||
};
|
||||
|
@ -176,6 +178,16 @@ struct dma_interleaved_template {
|
|||
* @DMA_PREP_CMD: tell the driver that the data passed to DMA API is command
|
||||
* data and the descriptor should be in different format from normal
|
||||
* data descriptors.
|
||||
* @DMA_PREP_REPEAT: tell the driver that the transaction shall be automatically
|
||||
* repeated when it ends until a transaction is issued on the same channel
|
||||
* with the DMA_PREP_LOAD_EOT flag set. This flag is only applicable to
|
||||
* interleaved transactions and is ignored for all other transaction types.
|
||||
* @DMA_PREP_LOAD_EOT: tell the driver that the transaction shall replace any
|
||||
* active repeated (as indicated by DMA_PREP_REPEAT) transaction when the
|
||||
* repeated transaction ends. Not setting this flag when the previously queued
|
||||
* transaction is marked with DMA_PREP_REPEAT will cause the new transaction
|
||||
* to never be processed and stay in the issued queue forever. The flag is
|
||||
* ignored if the previous transaction is not a repeated transaction.
|
||||
*/
|
||||
enum dma_ctrl_flags {
|
||||
DMA_PREP_INTERRUPT = (1 << 0),
|
||||
|
@ -186,6 +198,8 @@ enum dma_ctrl_flags {
|
|||
DMA_PREP_FENCE = (1 << 5),
|
||||
DMA_CTRL_REUSE = (1 << 6),
|
||||
DMA_PREP_CMD = (1 << 7),
|
||||
DMA_PREP_REPEAT = (1 << 8),
|
||||
DMA_PREP_LOAD_EOT = (1 << 9),
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -980,6 +994,9 @@ static inline struct dma_async_tx_descriptor *dmaengine_prep_interleaved_dma(
|
|||
{
|
||||
if (!chan || !chan->device || !chan->device->device_prep_interleaved_dma)
|
||||
return NULL;
|
||||
if (flags & DMA_PREP_REPEAT &&
|
||||
!test_bit(DMA_REPEAT, chan->device->cap_mask.bits))
|
||||
return NULL;
|
||||
|
||||
return chan->device->device_prep_interleaved_dma(chan, xt, flags);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue