Re: [PATCH 00/30] DMA: Mundane typo fixes

2021-03-28 Thread Bhaskar Chowdhury

On 07:29 Mon 29 Mar 2021, Christoph Hellwig wrote:

I really don't think these typo patchbomb are that useful.  I'm all
for fixing typos when working with a subsystem, but I'm not sure these
patchbombs help anything.


I am sure you are holding the wrong end of the wand and grossly failing to
understand.

Anyway, I hope I give a heads up ...find "your way" to fix those damn
thing...it's glaring


On Mon, Mar 29, 2021 at 05:22:56AM +0530, Bhaskar Chowdhury wrote:

This patch series fixes some trivial and rudimentary spellings in the COMMENT
sections.

Bhaskar Chowdhury (30):
  acpi-dma.c: Fix couple of typos
  altera-msgdma.c: Couple of typos fixed
  amba-pl08x.c: Fixed couple of typos
  bcm-sba-raid.c: Few typos fixed
  bcm2835-dma.c: Fix a typo
  idma64.c: Fix couple of typos
  iop-adma.c: Few typos fixed
  mv_xor.c: Fix a typo
  mv_xor.h: Fixed a typo
  mv_xor_v2.c: Fix a typo
  nbpfaxi.c: Fixed a typo
  of-dma.c: Fixed a typo
  s3c24xx-dma.c: Fix a typo
  Revert "s3c24xx-dma.c: Fix a typo"
  s3c24xx-dma.c: Few typos fixed
  st_fdma.h: Fix couple of typos
  ste_dma40_ll.h: Fix a typo
  tegra20-apb-dma.c: Fixed a typo
  xgene-dma.c: Few spello fixes
  at_hdmac.c: Quite a few spello fixes
  owl-dma.c: Fix a typo
  at_hdmac_regs.h: Couple of typo fixes
  dma-jz4780.c: Fix a typo
  Kconfig: Change Synopsys to Synopsis
  ste_dma40.c: Few spello fixes
  dw-axi-dmac-platform.c: Few typos fixed
  dpaa2-qdma.c: Fix a typo
  usb-dmac.c: Fix a typo
  edma.c: Fix a typo
  xilinx_dma.c: Fix a typo

 drivers/dma/Kconfig|  8 
 drivers/dma/acpi-dma.c |  4 ++--
 drivers/dma/altera-msgdma.c|  4 ++--
 drivers/dma/amba-pl08x.c   |  4 ++--
 drivers/dma/at_hdmac.c | 14 +++---
 drivers/dma/at_hdmac_regs.h|  4 ++--
 drivers/dma/bcm-sba-raid.c |  8 
 drivers/dma/bcm2835-dma.c  |  2 +-
 drivers/dma/dma-jz4780.c   |  2 +-
 drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c |  8 
 drivers/dma/idma64.c   |  4 ++--
 drivers/dma/iop-adma.c |  6 +++---
 drivers/dma/mv_xor.c   |  2 +-
 drivers/dma/mv_xor.h   |  2 +-
 drivers/dma/mv_xor_v2.c|  2 +-
 drivers/dma/nbpfaxi.c  |  2 +-
 drivers/dma/of-dma.c   |  2 +-
 drivers/dma/owl-dma.c  |  2 +-
 drivers/dma/s3c24xx-dma.c  |  6 +++---
 drivers/dma/sh/shdmac.c|  2 +-
 drivers/dma/sh/usb-dmac.c  |  2 +-
 drivers/dma/st_fdma.h  |  4 ++--
 drivers/dma/ste_dma40.c| 10 +-
 drivers/dma/ste_dma40_ll.h |  2 +-
 drivers/dma/tegra20-apb-dma.c  |  2 +-
 drivers/dma/ti/edma.c  |  2 +-
 drivers/dma/xgene-dma.c|  6 +++---
 drivers/dma/xilinx/xilinx_dma.c|  2 +-
 28 files changed, 59 insertions(+), 59 deletions(-)

--
2.26.3

---end quoted text---


signature.asc
Description: PGP signature
___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Re: [PATCH 00/30] DMA: Mundane typo fixes

2021-03-28 Thread Christoph Hellwig
I really don't think these typo patchbomb are that useful.  I'm all
for fixing typos when working with a subsystem, but I'm not sure these
patchbombs help anything.

On Mon, Mar 29, 2021 at 05:22:56AM +0530, Bhaskar Chowdhury wrote:
> This patch series fixes some trivial and rudimentary spellings in the COMMENT
> sections.
> 
> Bhaskar Chowdhury (30):
>   acpi-dma.c: Fix couple of typos
>   altera-msgdma.c: Couple of typos fixed
>   amba-pl08x.c: Fixed couple of typos
>   bcm-sba-raid.c: Few typos fixed
>   bcm2835-dma.c: Fix a typo
>   idma64.c: Fix couple of typos
>   iop-adma.c: Few typos fixed
>   mv_xor.c: Fix a typo
>   mv_xor.h: Fixed a typo
>   mv_xor_v2.c: Fix a typo
>   nbpfaxi.c: Fixed a typo
>   of-dma.c: Fixed a typo
>   s3c24xx-dma.c: Fix a typo
>   Revert "s3c24xx-dma.c: Fix a typo"
>   s3c24xx-dma.c: Few typos fixed
>   st_fdma.h: Fix couple of typos
>   ste_dma40_ll.h: Fix a typo
>   tegra20-apb-dma.c: Fixed a typo
>   xgene-dma.c: Few spello fixes
>   at_hdmac.c: Quite a few spello fixes
>   owl-dma.c: Fix a typo
>   at_hdmac_regs.h: Couple of typo fixes
>   dma-jz4780.c: Fix a typo
>   Kconfig: Change Synopsys to Synopsis
>   ste_dma40.c: Few spello fixes
>   dw-axi-dmac-platform.c: Few typos fixed
>   dpaa2-qdma.c: Fix a typo
>   usb-dmac.c: Fix a typo
>   edma.c: Fix a typo
>   xilinx_dma.c: Fix a typo
> 
>  drivers/dma/Kconfig|  8 
>  drivers/dma/acpi-dma.c |  4 ++--
>  drivers/dma/altera-msgdma.c|  4 ++--
>  drivers/dma/amba-pl08x.c   |  4 ++--
>  drivers/dma/at_hdmac.c | 14 +++---
>  drivers/dma/at_hdmac_regs.h|  4 ++--
>  drivers/dma/bcm-sba-raid.c |  8 
>  drivers/dma/bcm2835-dma.c  |  2 +-
>  drivers/dma/dma-jz4780.c   |  2 +-
>  drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c |  8 
>  drivers/dma/idma64.c   |  4 ++--
>  drivers/dma/iop-adma.c |  6 +++---
>  drivers/dma/mv_xor.c   |  2 +-
>  drivers/dma/mv_xor.h   |  2 +-
>  drivers/dma/mv_xor_v2.c|  2 +-
>  drivers/dma/nbpfaxi.c  |  2 +-
>  drivers/dma/of-dma.c   |  2 +-
>  drivers/dma/owl-dma.c  |  2 +-
>  drivers/dma/s3c24xx-dma.c  |  6 +++---
>  drivers/dma/sh/shdmac.c|  2 +-
>  drivers/dma/sh/usb-dmac.c  |  2 +-
>  drivers/dma/st_fdma.h  |  4 ++--
>  drivers/dma/ste_dma40.c| 10 +-
>  drivers/dma/ste_dma40_ll.h |  2 +-
>  drivers/dma/tegra20-apb-dma.c  |  2 +-
>  drivers/dma/ti/edma.c  |  2 +-
>  drivers/dma/xgene-dma.c|  6 +++---
>  drivers/dma/xilinx/xilinx_dma.c|  2 +-
>  28 files changed, 59 insertions(+), 59 deletions(-)
> 
> --
> 2.26.3
---end quoted text---
___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 20/30] at_hdmac.c: Quite a few spello fixes

2021-03-28 Thread Bhaskar Chowdhury
s/tranfers/transfers/
s/maxium/maximum/
s/previouly/previously/
s/broked/broken/
s/embedds/embeds/  three different places.

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/at_hdmac.c | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index 30ae36124b1d..02c09532a9e4 100644
--- a/drivers/dma/at_hdmac.c
+++ b/drivers/dma/at_hdmac.c
@@ -374,11 +374,11 @@ static int atc_get_bytes_left(struct dma_chan *chan, 
dma_cookie_t cookie)
 * a second time. If the two consecutive read values of the DSCR
 * are the same then we assume both refers to the very same
 * child descriptor as well as the CTRLA value read inbetween
-* does. For cyclic tranfers, the assumption is that a full loop
+* does. For cyclic transfers, the assumption is that a full 
loop
 * is "not so fast".
 * If the two DSCR values are different, we read again the CTRLA
 * then the DSCR till two consecutive read values from DSCR are
-* equal or till the maxium trials is reach.
+* equal or till the maximum trials is reach.
 * This algorithm is very unlikely not to find a stable value 
for
 * DSCR.
 */
@@ -403,7 +403,7 @@ static int atc_get_bytes_left(struct dma_chan *chan, 
dma_cookie_t cookie)

/*
 * DSCR has changed inside the DMA controller, so the
-* previouly read value of CTRLA may refer to an already
+* previously read value of CTRLA may refer to an 
already
 * processed descriptor hence could be outdated.
 * We need to update ctrla to match the current
 * descriptor.
@@ -564,7 +564,7 @@ static void atc_handle_error(struct at_dma_chan *atchan)
spin_lock_irqsave(>lock, flags);
/*
 * The descriptor currently at the head of the active list is
-* broked. Since we don't have any way to report errors, we'll
+* broken. Since we don't have any way to report errors, we'll
 * just have to scream loudly and try to carry on.
 */
bad_desc = atc_first_active(atchan);
@@ -870,7 +870,7 @@ atc_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, 
dma_addr_t src,
atc_desc_chain(, , desc);
}

-   /* First descriptor of the chain embedds additional information */
+   /* First descriptor of the chain embeds additional information */
first->txd.cookie = -EBUSY;
first->total_len = len;

@@ -1199,7 +1199,7 @@ atc_prep_slave_sg(struct dma_chan *chan, struct 
scatterlist *sgl,
/* set end-of-link to the last link descriptor of list*/
set_desc_eol(prev);

-   /* First descriptor of the chain embedds additional information */
+   /* First descriptor of the chain embeds additional information */
first->txd.cookie = -EBUSY;
first->total_len = total_len;

@@ -1358,7 +1358,7 @@ atc_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t 
buf_addr, size_t buf_len,
/* lets make a cyclic list */
prev->lli.dscr = first->txd.phys;

-   /* First descriptor of the chain embedds additional information */
+   /* First descriptor of the chain embeds additional information */
first->txd.cookie = -EBUSY;
first->total_len = buf_len;

--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 18/30] tegra20-apb-dma.c: Fixed a typo

