All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hanjun Guo <hanjun.guo@linaro.org>
To: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	Russell King - ARM Linux <linux@arm.linux.org.uk>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	Grant Likely <grant.likely@linaro.org>,
	Matthew Garrett <mjg59@srcf.ucam.org>,
	Olof Johansson <olof@lixom.net>,
	Linus Walleij <linus.walleij@linaro.org>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Rob Herring <rob.herring@calxeda.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Jon Masters <jonathan@jonmasters.org>,
	patches@linaro.org, linux-kernel@vger.kernel.org,
	linaro-kernel@lists.linaro.org, linaro-acpi@lists.linaro.org,
	Graeme Gregory <graeme.gregory@linaro.org>,
	Al Stone <al.stone@linaro.org>
Subject: Re: [RFC part1 PATCH 1/7] ACPI: Make ACPI core running without PCI on ARM64
Date: Wed, 04 Dec 2013 22:15:22 +0800	[thread overview]
Message-ID: <529F38FA.7070505@linaro.org> (raw)
In-Reply-To: <20131203164748.0c19d346@alan.etchedpixels.co.uk>

On 2013年12月04日 00:47, One Thousand Gnomes wrote:
>> diff --git a/drivers/acpi/reboot.c b/drivers/acpi/reboot.c
>> index a6c77e8b..89a181f 100644
>> --- a/drivers/acpi/reboot.c
>> +++ b/drivers/acpi/reboot.c
>> @@ -3,12 +3,43 @@
>>   #include <linux/acpi.h>
>>   #include <acpi/reboot.h>
>>   
>> +/*
>> + * There are some rare cases in the ARM world with PCI is not one
>> + * of the buses available to us, even though we use ACPI.
> Can we have a comment that is easier to understand here and perhaps a
> better function name ?

ok, how about "Not all the ARM/ARM64 platforms with CONFIG_PCI enabled, introduce
stub function here in case of !CONFIG_PCI when using ACPI" ?

I will discuss with Graeme for a better function name


>
>> + */
>> +#ifdef CONFIG_PCI
>> +static void acpi_reset_with_writing_pci_config(u64 address, u8 reset_value)
>> +{
>> +	struct pci_bus *bus0;
>> +	unsigned int devfn;
>> +
>> +	/* The reset register can only live on bus 0. */
>> +	bus0 = pci_find_bus(0, 0);
>> +	if (!bus0)
>> +		return;
> So if you can't find the PCI eg because we have no PCI on the device you
> return silently, but
>
>
>> +static void acpi_reset_with_writing_pci_config(u64 address, u8 reset_value)
>> +{
>> +	pr_warn("Resetting with ACPI PCI RESET_REG failed, PCI is disabled\n");
>> +	return;
>> +}
> the same system without CONFIG_PCI makes a noise.
>
> What happens when you want to build a single kernel which works on both
> PCI and non PCI systems. Surely the behaviour should be the same.

Good point, thanks for the guidance, will update in next version.


>
> The other question I'd ask is given the nature of some of these bits
> would it be better to have an acpi/pci.c which holds the PCI bits ?

Sorry, I'm confused here, which PCI bits?


>
>> +		acpi_reset_with_writing_pci_config(rr->address, reset_value);
>>   		break;
>>   
>>   	case ACPI_ADR_SPACE_SYSTEM_MEMORY:
>> diff --git a/drivers/pnp/pnpacpi/rsparser.c b/drivers/pnp/pnpacpi/rsparser.c
>> index 167f3d0..5804e77 100644
>> --- a/drivers/pnp/pnpacpi/rsparser.c
>> +++ b/drivers/pnp/pnpacpi/rsparser.c
>> @@ -113,8 +113,10 @@ static int dma_flags(struct pnp_dev *dev, int type, int bus_master,
>>   
>>   static void pnpacpi_add_irqresource(struct pnp_dev *dev, struct resource *r)
>>   {
>> +#ifdef CONFIG_PCI
>>   	if (!(r->flags & IORESOURCE_DISABLED))
>>   		pcibios_penalize_isa_irq(r->start, 1);
> Probably better avoid PCI ifdefs all over the place. Any reason the
> includes for the PCI layer can't provide this as a dummy on a non-PCI
> system ?

Agreed, I will introduce arch\arm64\include\asm\pci.h to cover pcibios_penalize_isa_irq()
as ARM did, then #ifdef here can be removed.

Thanks
Hanjun

WARNING: multiple messages have this Message-ID (diff)
From: hanjun.guo@linaro.org (Hanjun Guo)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC part1 PATCH 1/7] ACPI: Make ACPI core running without PCI on ARM64
Date: Wed, 04 Dec 2013 22:15:22 +0800	[thread overview]
Message-ID: <529F38FA.7070505@linaro.org> (raw)
In-Reply-To: <20131203164748.0c19d346@alan.etchedpixels.co.uk>

On 2013?12?04? 00:47, One Thousand Gnomes wrote:
>> diff --git a/drivers/acpi/reboot.c b/drivers/acpi/reboot.c
>> index a6c77e8b..89a181f 100644
>> --- a/drivers/acpi/reboot.c
>> +++ b/drivers/acpi/reboot.c
>> @@ -3,12 +3,43 @@
>>   #include <linux/acpi.h>
>>   #include <acpi/reboot.h>
>>   
>> +/*
>> + * There are some rare cases in the ARM world with PCI is not one
>> + * of the buses available to us, even though we use ACPI.
> Can we have a comment that is easier to understand here and perhaps a
> better function name ?

ok, how about "Not all the ARM/ARM64 platforms with CONFIG_PCI enabled, introduce
stub function here in case of !CONFIG_PCI when using ACPI" ?

I will discuss with Graeme for a better function name


>
>> + */
>> +#ifdef CONFIG_PCI
>> +static void acpi_reset_with_writing_pci_config(u64 address, u8 reset_value)
>> +{
>> +	struct pci_bus *bus0;
>> +	unsigned int devfn;
>> +
>> +	/* The reset register can only live on bus 0. */
>> +	bus0 = pci_find_bus(0, 0);
>> +	if (!bus0)
>> +		return;
> So if you can't find the PCI eg because we have no PCI on the device you
> return silently, but
>
>
>> +static void acpi_reset_with_writing_pci_config(u64 address, u8 reset_value)
>> +{
>> +	pr_warn("Resetting with ACPI PCI RESET_REG failed, PCI is disabled\n");
>> +	return;
>> +}
> the same system without CONFIG_PCI makes a noise.
>
> What happens when you want to build a single kernel which works on both
> PCI and non PCI systems. Surely the behaviour should be the same.

Good point, thanks for the guidance, will update in next version.


>
> The other question I'd ask is given the nature of some of these bits
> would it be better to have an acpi/pci.c which holds the PCI bits ?

Sorry, I'm confused here, which PCI bits?


>
>> +		acpi_reset_with_writing_pci_config(rr->address, reset_value);
>>   		break;
>>   
>>   	case ACPI_ADR_SPACE_SYSTEM_MEMORY:
>> diff --git a/drivers/pnp/pnpacpi/rsparser.c b/drivers/pnp/pnpacpi/rsparser.c
>> index 167f3d0..5804e77 100644
>> --- a/drivers/pnp/pnpacpi/rsparser.c
>> +++ b/drivers/pnp/pnpacpi/rsparser.c
>> @@ -113,8 +113,10 @@ static int dma_flags(struct pnp_dev *dev, int type, int bus_master,
>>   
>>   static void pnpacpi_add_irqresource(struct pnp_dev *dev, struct resource *r)
>>   {
>> +#ifdef CONFIG_PCI
>>   	if (!(r->flags & IORESOURCE_DISABLED))
>>   		pcibios_penalize_isa_irq(r->start, 1);
> Probably better avoid PCI ifdefs all over the place. Any reason the
> includes for the PCI layer can't provide this as a dummy on a non-PCI
> system ?

Agreed, I will introduce arch\arm64\include\asm\pci.h to cover pcibios_penalize_isa_irq()
as ARM did, then #ifdef here can be removed.

Thanks
Hanjun

  reply	other threads:[~2013-12-04 14:15 UTC|newest]

Thread overview: 164+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-03 16:36 [RFC part1 PATCH 0/7] Make ACPI core running on ARM64 Hanjun Guo
2013-12-03 16:36 ` Hanjun Guo
2013-12-03 16:36 ` [RFC part1 PATCH 1/7] ACPI: Make ACPI core running without PCI " Hanjun Guo
2013-12-03 16:36   ` Hanjun Guo
2013-12-03 16:41   ` Matthew Garrett
2013-12-03 16:41     ` Matthew Garrett
2013-12-04 14:08     ` Hanjun Guo
2013-12-04 14:08       ` Hanjun Guo
2013-12-04 14:08       ` Hanjun Guo
2013-12-05 22:04       ` Arnd Bergmann
2013-12-05 22:04         ` Arnd Bergmann
2013-12-05 22:04         ` Arnd Bergmann
2013-12-06 15:04         ` [Linaro-acpi] " Tomasz Nowicki
2013-12-06 15:04           ` Tomasz Nowicki
2013-12-06 17:23           ` Arnd Bergmann
2013-12-06 17:23             ` Arnd Bergmann
2013-12-06 17:23             ` Arnd Bergmann
2013-12-09  4:12             ` Hanjun Guo
2013-12-09  4:12               ` Hanjun Guo
2013-12-09  4:12               ` Hanjun Guo
2013-12-09 11:50               ` Catalin Marinas
2013-12-09 11:50                 ` Catalin Marinas
2013-12-09 13:05                 ` Hanjun Guo
2013-12-09 13:05                   ` Hanjun Guo
2013-12-09 13:05                   ` Hanjun Guo
2013-12-09 16:35                   ` Arnd Bergmann
2013-12-09 16:35                     ` Arnd Bergmann
2013-12-09 16:55                     ` Catalin Marinas
2013-12-09 16:55                       ` Catalin Marinas
2013-12-09 17:20                       ` Arnd Bergmann
2013-12-09 17:20                         ` Arnd Bergmann
2013-12-09 18:01                         ` Catalin Marinas
2013-12-09 18:01                           ` Catalin Marinas
2013-12-16 20:51                           ` Graeme Gregory
2013-12-16 20:51                             ` Graeme Gregory
2013-12-17 11:29                             ` Catalin Marinas
2013-12-17 11:29                               ` Catalin Marinas
2013-12-19 11:30                               ` Graeme Gregory
2013-12-19 11:30                                 ` Graeme Gregory
2013-12-19 14:01                                 ` Arnd Bergmann
2013-12-19 14:01                                   ` Arnd Bergmann
2013-12-19 14:01                                   ` Arnd Bergmann
2013-12-19 15:43                                   ` Catalin Marinas
2013-12-19 15:43                                     ` Catalin Marinas
2013-12-20 19:55                               ` Mark Brown
2013-12-20 19:55                                 ` Mark Brown
2013-12-10  2:53                       ` Hanjun Guo
2013-12-10  2:53                         ` Hanjun Guo
2013-12-09 17:06                     ` Matthew Garrett
2013-12-09 17:06                       ` Matthew Garrett
2013-12-10  1:52                       ` Hanjun Guo
2013-12-10  1:52                         ` Hanjun Guo
2013-12-10  3:28                       ` Arnd Bergmann
2013-12-10  3:28                         ` Arnd Bergmann
2013-12-10  3:28                         ` Arnd Bergmann
2013-12-10 19:22                         ` Mark Brown
2013-12-10 19:22                           ` Mark Brown
2013-12-10 19:22                           ` Mark Brown
2013-12-10 20:00                           ` Arnd Bergmann
2013-12-10 20:00                             ` Arnd Bergmann
2013-12-10 20:00                             ` Arnd Bergmann
2013-12-10 20:23                             ` Mark Brown
2013-12-10 20:23                               ` Mark Brown
2013-12-10 20:23                               ` Mark Brown
2013-12-11  3:07                               ` Arnd Bergmann
2013-12-11  3:07                                 ` Arnd Bergmann
2013-12-11  3:07                                 ` Arnd Bergmann
2013-12-11 11:02                                 ` Mark Brown
2013-12-11 11:02                                   ` Mark Brown
2013-12-11 11:02                                   ` Mark Brown
2013-12-10  9:56                       ` Linus Walleij
2013-12-10  9:56                         ` Linus Walleij
2013-12-09 23:34         ` Rob Herring
2013-12-09 23:34           ` Rob Herring
2013-12-09 23:34           ` Rob Herring
2013-12-03 16:47   ` One Thousand Gnomes
2013-12-03 16:47     ` One Thousand Gnomes
2013-12-04 14:15     ` Hanjun Guo [this message]
2013-12-04 14:15       ` Hanjun Guo
2013-12-03 16:36 ` [RFC part1 PATCH 2/7] ARM64 : Add dummy asm/cpu.h Hanjun Guo
2013-12-03 16:36   ` Hanjun Guo
2013-12-03 17:13   ` Mark Rutland
2013-12-03 17:13     ` Mark Rutland
2013-12-03 17:13     ` Mark Rutland
2013-12-04 15:00     ` Hanjun Guo
2013-12-04 15:00       ` Hanjun Guo
2013-12-04 15:00       ` Hanjun Guo
2013-12-03 17:59   ` Mark Brown
2013-12-03 17:59     ` Mark Brown
2013-12-03 16:36 ` [RFC part1 PATCH 3/7] ACPI / processor_core: Rework _PDC related stuff to make it more arch-independent Hanjun Guo
2013-12-03 16:36   ` Hanjun Guo
2013-12-03 16:46   ` Matthew Garrett
2013-12-03 16:46     ` Matthew Garrett
2013-12-04 14:11     ` Hanjun Guo
2013-12-04 14:11       ` Hanjun Guo
2013-12-03 16:51   ` One Thousand Gnomes
2013-12-03 16:51     ` One Thousand Gnomes
2013-12-03 16:51     ` One Thousand Gnomes
2013-12-03 17:02     ` Matthew Garrett
2013-12-03 17:02       ` Matthew Garrett
2013-12-04 14:16     ` Hanjun Guo
2013-12-04 14:16       ` Hanjun Guo
2013-12-04 14:16       ` Hanjun Guo
2013-12-03 16:36 ` [RFC part1 PATCH 4/7] ARM64 / ACPI: Introduce the skeleton of _PDC related for ARM64 Hanjun Guo
2013-12-03 16:36   ` Hanjun Guo
2013-12-03 16:53   ` One Thousand Gnomes
2013-12-03 16:53     ` One Thousand Gnomes
2013-12-03 16:53     ` One Thousand Gnomes
2013-12-04 14:17     ` Hanjun Guo
2013-12-04 14:17       ` Hanjun Guo
2013-12-03 17:12   ` Rob Herring
2013-12-03 17:12     ` Rob Herring
2013-12-04 14:30     ` Hanjun Guo
2013-12-04 14:30       ` Hanjun Guo
2013-12-03 16:36 ` [RFC part1 PATCH 5/7] ARM64 / ACPI: Introduce arm_core.c and its related head file Hanjun Guo
2013-12-03 16:36   ` Hanjun Guo
2013-12-03 18:03   ` Mark Rutland
2013-12-03 18:03     ` Mark Rutland
2013-12-03 18:03     ` Mark Rutland
2013-12-04 15:48     ` Hanjun Guo
2013-12-04 15:48       ` Hanjun Guo
2013-12-04 15:48       ` Hanjun Guo
2013-12-04  5:46   ` Zheng, Lv
2013-12-04  5:46     ` Zheng, Lv
2013-12-04 15:53     ` Hanjun Guo
2013-12-04 15:53       ` Hanjun Guo
2013-12-04 15:53       ` Hanjun Guo
2013-12-04 19:47       ` Al Stone
2013-12-04 19:47         ` Al Stone
2013-12-04 19:47         ` Al Stone
2013-12-05  3:38   ` Arnd Bergmann
2013-12-05  3:38     ` Arnd Bergmann
2013-12-05 13:51     ` Hanjun Guo
2013-12-05 13:51       ` Hanjun Guo
2013-12-05 20:40       ` Arnd Bergmann
2013-12-05 20:40         ` Arnd Bergmann
2013-12-05 20:40         ` Arnd Bergmann
2013-12-05 14:09   ` Rob Herring
2013-12-05 14:09     ` Rob Herring
2013-12-05 14:27     ` Hanjun Guo
2013-12-05 14:27       ` Hanjun Guo
2013-12-05 14:27       ` Hanjun Guo
2013-12-03 16:36 ` [RFC part1 PATCH 6/7] ARM64 / ACPI: Introduce lowlevel suspend function Hanjun Guo
2013-12-03 16:36   ` Hanjun Guo
2013-12-03 16:36 ` [RFC part1 PATCH 7/7] ARM64 / ACPI: Enable ARM64 in Kconfig Hanjun Guo
2013-12-03 16:36   ` Hanjun Guo
2013-12-04 10:10   ` Graeme Gregory
2013-12-04 10:10     ` Graeme Gregory
2013-12-04 15:55     ` Hanjun Guo
2013-12-04 15:55       ` Hanjun Guo
2013-12-04 15:55       ` Hanjun Guo
2013-12-05 22:25 ` [RFC part1 PATCH 0/7] Make ACPI core running on ARM64 Arnd Bergmann
2013-12-05 22:25   ` Arnd Bergmann
2013-12-06 13:58   ` Mark Brown
2013-12-06 13:58     ` Mark Brown
2013-12-06 13:58     ` Mark Brown
2013-12-08  2:44     ` Arnd Bergmann
2013-12-08  2:44       ` Arnd Bergmann
2013-12-08 19:40       ` Mark Brown
2013-12-08 19:40         ` Mark Brown
2013-12-08 19:40         ` Mark Brown
2013-12-10  9:45       ` Linus Walleij
2013-12-10  9:45         ` Linus Walleij
2013-12-10  9:45         ` Linus Walleij

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=529F38FA.7070505@linaro.org \
    --to=hanjun.guo@linaro.org \
    --cc=al.stone@linaro.org \
    --cc=bhelgaas@google.com \
    --cc=catalin.marinas@arm.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=gnomes@lxorguk.ukuu.org.uk \
    --cc=graeme.gregory@linaro.org \
    --cc=grant.likely@linaro.org \
    --cc=jonathan@jonmasters.org \
    --cc=linaro-acpi@lists.linaro.org \
    --cc=linaro-kernel@lists.linaro.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=mark.rutland@arm.com \
    --cc=mjg59@srcf.ucam.org \
    --cc=olof@lixom.net \
    --cc=patches@linaro.org \
    --cc=rjw@rjwysocki.net \
    --cc=rob.herring@calxeda.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.