From: Stefan Roese <sr@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 05/26] x86: irq: Enable SCI on IRQ9
Date: Sat, 7 May 2016 17:51:07 +0200 [thread overview]
Message-ID: <572E0EEB.8090106@denx.de> (raw)
In-Reply-To: <CAEUhbmW2edt5yOsS+vp7khj+9EFP=NCuWDBEcSGH+1LCneJHEw@mail.gmail.com>
Hi Bin,
On 07.05.2016 17:46, Bin Meng wrote:
> On Sat, May 7, 2016 at 11:42 PM, Stefan Roese <sr@denx.de> wrote:
>> Hi Bin,
>>
>>
>> On 07.05.2016 16:06, Bin Meng wrote:
>>>
>>> On Tue, May 3, 2016 at 8:31 PM, Stefan Roese <sr@denx.de> wrote:
>>>>
>>>> Hi Bin,
>>>>
>>>>
>>>> On 02.05.2016 09:33, Bin Meng wrote:
>>>>>
>>>>>
>>>>> By default SCI is disabled after power on. ACTL is the register to
>>>>> enable SCI and route it to PIC/APIC. To support both ACPI in PIC
>>>>> mode and APIC mode, configure SCI to use IRQ9.
>>>>>
>>>>> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>>>>> ---
>>>>>
>>>>> arch/x86/cpu/irq.c | 25
>>>>> ++++++++++++++++++++++
>>>>> arch/x86/include/asm/irq.h | 4 ++++
>>>>> doc/device-tree-bindings/misc/intel,irq-router.txt | 5 +++++
>>>>> 3 files changed, 34 insertions(+)
>>>>>
>>>>> diff --git a/arch/x86/cpu/irq.c b/arch/x86/cpu/irq.c
>>>>> index ae90b0c..487ac23 100644
>>>>> --- a/arch/x86/cpu/irq.c
>>>>> +++ b/arch/x86/cpu/irq.c
>>>>> @@ -146,6 +146,9 @@ static int create_pirq_routing_table(struct udevice
>>>>> *dev)
>>>>> priv->ibase &= ~0xf;
>>>>> }
>>>>>
>>>>> + priv->actl_8bit = fdtdec_get_bool(blob, node,
>>>>> "intel,actl-8bit");
>>>>> + priv->actl_addr = fdtdec_get_int(blob, node, "intel,actl-addr",
>>>>> 0);
>>>>> +
>>>>> cell = fdt_getprop(blob, node, "intel,pirq-routing", &len);
>>>>> if (!cell || len % sizeof(struct pirq_routing))
>>>>> return -EINVAL;
>>>>> @@ -215,6 +218,24 @@ static int create_pirq_routing_table(struct udevice
>>>>> *dev)
>>>>> return 0;
>>>>> }
>>>>>
>>>>> +#ifdef CONFIG_GENERATE_ACPI_TABLE
>>>>> +static void irq_enable_sci(struct udevice *dev)
>>>>> +{
>>>>> + struct irq_router *priv = dev_get_priv(dev);
>>>>> +
>>>>> + if (priv->actl_8bit) {
>>>>> + /* Bit7 must be turned on to enable ACPI */
>>>>> + dm_pci_write_config8(dev->parent, priv->actl_addr,
>>>>> 0x80);
>>>>> + } else {
>>>>> + /* Write 0 to enable SCI on IRQ9 */
>>>>> + if (priv->config == PIRQ_VIA_PCI)
>>>>> + dm_pci_write_config32(dev->parent,
>>>>> priv->actl_addr, 0);
>>>>> + else
>>>>> + writel(0, priv->ibase + priv->actl_addr);
>>>>> + }
>>>>> +}
>>>>> +#endif
>>>>> +
>>>>> int irq_router_common_init(struct udevice *dev)
>>>>> {
>>>>> int ret;
>>>>> @@ -228,6 +249,10 @@ int irq_router_common_init(struct udevice *dev)
>>>>> pirq_route_irqs(dev, pirq_routing_table->slots,
>>>>> get_irq_slot_count(pirq_routing_table));
>>>>>
>>>>> +#ifdef CONFIG_GENERATE_ACPI_TABLE
>>>>> + irq_enable_sci(dev);
>>>>> +#endif
>>>>
>>>>
>>>>
>>>> Again, this could also use IS_ENABLED.
>>>>
>>>
>>> If changing to use IS_ENABLED here, buildman reports:
>>>
>>> 05: x86: irq: Enable SCI on IRQ9
>>> x86: + coreboot-x86 cougarcanyon2 minnowmax
>>> chromebox_panther chromebook_samus crownbay conga-qeval20-qa3-e3845
>>> efi-x86 bayleybay galileo chromebook_link
>>> + irq_enable_sci(dev);
>>> + ^
>>> w+../arch/x86/cpu/irq.c: In function 'irq_router_common_init':
>>> w+../arch/x86/cpu/irq.c:254:3: warning: implicit declaration of
>>> function 'irq_enable_sci' [-Wimplicit-function-declaration]
>>>
>>> This is due to irq_enable_sci() is wrapped by #ifdef
>>> CONFIG_GENERATE_ACPI_TABLE and I don't think IS_ENABLED can be used
>>> there.
>>
>>
>> Right. This only works in functions. I think the general rule is,
>> that the #ifdef in the code itself are much worse than "just"
>> around a whole function body. Thats why its okay (I think) to
>> do it this way.
>>
>
> So for this commit, leave it as it was?
What does the compiler generate when you remove the #ifdef
around the function body?
Thanks,
Stefan
next prev parent reply other threads:[~2016-05-07 15:51 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-02 7:33 [U-Boot] [PATCH 00/26] x86: Initial ACPI support for Intel BayTrail Bin Meng
2016-05-02 7:33 ` [U-Boot] [PATCH 01/26] x86: Drop asm/acpi.h Bin Meng
2016-05-02 7:33 ` [U-Boot] [PATCH 02/26] x86: Fix build warning in tables.c when CONFIG_SEABIOS Bin Meng
2016-05-02 7:33 ` [U-Boot] [PATCH 03/26] x86: acpi: Fix compiler warnings in write_acpi_tables() Bin Meng
2016-05-02 7:33 ` [U-Boot] [PATCH 04/26] x86: irq: Reserve IRQ9 for ACPI in PIC mode Bin Meng
2016-05-03 12:29 ` Stefan Roese
2016-05-03 12:46 ` Bin Meng
2016-05-03 13:04 ` Stefan Roese
2016-05-02 7:33 ` [U-Boot] [PATCH 05/26] x86: irq: Enable SCI on IRQ9 Bin Meng
2016-05-03 12:31 ` Stefan Roese
2016-05-07 14:06 ` Bin Meng
2016-05-07 15:42 ` Stefan Roese
2016-05-07 15:46 ` Bin Meng
2016-05-07 15:51 ` Stefan Roese [this message]
2016-05-07 18:46 ` Simon Glass
2016-05-02 7:33 ` [U-Boot] [PATCH 06/26] x86: dts: Update to include ACTL register details Bin Meng
2016-05-02 7:33 ` [U-Boot] [PATCH 07/26] acpi: Change build log for ASL files Bin Meng
2016-05-02 7:33 ` [U-Boot] [PATCH 08/26] acpi: Explicitly spell out dsdt.c in the make rule Bin Meng
2016-05-02 7:33 ` [U-Boot] [PATCH 09/26] acpi: Specify U-Boot include path for ASL files Bin Meng
2016-05-02 7:33 ` [U-Boot] [PATCH 10/26] acpi: Do not disable all errors/warnings/remarks when compiling ASL Bin Meng
2016-05-02 7:33 ` [U-Boot] [PATCH 11/26] x86: acpi: Remove unneeded codes Bin Meng
2016-05-03 12:33 ` Stefan Roese
2016-05-02 7:33 ` [U-Boot] [PATCH 12/26] x86: acpi: Various changes to acpi_table.h Bin Meng
2016-05-02 7:33 ` [U-Boot] [PATCH 13/26] x86: acpi: Reorder codes in acpi_table.h Bin Meng
2016-05-03 12:45 ` Stefan Roese
2016-05-02 7:33 ` [U-Boot] [PATCH 14/26] x86: acpi: Remove acpi_create_ssdt_generator() Bin Meng
2016-05-02 7:33 ` [U-Boot] [PATCH 15/26] x86: acpi: Change fill_header() Bin Meng
2016-05-02 7:33 ` [U-Boot] [PATCH 16/26] x86: acpi: Adjust orders in acpi_table.c Bin Meng
2016-05-03 12:48 ` Stefan Roese
2016-05-02 7:33 ` [U-Boot] [PATCH 17/26] x86: acpi: Change table write routine signature to use u32 Bin Meng
2016-05-02 7:33 ` [U-Boot] [PATCH 18/26] x86: acpi: Align FACS table to a 64 byte boundary Bin Meng
2016-05-02 7:33 ` [U-Boot] [PATCH 19/26] x86: acpi: Add some generic ASL libraries Bin Meng
2016-05-02 7:33 ` [U-Boot] [PATCH 20/26] x86: baytrail: Add platform ASL files Bin Meng
2016-05-02 7:33 ` [U-Boot] [PATCH 21/26] x86: baytrail: Generate ACPI FADT/MADT tables Bin Meng
2016-05-03 12:52 ` Stefan Roese
2016-05-07 5:48 ` Bin Meng
2016-05-02 7:33 ` [U-Boot] [PATCH 22/26] x86: baytrail: Enable ACPI table generation for all boards Bin Meng
2016-05-02 7:33 ` [U-Boot] [PATCH 23/26] x86: baytrail: Add .gitignore for ACPI enabled boards Bin Meng
2016-05-02 7:33 ` [U-Boot] [PATCH 24/26] x86: Remove acpi=off boot parameter when ACPI is on Bin Meng
2016-05-02 7:33 ` [U-Boot] [PATCH 25/26] x86: doc: Minor update for accuracy Bin Meng
2016-05-02 7:33 ` [U-Boot] [PATCH 26/26] x86: doc: Document ACPI support Bin Meng
2016-05-03 13:01 ` [U-Boot] [PATCH 00/26] x86: Initial ACPI support for Intel BayTrail Stefan Roese
2016-05-06 1:14 ` Bin Meng
2016-05-06 13:16 ` Simon Glass
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=572E0EEB.8090106@denx.de \
--to=sr@denx.de \
--cc=u-boot@lists.denx.de \
/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.