diff mbox series

arm64: zynqmp: Add missing ZYNQMP_FIRMWARE dependencies

Message ID 20230201095553.11219-1-ashok.reddy.soma@amd.com
State Accepted
Commit 6d87b1572f854435a68f868624f91673c91985e1
Delegated to: Michal Simek
Headers show
Series arm64: zynqmp: Add missing ZYNQMP_FIRMWARE dependencies | expand

Commit Message

Ashok Reddy Soma Feb. 1, 2023, 9:55 a.m. UTC
From: Algapally Santosh Sagar <santoshsagar.algapally@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.algapally@amd.com>
Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@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(-)

Comments

Michal Simek Feb. 3, 2023, 1:29 p.m. UTC | #1
On 2/1/23 10:55, Ashok Reddy Soma wrote:
> From: Algapally Santosh Sagar <santoshsagar.algapally@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.algapally@amd.com>
> Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@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
diff mbox series

Patch

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),