2021-03-28 Thread Bhaskar Chowdhury
s/programing/programming/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/tegra20-apb-dma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/tegra20-apb-dma.c b/drivers/dma/tegra20-apb-dma.c
index 71827d9b0aa1..e64789432587 100644
--- a/drivers/dma/tegra20-apb-dma.c
+++ b/drivers/dma/tegra20-apb-dma.c
@@ -475,7 +475,7 @@ static void tegra_dma_configure_for_next(struct 
tegra_dma_channel *tdc,

/*
 * If interrupt is pending then do nothing as the ISR will handle
-* the programing for new request.
+* the programming for new request.
 */
if (status & TEGRA_APBDMA_STATUS_ISE_EOC) {
dev_err(tdc2dev(tdc),
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 19/30] xgene-dma.c: Few spello fixes

2021-03-28 Thread Bhaskar Chowdhury
s/definations/definitions/   two different places.
s/Configue/Configure/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/xgene-dma.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/dma/xgene-dma.c b/drivers/dma/xgene-dma.c
index 3589b4ef50b8..9b0010b6e033 100644
--- a/drivers/dma/xgene-dma.c
+++ b/drivers/dma/xgene-dma.c
@@ -23,7 +23,7 @@

 #include "dmaengine.h"

-/* X-Gene DMA ring csr registers and bit definations */
+/* X-Gene DMA ring csr registers and bit definitions */
 #define XGENE_DMA_RING_CONFIG  0x04
 #define XGENE_DMA_RING_ENABLE  BIT(31)
 #define XGENE_DMA_RING_ID  0x08
@@ -102,7 +102,7 @@
 #define XGENE_DMA_BLK_MEM_RDY_VAL  0x
 #define XGENE_DMA_RING_CMD_SM_OFFSET   0x8000

-/* X-Gene SoC EFUSE csr register and bit defination */
+/* X-Gene SoC EFUSE csr register and bit definition */
 #define XGENE_SOC_JTAG1_SHADOW 0x18
 #define XGENE_DMA_PQ_DISABLE_MASK  BIT(13)

@@ -1741,7 +1741,7 @@ static int xgene_dma_probe(struct platform_device *pdev)
/* Initialize DMA channels software state */
xgene_dma_init_channels(pdma);

-   /* Configue DMA rings */
+   /* Configure DMA rings */
ret = xgene_dma_init_rings(pdma);
if (ret)
goto err_clk_enable;
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 16/30] st_fdma.h: Fix couple of typos

2021-03-28 Thread Bhaskar Chowdhury
s/transfert/transfer/  ...two different places.

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/st_fdma.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/dma/st_fdma.h b/drivers/dma/st_fdma.h
index fa15b97a3bab..702b21021124 100644
--- a/drivers/dma/st_fdma.h
+++ b/drivers/dma/st_fdma.h
@@ -41,8 +41,8 @@ struct st_fdma_generic_node {
  * @saddr: Source address
  * @daddr: Destination address
  *
- * @generic: generic node for free running/paced transfert type
- * 2 others transfert type are possible, but not yet implemented
+ * @generic: generic node for free running/paced transfer type
+ * 2 others transfer type are possible, but not yet implemented
  *
  * The NODE structures must be aligned to a 32 byte boundary
  */
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 17/30] ste_dma40_ll.h: Fix a typo

2021-03-28 Thread Bhaskar Chowdhury
s/directy/directly/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/ste_dma40_ll.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/ste_dma40_ll.h b/drivers/dma/ste_dma40_ll.h
index c504e855eb02..2e30e9a94a1e 100644
--- a/drivers/dma/ste_dma40_ll.h
+++ b/drivers/dma/ste_dma40_ll.h
@@ -369,7 +369,7 @@ struct d40_phy_lli_bidir {
  * @lcsp02: Either maps to register lcsp0 if src or lcsp2 if dst.
  * @lcsp13: Either maps to register lcsp1 if src or lcsp3 if dst.
  *
- * This struct must be 8 bytes aligned since it will be accessed directy by
+ * This struct must be 8 bytes aligned since it will be accessed directly by
  * the DMA. Never add any none hw mapped registers to this struct.
  */

--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 15/30] s3c24xx-dma.c: Few typos fixed

2021-03-28 Thread Bhaskar Chowdhury
s/transfered/transferred/
s/desintation/destination/  ...two different places.

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/s3c24xx-dma.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/dma/s3c24xx-dma.c b/drivers/dma/s3c24xx-dma.c
index 8e14c72d03f0..045f2f531876 100644
--- a/drivers/dma/s3c24xx-dma.c
+++ b/drivers/dma/s3c24xx-dma.c
@@ -156,7 +156,7 @@ struct s3c24xx_sg {
  * struct s3c24xx_txd - wrapper for struct dma_async_tx_descriptor
  * @vd: virtual DMA descriptor
  * @dsg_list: list of children sg's
- * @at: sg currently being transfered
+ * @at: sg currently being transferred
  * @width: transfer width
  * @disrcc: value for source control register
  * @didstc: value for destination control register
@@ -920,7 +920,7 @@ static struct dma_async_tx_descriptor 
*s3c24xx_dma_prep_dma_cyclic(
}

/*
-* Always assume our peripheral desintation is a fixed
+* Always assume our peripheral destination is a fixed
 * address in memory.
 */
hwcfg |= S3C24XX_DISRCC_INC_FIXED;
@@ -1009,7 +1009,7 @@ static struct dma_async_tx_descriptor 
*s3c24xx_dma_prep_slave_sg(
}

/*
-* Always assume our peripheral desintation is a fixed
+* Always assume our peripheral destination is a fixed
 * address in memory.
 */
hwcfg |= S3C24XX_DISRCC_INC_FIXED;
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 29/30] edma.c: Fix a typo

2021-03-28 Thread Bhaskar Chowdhury
s/transfering/transferring/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/ti/edma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/ti/edma.c b/drivers/dma/ti/edma.c
index 35d81bd857f1..5ad771e34457 100644
--- a/drivers/dma/ti/edma.c
+++ b/drivers/dma/ti/edma.c
@@ -1815,7 +1815,7 @@ static void edma_issue_pending(struct dma_chan *chan)
  * This limit exists to avoid a possible infinite loop when waiting for proof
  * that a particular transfer is completed. This limit can be hit if there
  * are large bursts to/from slow devices or the CPU is never able to catch
- * the DMA hardware idle. On an AM335x transfering 48 bytes from the UART
+ * the DMA hardware idle. On an AM335x transferring 48 bytes from the UART
  * RX-FIFO, as many as 55 loops have been seen.
  */
 #define EDMA_MAX_TR_WAIT_LOOPS 1000
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 25/30] ste_dma40.c: Few spello fixes

