Re: [PATCH 3/3] arm_scpi: modify to support acpi
From: 王洪辉
Date: Thu Nov 24 2022 - 07:26:16 EST
Thinks!
When boot from uefi on phytium ft2004(arm64) platform, can't show temp & freq of cpu, but well if boot from uboot for same kernel binary file;
So i modified arm_scpi.c and scpi-hwmon.c as patch, and tested ok.
Best Regards!
Wang Honghui
------------------ Original ------------------From: "Mark Rutland"<mark.rutland@xxxxxxx>;Date: Thu, Nov 24, 2022 07:03 PMTo: "Wang Honghui"<honghui.wang@xxxxxxxxxxx>; Cc: "Sudeep Holla"<sudeep.holla@xxxxxxx>; "Cristian Maruss"<cristian.marussi@xxxxxxx>; "Jassi Brar"<jassisinghbrar@xxxxxxxxx>; "linux-arm-kernel"<linux-arm-kernel@xxxxxxxxxxxxxxxxxxx>; "linux-kernel"<linux-kernel@xxxxxxxxxxxxxxx>; Subject: Re: [PATCH 3/3] arm_scpi: modify to support acpi On Thu, Nov 24, 2022 at 03:09:31PM +0800, Wang Honghui wrote:> arm_scpi: modify to support acpi> > Signed-off-by: Wang Honghui <honghui.wang@xxxxxxxxxxx>> @@ -937,55 +952,116 @@ static int scpi_probe(struct platform_device *pdev)> if (ret)> return ret;> > - for (; scpi_drvinfo->num_chans < count; scpi_drvinfo->num_chans++) {> -resource_size_t size;> -int idx = scpi_drvinfo->num_chans;> -struct scpi_chan *pchan = scpi_drvinfo->channels + idx;> -struct mbox_client *cl = &pchan->cl;> -struct device_node *shmem = of_parse_phandle(np, "shmem", idx);> -> -if (!of_match_node(shmem_of_match, shmem))> - return -ENXIO;> + /* Wang Honghui modified to support acpi */> + if (dev->of_node) {[...]> + } else {> +for (; scpi_info->num_chans < count; scpi_info->num_chans++) {> + u32 size;> + u32 addr;> + int idx = scpi_info->num_chans;> + struct scpi_chan *pchan = scpi_info->channels + idx;> + struct mbox_client *cl = &pchan->cl;> + struct fwnode_handle *fn;> +> + fn = dev_fwnode(&(pdev->dev));> + ret = fwnode_property_read_u32(fn, "shmem_start", &addr);> + if (ret < 0) {> + dev_err(dev, "failed to get SCPI payload mem resource\n");> + return ret;> + }> +> + ret = fwnode_property_read_u32(fn, "shmem_size", &size);> + if (ret < 0) {> + dev_err(dev, "failed to ioremap SCPI payload\n");> + return -EADDRNOTAVAIL;> + }ACPI has native mechanisms to describe IO resources, so this doesn't look right at all.Does ARM have ACPI bindings for SCPI? I don't think we should be inventingvendor-specific bindings for this....> + if (!ret) {> + pchan->chan = phytium_mbox_request_channel(cl);... so this looks very wrong.Thanks,Mark.