On 2/1/23 10:55, Ashok Reddy Soma wrote:
From: Algapally Santosh Sagar <santoshsagar.algapa...@amd.com>

There are missing Kconfig dependencies in the code which is using
firmware interface.
The commit 71efd45a5fc7 ("arm64: zynqmp: Change firmware dependency")
add option to also disable ZYNQMP_FIRMWARE. But not all Kconfig
dependencies were properly described and also sdhci and gem drivers
didn't protect the code properly.
So, add the missing ZYNQMP_FIRMWARE dependencies.

Signed-off-by: Algapally Santosh Sagar <santoshsagar.algapa...@amd.com>
Signed-off-by: Ashok Reddy Soma <ashok.reddy.s...@amd.com>
---

  board/xilinx/zynqmp/Kconfig | 1 +
  drivers/clk/Kconfig         | 4 ++--
  drivers/fpga/Kconfig        | 2 +-
  drivers/mmc/zynq_sdhci.c    | 4 ++--
  drivers/net/zynq_gem.c      | 2 +-
  5 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/board/xilinx/zynqmp/Kconfig b/board/xilinx/zynqmp/Kconfig
index 7d1f7398c3..ffa2f0215d 100644
--- a/board/xilinx/zynqmp/Kconfig
+++ b/board/xilinx/zynqmp/Kconfig
@@ -6,6 +6,7 @@ if ARCH_ZYNQMP
config CMD_ZYNQMP
        bool "Enable ZynqMP specific commands"
+       depends on ZYNQMP_FIRMWARE
        default y
        help
          Enable ZynqMP specific commands like "zynqmp secure"
diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig
index 09aa97ee8c..42280cbf83 100644
--- a/drivers/clk/Kconfig
+++ b/drivers/clk/Kconfig
@@ -185,7 +185,7 @@ config CLK_VERSACLOCK
  config CLK_VERSAL
        bool "Enable clock driver support for Versal"
        depends on (ARCH_VERSAL || ARCH_VERSAL_NET)
-       select ZYNQMP_FIRMWARE
+       imply ZYNQMP_FIRMWARE
        help
          This clock driver adds support for clock realted settings for
          Versal platform.
@@ -219,7 +219,7 @@ config CLK_ZYNQ
  config CLK_ZYNQMP
        bool "Enable clock driver support for ZynqMP"
        depends on ARCH_ZYNQMP
-       select ZYNQMP_FIRMWARE
+       imply ZYNQMP_FIRMWARE
        help
          This clock driver adds support for clock realted settings for
          ZynqMP platform.
diff --git a/drivers/fpga/Kconfig b/drivers/fpga/Kconfig
index 4113de230c..f8b0aeb3ee 100644
--- a/drivers/fpga/Kconfig
+++ b/drivers/fpga/Kconfig
@@ -63,7 +63,7 @@ config FPGA_XILINX
config FPGA_ZYNQMPPL
        bool "Enable Xilinx FPGA driver for ZynqMP"
-       depends on FPGA_XILINX
+       depends on FPGA_XILINX && ZYNQMP_FIRMWARE
        help
          Enable FPGA driver for loading bitstream in BIT and BIN format
          on Xilinx Zynq UltraScale+ (ZynqMP) device.
diff --git a/drivers/mmc/zynq_sdhci.c b/drivers/mmc/zynq_sdhci.c
index 91e309d275..8b559d8a7a 100644
--- a/drivers/mmc/zynq_sdhci.c
+++ b/drivers/mmc/zynq_sdhci.c
@@ -988,7 +988,7 @@ static const struct sdhci_ops arasan_ops = {
  };
  #endif
-#if defined(CONFIG_ARCH_ZYNQMP)
+#if defined(CONFIG_ARCH_ZYNQMP) && defined(CONFIG_ZYNQMP_FIRMWARE)
  static int sdhci_zynqmp_set_dynamic_config(struct arasan_sdhci_priv *priv,
                                           struct udevice *dev)
  {
@@ -1090,7 +1090,7 @@ static int arasan_sdhci_probe(struct udevice *dev)
host = priv->host; -#if defined(CONFIG_ARCH_ZYNQMP)
+#if defined(CONFIG_ARCH_ZYNQMP) && defined(CONFIG_ZYNQMP_FIRMWARE)
        if (device_is_compatible(dev, "xlnx,zynqmp-8.9a")) {
                ret = zynqmp_pm_is_function_supported(PM_IOCTL,
                                                      IOCTL_SET_SD_CONFIG);
diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c
index cc49788012..211b2c6e55 100644
--- a/drivers/net/zynq_gem.c
+++ b/drivers/net/zynq_gem.c
@@ -738,7 +738,7 @@ static int gem_zynqmp_set_dynamic_config(struct udevice 
*dev)
        u32 pm_info[2];
        int ret;
- if (IS_ENABLED(CONFIG_ARCH_ZYNQMP)) {
+       if (IS_ENABLED(CONFIG_ARCH_ZYNQMP) && 
IS_ENABLED(CONFIG_ZYNQMP_FIRMWARE)) {
                if (!zynqmp_pm_is_function_supported(PM_IOCTL,
                                                     IOCTL_SET_GEM_CONFIG)) {
                        ret = ofnode_read_u32_array(dev_ofnode(dev),

Applied.
M

Reply via email to