All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tomasz Nowicki <tn@semihalf.com>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: arnd@arndb.de, will.deacon@arm.com, catalin.marinas@arm.com,
	rafael@kernel.org, hanjun.guo@linaro.org,
	Lorenzo.Pieralisi@arm.com, okaya@codeaurora.org,
	jiang.liu@linux.intel.com, jchandra@broadcom.com,
	robert.richter@caviumnetworks.com, mw@semihalf.com,
	Liviu.Dudau@arm.com, ddaney@caviumnetworks.com,
	wangyijing@huawei.com, Suravee.Suthikulpanit@amd.com,
	msalter@redhat.com, linux-pci@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, linux-acpi@vger.kernel.org,
	linux-kernel@vger.kernel.org, linaro-acpi@lists.linaro.org,
	jcm@redhat.com
Subject: Re: [PATCH V6 02/13] pci, acpi: Provide generic way to assign bus domain number.
Date: Wed, 27 Apr 2016 13:59:30 +0200	[thread overview]
Message-ID: <5720A9A2.6000609@semihalf.com> (raw)
In-Reply-To: <20160427022649.GD6789@localhost>

On 27.04.2016 04:26, Bjorn Helgaas wrote:
> On Fri, Apr 15, 2016 at 07:06:37PM +0200, Tomasz Nowicki wrote:
>> As we now have valid PCI host bridge device reference we can
>> introduce code that is going to find its bus domain number using
>> ACPI _SEG method.
>>
>> Note that _SEG method is optional, therefore _SEG absence means
>> that all PCI buses belong to domain 0.
>>
>> While at it, for the sake of code clarity we put ACPI and DT domain
>> assign methods into the corresponding helpers.
>>
>> Signed-off-by: Tomasz Nowicki <tn@semihalf.com>
>> Reviewed-by: Liviu Dudau <Liviu.Dudau@arm.com>
>> Tested-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
>> Tested-by: Jeremy Linton <jeremy.linton@arm.com>
>> Tested-by: Duc Dang <dhdang@apm.com>
>> Tested-by: Dongdong Liu <liudongdong3@huawei.com>
>> Tested-by: Hanjun Guo <hanjun.guo@linaro.org>
>> Tested-by: Graeme Gregory <graeme.gregory@linaro.org>
>> Tested-by: Sinan Kaya <okaya@codeaurora.org>
>> ---
>>   drivers/acpi/pci_root.c  | 18 ++++++++++++++++++
>>   drivers/pci/pci.c        | 11 +++++++++--
>>   include/linux/pci-acpi.h |  2 ++
>>   3 files changed, 29 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
>> index 4581e0e..d9a70c4 100644
>> --- a/drivers/acpi/pci_root.c
>> +++ b/drivers/acpi/pci_root.c
>> @@ -419,6 +419,24 @@ out:
>>   }
>>   EXPORT_SYMBOL(acpi_pci_osc_control_set);
>>
>> +int acpi_pci_bus_domain_nr(struct device *parent)
>> +{
>> +	struct acpi_device *acpi_dev = to_acpi_device(parent);
>> +	unsigned long long segment = 0;
>> +	acpi_status status;
>> +
>> +	/*
>> +	 * If _SEG method does not exist, following ACPI spec (6.5.6)
>> +	 * all PCI buses belong to domain 0.
>> +	 */
>> +	status = acpi_evaluate_integer(acpi_dev->handle, METHOD_NAME__SEG, NULL,
>> +				       &segment);
>
> We already have code in acpi_pci_root_add() to evaluate _SEG.  We
> don't want to evaluate it *twice*, do we?

Ideally we do not want.

The main intention here was to avoid using "void *sysdata" to retrieve 
domain number. sysdata means something different for each architectures. 
This would be common way for all arch using PCI_DOMAINS_GENERIC option 
such as ARM64.

>
> I was sort of expecting that if you added it here, we'd remove the
> existing call, but it looks like you're keeping both?

I leave _SEG evaluation in acpi_pci_root_add to keep support for IA64 
and x86 which are still using arch-specific sysdata (struct 
pci_sysdata->domain for x86 and struct pci_controller->segment for IA64) 
to retrieve domain number.

ARM64 uses PCI_DOMAINS_GENERIC for DT boot method, it would be 
consistent to keep it for ACPI too.

I am open to suggestions, do you think we should use sysdata for ARM64?

Thanks,
Tomasz

WARNING: multiple messages have this Message-ID (diff)
From: tn@semihalf.com (Tomasz Nowicki)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V6 02/13] pci, acpi: Provide generic way to assign bus domain number.
Date: Wed, 27 Apr 2016 13:59:30 +0200	[thread overview]
Message-ID: <5720A9A2.6000609@semihalf.com> (raw)
In-Reply-To: <20160427022649.GD6789@localhost>

