bus: hisi_lpc: Don't dereference fwnode handle

Use dev_fwnode() and acpi_fwnode_handle() instead of dereferencing
an fwnode handle directly, which is a better coding practice.

While at it, reuse fwnode instead of ACPI_COMPANION().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
This commit is contained in:
Andy Shevchenko 2022-09-05 16:23:02 +08:00 committed by Wei Xu
parent 568035b01c
commit 947f11d153
1 changed files with 4 additions and 6 deletions

View File

@ -347,7 +347,7 @@ static int hisi_lpc_acpi_xlat_io_res(struct acpi_device *adev,
unsigned long sys_port; unsigned long sys_port;
resource_size_t len = resource_size(res); resource_size_t len = resource_size(res);
sys_port = logic_pio_trans_hwaddr(&host->fwnode, res->start, len); sys_port = logic_pio_trans_hwaddr(acpi_fwnode_handle(host), res->start, len);
if (sys_port == ~0UL) if (sys_port == ~0UL)
return -EFAULT; return -EFAULT;
@ -615,7 +615,6 @@ static void hisi_lpc_acpi_remove(struct device *hostdev)
static int hisi_lpc_probe(struct platform_device *pdev) static int hisi_lpc_probe(struct platform_device *pdev)
{ {
struct device *dev = &pdev->dev; struct device *dev = &pdev->dev;
struct acpi_device *acpi_device = ACPI_COMPANION(dev);
struct logic_pio_hwaddr *range; struct logic_pio_hwaddr *range;
struct hisi_lpc_dev *lpcdev; struct hisi_lpc_dev *lpcdev;
resource_size_t io_end; resource_size_t io_end;
@ -637,7 +636,7 @@ static int hisi_lpc_probe(struct platform_device *pdev)
if (!range) if (!range)
return -ENOMEM; return -ENOMEM;
range->fwnode = dev->fwnode; range->fwnode = dev_fwnode(dev);
range->flags = LOGIC_PIO_INDIRECT; range->flags = LOGIC_PIO_INDIRECT;
range->size = PIO_INDIRECT_SIZE; range->size = PIO_INDIRECT_SIZE;
range->hostdata = lpcdev; range->hostdata = lpcdev;
@ -651,7 +650,7 @@ static int hisi_lpc_probe(struct platform_device *pdev)
} }
/* register the LPC host PIO resources */ /* register the LPC host PIO resources */
if (acpi_device) if (is_acpi_device_node(range->fwnode))
ret = hisi_lpc_acpi_probe(dev); ret = hisi_lpc_acpi_probe(dev);
else else
ret = of_platform_populate(dev->of_node, NULL, NULL, dev); ret = of_platform_populate(dev->of_node, NULL, NULL, dev);
@ -672,11 +671,10 @@ static int hisi_lpc_probe(struct platform_device *pdev)
static int hisi_lpc_remove(struct platform_device *pdev) static int hisi_lpc_remove(struct platform_device *pdev)
{ {
struct device *dev = &pdev->dev; struct device *dev = &pdev->dev;
struct acpi_device *acpi_device = ACPI_COMPANION(dev);
struct hisi_lpc_dev *lpcdev = dev_get_drvdata(dev); struct hisi_lpc_dev *lpcdev = dev_get_drvdata(dev);
struct logic_pio_hwaddr *range = lpcdev->io_host; struct logic_pio_hwaddr *range = lpcdev->io_host;
if (acpi_device) if (is_acpi_device_node(range->fwnode))
hisi_lpc_acpi_remove(dev); hisi_lpc_acpi_remove(dev);
else else
of_platform_depopulate(dev); of_platform_depopulate(dev);