[PATCH 3/3] arm_scpi: modify to support acpi

王洪辉 honghui.wang at ucas.com.cn
Thu Nov 24 04:23:58 PST 2022


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 at arm.com>;Date:  Thu, Nov 24, 2022 07:03 PMTo:  "Wang Honghui"<honghui.wang at ucas.com.cn>; Cc:  "Sudeep Holla"<sudeep.holla at arm.com>; "Cristian Maruss"<cristian.marussi at arm.com>; "Jassi Brar"<jassisinghbrar at gmail.com>; "linux-arm-kernel"<linux-arm-kernel at lists.infradead.org>; "linux-kernel"<linux-kernel at vger.kernel.org>; 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 at ucas.com.cn>> @@ -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.


More information about the linux-arm-kernel mailing list