[PATCH 4/4] firmware: xilinx: enable feature check for ZynqMP

Michal Simek michal.simek at xilinx.com
Fri Apr 29 01:36:17 PDT 2022



On 4/6/22 12:55, Ronak Jain wrote:
> Enable the feature check if the PM_FEATURE_CHECK API returns success
> with the supported version for the ZynqMP. Currently, it is enabled
> for Versal only.
> 
> Move get_set_conduit_method() at the beginning as the Linux is
> requesting to TF-A for the PM_FEATURE_CHECK API version for which the
> interface should be enabled with TF-A.
> 
> Signed-off-by: Ronak Jain <ronak.jain at xilinx.com>
> ---
>   drivers/firmware/xilinx/zynqmp.c | 15 +++++++++++----
>   1 file changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c
> index 6ee94f31ac98..7977a494a651 100644
> --- a/drivers/firmware/xilinx/zynqmp.c
> +++ b/drivers/firmware/xilinx/zynqmp.c
> @@ -1662,6 +1662,10 @@ static int zynqmp_firmware_probe(struct platform_device *pdev)
>   	struct zynqmp_devinfo *devinfo;
>   	int ret;
>   
> +	ret = get_set_conduit_method(dev->of_node);
> +	if (ret)
> +		return ret;
> +
>   	np = of_find_compatible_node(NULL, NULL, "xlnx,zynqmp");
>   	if (!np) {
>   		np = of_find_compatible_node(NULL, NULL, "xlnx,versal");
> @@ -1670,11 +1674,14 @@ static int zynqmp_firmware_probe(struct platform_device *pdev)
>   
>   		feature_check_enabled = true;
>   	}
> -	of_node_put(np);
>   
> -	ret = get_set_conduit_method(dev->of_node);
> -	if (ret)
> -		return ret;
> +	if (!feature_check_enabled) {
> +		ret = do_feature_check_call(PM_FEATURE_CHECK);
> +		if (ret >= 0)
> +			feature_check_enabled = true;
> +	}
> +
> +	of_node_put(np);
>   
>   	devinfo = devm_kzalloc(dev, sizeof(*devinfo), GFP_KERNEL);
>   	if (!devinfo)


Acked-by: Michal Simek <michal.simek at xilinx.com>

Thanks,
Michal




More information about the linux-arm-kernel mailing list