On 27.04.2016 04:26, Bjorn Helgaas wrote:
> On Fri, Apr 15, 2016 at 07:06:37PM +0200, Tomasz Nowicki wrote:
>> As we now have valid PCI host bridge device reference we can
>> introduce code that is going to find its bus domain number using
>> ACPI _SEG method.
>>
>> Note that _SEG method is optional, therefore _SEG absence means
>> that all PCI buses belong to domain 0.
>>
>> While at it, for the sake of code clarity we put ACPI and DT domain
>> assign methods into the corresponding helpers.
>>
>> Signed-off-by: Tomasz Nowicki <tn@semihalf.com>
>> Reviewed-by: Liviu Dudau <Liviu.Dudau@arm.com>
>> Tested-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
>> Tested-by: Jeremy Linton <jeremy.linton@arm.com>
>> Tested-by: Duc Dang <dhdang@apm.com>
>> Tested-by: Dongdong Liu <liudongdong3@huawei.com>
>> Tested-by: Hanjun Guo <hanjun.guo@linaro.org>
>> Tested-by: Graeme Gregory <graeme.gregory@linaro.org>
>> Tested-by: Sinan Kaya <okaya@codeaurora.org>
>> ---
>>   drivers/acpi/pci_root.c  | 18 ++++++++++++++++++
>>   drivers/pci/pci.c        | 11 +++++++++--
>>   include/linux/pci-acpi.h |  2 ++
>>   3 files changed, 29 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
>> index 4581e0e..d9a70c4 100644
>> --- a/drivers/acpi/pci_root.c
>> +++ b/drivers/acpi/pci_root.c
>> @@ -419,6 +419,24 @@ out:
>>   }
>>   EXPORT_SYMBOL(acpi_pci_osc_control_set);
>>
>> +int acpi_pci_bus_domain_nr(struct device *parent)
>> +{
>> +	struct acpi_device *acpi_dev = to_acpi_device(parent);
>> +	unsigned long long segment = 0;
>> +	acpi_status status;
>> +
>> +	/*
>> +	 * If _SEG method does not exist, following ACPI spec (6.5.6)
>> +	 * all PCI buses belong to domain 0.
>> +	 */
>> +	status = acpi_evaluate_integer(acpi_dev->handle, METHOD_NAME__SEG, NULL,
>> +				       &segment);
>
> We already have code in acpi_pci_root_add() to evaluate _SEG.  We
> don't want to evaluate it *twice*, do we?

Ideally we do not want.

The main intention here was to avoid using "void *sysdata" to retrieve 
domain number. sysdata means something different for each architectures. 
This would be common way for all arch using PCI_DOMAINS_GENERIC option 
such as ARM64.

>
> I was sort of expecting that if you added it here, we'd remove the
> existing call, but it looks like you're keeping both?

I leave _SEG evaluation in acpi_pci_root_add to keep support for IA64 
and x86 which are still using arch-specific sysdata (struct 
pci_sysdata->domain for x86 and struct pci_controller->segment for IA64) 
to retrieve domain number.

ARM64 uses PCI_DOMAINS_GENERIC for DT boot method, it would be 
consistent to keep it for ACPI too.

I am open to suggestions, do you think we should use sysdata for ARM64?

Thanks,
Tomasz

  parent reply	other threads:[~2016-04-27 11:59 UTC|newest]

Thread overview: 224+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-15 17:06 [PATCH V6 00/13] Support for generic ACPI based PCI host controller Tomasz Nowicki
2016-04-15 17:06 ` Tomasz Nowicki
2016-04-15 17:06 ` [PATCH V6 01/13] pci, acpi, x86, ia64: Move ACPI host bridge device companion assignment to core code Tomasz Nowicki
2016-04-15 17:06   ` Tomasz Nowicki
2016-04-15 17:06   ` Tomasz Nowicki
2016-04-15 20:41   ` kbuild test robot
2016-04-15 20:41     ` kbuild test robot
2016-04-15 20:41     ` kbuild test robot
2016-04-26 22:36     ` Bjorn Helgaas
2016-04-26 22:36       ` Bjorn Helgaas
2016-04-27 10:12       ` Tomasz Nowicki
2016-04-27 10:12         ` Tomasz Nowicki
2016-04-27  2:45   ` Bjorn Helgaas
2016-04-27  2:45     ` Bjorn Helgaas
2016-05-04  8:10     ` Tomasz Nowicki
2016-05-04  8:10       ` Tomasz Nowicki
2016-05-09 22:18       ` Rafael J. Wysocki
2016-05-09 22:18         ` Rafael J. Wysocki
2016-05-10 10:27         ` Lorenzo Pieralisi
2016-05-10 10:27           ` Lorenzo Pieralisi
2016-05-09 22:56   ` Rafael J. Wysocki
2016-05-09 22:56     ` Rafael J. Wysocki
2016-05-10  1:53     ` Bjorn Helgaas
2016-05-10  1:53       ` Bjorn Helgaas
2016-05-10 10:07       ` Lorenzo Pieralisi
2016-05-10 10:07         ` Lorenzo Pieralisi
2016-04-15 17:06 ` [PATCH V6 02/13] pci, acpi: Provide generic way to assign bus domain number Tomasz Nowicki
2016-04-15 17:06   ` Tomasz Nowicki
2016-04-27  2:26   ` Bjorn Helgaas
2016-04-27  2:26     ` Bjorn Helgaas
2016-04-27 11:17     ` Lorenzo Pieralisi
2016-04-27 11:17       ` Lorenzo Pieralisi
2016-04-27 16:44       ` Bjorn Helgaas
2016-04-27 16:44         ` Bjorn Helgaas
2016-04-27 17:31         ` Lorenzo Pieralisi
2016-04-27 17:31           ` Lorenzo Pieralisi
2016-04-28  8:13           ` Liviu.Dudau
2016-04-28  8:13             ` Liviu.Dudau at arm.com
2016-04-28  8:13             ` Liviu.Dudau
2016-04-28 15:12           ` Bjorn Helgaas
2016-04-28 15:12             ` Bjorn Helgaas
2016-04-28 15:34             ` Arnd Bergmann
2016-04-28 15:34               ` Arnd Bergmann
2016-04-29 22:50               ` Arnd Bergmann
2016-04-29 22:50                 ` Arnd Bergmann
2016-05-02 12:43       ` Tomasz Nowicki
2016-05-02 12:43         ` Tomasz Nowicki
2016-05-02 13:26         ` Jayachandran C
2016-05-02 13:26           ` Jayachandran C
2016-05-03 11:02           ` Lorenzo Pieralisi
2016-05-03 11:02             ` Lorenzo Pieralisi
2016-05-03 14:22             ` Jayachandran C
2016-05-03 14:22               ` Jayachandran C
2016-05-03 14:55               ` Lorenzo Pieralisi
2016-05-03 14:55                 ` Lorenzo Pieralisi
2016-04-27 11:59     ` Tomasz Nowicki [this message]
2016-04-27 11:59       ` Tomasz Nowicki
2016-04-15 17:06 ` [PATCH V6 03/13] x86, ia64: Include acpi_pci_{add|remove}_bus to the default pcibios_{add|remove}_bus implementation Tomasz Nowicki
2016-04-15 17:06   ` Tomasz Nowicki
2016-04-15 17:06   ` Tomasz Nowicki
2016-04-27  2:34   ` Bjorn Helgaas
2016-04-27  2:34     ` Bjorn Helgaas
2016-04-27 13:19     ` Tomasz Nowicki
2016-04-27 13:19       ` Tomasz Nowicki
2016-04-15 17:06 ` [PATCH V6 04/13] pci, of: Move the PCI I/O space management to PCI core code Tomasz Nowicki
2016-04-15 17:06   ` Tomasz Nowicki
2016-04-15 17:06 ` [PATCH V6 05/13] acpi, pci: Support IO resources when parsing PCI host bridge resources Tomasz Nowicki
2016-04-15 17:06   ` Tomasz Nowicki
2016-04-15 17:06   ` Tomasz Nowicki
2016-04-27  2:39   ` Bjorn Helgaas
2016-04-27  2:39     ` Bjorn Helgaas
2016-04-27  5:36     ` Jon Masters
2016-04-27  5:36       ` Jon Masters
2016-04-27  5:36       ` Jon Masters
2016-04-28 21:53       ` Jon Masters
2016-04-28 21:53         ` Jon Masters
2016-04-27 14:26     ` Lorenzo Pieralisi
2016-04-27 14:26       ` Lorenzo Pieralisi
2016-04-27 15:10       ` Liviu.Dudau
2016-04-27 15:10         ` Liviu.Dudau at arm.com
2016-04-27 15:10         ` Liviu.Dudau
2016-04-27 16:09         ` Lorenzo Pieralisi
2016-04-27 16:09           ` Lorenzo Pieralisi
2016-04-28 15:45       ` Bjorn Helgaas
2016-04-28 15:45         ` Bjorn Helgaas
2016-04-15 17:06 ` [PATCH V6 06/13] arm64, pci, acpi: ACPI support for legacy IRQs parsing and consolidation with DT code Tomasz Nowicki
2016-04-15 17:06   ` Tomasz Nowicki
2016-04-15 17:06   ` Tomasz Nowicki
2016-04-27  2:44   ` Bjorn Helgaas
2016-04-27  2:44     ` Bjorn Helgaas
2016-04-27 11:46     ` Lorenzo Pieralisi
2016-04-27 11:46       ` Lorenzo Pieralisi
2016-04-15 17:06 ` [PATCH V6 07/13] PCI: Provide common functions for ECAM mapping Tomasz Nowicki
2016-04-15 17:06   ` Tomasz Nowicki
2016-04-15 17:06   ` Tomasz Nowicki
2016-04-15 18:41   ` Arnd Bergmann
2016-04-15 18:41     ` Arnd Bergmann
2016-04-28 21:47   ` Bjorn Helgaas
2016-04-28 21:47     ` Bjorn Helgaas
2016-04-29  8:01     ` Jayachandran C
2016-04-29  8:01       ` Jayachandran C
2016-05-05  9:24       ` Jayachandran C
2016-05-05  9:24         ` Jayachandran C
2016-05-05 10:38         ` Tomasz Nowicki
2016-05-05 10:38           ` Tomasz Nowicki
2016-04-15 17:06 ` [PATCH V6 08/13] PCI: generic, thunder: update to use generic ECAM API Tomasz Nowicki
2016-04-15 17:06   ` Tomasz Nowicki
2016-04-15 18:39   ` Arnd Bergmann
2016-04-15 18:39     ` Arnd Bergmann
2016-04-16  7:20     ` Jayachandran C
2016-04-16  7:20       ` Jayachandran C
2016-04-16  7:31       ` Arnd Bergmann
2016-04-16  7:31         ` Arnd Bergmann
2016-04-16 14:36         ` Jayachandran C
2016-04-16 14:36           ` Jayachandran C
2016-04-18 13:03           ` Tomasz Nowicki
2016-04-18 13:03             ` Tomasz Nowicki
2016-04-18 14:44             ` Arnd Bergmann
2016-04-18 14:44               ` Arnd Bergmann
2016-04-18 19:31               ` Tomasz Nowicki
2016-04-18 19:31                 ` Tomasz Nowicki
2016-04-19 13:06                 ` Arnd Bergmann
2016-04-19 13:06                   ` Arnd Bergmann
2016-04-21  9:28                   ` Tomasz Nowicki
2016-04-21  9:28                     ` Tomasz Nowicki
2016-04-21  9:36                     ` Arnd Bergmann
2016-04-21  9:36                       ` Arnd Bergmann
2016-04-21 10:08                       ` Tomasz Nowicki
2016-04-21 10:08                         ` Tomasz Nowicki
2016-04-22 14:30                         ` Jon Masters
2016-04-22 14:30                           ` Jon Masters
2016-04-22 16:00                           ` David Daney
2016-04-22 16:00                             ` David Daney
2016-04-28 20:14                       ` Bjorn Helgaas
2016-04-28 20:14                         ` Bjorn Helgaas
2016-04-28 20:40                         ` Arnd Bergmann
2016-04-28 20:40                           ` Arnd Bergmann
2016-04-28 21:18                           ` Bjorn Helgaas
2016-04-28 21:18                             ` Bjorn Helgaas
2016-04-28 21:47                             ` Jon Masters
2016-04-28 21:47                               ` Jon Masters
2016-04-29  9:41                               ` Lorenzo Pieralisi
2016-04-29  9:41                                 ` Lorenzo Pieralisi
2016-04-19 21:40   ` Arnd Bergmann
2016-04-19 21:40     ` Arnd Bergmann
2016-04-20  0:22     ` Jayachandran C
2016-04-20  0:22       ` Jayachandran C
2016-04-15 17:06 ` [PATCH V6 09/13] pci, acpi: Support for ACPI based generic PCI host controller Tomasz Nowicki
2016-04-15 17:06   ` Tomasz Nowicki
2016-04-20 19:12   ` Jayachandran C
2016-04-20 19:12     ` Jayachandran C
2016-04-21  9:06     ` Tomasz Nowicki
2016-04-21  9:06       ` Tomasz Nowicki
2016-04-22 12:49       ` Jayachandran C
2016-04-22 12:49         ` Jayachandran C
2016-04-22 14:40       ` Jon Masters
2016-04-22 14:40         ` Jon Masters
2016-04-23 15:23         ` Jon Masters
2016-04-23 15:23           ` Jon Masters
2016-04-28 21:48   ` Bjorn Helgaas
2016-04-28 21:48     ` Bjorn Helgaas
2016-04-29  8:37     ` Lorenzo Pieralisi
2016-04-29  8:37       ` Lorenzo Pieralisi
2016-04-29 17:35       ` Jayachandran C
2016-04-29 17:35         ` Jayachandran C
2016-05-02 11:31         ` Tomasz Nowicki
2016-05-02 11:31           ` Tomasz Nowicki
2016-05-03  8:46         ` Lorenzo Pieralisi
2016-05-03  8:46           ` Lorenzo Pieralisi
2016-05-02 11:03     ` Tomasz Nowicki
2016-05-02 11:03       ` Tomasz Nowicki
2016-04-15 17:06 ` [PATCH V6 10/13] arm64, pci, acpi: Start using ACPI based PCI host controller driver for ARM64 Tomasz Nowicki
2016-04-15 17:06   ` Tomasz Nowicki
2016-04-15 17:06 ` [PATCH V6 11/13] pci, acpi: Match PCI config space accessors against platfrom specific quirks Tomasz Nowicki
2016-04-15 17:06   ` Tomasz Nowicki
2016-04-18 11:37   ` liudongdong (C)
2016-04-18 11:37     ` liudongdong (C)
2016-04-18 11:37     ` liudongdong (C)
2016-04-18 12:21     ` Tomasz Nowicki
2016-04-18 12:21       ` Tomasz Nowicki
2016-04-15 17:06 ` [PATCH V6 12/13] pci, pci-thunder-ecam: Add ACPI support for ThunderX ECAM Tomasz Nowicki
2016-04-15 17:06   ` Tomasz Nowicki
2016-04-19 10:26   ` Tomasz Nowicki
2016-04-19 10:26     ` Tomasz Nowicki
2016-04-19 10:41     ` [Linaro-acpi] " G Gregory
2016-04-19 10:41       ` G Gregory
2016-04-19 11:12       ` Graeme Gregory
2016-04-19 11:12         ` Graeme Gregory
2016-04-19 11:22         ` Tomasz Nowicki
2016-04-19 11:22           ` Tomasz Nowicki
2016-04-19 12:29           ` G Gregory
2016-04-19 12:29             ` G Gregory
2016-04-15 17:06 ` [PATCH V6 13/13] pci, pci-thunder-pem: Add ACPI support for ThunderX PEM Tomasz Nowicki
2016-04-15 17:06   ` Tomasz Nowicki
2016-04-15 18:19 ` [PATCH V6 00/13] Support for generic ACPI based PCI host controller Jon Masters
2016-04-15 18:19   ` Jon Masters
2016-04-16 15:31   ` Jayachandran C
2016-04-16 15:31     ` Jayachandran C
2016-04-18 13:33     ` Tomasz Nowicki
2016-04-18 13:33       ` Tomasz Nowicki
2016-04-18 14:38       ` Arnd Bergmann
2016-04-18 14:38         ` Arnd Bergmann
2016-04-18 15:26         ` Tomasz Nowicki
2016-04-18 15:26           ` Tomasz Nowicki
2016-04-18 16:14           ` Mark Langsdorf
2016-04-17  9:23   ` Martinez Kristofer
2016-04-17  9:23     ` Martinez Kristofer
2016-04-16 18:30 ` Duc Dang
2016-04-16 18:30   ` Duc Dang
2016-04-17  4:18 ` Sinan Kaya
2016-04-17  4:18   ` Sinan Kaya
2016-04-22 16:08 ` Robert Richter
2016-04-22 16:08   ` Robert Richter
2016-04-22 16:08   ` Robert Richter
2016-04-22 20:46 ` Suravee Suthikulpanit
2016-04-22 20:46   ` Suravee Suthikulpanit
2016-04-22 20:46   ` Suravee Suthikulpanit
2016-04-25 17:23 ` Jeremy Linton
2016-04-25 17:23   ` Jeremy Linton
2016-04-26  9:07 ` liudongdong (C)
2016-04-26  9:07   ` liudongdong (C)
2016-04-26  9:07   ` liudongdong (C)
2016-04-28 21:27 ` [PATCH] acpi: pci: QDF2432 32 bit config space accessors Christopher Covington
2016-04-28 21:35   ` Rafael J. Wysocki

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=5720A9A2.6000609@semihalf.com \
    --to=tn@semihalf.com \
    --cc=Liviu.Dudau@arm.com \
    --cc=Lorenzo.Pieralisi@arm.com \
    --cc=Suravee.Suthikulpanit@amd.com \
    --cc=arnd@arndb.de \
    --cc=catalin.marinas@arm.com \
    --cc=ddaney@caviumnetworks.com \
    --cc=hanjun.guo@linaro.org \
    --cc=helgaas@kernel.org \
    --cc=jchandra@broadcom.com \
    --cc=jcm@redhat.com \
    --cc=jiang.liu@linux.intel.com \
    --cc=linaro-acpi@lists.linaro.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=msalter@redhat.com \
    --cc=mw@semihalf.com \
    --cc=okaya@codeaurora.org \
    --cc=rafael@kernel.org \
    --cc=robert.richter@caviumnetworks.com \
    --cc=wangyijing@huawei.com \
    --cc=will.deacon@arm.com \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.