2021-03-28 Thread Bhaskar Chowdhury
s/ealier/earlier/
s/orignal/original/
s/manouver/maneuver/
s/transfer/transfer/
s/succees/success/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/ste_dma40.c | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/dma/ste_dma40.c b/drivers/dma/ste_dma40.c
index 265d7c07b348..39fa2fb74057 100644
--- a/drivers/dma/ste_dma40.c
+++ b/drivers/dma/ste_dma40.c
@@ -155,7 +155,7 @@ static __maybe_unused u32 d40_backup_regs[] = {

 /*
  * since 9540 and 8540 has the same HW revision
- * use v4a for 9540 or ealier
+ * use v4a for 9540 or earlier
  * use v4b for 8540 or later
  * HW revision:
  * DB8500ed has revision 0
@@ -382,7 +382,7 @@ struct d40_desc {
  *
  * @base: The virtual address of LCLA. 18 bit aligned.
  * @dma_addr: DMA address, if mapped
- * @base_unaligned: The orignal kmalloc pointer, if kmalloc is used.
+ * @base_unaligned: The original kmalloc pointer, if kmalloc is used.
  * This pointer is only there for clean-up on error.
  * @pages: The number of pages needed for all physical channels.
  * Only used later for clean-up on error
@@ -1630,7 +1630,7 @@ static void dma_tasklet(struct tasklet_struct *t)

return;
  check_pending_tx:
-   /* Rescue manouver if receiving double interrupts */
+   /* Rescue maneuver if receiving double interrupts */
if (d40c->pending_tx > 0)
d40c->pending_tx--;
spin_unlock_irqrestore(>lock, flags);
@@ -1970,7 +1970,7 @@ static int d40_config_memcpy(struct d40_chan *d40c)
   dma_has_cap(DMA_SLAVE, cap)) {
d40c->dma_cfg = dma40_memcpy_conf_phy;

-   /* Generate interrrupt at end of transfer or relink. */
+   /* Generate interrupt at end of transfer or relink. */
d40c->dst_def_cfg |= BIT(D40_SREG_CFG_TIM_POS);

/* Generate interrupt on error. */
@@ -3415,7 +3415,7 @@ static int __init d40_lcla_allocate(struct d40_base *base)
base->lcla_pool.base = (void *)page_list[i];
} else {
/*
-* After many attempts and no succees with finding the correct
+* After many attempts and no success with finding the correct
 * alignment, try with allocating a big buffer.
 */
dev_warn(base->dev,
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 28/30] usb-dmac.c: Fix a typo

2021-03-28 Thread Bhaskar Chowdhury
s/descritpor/descriptor/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/sh/usb-dmac.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/sh/usb-dmac.c b/drivers/dma/sh/usb-dmac.c
index 8f7ceb698226..7092a657932b 100644
--- a/drivers/dma/sh/usb-dmac.c
+++ b/drivers/dma/sh/usb-dmac.c
@@ -301,7 +301,7 @@ static struct usb_dmac_desc *usb_dmac_desc_get(struct 
usb_dmac_chan *chan,
struct usb_dmac_desc *desc = NULL;
unsigned long flags;

-   /* Get a freed descritpor */
+   /* Get a freed descriptor */
spin_lock_irqsave(>vc.lock, flags);
list_for_each_entry(desc, >desc_freed, node) {
if (sg_len <= desc->sg_allocated_len) {
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 14/30] Revert "s3c24xx-dma.c: Fix a typo"

2021-03-28 Thread Bhaskar Chowdhury
s/transferred/transfered/

This reverts commit a2ddb8aea8106bd5552f8516ad7a8a26b9282a8f.
---
 drivers/dma/s3c24xx-dma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/s3c24xx-dma.c b/drivers/dma/s3c24xx-dma.c
index c98ae73cdcc3..8e14c72d03f0 100644
--- a/drivers/dma/s3c24xx-dma.c
+++ b/drivers/dma/s3c24xx-dma.c
@@ -156,7 +156,7 @@ struct s3c24xx_sg {
  * struct s3c24xx_txd - wrapper for struct dma_async_tx_descriptor
  * @vd: virtual DMA descriptor
  * @dsg_list: list of children sg's
- * @at: sg currently being transferred
+ * @at: sg currently being transfered
  * @width: transfer width
  * @disrcc: value for source control register
  * @didstc: value for destination control register
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 27/30] dpaa2-qdma.c: Fix a typo

2021-03-28 Thread Bhaskar Chowdhury
s/contoller/controller/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/sh/shdmac.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/sh/shdmac.c b/drivers/dma/sh/shdmac.c
index 5aafe548ca5f..7b51b15b45b1 100644
--- a/drivers/dma/sh/shdmac.c
+++ b/drivers/dma/sh/shdmac.c
@@ -319,7 +319,7 @@ static void sh_dmae_setup_xfer(struct shdma_chan *schan,
 }

 /*
- * Find a slave channel configuration from the contoller list by either a slave
+ * Find a slave channel configuration from the controller list by either a 
slave
  * ID in the non-DT case, or by a MID/RID value in the DT case
  */
 static const struct sh_dmae_slave_config *dmae_find_slave(
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 24/30] Kconfig: Change Synopsys to Synopsis

2021-03-28 Thread Bhaskar Chowdhury
s/Synopsys/Synopsis/  .two different places.

..and for some unknown reason it introduce a empty line deleted and added
back.

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/Kconfig | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig
index 0c2827fd8c19..30e8cc26f43b 100644
--- a/drivers/dma/Kconfig
+++ b/drivers/dma/Kconfig
@@ -170,15 +170,15 @@ config DMA_SUN6I
  Support for the DMA engine first found in Allwinner A31 SoCs.

 config DW_AXI_DMAC
-   tristate "Synopsys DesignWare AXI DMA support"
+   tristate "Synopsis DesignWare AXI DMA support"
depends on OF || COMPILE_TEST
depends on HAS_IOMEM
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
help
- Enable support for Synopsys DesignWare AXI DMA controller.
+ Enable support for Synopsis DesignWare AXI DMA controller.
  NOTE: This driver wasn't tested on 64 bit platform because
- of lack 64 bit platform with Synopsys DW AXI DMAC.
+ of lack 64 bit platform with Synopsis DW AXI DMAC.

 config EP93XX_DMA
bool "Cirrus Logic EP93xx DMA support"
@@ -394,7 +394,7 @@ config MOXART_DMA
select DMA_VIRTUAL_CHANNELS
help
  Enable support for the MOXA ART SoC DMA controller.
-
+
  Say Y here if you enabled MMP ADMA, otherwise say N.

 config MPC512X_DMA
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 22/30] at_hdmac_regs.h: Couple of typo fixes

2021-03-28 Thread Bhaskar Chowdhury
s/availlable/available/
s/signle/single/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/at_hdmac_regs.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/dma/at_hdmac_regs.h b/drivers/dma/at_hdmac_regs.h
index 4d1ebc040031..46ecc40edaa8 100644
--- a/drivers/dma/at_hdmac_regs.h
+++ b/drivers/dma/at_hdmac_regs.h
@@ -338,7 +338,7 @@ static inline u8 convert_buswidth(enum dma_slave_buswidth 
addr_width)
  * @ch_regs: memory mapped register base
  * @clk: dma controller clock
  * @save_imr: interrupt mask register that is saved on suspend/resume cycle
- * @all_chan_mask: all channels availlable in a mask
+ * @all_chan_mask: all channels available in a mask
  * @dma_desc_pool: base of DMA descriptor region (DMA address)
  * @chan: channels table to store at_dma_chan structures
  */
@@ -462,7 +462,7 @@ static inline int atc_chan_is_cyclic(struct at_dma_chan 
*atchan)

 /**
  * set_desc_eol - set end-of-link to descriptor so it will end transfer
- * @desc: descriptor, signle or at the end of a chain, to end chain on
+ * @desc: descriptor, single or at the end of a chain, to end chain on
  */
 static void set_desc_eol(struct at_desc *desc)
 {
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 30/30] xilinx_dma.c: Fix a typo

2021-03-28 Thread Bhaskar Chowdhury
s/interace/interface/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/xilinx/xilinx_dma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/xilinx/xilinx_dma.c b/drivers/dma/xilinx/xilinx_dma.c
index 3aded7861fef..63d2f447ad79 100644
--- a/drivers/dma/xilinx/xilinx_dma.c
+++ b/drivers/dma/xilinx/xilinx_dma.c
@@ -483,7 +483,7 @@ struct xilinx_dma_config {
  * @ext_addr: Indicates 64 bit addressing is supported by dma device
  * @pdev: Platform device structure pointer
  * @dma_config: DMA config structure
- * @axi_clk: DMA Axi4-lite interace clock
+ * @axi_clk: DMA Axi4-lite interface clock
  * @tx_clk: DMA mm2s clock
  * @txs_clk: DMA mm2s stream clock
  * @rx_clk: DMA s2mm clock
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 21/30] owl-dma.c: Fix a typo

2021-03-28 Thread Bhaskar Chowdhury
s/Eventhough/"Even though"/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/owl-dma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/owl-dma.c b/drivers/dma/owl-dma.c
index 1f0bbaed4643..3c7283afa443 100644
--- a/drivers/dma/owl-dma.c
+++ b/drivers/dma/owl-dma.c
@@ -1155,7 +1155,7 @@ static int owl_dma_probe(struct platform_device *pdev)
}

/*
-* Eventhough the DMA controller is capable of generating 4
+* Even though the DMA controller is capable of generating 4
 * IRQ's for DMA priority feature, we only use 1 IRQ for
 * simplification.
 */
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 11/30] nbpfaxi.c: Fixed a typo

2021-03-28 Thread Bhaskar Chowdhury
s/superflous/superfluous/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/nbpfaxi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/nbpfaxi.c b/drivers/dma/nbpfaxi.c
index 9c52c57919c6..9eacaa20ddb3 100644
--- a/drivers/dma/nbpfaxi.c
+++ b/drivers/dma/nbpfaxi.c
@@ -898,7 +898,7 @@ static int nbpf_config(struct dma_chan *dchan,
/*
 * We could check config->slave_id to match chan->terminal here,
 * but with DT they would be coming from the same source, so
-* such a check would be superflous
+* such a check would be superfluous
 */

chan->slave_dst_addr = config->dst_addr;
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 26/30] dw-axi-dmac-platform.c: Few typos fixed

2021-03-28 Thread Bhaskar Chowdhury
s/configurarion/configuration/
s/inerrupts/interrupts/
s/chanels/channels/  two different places.
s/Synopsys/Synopsis/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c 
b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
index d9e4ac3edb4e..ef4da10361a7 100644
--- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
+++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
@@ -35,7 +35,7 @@
 /*
  * The set of bus widths supported by the DMA controller. DW AXI DMAC supports
  * master data bus width up to 512 bits (for both AXI master interfaces), but
- * it depends on IP block configurarion.
+ * it depends on IP block configuration.
  */
 #define AXI_DMA_BUSWIDTHS\
