]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 5.10
authorSasha Levin <sashal@kernel.org>
Tue, 16 Jul 2024 14:21:05 +0000 (10:21 -0400)
committerSasha Levin <sashal@kernel.org>
Tue, 16 Jul 2024 14:21:05 +0000 (10:21 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-5.10/i2c-mark-hostnotify-target-address-as-used.patch [new file with mode: 0644]
queue-5.10/i2c-rcar-add-r-car-gen4-support.patch [new file with mode: 0644]
queue-5.10/i2c-rcar-bring-hardware-to-known-state-when-probing.patch [new file with mode: 0644]
queue-5.10/i2c-rcar-clear-no_rxdma-flag-after-resetting.patch [new file with mode: 0644]
queue-5.10/i2c-rcar-ensure-gen3-reset-does-not-disturb-local-ta.patch [new file with mode: 0644]
queue-5.10/i2c-rcar-introduce-gen4-devices.patch [new file with mode: 0644]
queue-5.10/i2c-rcar-reset-controller-is-mandatory-for-gen3.patch [new file with mode: 0644]
queue-5.10/series

diff --git a/queue-5.10/i2c-mark-hostnotify-target-address-as-used.patch b/queue-5.10/i2c-mark-hostnotify-target-address-as-used.patch
new file mode 100644 (file)
index 0000000..1c57303
--- /dev/null
@@ -0,0 +1,39 @@
+From 666e3acbaf1bd0083e3548d95fb1d95dcece5840 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 10 Jul 2024 10:55:07 +0200
+Subject: i2c: mark HostNotify target address as used
+
+From: Wolfram Sang <wsa+renesas@sang-engineering.com>
+
+[ Upstream commit bd9f5348089b65612e5ca976e2ae22f005340331 ]
+
+I2C core handles the local target for receiving HostNotify alerts. There
+is no separate driver bound to that address. That means userspace can
+access it if desired, leading to further complications if controllers
+are not capable of reading their own local target. Bind the local target
+to the dummy driver so it will be marked as "handled by the kernel" if
+the HostNotify feature is used. That protects aginst userspace access
+and prevents other drivers binding to it.
+
+Fixes: 2a71593da34d ("i2c: smbus: add core function handling SMBus host-notify")
+Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/i2c/i2c-core-base.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c
+index e8a89e18c640e..6fac638e423ac 100644
+--- a/drivers/i2c/i2c-core-base.c
++++ b/drivers/i2c/i2c-core-base.c
+@@ -969,6 +969,7 @@ EXPORT_SYMBOL_GPL(i2c_unregister_device);
+ static const struct i2c_device_id dummy_id[] = {
+       { "dummy", 0 },
++      { "smbus_host_notify", 0 },
+       { },
+ };
+-- 
+2.43.0
+
diff --git a/queue-5.10/i2c-rcar-add-r-car-gen4-support.patch b/queue-5.10/i2c-rcar-add-r-car-gen4-support.patch
new file mode 100644 (file)
index 0000000..86f51e1
--- /dev/null
@@ -0,0 +1,40 @@
+From ad485b0caaceb2c7e40e5d9bf16225e0cd7cdac8 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 3 Feb 2022 15:33:17 +0100
+Subject: i2c: rcar: Add R-Car Gen4 support
+
+From: Geert Uytterhoeven <geert+renesas@glider.be>
+
+[ Upstream commit ea01b71b07993d5c518496692f476a3c6b5d9786 ]
+
+Add support for the I2C Bus Interface on R-Car Gen4 SoCs (e.g. R-Car
+S4-8) by matching on a family-specific compatible value.
+
+While I2C on R-Car Gen4 does support some extra features (Slave Clock
+Stretch Select), for now it is treated the same as I2C on R-Car Gen3.
+
+Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
+Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
+[wsa: removed incorrect "FM+" from commit message]
+Signed-off-by: Wolfram Sang <wsa@kernel.org>
+Stable-dep-of: ea5ea84c9d35 ("i2c: rcar: ensure Gen3+ reset does not disturb local targets")
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/i2c/busses/i2c-rcar.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/i2c/busses/i2c-rcar.c b/drivers/i2c/busses/i2c-rcar.c
+index 029d999708261..720c3fd757ef2 100644
+--- a/drivers/i2c/busses/i2c-rcar.c
++++ b/drivers/i2c/busses/i2c-rcar.c
+@@ -950,6 +950,7 @@ static const struct of_device_id rcar_i2c_dt_ids[] = {
+       { .compatible = "renesas,rcar-gen1-i2c", .data = (void *)I2C_RCAR_GEN1 },
+       { .compatible = "renesas,rcar-gen2-i2c", .data = (void *)I2C_RCAR_GEN2 },
+       { .compatible = "renesas,rcar-gen3-i2c", .data = (void *)I2C_RCAR_GEN3 },
++      { .compatible = "renesas,rcar-gen4-i2c", .data = (void *)I2C_RCAR_GEN3 },
+       {},
+ };
+ MODULE_DEVICE_TABLE(of, rcar_i2c_dt_ids);
+-- 
+2.43.0
+
diff --git a/queue-5.10/i2c-rcar-bring-hardware-to-known-state-when-probing.patch b/queue-5.10/i2c-rcar-bring-hardware-to-known-state-when-probing.patch
new file mode 100644 (file)
index 0000000..c9b4e1e
--- /dev/null
@@ -0,0 +1,71 @@
+From 03c09167c3426dea763bd74b3eecabf340ab1d4f Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 7 Jul 2024 10:28:46 +0200
+Subject: i2c: rcar: bring hardware to known state when probing
+
+From: Wolfram Sang <wsa+renesas@sang-engineering.com>
+
+[ Upstream commit 4e36c0f20cb1c74c7bd7ea31ba432c1c4a989031 ]
+
+When probing, the hardware is not brought into a known state. This may
+be a problem when a hypervisor restarts Linux without resetting the
+hardware, leaving an old state running. Make sure the hardware gets
+initialized, especially interrupts should be cleared and disabled.
+
+Reported-by: Dirk Behme <dirk.behme@de.bosch.com>
+Reported-by: Geert Uytterhoeven <geert+renesas@glider.be>
+Closes: https://lore.kernel.org/r/20240702045535.2000393-1-dirk.behme@de.bosch.com
+Fixes: 6ccbe607132b ("i2c: add Renesas R-Car I2C driver")
+Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
+Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/i2c/busses/i2c-rcar.c | 17 ++++++++++++-----
+ 1 file changed, 12 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/i2c/busses/i2c-rcar.c b/drivers/i2c/busses/i2c-rcar.c
+index 6a7a7a074a975..029d999708261 100644
+--- a/drivers/i2c/busses/i2c-rcar.c
++++ b/drivers/i2c/busses/i2c-rcar.c
+@@ -220,6 +220,14 @@ static void rcar_i2c_init(struct rcar_i2c_priv *priv)
+ }
++static void rcar_i2c_reset_slave(struct rcar_i2c_priv *priv)
++{
++      rcar_i2c_write(priv, ICSIER, 0);
++      rcar_i2c_write(priv, ICSSR, 0);
++      rcar_i2c_write(priv, ICSCR, SDBS);
++      rcar_i2c_write(priv, ICSAR, 0); /* Gen2: must be 0 if not using slave */
++}
++
+ static int rcar_i2c_bus_barrier(struct rcar_i2c_priv *priv)
+ {
+       int ret;
+@@ -888,11 +896,8 @@ static int rcar_unreg_slave(struct i2c_client *slave)
+       /* ensure no irq is running before clearing ptr */
+       disable_irq(priv->irq);
+-      rcar_i2c_write(priv, ICSIER, 0);
+-      rcar_i2c_write(priv, ICSSR, 0);
++      rcar_i2c_reset_slave(priv);
+       enable_irq(priv->irq);
+-      rcar_i2c_write(priv, ICSCR, SDBS);
+-      rcar_i2c_write(priv, ICSAR, 0); /* Gen2: must be 0 if not using slave */
+       priv->slave = NULL;
+@@ -1004,7 +1009,9 @@ static int rcar_i2c_probe(struct platform_device *pdev)
+               goto out_pm_disable;
+       }
+-      rcar_i2c_write(priv, ICSAR, 0); /* Gen2: must be 0 if not using slave */
++      /* Bring hardware to known state */
++      rcar_i2c_init(priv);
++      rcar_i2c_reset_slave(priv);
+       if (priv->devtype < I2C_RCAR_GEN3) {
+               irqflags |= IRQF_NO_THREAD;
+-- 
+2.43.0
+
diff --git a/queue-5.10/i2c-rcar-clear-no_rxdma-flag-after-resetting.patch b/queue-5.10/i2c-rcar-clear-no_rxdma-flag-after-resetting.patch
new file mode 100644 (file)
index 0000000..507204a
--- /dev/null
@@ -0,0 +1,39 @@
+From 0ef922b34a68faddb50f607cc496e392f4fd8739 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 10 Jul 2024 13:03:00 +0200
+Subject: i2c: rcar: clear NO_RXDMA flag after resetting
+
+From: Wolfram Sang <wsa+renesas@sang-engineering.com>
+
+[ Upstream commit fea6b5ebb71a2830b042e42de7ae255017ac3ce8 ]
+
+We should allow RXDMA only if the reset was really successful, so clear
+the flag after the reset call.
+
+Fixes: 0e864b552b23 ("i2c: rcar: reset controller is mandatory for Gen3+")
+Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
+Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/i2c/busses/i2c-rcar.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/i2c/busses/i2c-rcar.c b/drivers/i2c/busses/i2c-rcar.c
+index db3a5b80f1aa8..8a8c2403641b0 100644
+--- a/drivers/i2c/busses/i2c-rcar.c
++++ b/drivers/i2c/busses/i2c-rcar.c
+@@ -826,10 +826,10 @@ static int rcar_i2c_master_xfer(struct i2c_adapter *adap,
+       /* Gen3+ needs a reset. That also allows RXDMA once */
+       if (priv->devtype >= I2C_RCAR_GEN3) {
+-              priv->flags &= ~ID_P_NO_RXDMA;
+               ret = rcar_i2c_do_reset(priv);
+               if (ret)
+                       goto out;
++              priv->flags &= ~ID_P_NO_RXDMA;
+       }
+       rcar_i2c_init(priv);
+-- 
+2.43.0
+
diff --git a/queue-5.10/i2c-rcar-ensure-gen3-reset-does-not-disturb-local-ta.patch b/queue-5.10/i2c-rcar-ensure-gen3-reset-does-not-disturb-local-ta.patch
new file mode 100644 (file)
index 0000000..74e513e
--- /dev/null
@@ -0,0 +1,59 @@
+From a3968f79d29edca4560844461b1f06d3459f8e1c Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 11 Jul 2024 10:30:44 +0200
+Subject: i2c: rcar: ensure Gen3+ reset does not disturb local targets
+
+From: Wolfram Sang <wsa+renesas@sang-engineering.com>
+
+[ Upstream commit ea5ea84c9d3570dc06e8fc5ee2273eaa584aa3ac ]
+
+R-Car Gen3+ needs a reset before every controller transfer. That erases
+configuration of a potentially in parallel running local target
+instance. To avoid this disruption, avoid controller transfers if a
+local target is running. Also, disable SMBusHostNotify because it
+requires being a controller and local target at the same time.
+
+Fixes: 3b770017b03a ("i2c: rcar: handle RXDMA HW behaviour on Gen3")
+Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
+Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/i2c/busses/i2c-rcar.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/drivers/i2c/busses/i2c-rcar.c b/drivers/i2c/busses/i2c-rcar.c
+index 41c9d15c3bc69..db3a5b80f1aa8 100644
+--- a/drivers/i2c/busses/i2c-rcar.c
++++ b/drivers/i2c/busses/i2c-rcar.c
+@@ -796,6 +796,10 @@ static int rcar_i2c_do_reset(struct rcar_i2c_priv *priv)
+ {
+       int ret;
++      /* Don't reset if a slave instance is currently running */
++      if (priv->slave)
++              return -EISCONN;
++
+       ret = reset_control_reset(priv->rstc);
+       if (ret)
+               return ret;
+@@ -1027,6 +1031,7 @@ static int rcar_i2c_probe(struct platform_device *pdev)
+       if (of_property_read_bool(dev->of_node, "smbus"))
+               priv->flags |= ID_P_HOST_NOTIFY;
++      /* R-Car Gen3+ needs a reset before every transfer */
+       if (priv->devtype >= I2C_RCAR_GEN3) {
+               priv->rstc = devm_reset_control_get_exclusive(&pdev->dev, NULL);
+               if (IS_ERR(priv->rstc))
+@@ -1035,6 +1040,9 @@ static int rcar_i2c_probe(struct platform_device *pdev)
+               ret = reset_control_status(priv->rstc);
+               if (ret < 0)
+                       goto out_pm_put;
++
++              /* hard reset disturbs HostNotify local target, so disable it */
++              priv->flags &= ~ID_P_HOST_NOTIFY;
+       }
+       ret = platform_get_irq(pdev, 0);
+-- 
+2.43.0
+
diff --git a/queue-5.10/i2c-rcar-introduce-gen4-devices.patch b/queue-5.10/i2c-rcar-introduce-gen4-devices.patch
new file mode 100644 (file)
index 0000000..b977ba5
--- /dev/null
@@ -0,0 +1,77 @@
+From 86e1a9c427731a3fb27408606ef68388f0d563bb Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 14 Dec 2023 08:43:57 +0100
+Subject: i2c: rcar: introduce Gen4 devices
+
+From: Wolfram Sang <wsa+renesas@sang-engineering.com>
+
+[ Upstream commit 2b523c46e81ebd621515ab47117f95de197dfcbf ]
+
+So far, we treated Gen4 as Gen3. But we are soon adding FM+ as a Gen4
+specific feature, so prepare the code for the new devtype.
+
+Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
+Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
+Reviewed-by: Andi Shyti <andi.shyti@kernel.org>
+Signed-off-by: Wolfram Sang <wsa@kernel.org>
+Stable-dep-of: ea5ea84c9d35 ("i2c: rcar: ensure Gen3+ reset does not disturb local targets")
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/i2c/busses/i2c-rcar.c | 13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/i2c/busses/i2c-rcar.c b/drivers/i2c/busses/i2c-rcar.c
+index 4b0222e5f584c..41c9d15c3bc69 100644
+--- a/drivers/i2c/busses/i2c-rcar.c
++++ b/drivers/i2c/busses/i2c-rcar.c
+@@ -116,6 +116,7 @@ enum rcar_i2c_type {
+       I2C_RCAR_GEN1,
+       I2C_RCAR_GEN2,
+       I2C_RCAR_GEN3,
++      I2C_RCAR_GEN4,
+ };
+ struct rcar_i2c_priv {
+@@ -380,8 +381,8 @@ static void rcar_i2c_dma_unmap(struct rcar_i2c_priv *priv)
+       dma_unmap_single(chan->device->dev, sg_dma_address(&priv->sg),
+                        sg_dma_len(&priv->sg), priv->dma_direction);
+-      /* Gen3 can only do one RXDMA per transfer and we just completed it */
+-      if (priv->devtype == I2C_RCAR_GEN3 &&
++      /* Gen3+ can only do one RXDMA per transfer and we just completed it */
++      if (priv->devtype >= I2C_RCAR_GEN3 &&
+           priv->dma_direction == DMA_FROM_DEVICE)
+               priv->flags |= ID_P_NO_RXDMA;
+@@ -819,8 +820,8 @@ static int rcar_i2c_master_xfer(struct i2c_adapter *adap,
+       if (ret < 0)
+               goto out;
+-      /* Gen3 needs a reset before allowing RXDMA once */
+-      if (priv->devtype == I2C_RCAR_GEN3) {
++      /* Gen3+ needs a reset. That also allows RXDMA once */
++      if (priv->devtype >= I2C_RCAR_GEN3) {
+               priv->flags &= ~ID_P_NO_RXDMA;
+               ret = rcar_i2c_do_reset(priv);
+               if (ret)
+@@ -948,7 +949,7 @@ static const struct of_device_id rcar_i2c_dt_ids[] = {
+       { .compatible = "renesas,rcar-gen1-i2c", .data = (void *)I2C_RCAR_GEN1 },
+       { .compatible = "renesas,rcar-gen2-i2c", .data = (void *)I2C_RCAR_GEN2 },
+       { .compatible = "renesas,rcar-gen3-i2c", .data = (void *)I2C_RCAR_GEN3 },
+-      { .compatible = "renesas,rcar-gen4-i2c", .data = (void *)I2C_RCAR_GEN3 },
++      { .compatible = "renesas,rcar-gen4-i2c", .data = (void *)I2C_RCAR_GEN4 },
+       {},
+ };
+ MODULE_DEVICE_TABLE(of, rcar_i2c_dt_ids);
+@@ -1026,7 +1027,7 @@ static int rcar_i2c_probe(struct platform_device *pdev)
+       if (of_property_read_bool(dev->of_node, "smbus"))
+               priv->flags |= ID_P_HOST_NOTIFY;
+-      if (priv->devtype == I2C_RCAR_GEN3) {
++      if (priv->devtype >= I2C_RCAR_GEN3) {
+               priv->rstc = devm_reset_control_get_exclusive(&pdev->dev, NULL);
+               if (IS_ERR(priv->rstc))
+                       goto out_pm_put;
+-- 
+2.43.0
+
diff --git a/queue-5.10/i2c-rcar-reset-controller-is-mandatory-for-gen3.patch b/queue-5.10/i2c-rcar-reset-controller-is-mandatory-for-gen3.patch
new file mode 100644 (file)
index 0000000..278a540
--- /dev/null
@@ -0,0 +1,81 @@
+From 74729221ade8531ef9ca40ddac13bb15030f1ff8 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 21 Sep 2023 14:53:49 +0200
+Subject: i2c: rcar: reset controller is mandatory for Gen3+
+
+From: Wolfram Sang <wsa+renesas@sang-engineering.com>
+
+[ Upstream commit 0e864b552b2302e40b2277629ebac79544a5c433 ]
+
+Initially, we only needed a reset controller to make sure RXDMA works at
+least once per transfer. Meanwhile, documentation has been updated. It
+now says that a reset has to be performed prior every transaction, even
+if it is non-DMA. So, make the reset controller a requirement instead of
+being optional. And bail out if resetting fails.
+
+Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
+Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
+Signed-off-by: Wolfram Sang <wsa@kernel.org>
+Stable-dep-of: ea5ea84c9d35 ("i2c: rcar: ensure Gen3+ reset does not disturb local targets")
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/i2c/busses/i2c-rcar.c | 29 ++++++++++++++---------------
+ 1 file changed, 14 insertions(+), 15 deletions(-)
+
+diff --git a/drivers/i2c/busses/i2c-rcar.c b/drivers/i2c/busses/i2c-rcar.c
+index 720c3fd757ef2..4b0222e5f584c 100644
+--- a/drivers/i2c/busses/i2c-rcar.c
++++ b/drivers/i2c/busses/i2c-rcar.c
+@@ -821,12 +821,10 @@ static int rcar_i2c_master_xfer(struct i2c_adapter *adap,
+       /* Gen3 needs a reset before allowing RXDMA once */
+       if (priv->devtype == I2C_RCAR_GEN3) {
+-              priv->flags |= ID_P_NO_RXDMA;
+-              if (!IS_ERR(priv->rstc)) {
+-                      ret = rcar_i2c_do_reset(priv);
+-                      if (ret == 0)
+-                              priv->flags &= ~ID_P_NO_RXDMA;
+-              }
++              priv->flags &= ~ID_P_NO_RXDMA;
++              ret = rcar_i2c_do_reset(priv);
++              if (ret)
++                      goto out;
+       }
+       rcar_i2c_init(priv);
+@@ -1019,15 +1017,6 @@ static int rcar_i2c_probe(struct platform_device *pdev)
+               irqhandler = rcar_i2c_gen2_irq;
+       }
+-      if (priv->devtype == I2C_RCAR_GEN3) {
+-              priv->rstc = devm_reset_control_get_exclusive(&pdev->dev, NULL);
+-              if (!IS_ERR(priv->rstc)) {
+-                      ret = reset_control_status(priv->rstc);
+-                      if (ret < 0)
+-                              priv->rstc = ERR_PTR(-ENOTSUPP);
+-              }
+-      }
+-
+       /* Stay always active when multi-master to keep arbitration working */
+       if (of_property_read_bool(dev->of_node, "multi-master"))
+               priv->flags |= ID_P_PM_BLOCKED;
+@@ -1037,6 +1026,16 @@ static int rcar_i2c_probe(struct platform_device *pdev)
+       if (of_property_read_bool(dev->of_node, "smbus"))
+               priv->flags |= ID_P_HOST_NOTIFY;
++      if (priv->devtype == I2C_RCAR_GEN3) {
++              priv->rstc = devm_reset_control_get_exclusive(&pdev->dev, NULL);
++              if (IS_ERR(priv->rstc))
++                      goto out_pm_put;
++
++              ret = reset_control_status(priv->rstc);
++              if (ret < 0)
++                      goto out_pm_put;
++      }
++
+       ret = platform_get_irq(pdev, 0);
+       if (ret < 0)
+               goto out_pm_put;
+-- 
+2.43.0
+
index 5cb6b66d58d20b80685fd31c11c141ee03337a62..37045af38835ef4613ac5fb5efbd0da1e1b526d4 100644 (file)
@@ -97,3 +97,10 @@ ipv6-annotate-data-races-around-cnf.disable_ipv6.patch
 ipv6-prevent-null-dereference-in-ip6_output.patch
 bpf-allow-reads-from-uninit-stack.patch
 nilfs2-fix-kernel-bug-on-rename-operation-of-broken-directory.patch
+i2c-rcar-bring-hardware-to-known-state-when-probing.patch
+i2c-mark-hostnotify-target-address-as-used.patch
+i2c-rcar-add-r-car-gen4-support.patch
+i2c-rcar-reset-controller-is-mandatory-for-gen3.patch
+i2c-rcar-introduce-gen4-devices.patch
+i2c-rcar-ensure-gen3-reset-does-not-disturb-local-ta.patch
+i2c-rcar-clear-no_rxdma-flag-after-resetting.patch