summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPadmarao Begari <padmarao.begari@amd.com>2025-02-18 10:54:19 +0530
committerMichal Simek <michal.simek@amd.com>2025-03-03 16:09:59 +0100
commit96f47ae89a4ce16a59c14d229ff707bdeb1064f4 (patch)
treebc19bd761d7b40f22bf1c00a545a4050d520b279
parente2ef5ff765c9603ba4232c9f85f898ad34162069 (diff)
clk: versal: Store driver data in data section
Line 171 in README is describing that before relocation no code should use global variable because global variables are placed to BSS section which is initialized to 0 after relocation. On Versal platforms clock driver is initialized before relocation (via using dm,bootph-all flag in DT) and global variables are initialized which works if this is used only before relocation. But the variables are used after relocation too but values are zeroed which is ending up incorrect behavior. That's why place variables to data section to ensure that values are not cleared which is for now the quickest temporary solution. The correct way to do it is to move all global variables to private data to avoid it. Signed-off-by: Padmarao Begari <padmarao.begari@amd.com> Link: https://lore.kernel.org/r/20250218052419.1141139-1-padmarao.begari@amd.com Signed-off-by: Michal Simek <michal.simek@amd.com>
-rw-r--r--drivers/clk/clk_versal.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/clk/clk_versal.c b/drivers/clk/clk_versal.c
index 3e471670a87..cb98f34b5ec 100644
--- a/drivers/clk/clk_versal.c
+++ b/drivers/clk/clk_versal.c
@@ -106,8 +106,8 @@ struct versal_clk_priv {
struct versal_clock *clk;
};
-static ulong pl_alt_ref_clk;
-static ulong ref_clk;
+static ulong pl_alt_ref_clk __section(".data");
+static ulong ref_clk __section(".data");
struct versal_pm_query_data {
u32 qid;
@@ -116,8 +116,8 @@ struct versal_pm_query_data {
u32 arg3;
};
-static struct versal_clock *clock;
-static unsigned int clock_max_idx;
+static struct versal_clock *clock __section(".data");
+static unsigned int clock_max_idx __section(".data");
#define PM_QUERY_DATA 35