(DMA_SLAVE_BUSWIDTH_1_BYTE  | \
@@ -1056,10 +1056,10 @@ static irqreturn_t dw_axi_dma_interrupt(int irq, void 
*dev_id)

u32 status, i;

-   /* Disable DMAC inerrupts. We'll enable them after processing chanels */
+   /* Disable DMAC interrupts. We'll enable them after processing channels 
*/
axi_dma_irq_disable(chip);

-   /* Poll, clear and process every chanel interrupt status */
+   /* Poll, clear and process every channel interrupt status */
for (i = 0; i < dw->hdata->nr_channels; i++) {
chan = >chan[i];
status = axi_chan_irq_read(chan);
@@ -1511,5 +1511,5 @@ static struct platform_driver dw_driver = {
 module_platform_driver(dw_driver);

 MODULE_LICENSE("GPL v2");
-MODULE_DESCRIPTION("Synopsys DesignWare AXI DMA Controller platform driver");
+MODULE_DESCRIPTION("Synopsis DesignWare AXI DMA Controller platform driver");
 MODULE_AUTHOR("Eugeniy Paltsev ");
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 12/30] of-dma.c: Fixed a typo

2021-03-28 Thread Bhaskar Chowdhury
s/propety/properly/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/of-dma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/of-dma.c b/drivers/dma/of-dma.c
index ec00b20ae8e4..e028acff7fe8 100644
--- a/drivers/dma/of-dma.c
+++ b/drivers/dma/of-dma.c
@@ -337,7 +337,7 @@ EXPORT_SYMBOL_GPL(of_dma_simple_xlate);
  *
  * This function can be used as the of xlate callback for DMA driver which 
wants
  * to match the channel based on the channel id. When using this xlate function
- * the #dma-cells propety of the DMA controller dt node needs to be set to 1.
+ * the #dma-cells properly of the DMA controller dt node needs to be set to 1.
  * The data parameter of of_dma_controller_register must be a pointer to the
  * dma_device struct the function should match upon.
  *
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 13/30] s3c24xx-dma.c: Fix a typo

2021-03-28 Thread Bhaskar Chowdhury
s/transfered/transferred/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/s3c24xx-dma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/s3c24xx-dma.c b/drivers/dma/s3c24xx-dma.c
index 8e14c72d03f0..c98ae73cdcc3 100644
--- a/drivers/dma/s3c24xx-dma.c
+++ b/drivers/dma/s3c24xx-dma.c
@@ -156,7 +156,7 @@ struct s3c24xx_sg {
  * struct s3c24xx_txd - wrapper for struct dma_async_tx_descriptor
  * @vd: virtual DMA descriptor
  * @dsg_list: list of children sg's
- * @at: sg currently being transfered
+ * @at: sg currently being transferred
  * @width: transfer width
  * @disrcc: value for source control register
  * @didstc: value for destination control register
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 23/30] dma-jz4780.c: Fix a typo

2021-03-28 Thread Bhaskar Chowdhury
s/proceeed/proceed/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/dma-jz4780.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/dma-jz4780.c b/drivers/dma/dma-jz4780.c
index ebee94dbd630..451bc754b609 100644
--- a/drivers/dma/dma-jz4780.c
+++ b/drivers/dma/dma-jz4780.c
@@ -379,7 +379,7 @@ static struct dma_async_tx_descriptor 
*jz4780_dma_prep_slave_sg(

if (i != (sg_len - 1) &&
!(jzdma->soc_data->flags & JZ_SOC_DATA_BREAK_LINKS)) {
-   /* Automatically proceeed to the next descriptor. */
+   /* Automatically proceed to the next descriptor. */
desc->desc[i].dcm |= JZ_DMA_DCM_LINK;

/*
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 10/30] mv_xor_v2.c: Fix a typo

2021-03-28 Thread Bhaskar Chowdhury
s/assosiated/associated/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/mv_xor_v2.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/mv_xor_v2.c b/drivers/dma/mv_xor_v2.c
index 9b0d463f89bb..8a45861299a0 100644
--- a/drivers/dma/mv_xor_v2.c
+++ b/drivers/dma/mv_xor_v2.c
@@ -175,7 +175,7 @@ struct mv_xor_v2_device {
  * struct mv_xor_v2_sw_desc - implements a xor SW descriptor
  * @idx: descriptor index
  * @async_tx: support for the async_tx api
- * @hw_desc: assosiated HW descriptor
+ * @hw_desc: associated HW descriptor
  * @free_list: node of the free SW descriprots list
 */
 struct mv_xor_v2_sw_desc {
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 09/30] mv_xor.h: Fixed a typo

2021-03-28 Thread Bhaskar Chowdhury
s/writen/written/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/mv_xor.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/mv_xor.h b/drivers/dma/mv_xor.h
index d86086b05b0e..c87cefd38a07 100644
--- a/drivers/dma/mv_xor.h
+++ b/drivers/dma/mv_xor.h
@@ -99,7 +99,7 @@ struct mv_xor_device {
  * @common: common dmaengine channel object members
  * @slots_allocated: records the actual size of the descriptor slot pool
  * @irq_tasklet: bottom half where mv_xor_slot_cleanup runs
- * @op_in_desc: new mode of driver, each op is writen to descriptor.
+ * @op_in_desc: new mode of driver, each op is written to descriptor.
  */
 struct mv_xor_chan {
int pending;
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 05/30] bcm2835-dma.c: Fix a typo

2021-03-28 Thread Bhaskar Chowdhury
s/missmatch/mismatch/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/bcm2835-dma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c
index 630dfbb01a40..e6baf17b0434 100644
--- a/drivers/dma/bcm2835-dma.c
+++ b/drivers/dma/bcm2835-dma.c
@@ -369,7 +369,7 @@ static struct bcm2835_desc *bcm2835_dma_create_cb_chain(
/* the last frame requires extra flags */
d->cb_list[d->frames - 1].cb->info |= finalextrainfo;

-   /* detect a size missmatch */
+   /* detect a size mismatch */
if (buf_len && (d->size != buf_len))
goto error_cb;

--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 06/30] idma64.c: Fix couple of typos

2021-03-28 Thread Bhaskar Chowdhury
s/transfered/transferred/  ...two different places

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/idma64.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/dma/idma64.c b/drivers/dma/idma64.c
index f4c07ad3be15..3d0d48b12e28 100644
--- a/drivers/dma/idma64.c
+++ b/drivers/dma/idma64.c
@@ -282,7 +282,7 @@ static void idma64_desc_fill(struct idma64_chan *idma64c,
desc->length += hw->len;
} while (i);

-   /* Trigger an interrupt after the last block is transfered */
+   /* Trigger an interrupt after the last block is transferred */
lli->ctllo |= IDMA64C_CTLL_INT_EN;

/* Disable LLP transfer in the last block */
@@ -356,7 +356,7 @@ static size_t idma64_active_desc_size(struct idma64_chan 
*idma64c)
if (!i)
return bytes;

-   /* The current chunk is not fully transfered yet */
+   /* The current chunk is not fully transferred yet */
bytes += desc->hw[--i].len;

return bytes - IDMA64C_CTLH_BLOCK_TS(ctlhi);
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 04/30] bcm-sba-raid.c: Few typos fixed

2021-03-28 Thread Bhaskar Chowdhury
s/Maibox/Mailbox/
s/alloced/allocated/
s/atleast/"at least"/
s/parallely/parallel/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/bcm-sba-raid.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/dma/bcm-sba-raid.c b/drivers/dma/bcm-sba-raid.c
index 64239da02e74..fba1585eb7ad 100644
--- a/drivers/dma/bcm-sba-raid.c
+++ b/drivers/dma/bcm-sba-raid.c
@@ -25,7 +25,7 @@
  * number of hardware rings over one or more SBA hardware devices. By
  * design, the internal buffer size of SBA hardware device is limited
  * but all offload operations supported by SBA can be broken down into
- * multiple small size requests and executed parallely on multiple SBA
+ * multiple small size requests and executed parallel on multiple SBA
  * hardware devices for achieving high through-put.
  *
  * The Broadcom SBA RAID driver does not require any register programming
@@ -143,7 +143,7 @@ struct sba_device {
u32 max_xor_srcs;
u32 max_resp_pool_size;
u32 max_cmds_pool_size;
-   /* Maibox client and Mailbox channels */
+   /* Mailbox client and Mailbox channels */
struct mbox_client client;
struct mbox_chan *mchan;
struct device *mbox_dev;
@@ -328,7 +328,7 @@ static void sba_cleanup_nonpending_requests(struct 
sba_device *sba)

spin_lock_irqsave(>reqs_lock, flags);

-   /* Freeup all alloced request */
+   /* Freeup all allocated request */
list_for_each_entry_safe(req, req1, >reqs_alloc_list, node)
_sba_free_request(sba, req);

@@ -1633,7 +1633,7 @@ static int sba_probe(struct platform_device *pdev)
sba->dev = >dev;
platform_set_drvdata(pdev, sba);

-   /* Number of mailbox channels should be atleast 1 */
+   /* Number of mailbox channels should be at least 1 */
ret = of_count_phandle_with_args(pdev->dev.of_node,
 "mboxes", "#mbox-cells");
if (ret <= 0)
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 03/30] amba-pl08x.c: Fixed couple of typos

2021-03-28 Thread Bhaskar Chowdhury


s/busses/buses/
s/accound/account/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/amba-pl08x.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c
index a24882ba3764..d15182634789 100644
--- a/drivers/dma/amba-pl08x.c
+++ b/drivers/dma/amba-pl08x.c
@@ -121,7 +121,7 @@ struct vendor_data {

 /**
  * struct pl08x_bus_data - information of source or destination
- * busses for a transfer
+ * buses for a transfer
  * @addr: current address
  * @maxwidth: the maximum width of a transfer on this bus
  * @buswidth: the width of this bus in bytes: 1, 2 or 4
@@ -1010,7 +1010,7 @@ static inline u32 pl08x_lli_control_bits(struct 
pl08x_driver_data *pl08x,
/*
 * Remove all src, dst and transfer size bits, then set the
 * width and size according to the parameters. The bit offsets
-* are different in the FTDMAC020 so we need to accound for this.
+* are different in the FTDMAC020 so we need to account for this.
 */
if (pl08x->vd->ftdmac020) {
retbits &= ~FTDMAC020_LLI_DST_WIDTH_MSK;
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 08/30] mv_xor.c: Fix a typo

2021-03-28 Thread Bhaskar Chowdhury
s/capabilites/capabilities/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/mv_xor.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/mv_xor.c b/drivers/dma/mv_xor.c
index 23b232b57518..a43388b6a30d 100644
--- a/drivers/dma/mv_xor.c
+++ b/drivers/dma/mv_xor.c
@@ -1074,7 +1074,7 @@ mv_xor_channel_add(struct mv_xor_device *xordev,
if (!mv_chan->dma_desc_pool_virt)
return ERR_PTR(-ENOMEM);

-   /* discover transaction capabilites from the platform data */
+   /* discover transaction capabilities from the platform data */
dma_dev->cap_mask = cap_mask;

INIT_LIST_HEAD(_dev->channels);
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 07/30] iop-adma.c: Few typos fixed

2021-03-28 Thread Bhaskar Chowdhury
s/asynchrounous/asynchronous/
s/depedency/dependency/
s/capabilites/capabilities/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/iop-adma.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/dma/iop-adma.c b/drivers/dma/iop-adma.c
index 310b899d581f..81f32dc964e2 100644
--- a/drivers/dma/iop-adma.c
+++ b/drivers/dma/iop-adma.c
@@ -5,7 +5,7 @@
  */

 /*
- * This driver supports the asynchrounous DMA copy and RAID engines available
+ * This driver supports the asynchronous DMA copy and RAID engines available
  * on the Intel Xscale(R) family of I/O Processors (IOP 32x, 33x, 134x)
  */

@@ -243,7 +243,7 @@ static void iop_adma_tasklet(struct tasklet_struct *t)
struct iop_adma_chan *iop_chan = from_tasklet(iop_chan, t,
  irq_tasklet);

-   /* lockdep will flag depedency submissions as potentially
+   /* lockdep will flag dependency submissions as potentially
 * recursive locking, this is not the case as a dependency
 * submission will never recurse a channels submit routine.
 * There are checks in async_tx.c to prevent this.
@@ -1302,7 +1302,7 @@ static int iop_adma_probe(struct platform_device *pdev)

adev->id = plat_data->hw_id;

-   /* discover transaction capabilites from the platform data */
+   /* discover transaction capabilities from the platform data */
dma_dev->cap_mask = plat_data->cap_mask;

adev->pdev = pdev;
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 02/30] altera-msgdma.c: Couple of typos fixed

2021-03-28 Thread Bhaskar Chowdhury
s/assosiated/associated/
s/oder/order/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/altera-msgdma.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/dma/altera-msgdma.c b/drivers/dma/altera-msgdma.c
index 9a841ce5f0c5..c3483bf2aaa7 100644
--- a/drivers/dma/altera-msgdma.c
+++ b/drivers/dma/altera-msgdma.c
@@ -152,7 +152,7 @@ struct msgdma_extended_desc {
 /**
  * struct msgdma_sw_desc - implements a sw descriptor
  * @async_tx: support for the async_tx api
- * @hw_desc: assosiated HW descriptor
+ * @hw_desc: associated HW descriptor
  * @node: node to move from the free list to the tx list
  * @tx_list: transmit list node
  */
@@ -510,7 +510,7 @@ static void msgdma_copy_one(struct msgdma_device *mdev,
 * of the DMA controller. The descriptor will get flushed to the
 * FIFO, once the last word (control word) is written. Since we
 * are not 100% sure that memcpy() writes all word in the "correct"
-* oder (address from low to high) on all architectures, we make
+* order (address from low to high) on all architectures, we make
 * sure this control word is written last by single coding it and
 * adding some write-barriers here.
 */
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 01/30] acpi-dma.c: Fix couple of typos

2021-03-28 Thread Bhaskar Chowdhury


s/exctract/extract/
s/avaiable/available/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/dma/acpi-dma.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/dma/acpi-dma.c b/drivers/dma/acpi-dma.c
index 235f1396f968..4b1d5183bf64 100644
--- a/drivers/dma/acpi-dma.c
+++ b/drivers/dma/acpi-dma.c
@@ -100,7 +100,7 @@ static int acpi_dma_parse_resource_group(const struct 
acpi_csrt_group *grp,
 }

 /**
- * acpi_dma_parse_csrt - parse CSRT to exctract additional DMA resources
+ * acpi_dma_parse_csrt - parse CSRT to extract additional DMA resources
  * @adev:  ACPI device to match with
  * @adma:  struct acpi_dma of the given DMA controller
  *
@@ -293,7 +293,7 @@ EXPORT_SYMBOL_GPL(devm_acpi_dma_controller_free);
  * found.
  *
  * Return:
- * 0, if no information is avaiable, -1 on mismatch, and 1 otherwise.
+ * 0, if no information is available, -1 on mismatch, and 1 otherwise.
  */
 static int acpi_dma_update_dma_spec(struct acpi_dma *adma,
struct acpi_dma_spec *dma_spec)
--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH 00/30] DMA: Mundane typo fixes

2021-03-28 Thread Bhaskar Chowdhury
This patch series fixes some trivial and rudimentary spellings in the COMMENT
sections.

Bhaskar Chowdhury (30):
  acpi-dma.c: Fix couple of typos
  altera-msgdma.c: Couple of typos fixed
  amba-pl08x.c: Fixed couple of typos
  bcm-sba-raid.c: Few typos fixed
  bcm2835-dma.c: Fix a typo
  idma64.c: Fix couple of typos
  iop-adma.c: Few typos fixed
  mv_xor.c: Fix a typo
  mv_xor.h: Fixed a typo
  mv_xor_v2.c: Fix a typo
  nbpfaxi.c: Fixed a typo
  of-dma.c: Fixed a typo
  s3c24xx-dma.c: Fix a typo
  Revert "s3c24xx-dma.c: Fix a typo"
  s3c24xx-dma.c: Few typos fixed
  st_fdma.h: Fix couple of typos
  ste_dma40_ll.h: Fix a typo
  tegra20-apb-dma.c: Fixed a typo
  xgene-dma.c: Few spello fixes
  at_hdmac.c: Quite a few spello fixes
  owl-dma.c: Fix a typo
  at_hdmac_regs.h: Couple of typo fixes
  dma-jz4780.c: Fix a typo
  Kconfig: Change Synopsys to Synopsis
  ste_dma40.c: Few spello fixes
  dw-axi-dmac-platform.c: Few typos fixed
  dpaa2-qdma.c: Fix a typo
  usb-dmac.c: Fix a typo
  edma.c: Fix a typo
  xilinx_dma.c: Fix a typo

 drivers/dma/Kconfig|  8 
 drivers/dma/acpi-dma.c |  4 ++--
 drivers/dma/altera-msgdma.c|  4 ++--
 drivers/dma/amba-pl08x.c   |  4 ++--
 drivers/dma/at_hdmac.c | 14 +++---
 drivers/dma/at_hdmac_regs.h|  4 ++--
 drivers/dma/bcm-sba-raid.c |  8 
 drivers/dma/bcm2835-dma.c  |  2 +-
 drivers/dma/dma-jz4780.c   |  2 +-
 drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c |  8 
 drivers/dma/idma64.c   |  4 ++--
 drivers/dma/iop-adma.c |  6 +++---
 drivers/dma/mv_xor.c   |  2 +-
 drivers/dma/mv_xor.h   |  2 +-
 drivers/dma/mv_xor_v2.c|  2 +-
 drivers/dma/nbpfaxi.c  |  2 +-
 drivers/dma/of-dma.c   |  2 +-
 drivers/dma/owl-dma.c  |  2 +-
 drivers/dma/s3c24xx-dma.c  |  6 +++---
 drivers/dma/sh/shdmac.c|  2 +-
 drivers/dma/sh/usb-dmac.c  |  2 +-
 drivers/dma/st_fdma.h  |  4 ++--
 drivers/dma/ste_dma40.c| 10 +-
 drivers/dma/ste_dma40_ll.h |  2 +-
 drivers/dma/tegra20-apb-dma.c  |  2 +-
 drivers/dma/ti/edma.c  |  2 +-
 drivers/dma/xgene-dma.c|  6 +++---
 drivers/dma/xilinx/xilinx_dma.c|  2 +-
 28 files changed, 59 insertions(+), 59 deletions(-)

--
2.26.3

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH v1 1/2] iommu/tegra-smmu: Defer attachment of display clients

2021-03-28 Thread Dmitry Osipenko
All consumer-grade Android and Chromebook devices show a splash screen
on boot and then display is left enabled when kernel is booted. This
behaviour is unacceptable in a case of implicit IOMMU domains to which
devices are attached during kernel boot since devices, like display
controller, may perform DMA at that time. We can work around this problem
by deferring the enable of SMMU translation for a specific devices,
like a display controller, until the first IOMMU mapping is created,
which works good enough in practice because by that time h/w is already
stopped.

Signed-off-by: Dmitry Osipenko 
---
 drivers/iommu/tegra-smmu.c | 71 ++
 1 file changed, 71 insertions(+)

diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c
index 602aab98c079..af1e4b5adb27 100644
--- a/drivers/iommu/tegra-smmu.c
+++ b/drivers/iommu/tegra-smmu.c
@@ -60,6 +60,8 @@ struct tegra_smmu_as {
dma_addr_t pd_dma;
unsigned id;
u32 attr;
+   bool display_attached[2];
+   bool attached_devices_need_sync;
 };
 
 static struct tegra_smmu_as *to_smmu_as(struct iommu_domain *dom)
@@ -78,6 +80,10 @@ static inline u32 smmu_readl(struct tegra_smmu *smmu, 
unsigned long offset)
return readl(smmu->regs + offset);
 }
 
+/* all Tegra SoCs use the same group IDs for displays */
+#define SMMU_SWGROUP_DC1
+#define SMMU_SWGROUP_DCB   2
+
 #define SMMU_CONFIG 0x010
 #define  SMMU_CONFIG_ENABLE (1 << 0)
 
@@ -253,6 +259,20 @@ static inline void smmu_flush(struct tegra_smmu *smmu)
smmu_readl(smmu, SMMU_PTB_ASID);
 }
 
