LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: John Garry <john.garry@huawei.com>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	<rjw@rjwysocki.net>, <linux-acpi@vger.kernel.org>,
	<lenb@kernel.org>, <mika.westerberg@linux.intel.com>,
	<lorenzo.pieralisi@arm.com>
Cc: <linux-kernel@vger.kernel.org>, <arnd@arndb.de>,
	<graeme.gregory@linaro.org>, <helgaas@kernel.org>,
	<linuxarm@huawei.com>, <z.liuxinliang@hisilicon.com>
Subject: Re: [RFC PATCH 2/2] HISI LPC: Add PNP device support
Date: Fri, 20 Apr 2018 14:09:58 +0100	[thread overview]
Message-ID: <e838b3ef-5cf8-ac12-6b44-a1f8001f8b94@huawei.com> (raw)
In-Reply-To: <1524228606.21176.472.camel@linux.intel.com>

On 20/04/2018 13:50, Andy Shevchenko wrote:
> On Fri, 2018-04-20 at 18:07 +0800, John Garry wrote:
>> Currently the driver creates an per-ACPI device mfd_cell
>> for child devices. This does not suit devices which are
>> PNP-compatible, as we expect PNP-compatible devices to
>> derive PNP devices.
>>
>> To add PNP device support, we continue to allow the PNP
>> scan code to create the PNP device (which have the
>> enumeration_by_parent flag set), but expect the PNP
>> scan to defer adding the device to allow the host probe
>> code to do this. In addition, no longer do we create an
>> mfd_cell (platform_device) for PNP-compatible devices.
>>
>> We take this approach so that host probe code can
>> translate the IO resources of the PNP device prior
>> to adding the device.
>

Hi Andy,

Thanks for checking this.

>> +	list_for_each_entry(child, &adev->children, node) {
>> +		if (acpi_is_pnp_device(child))
>> +			continue;
>
> This is good candidate for a separate helper macro
>
> #define for_each_acpi_non_pnp_device(child, adev) \
> ...

Right, I did consider this, but was holding off refining until I get 
past RFC stage. In fact, we could also process each child entry in one 
loop, like this:

list_for_each_entry(child, &adev->children, node) {
	if (acpi_is_pnp_device(child)) {
		/* Do PNP compatible device work */

	} else {
		/* otherwise, make an MFD cell ... */
	}

>
> (see, for example, for_each_pci_bridge() implementation as an example)
>
>
>> +	list_for_each_entry(child, &adev->children, node) {
>
>> +		if (!acpi_is_pnp_device(child))
>> +			continue;
>
> Ditto.
>

ok

>> +		/*
>> +		 * Prior to adding the device, we need to translate
>> the
>> +		 * resources to logical PIO addresses.
>> +		 */
>> +		list_for_each_entry(pnp_res, &pnp_dev->resources,
>> list) {
>> +			struct resource *res = &pnp_res->res;
>> +
>
>> +			if (res->flags | IORESOURCE_IO)
>
> What does this mean?

Here we check the resource flag for each resource for this PNP device - 
for IO resources we must translate the resource value from the bus 
address to the logical PIO address.

>
>> +				hisi_lpc_acpi_xlat_io_res(child,
>> adev, res);
>> +		}
>

Regards,
John

  reply	other threads:[~2018-04-20 13:10 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-20 10:07 [RFC PATCH 0/2] " John Garry
2018-04-20 10:07 ` [RFC PATCH 1/2] ACPI / PNP: Don't add "enumeration_by_parent" devices John Garry
2018-04-20 13:07   ` Mika Westerberg
2018-04-20 13:24     ` John Garry
2018-04-20 13:52       ` Mika Westerberg
2018-04-20 14:09         ` John Garry
2018-04-26 13:49           ` John Garry
2018-04-26 14:08             ` Mika Westerberg
2018-04-26 14:23               ` John Garry
2018-04-26 14:40                 ` Mika Westerberg
2018-04-27  9:17                 ` John Garry
2018-04-30  5:36                   ` Lee Jones
2018-04-30  9:00                     ` John Garry
2018-04-30  9:26                       ` Lee Jones
2018-04-30  9:35                         ` John Garry
2018-04-30 10:46                           ` Lee Jones
2018-04-30 10:57                             ` John Garry
2018-04-20 10:07 ` [RFC PATCH 2/2] HISI LPC: Add PNP device support John Garry
2018-04-20 12:50   ` Andy Shevchenko
2018-04-20 13:09     ` John Garry [this message]
2018-04-20 13:28       ` Andy Shevchenko
2018-04-20 13:32         ` John Garry
2018-04-20 13:12   ` Mika Westerberg
2018-04-20 13:36     ` John Garry

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e838b3ef-5cf8-ac12-6b44-a1f8001f8b94@huawei.com \
    --to=john.garry@huawei.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=arnd@arndb.de \
    --cc=graeme.gregory@linaro.org \
    --cc=helgaas@kernel.org \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxarm@huawei.com \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=mika.westerberg@linux.intel.com \
    --cc=rjw@rjwysocki.net \
    --cc=z.liuxinliang@hisilicon.com \
    --subject='Re: [RFC PATCH 2/2] HISI LPC: Add PNP device support' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).