diff mbox series

[v2] spi: spi-uclass: Add support to manually relocate spi memory ops

Message ID 02cc610fb2e0c16f40dfaf7deac19271c718b2b3.1615980689.git.michal.simek@xilinx.com
State Accepted
Commit 346df7d4fa62afc578d820b3a18815eec765074f
Delegated to: Simon Glass
Headers show
Series [v2] spi: spi-uclass: Add support to manually relocate spi memory ops | expand

Commit Message

Michal Simek March 17, 2021, 11:31 a.m. UTC
From: T Karthik Reddy <t.karthik.reddy@xilinx.com>

Add spi memory operations to relocate manually when
CONFIG_NEEDS_MANUAL_RELOC is enabled.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Acked-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---

Changes in v2:
- Check if mem_ops is defined before relocation - reported-by
 Pratyush Yadav <p.yadav@ti.com>

 drivers/spi/spi-uclass.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

Comments

Pratyush Yadav March 17, 2021, 1:29 p.m. UTC | #1
On 17/03/21 12:31PM, Michal Simek wrote:
> From: T Karthik Reddy <t.karthik.reddy@xilinx.com>
> 
> Add spi memory operations to relocate manually when
> CONFIG_NEEDS_MANUAL_RELOC is enabled.
> 
> Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
> Acked-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
> Signed-off-by: Michal Simek <michal.simek@xilinx.com>

Reviewed-by: Pratyush Yadav <p.yadav@ti.com>
Simon Glass March 27, 2021, 5:20 a.m. UTC | #2
On 17/03/21 12:31PM, Michal Simek wrote:
> From: T Karthik Reddy <t.karthik.reddy@xilinx.com>
>
> Add spi memory operations to relocate manually when
> CONFIG_NEEDS_MANUAL_RELOC is enabled.
>
> Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
> Acked-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
> Signed-off-by: Michal Simek <michal.simek@xilinx.com>

Reviewed-by: Pratyush Yadav <p.yadav@ti.com>
diff mbox series

Patch

diff --git a/drivers/spi/spi-uclass.c b/drivers/spi/spi-uclass.c
index 7155d4aebd6d..ee30110b5658 100644
--- a/drivers/spi/spi-uclass.c
+++ b/drivers/spi/spi-uclass.c
@@ -11,6 +11,7 @@ 
 #include <log.h>
 #include <malloc.h>
 #include <spi.h>
+#include <spi-mem.h>
 #include <dm/device_compat.h>
 #include <asm/global_data.h>
 #include <dm/device-internal.h>
@@ -199,6 +200,16 @@  static int spi_post_probe(struct udevice *bus)
 			ops->set_mode += gd->reloc_off;
 		if (ops->cs_info)
 			ops->cs_info += gd->reloc_off;
+		if (ops->mem_ops) {
+			struct spi_controller_mem_ops *mem_ops =
+				(struct spi_controller_mem_ops *)ops->mem_ops;
+			if (mem_ops->adjust_op_size)
+				mem_ops->adjust_op_size += gd->reloc_off;
+			if (mem_ops->supports_op)
+				mem_ops->supports_op += gd->reloc_off;
+			if (mem_ops->exec_op)
+				mem_ops->exec_op += gd->reloc_off;
+		}
 		reloc_done++;
 	}
 #endif