+static int smmu_swgroup_to_display_id(unsigned int swgroup)
+{
+   switch (swgroup) {
+   case SMMU_SWGROUP_DC:
+   return 0;
+
+   case SMMU_SWGROUP_DCB:
+   return 1;
+
+   default:
+   return -1;
+   }
+}
+
 static int tegra_smmu_alloc_asid(struct tegra_smmu *smmu, unsigned int *idp)
 {
unsigned long id;
@@ -318,6 +338,9 @@ static struct iommu_domain 
*tegra_smmu_domain_alloc(unsigned type)
as->domain.geometry.aperture_end = 0x;
as->domain.geometry.force_aperture = true;
 
+   /* work around implicit attachment of devices with active DMA */
+   as->attached_devices_need_sync = true;
+
return >domain;
 }
 
@@ -410,6 +433,31 @@ static void tegra_smmu_disable(struct tegra_smmu *smmu, 
unsigned int swgroup,
}
 }
 
+static void tegra_smmu_attach_deferred_devices(struct iommu_domain *domain)
+{
+   struct tegra_smmu_as *as = to_smmu_as(domain);
+
+   if (!as->attached_devices_need_sync)
+   return;
+
+   if (as->display_attached[0] || as->display_attached[1]) {
+   struct tegra_smmu *smmu = as->smmu;
+   unsigned int i;
+
+   for (i = 0; i < smmu->soc->num_clients; i++) {
+   const struct tegra_mc_client *client = 
>soc->clients[i];
+   const int disp_id = 
smmu_swgroup_to_display_id(client->swgroup);
+
+   if (disp_id < 0 || !as->display_attached[disp_id])
+   continue;
+
+   tegra_smmu_enable(smmu, client->swgroup, as->id);
+   }
+   }
+
+   as->attached_devices_need_sync = false;
+}
+
 static int tegra_smmu_as_prepare(struct tegra_smmu *smmu,
 struct tegra_smmu_as *as)
 {
@@ -495,10 +543,26 @@ static int tegra_smmu_attach_dev(struct iommu_domain 
*domain,
return -ENOENT;
 
for (index = 0; index < fwspec->num_ids; index++) {
+   const unsigned int swgroup = fwspec->ids[index];
+   const int disp_id = smmu_swgroup_to_display_id(swgroup);
+
err = tegra_smmu_as_prepare(smmu, as);
if (err)
goto disable;
 
+   if (disp_id >= 0) {
+   as->display_attached[disp_id] = true;
+
+   /*
+* In most cases display is performing DMA before
+* driver is initialized by showing a splash screen
+* and in this case we should defer the h/w attachment
+* until the first mapping is created by display driver.
+*/
+   if (as->attached_devices_need_sync)
+   continue;
+   }
+
tegra_smmu_enable(smmu, fwspec->ids[index], as->id);
}
 
@@ -527,6 +591,12 @@ static void tegra_smmu_detach_dev(struct iommu_domain 
*domain, struct device *de
return;
 
for (index = 0; index < fwspec->num_ids; index++) {
+   const unsigned int swgroup = fwspec->ids[index];
+   const int disp_id = smmu_swgroup_to_display_id(swgroup);
+
+   if (disp_id >= 0)
+   as->display_attached[disp_id] = false;
+

[PATCH v1 2/2] iommu/tegra-smmu: Revert workaround that was needed for Nyan Big Chromebook

2021-03-28 Thread Dmitry Osipenko
The previous commit fixes problem where display client was attaching too
early to IOMMU during kernel boot in a multi-platform kernel configuration
which enables CONFIG_ARM_DMA_USE_IOMMU=y. The workaround that helped to
defer the IOMMU attachment for Nyan Big Chromebook isn't needed anymore,
revert it.

Signed-off-by: Dmitry Osipenko 
---
 drivers/iommu/tegra-smmu.c | 71 +-
 1 file changed, 1 insertion(+), 70 deletions(-)

diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c
index af1e4b5adb27..572a4544ae88 100644
--- a/drivers/iommu/tegra-smmu.c
+++ b/drivers/iommu/tegra-smmu.c
@@ -869,69 +869,10 @@ static phys_addr_t tegra_smmu_iova_to_phys(struct 
iommu_domain *domain,
return SMMU_PFN_PHYS(pfn) + SMMU_OFFSET_IN_PAGE(iova);
 }
 
-static struct tegra_smmu *tegra_smmu_find(struct device_node *np)
-{
-   struct platform_device *pdev;
-   struct tegra_mc *mc;
-
-   pdev = of_find_device_by_node(np);
-   if (!pdev)
-   return NULL;
-
-   mc = platform_get_drvdata(pdev);
-   if (!mc)
-   return NULL;
-
-   return mc->smmu;
-}
-
-static int tegra_smmu_configure(struct tegra_smmu *smmu, struct device *dev,
-   struct of_phandle_args *args)
-{
-   const struct iommu_ops *ops = smmu->iommu.ops;
-   int err;
-
-   err = iommu_fwspec_init(dev, >of_node->fwnode, ops);
-   if (err < 0) {
-   dev_err(dev, "failed to initialize fwspec: %d\n", err);
-   return err;
-   }
-
-   err = ops->of_xlate(dev, args);
-   if (err < 0) {
-   dev_err(dev, "failed to parse SW group ID: %d\n", err);
-   iommu_fwspec_free(dev);
-   return err;
-   }
-
-   return 0;
-}
-
 static struct iommu_device *tegra_smmu_probe_device(struct device *dev)
 {
-   struct device_node *np = dev->of_node;
-   struct tegra_smmu *smmu = NULL;
-   struct of_phandle_args args;
-   unsigned int index = 0;
-   int err;
-
-   while (of_parse_phandle_with_args(np, "iommus", "#iommu-cells", index,
- ) == 0) {
-   smmu = tegra_smmu_find(args.np);
-   if (smmu) {
-   err = tegra_smmu_configure(smmu, dev, );
-
-   if (err < 0) {
-   of_node_put(args.np);
-   return ERR_PTR(err);
-   }
-   }
-
-   of_node_put(args.np);
-   index++;
-   }
+   struct tegra_smmu *smmu = dev_iommu_priv_get(dev);
 
-   smmu = dev_iommu_priv_get(dev);
if (!smmu)
return ERR_PTR(-ENODEV);
 
@@ -1158,16 +1099,6 @@ struct tegra_smmu *tegra_smmu_probe(struct device *dev,
if (!smmu)
return ERR_PTR(-ENOMEM);
 
-   /*
-* This is a bit of a hack. Ideally we'd want to simply return this
-* value. However the IOMMU registration process will attempt to add
-* all devices to the IOMMU when bus_set_iommu() is called. In order
-* not to rely on global variables to track the IOMMU instance, we
-* set it here so that it can be looked up from the .probe_device()
-* callback via the IOMMU device's .drvdata field.
-*/
-   mc->smmu = smmu;
-
size = BITS_TO_LONGS(soc->num_asids) * sizeof(long);
 
smmu->asids = devm_kzalloc(dev, size, GFP_KERNEL);
-- 
2.30.2

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


Re: [PATCH] iommu/tegra-smmu: Fix mc errors on tegra124-nyan

2021-03-28 Thread Dmitry Osipenko
28.03.2021 18:25, Dmitry Osipenko пишет:
> 03.03.2021 12:47, Dmitry Osipenko пишет:
>> 03.03.2021 02:08, Nicolin Chen пишет:
>>> On Sat, Feb 27, 2021 at 12:59:17PM +0300, Dmitry Osipenko wrote:
 25.02.2021 09:27, Nicolin Chen пишет:
 ...
>> The partially revert should be okay, but it's not clear to me what makes
>> difference for T124 since I don't see that problem on T30, which also
>> has active display at a boot time.
> Hmm..do you see ->attach_dev() is called from host1x_client_iommu_attach
> or from of_dma_configure_id/arch_setup_dma_ops?
>
 I applied yours debug-patch, please see dmesg.txt attached to the email.
 Seems probe-defer of the tegra-dc driver prevents the implicit
 tegra_smmu_attach_dev, so it happens to work by accident.
 [0.327826] tegra-dc 5420.dc: ---tegra_smmu_of_xlate: id 1
 [0.328641] [] (tegra_smmu_of_xlate) from [] 
 (of_iommu_xlate+0x51/0x70)
 [0.328740] [] (of_iommu_xlate) from [] 
 (of_iommu_configure+0x127/0x150)
 [0.328896] [] (of_iommu_configure) from [] 
 (of_dma_configure_id+0x1fb/0x2ec)
 [0.329060] [] (of_dma_configure_id) from [] 
 (really_probe+0x7b/0x2a0)
 [0.331438] tegra-dc 5420.dc: tegra_smmu_probe_device, 822
 [0.332234] [] (tegra_smmu_probe_device) from [] 
 (__iommu_probe_device+0x35/0x1c4)
 [0.332391] [] (__iommu_probe_device) from [] 
 (iommu_probe_device+0x19/0xec)
 [0.332545] [] (iommu_probe_device) from [] 
 (of_iommu_configure+0xfb/0x150)
 [0.332701] [] (of_iommu_configure) from [] 
 (of_dma_configure_id+0x1fb/0x2ec)
 [0.332804] [] (of_dma_configure_id) from [] 
 (really_probe+0x7b/0x2a0)
 [0.335202] tegra-dc 5420.dc: -iommu_group_get_for_dev, 1572
 [0.335292] tegra-dc 5420.dc: -tegra_smmu_device_group, 862
 [0.335474] tegra-dc 5420.dc: -tegra_smmu_device_group, 
 909: 1: drm
 [0.335566] tegra-dc 5420.dc: -iommu_group_get_for_dev, 1574
 [0.335718] tegra-dc 5420.dc: -iommu_group_add_device, 858
 [0.335862] tegra-dc 5420.dc: Adding to iommu group 1
 [0.335955] tegra-dc 5420.dc: -iommu_alloc_default_domain, 
 1543: type 3
 [0.336101] iommu: --iommu_group_alloc_default_domain: platform, 
 (null), drm
 [0.336187] -tegra_smmu_domain_alloc, 284: type 3
>>>  [0.336968] [] (tegra_smmu_domain_alloc) from [] 
>>> (iommu_group_alloc_default_domain+0x4b/0xfa)
 [0.337127] [] (iommu_group_alloc_default_domain) from 
 [] (iommu_probe_device+0x69/0xec)
 [0.337285] [] (iommu_probe_device) from [] 
 (of_iommu_configure+0xfb/0x150)
 [0.337441] [] (of_iommu_configure) from [] 
 (of_dma_configure_id+0x1fb/0x2ec)
 [0.337599] [] (of_dma_configure_id) from [] 
 (really_probe+0x7b/0x2a0)
 [0.339913] tegra-dc 5420.dc: -iommu_probe_device, 272
 [0.348144] tegra-dc 5420.dc: failed to probe RGB output: -517
>>> Hmm..not sure where this EPROBE_DEFER comes from.
>> DC driver on Nexus 7 depends on LVDS bridge and display panel, which
>> cause the probe defer.
>>
>>> But you are right,
>>> as of_dma_configure_id() returns because of that so it didn't run to
>>> arch_setup_dma_ops() call, which allocates an UNMANAGED iommu domain
>>> and attaches DC to it on Tegra124.
>>>
>>> By the way, anyone can accept this change? It doesn't feel right to
>>> leave a regression in the newer release...
> 
> Guys, I have a good and bad news.
> 
> The good news is that I figured out why I didn't see this problem on
> Nexus 7 and the reason is that I had CONFIG_ARM_DMA_USE_IOMMU=n.
> 
> The other good news is that I have a simple workaround which fixes the
> implicit IOMMU problem by deferring the ASID enabling for display clients.
> 
> The bad news is that CONFIG_ARM_DMA_USE_IOMMU=y breaks GPU (DRM, host1x)
> drivers because they aren't properly prepared to this case and
> CONFIG_ARM_DMA_USE_IOMMU is enabled in multi-platform kernel config. I
> will try to fix up the drivers, but not sure how much time this may take.
> 

Oh, actually the old workaround with arm_iommu_detach_device() still
works, so we just need to bring it back. I'll prepare the patches.
___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Re: [PATCH] iommu/tegra-smmu: Fix mc errors on tegra124-nyan

2021-03-28 Thread Dmitry Osipenko
03.03.2021 12:47, Dmitry Osipenko пишет:
> 03.03.2021 02:08, Nicolin Chen пишет:
>> On Sat, Feb 27, 2021 at 12:59:17PM +0300, Dmitry Osipenko wrote:
>>> 25.02.2021 09:27, Nicolin Chen пишет:
>>> ...
> The partially revert should be okay, but it's not clear to me what makes
> difference for T124 since I don't see that problem on T30, which also
> has active display at a boot time.
 Hmm..do you see ->attach_dev() is called from host1x_client_iommu_attach
 or from of_dma_configure_id/arch_setup_dma_ops?

>>> I applied yours debug-patch, please see dmesg.txt attached to the email.
>>> Seems probe-defer of the tegra-dc driver prevents the implicit
>>> tegra_smmu_attach_dev, so it happens to work by accident.
>>> [0.327826] tegra-dc 5420.dc: ---tegra_smmu_of_xlate: id 1
>>> [0.328641] [] (tegra_smmu_of_xlate) from [] 
>>> (of_iommu_xlate+0x51/0x70)
>>> [0.328740] [] (of_iommu_xlate) from [] 
>>> (of_iommu_configure+0x127/0x150)
>>> [0.328896] [] (of_iommu_configure) from [] 
>>> (of_dma_configure_id+0x1fb/0x2ec)
>>> [0.329060] [] (of_dma_configure_id) from [] 
>>> (really_probe+0x7b/0x2a0)
>>> [0.331438] tegra-dc 5420.dc: tegra_smmu_probe_device, 822
>>> [0.332234] [] (tegra_smmu_probe_device) from [] 
>>> (__iommu_probe_device+0x35/0x1c4)
>>> [0.332391] [] (__iommu_probe_device) from [] 
>>> (iommu_probe_device+0x19/0xec)
>>> [0.332545] [] (iommu_probe_device) from [] 
>>> (of_iommu_configure+0xfb/0x150)
>>> [0.332701] [] (of_iommu_configure) from [] 
>>> (of_dma_configure_id+0x1fb/0x2ec)
>>> [0.332804] [] (of_dma_configure_id) from [] 
>>> (really_probe+0x7b/0x2a0)
>>> [0.335202] tegra-dc 5420.dc: -iommu_group_get_for_dev, 1572
>>> [0.335292] tegra-dc 5420.dc: -tegra_smmu_device_group, 862
>>> [0.335474] tegra-dc 5420.dc: -tegra_smmu_device_group, 909: 
>>> 1: drm
>>> [0.335566] tegra-dc 5420.dc: -iommu_group_get_for_dev, 1574
>>> [0.335718] tegra-dc 5420.dc: -iommu_group_add_device, 858
>>> [0.335862] tegra-dc 5420.dc: Adding to iommu group 1
>>> [0.335955] tegra-dc 5420.dc: -iommu_alloc_default_domain, 
>>> 1543: type 3
>>> [0.336101] iommu: --iommu_group_alloc_default_domain: platform, 
>>> (null), drm
>>> [0.336187] -tegra_smmu_domain_alloc, 284: type 3
>>  [0.336968] [] (tegra_smmu_domain_alloc) from [] 
>> (iommu_group_alloc_default_domain+0x4b/0xfa)
>>> [0.337127] [] (iommu_group_alloc_default_domain) from 
>>> [] (iommu_probe_device+0x69/0xec)
>>> [0.337285] [] (iommu_probe_device) from [] 
>>> (of_iommu_configure+0xfb/0x150)
>>> [0.337441] [] (of_iommu_configure) from [] 
>>> (of_dma_configure_id+0x1fb/0x2ec)
>>> [0.337599] [] (of_dma_configure_id) from [] 
>>> (really_probe+0x7b/0x2a0)
>>> [0.339913] tegra-dc 5420.dc: -iommu_probe_device, 272
>>> [0.348144] tegra-dc 5420.dc: failed to probe RGB output: -517
>> Hmm..not sure where this EPROBE_DEFER comes from.
> DC driver on Nexus 7 depends on LVDS bridge and display panel, which
> cause the probe defer.
> 
>> But you are right,
>> as of_dma_configure_id() returns because of that so it didn't run to
>> arch_setup_dma_ops() call, which allocates an UNMANAGED iommu domain
>> and attaches DC to it on Tegra124.
>>
>> By the way, anyone can accept this change? It doesn't feel right to
>> leave a regression in the newer release...

Guys, I have a good and bad news.

The good news is that I figured out why I didn't see this problem on
Nexus 7 and the reason is that I had CONFIG_ARM_DMA_USE_IOMMU=n.

The other good news is that I have a simple workaround which fixes the
implicit IOMMU problem by deferring the ASID enabling for display clients.

The bad news is that CONFIG_ARM_DMA_USE_IOMMU=y breaks GPU (DRM, host1x)
drivers because they aren't properly prepared to this case and
CONFIG_ARM_DMA_USE_IOMMU is enabled in multi-platform kernel config. I
will try to fix up the drivers, but not sure how much time this may take.
___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Re: [PATCH v2 2/3] dt-bindings: iommu: add DART iommu bindings

2021-03-28 Thread Sven Peter via iommu



On Sun, Mar 28, 2021, at 10:16, Arnd Bergmann wrote:
> On Sun, Mar 28, 2021 at 9:40 AM Sven Peter  wrote:
> 
> I noticed only one detail here:
> 
> > +  - |+
> > +dart2a: dart2a@82f0 {
> > +  compatible = "apple,t8103-dart";
> > +  reg = <0x82f0 0x4000>;
> > +  interrupts = <1 781 4>;
> > +  #iommu-cells = <1>;
> > +};
> 
> The name of the iommu should be iommu@82f0, not dart2a@82f0.
> 
>Arnd
>

Thanks, fixed for v3. I've also just noticed that I forgot to update
the filename in MAINTAINERS after I renamed it from apple,t8103-dart.yaml
which I've fixed as well.


Sven

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


Re: [PATCH v2 2/3] dt-bindings: iommu: add DART iommu bindings

2021-03-28 Thread Arnd Bergmann
On Sun, Mar 28, 2021 at 9:40 AM Sven Peter  wrote:

I noticed only one detail here:

> +  - |+
> +dart2a: dart2a@82f0 {
> +  compatible = "apple,t8103-dart";
> +  reg = <0x82f0 0x4000>;
> +  interrupts = <1 781 4>;
> +  #iommu-cells = <1>;
> +};

The name of the iommu should be iommu@82f0, not dart2a@82f0.

   Arnd
___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH v2 3/3] iommu: dart: Add DART iommu driver

2021-03-28 Thread Sven Peter via iommu
Apple's new SoCs use iommus for almost all peripherals. These Device
Address Resolution Tables must be setup before these peripherals can
act as DMA masters.

Signed-off-by: Sven Peter 
---
 MAINTAINERS  |   1 +
 drivers/iommu/Kconfig|  14 +
 drivers/iommu/Makefile   |   1 +
 drivers/iommu/apple-dart-iommu.c | 858 +++
 4 files changed, 874 insertions(+)
 create mode 100644 drivers/iommu/apple-dart-iommu.c

diff --git a/MAINTAINERS b/MAINTAINERS
index f5397328fa1f..70747b8ac0ee 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1241,6 +1241,7 @@ M:Sven Peter 
 L: iommu@lists.linux-foundation.org
 S: Maintained
 F: Documentation/devicetree/bindings/iommu/apple,t8103-dart.yaml
+F: drivers/iommu/apple-dart-iommu.c
 
 APPLE SMC DRIVER
 M: Henrik Rydberg 
diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
index 192ef8f61310..a1b239147dbc 100644
--- a/drivers/iommu/Kconfig
+++ b/drivers/iommu/Kconfig
@@ -249,6 +249,20 @@ config SPAPR_TCE_IOMMU
  Enables bits of IOMMU API required by VFIO. The iommu_ops
  is not implemented as it is not necessary for VFIO.
 
+config IOMMU_APPLE_DART
+   tristate "Apple DART IOMMU Support"
+   depends on ARM64 || (COMPILE_TEST && !GENERIC_ATOMIC64)
+   select IOMMU_API
+   select IOMMU_IO_PGTABLE
+   select IOMMU_IO_PGTABLE_LPAE
+   help
+ Support for Apple DART (Device Address Resolution Table) IOMMUs
+ found in Apple ARM SoCs like the M1.
+ This IOMMU is required for most peripherals using DMA to access
+ the main memory.
+
+ Say Y here if you are using an Apple SoC with a DART IOMMU.
+
 # ARM IOMMU support
 config ARM_SMMU
tristate "ARM Ltd. System MMU (SMMU) Support"
diff --git a/drivers/iommu/Makefile b/drivers/iommu/Makefile
index 61bd30cd8369..5f21f0dfec6a 100644
--- a/drivers/iommu/Makefile
+++ b/drivers/iommu/Makefile
@@ -28,3 +28,4 @@ obj-$(CONFIG_S390_IOMMU) += s390-iommu.o
 obj-$(CONFIG_HYPERV_IOMMU) += hyperv-iommu.o
 obj-$(CONFIG_VIRTIO_IOMMU) += virtio-iommu.o
 obj-$(CONFIG_IOMMU_SVA_LIB) += iommu-sva-lib.o
+obj-$(CONFIG_IOMMU_APPLE_DART) += apple-dart-iommu.o
diff --git a/drivers/iommu/apple-dart-iommu.c b/drivers/iommu/apple-dart-iommu.c
new file mode 100644
index ..05fb8ca44843
--- /dev/null
+++ b/drivers/iommu/apple-dart-iommu.c
@@ -0,0 +1,858 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Apple DART (Device Address Resolution Table) IOMMU driver
+ *
+ * Copyright (C) 2021 The Asahi Linux Contributors
+ *
+ * Based on arm/arm-smmu/arm-ssmu.c and arm/arm-smmu-v3/arm-smmu-v3.c
+ *  Copyright (C) 2013 ARM Limited
+ *  Copyright (C) 2015 ARM Limited
+ * and on exynos-iommu.c
+ *  Copyright (c) 2011,2016 Samsung Electronics Co., Ltd.
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#define DART_MAX_STREAMS 16
+#define DART_MAX_TTBR 4
+
+#define DART_STREAM_ALL 0x
+
+#define DART_CONFIG 0x60
+#define DART_CONFIG_LOCK BIT(15)
+
+#define DART_ERROR 0x40
+#define DART_ERROR_STREAM_SHIFT 24
+#define DART_ERROR_STREAM_MASK 0xf
+#define DART_ERROR_CODE_MASK 0xff
+#define DART_ERROR_FLAG BIT(31)
+#define DART_ERROR_READ_FAULT BIT(4)
+#define DART_ERROR_WRITE_FAULT BIT(3)
+#define DART_ERROR_NO_PTE BIT(2)
+#define DART_ERROR_NO_PMD BIT(1)
+#define DART_ERROR_NO_TTBR BIT(0)
+
+#define DART_STREAM_SELECT 0x34
+
+#define DART_STREAM_COMMAND 0x20
+#define DART_STREAM_COMMAND_BUSY BIT(2)
+#define DART_STREAM_COMMAND_INVALIDATE BIT(20)
+
+#define DART_STREAM_COMMAND_BUSY_TIMEOUT 100
+
+#define DART_STREAM_REMAP 0x80
+
+#define DART_ERROR_ADDR_HI 0x54
+#define DART_ERROR_ADDR_LO 0x50
+
+#define DART_TCR(sid) (0x100 + 4 * (sid))
+#define DART_TCR_TRANSLATE_ENABLE BIT(7)
+#define DART_TCR_BYPASS0_ENABLE BIT(8)
+#define DART_TCR_BYPASS1_ENABLE BIT(12)
+
+#define DART_TTBR(sid, idx) (0x200 + 16 * (sid) + 4 * (idx))
+#define DART_TTBR_VALID BIT(31)
+#define DART_TTBR_SHIFT 12
+
+/*
+ * Private structure associated with each DART device.
+ *
+ * @dev: device struct
+ * @regs: mapped MMIO region
+ * @irq: interrupt number, can be shared with other DARTs
+ * @clks: clocks associated with this DART
+ * @num_clks: number of @clks
+ * @lock: lock for @used_sids and hardware operations involving this dart
+ * @used_sids: bitmap of streams attached to a domain
+ * @iommu: iommu core device
+ */
+struct apple_dart {
+   struct device *dev;
+
+   void __iomem *regs;
+
+   int irq;
+   struct clk_bulk_data *clks;
+   int num_clks;
+
+   spinlock_t lock;
+
+   u32 used_sids;
+
+   struct iommu_device iommu;
+};
+
+/*
+ * This structure is used to identify a single stream attached to a domain.
+ * It's used as a list inside that domain to be able to attach multiple
+ * streams to a single domain. Since multiple devices can use a single stream
+ * 

[PATCH v2 2/3] dt-bindings: iommu: add DART iommu bindings

2021-03-28 Thread Sven Peter via iommu
DART (Device Address Resolution Table) is the iommu found on Apple
ARM SoCs such as the M1.

Signed-off-by: Sven Peter 
---
 .../devicetree/bindings/iommu/apple,dart.yaml | 81 +++
 MAINTAINERS   |  6 ++
 2 files changed, 87 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iommu/apple,dart.yaml

diff --git a/Documentation/devicetree/bindings/iommu/apple,dart.yaml 
b/Documentation/devicetree/bindings/iommu/apple,dart.yaml
new file mode 100644
index ..c0b43d90c157
--- /dev/null
+++ b/Documentation/devicetree/bindings/iommu/apple,dart.yaml
@@ -0,0 +1,81 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iommu/apple,dart.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Apple DART IOMMU
+
+maintainers:
+  - Sven Peter 
+
+description: |+
+  Apple SoCs may contain an implementation of their Device Address
+  Resolution Table which provides a mandatory layer of address
+  translations for various masters.
+
+  Each DART instance is capable of handling up to 16 different streams
+  with individual pagetables and page-level read/write protection flags.
+
+  This DART IOMMU also raises interrupts in response to various
+  fault conditions.
+
+properties:
+  compatible:
+const: apple,t8103-dart
+
+  reg:
+maxItems: 1
+
+  interrupts:
+maxItems: 1
+
+  clocks:
+description:
+  Reference to the gate clock phandle if required for this IOMMU.
+  Optional since not all IOMMUs are attached to a clock gate.
+
+  '#iommu-cells':
+const: 1
+description:
+  Has to be one. The single cell describes the stream id emitted by
+  a master to the IOMMU.
+
+required:
+  - compatible
+  - reg
+  - '#iommu-cells'
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |+
+dart1: dart1@82f8 {
+  compatible = "apple,t8103-dart";
+  reg = <0x82f8 0x4000>;
+  interrupts = <1 781 4>;
+  #iommu-cells = <1>;
+};
+
+master1 {
+  iommus = <&{/dart1} 0>;
+};
+
+  - |+
+dart2a: dart2a@82f0 {
+  compatible = "apple,t8103-dart";
+  reg = <0x82f0 0x4000>;
+  interrupts = <1 781 4>;
+  #iommu-cells = <1>;
+};
+dart2b: dart2@82f8 {
+  compatible = "apple,t8103-dart";
+  reg = <0x82f8 0x4000>;
+  interrupts = <1 781 4>;
+  #iommu-cells = <1>;
+};
+
+master2 {
+  iommus = <&{/dart2a} 0>, <&{/dart2b} 1>;
+};
diff --git a/MAINTAINERS b/MAINTAINERS
index 9ac46317840b..f5397328fa1f 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1236,6 +1236,12 @@ L:   linux-in...@vger.kernel.org
 S: Odd fixes
 F: drivers/input/mouse/bcm5974.c
 
+APPLE DART IOMMU DRIVER
+M: Sven Peter 
+L: iommu@lists.linux-foundation.org
+S: Maintained
+F: Documentation/devicetree/bindings/iommu/apple,t8103-dart.yaml
+
 APPLE SMC DRIVER
 M: Henrik Rydberg 
 L: linux-hw...@vger.kernel.org
-- 
2.25.1

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH v2 0/3] Apple M1 DART IOMMU driver

2021-03-28 Thread Sven Peter via iommu
Hi,

Here's v2 of my Apple M1 DART IOMMU driver series as a follow up to the original
version [1].

Short summary: this series adds support for the iommu found in Apple's new M1
SoC which is required to use DMA on most peripherals. So far this code has been
tested with dwc3 in host and device mode on a M1 Mac Mini on top of the latest
version of Hector's bringup series [2,3] together with my m1n1 bootloader
branch to bring up USB [4]. It will also apply (but not be very useful) on
top of iommu/next and v5.12-rc3.

Thanks everyone for the suggestions and discussions so far. I believe they
have already significantly improved the state of this driver and our
understanding of the DART iommu!

The part I'm most unsure about is the way I keep track of the multiple
iommu nodes attached to a device. I would love to especially get some
feedback there.


Changes for v2:
 - fixed devicetree binding linting issues pointed out by Rob Herring and
   reworked that file.
 - made DART-specific code in io-pgtable.c unconditional and removed flag from
   Kconfig as proposed by Robin Murphy.
 - allowed multiple DART nodes in the "iommus" property as proposed by
   Rob Herring and Robin Murphy. this resulted in significant changes
   to apple-iommu-dart.c.
 - the domain aperture is now forced to 32bit if translation is enabled after
   the original suggestion to limit the aperture by Mark Kettenis and the
   follow-up discussion and investigation with Mark Kettenis, Arnd Bergmann,
   Robin Murphy and Rob Herring. This change also simplified the code
   in io-pgtable.c and made some of the improvements suggested during review
   not apply anymore.
 - added support for bypassed and isolated domain modes.
 - reject IOMMU_MMIO and IOMMU_NOEXEC since it's unknown how to set these up
   for now or if the hardware even supports these flags.
 - renamed some registers to be less confusing (mainly s/DOMAIN/STREAM/ to
   prevent confusion with linux's iommu domain concept).

I have also fixed my email provider so this time the series should actually
be a single thread and not contain any HTML by accident anymore...

Best,


Sven


[1] 
https://lore.kernel.org/linux-iommu/20210320151903.60759-1-s...@svenpeter.dev/
[2] https://lore.kernel.org/linux-arch/20210304213902.83903-1-mar...@marcan.st/
[3] https://github.com/AsahiLinux/linux/tree/upstream-bringup-v4
[4] https://github.com/svenpeter42/m1n1/tree/usb-dwc3-serial-wip

Sven Peter (3):
  iommu: io-pgtable: add DART pagetable format
  dt-bindings: iommu: add DART iommu bindings
  iommu: dart: Add DART iommu driver

 .../devicetree/bindings/iommu/apple,dart.yaml |  81 ++
 MAINTAINERS   |   7 +
 drivers/iommu/Kconfig |  14 +
 drivers/iommu/Makefile|   1 +
 drivers/iommu/apple-dart-iommu.c  | 858 ++
 drivers/iommu/io-pgtable-arm.c|  59 ++
 drivers/iommu/io-pgtable.c|   1 +
 include/linux/io-pgtable.h|   6 +
 8 files changed, 1027 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iommu/apple,dart.yaml
 create mode 100644 drivers/iommu/apple-dart-iommu.c

-- 
2.25.1

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH v2 1/3] iommu: io-pgtable: add DART pagetable format

2021-03-28 Thread Sven Peter via iommu
Apple's DART iommu uses a pagetable format that shares some
similarities with the ones already implemented by io-pgtable.c.
Add a new format variant to support the required differences
so that we don't have to duplicate the pagetable handling code.

Signed-off-by: Sven Peter 
---
 drivers/iommu/io-pgtable-arm.c | 59 ++
 drivers/iommu/io-pgtable.c |  1 +
 include/linux/io-pgtable.h |  6 
 3 files changed, 66 insertions(+)

diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c
index 87def58e79b5..2f63443fd115 100644
--- a/drivers/iommu/io-pgtable-arm.c
+++ b/drivers/iommu/io-pgtable-arm.c
@@ -127,6 +127,9 @@
 #define ARM_MALI_LPAE_MEMATTR_IMP_DEF  0x88ULL
 #define ARM_MALI_LPAE_MEMATTR_WRITE_ALLOC 0x8DULL
 
+#define APPLE_DART_PTE_PROT_NO_WRITE (1<<7)
+#define APPLE_DART_PTE_PROT_NO_READ (1<<8)
+
 /* IOPTE accessors */
 #define iopte_deref(pte,d) __va(iopte_to_paddr(pte, d))
 
@@ -381,6 +384,15 @@ static arm_lpae_iopte arm_lpae_prot_to_pte(struct 
arm_lpae_io_pgtable *data,
 {
arm_lpae_iopte pte;
 
+   if (data->iop.fmt == ARM_APPLE_DART) {
+   pte = 0;
+   if (!(prot & IOMMU_WRITE))
+   pte |= APPLE_DART_PTE_PROT_NO_WRITE;
+   if (!(prot & IOMMU_READ))
+   pte |= APPLE_DART_PTE_PROT_NO_READ;
+   return pte;
+   }
+
if (data->iop.fmt == ARM_64_LPAE_S1 ||
data->iop.fmt == ARM_32_LPAE_S1) {
pte = ARM_LPAE_PTE_nG;
@@ -1043,6 +1055,48 @@ arm_mali_lpae_alloc_pgtable(struct io_pgtable_cfg *cfg, 
void *cookie)
return NULL;
 }
 
+static struct io_pgtable *
+apple_dart_alloc_pgtable(struct io_pgtable_cfg *cfg, void *cookie)
+{
+   struct arm_lpae_io_pgtable *data;
+
+   if (cfg->ias > 36)
+   return NULL;
+   if (cfg->oas > 36)
+   return NULL;
+
+   if (!cfg->coherent_walk)
+   return NULL;
+
+   cfg->pgsize_bitmap &= SZ_16K;
+   if (!cfg->pgsize_bitmap)
+   return NULL;
+
+   if (cfg->quirks)
+   return NULL;
+
+   data = arm_lpae_alloc_pgtable(cfg);
+   if (!data)
+   return NULL;
+
+   data->start_level = 2;
+   data->pgd_bits = 11;
+   data->bits_per_level = 11;
+
+   data->pgd = __arm_lpae_alloc_pages(ARM_LPAE_PGD_SIZE(data), GFP_KERNEL,
+  cfg);
+   if (!data->pgd)
+   goto out_free_data;
+
+   cfg->apple_dart_cfg.ttbr = virt_to_phys(data->pgd);
+
+   return >iop;
+
+out_free_data:
+   kfree(data);
+   return NULL;
+}
+
 struct io_pgtable_init_fns io_pgtable_arm_64_lpae_s1_init_fns = {
.alloc  = arm_64_lpae_alloc_pgtable_s1,
.free   = arm_lpae_free_pgtable,
@@ -1068,6 +1122,11 @@ struct io_pgtable_init_fns 
io_pgtable_arm_mali_lpae_init_fns = {
.free   = arm_lpae_free_pgtable,
 };
 
+struct io_pgtable_init_fns io_pgtable_apple_dart_init_fns = {
+   .alloc  = apple_dart_alloc_pgtable,
+   .free   = arm_lpae_free_pgtable,
+};
+
 #ifdef CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST
 
 static struct io_pgtable_cfg *cfg_cookie __initdata;
diff --git a/drivers/iommu/io-pgtable.c b/drivers/iommu/io-pgtable.c
index 6e9917ce980f..6ec75f3e9c3b 100644
--- a/drivers/iommu/io-pgtable.c
+++ b/drivers/iommu/io-pgtable.c
@@ -27,6 +27,7 @@ io_pgtable_init_table[IO_PGTABLE_NUM_FMTS] = {
 #ifdef CONFIG_AMD_IOMMU
[AMD_IOMMU_V1] = _pgtable_amd_iommu_v1_init_fns,
 #endif
+   [ARM_APPLE_DART] = _pgtable_apple_dart_init_fns,
 };
 
 struct io_pgtable_ops *alloc_io_pgtable_ops(enum io_pgtable_fmt fmt,
diff --git a/include/linux/io-pgtable.h b/include/linux/io-pgtable.h
index a4c9ca2c31f1..b06925eb20d3 100644
--- a/include/linux/io-pgtable.h
+++ b/include/linux/io-pgtable.h
@@ -16,6 +16,7 @@ enum io_pgtable_fmt {
ARM_V7S,
ARM_MALI_LPAE,
AMD_IOMMU_V1,
+   ARM_APPLE_DART,
IO_PGTABLE_NUM_FMTS,
 };
 
@@ -136,6 +137,10 @@ struct io_pgtable_cfg {
u64 transtab;
u64 memattr;
} arm_mali_lpae_cfg;
+
+   struct {
+   u64 ttbr;
+   } apple_dart_cfg;
};
 };
 
@@ -250,5 +255,6 @@ extern struct io_pgtable_init_fns 
io_pgtable_arm_64_lpae_s2_init_fns;
 extern struct io_pgtable_init_fns io_pgtable_arm_v7s_init_fns;
 extern struct io_pgtable_init_fns io_pgtable_arm_mali_lpae_init_fns;
 extern struct io_pgtable_init_fns io_pgtable_amd_iommu_v1_init_fns;
+extern struct io_pgtable_init_fns io_pgtable_apple_dart_init_fns;
 
 #endif /* __IO_PGTABLE_H */
-- 
2.25.1

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu