From: James Hogan <jhogan@kernel.org>
To: Matt Redfearn <matt.redfearn@mips.com>
Cc: Ralf Baechle <ralf@linux-mips.org>,
Thomas Gleixner <tglx@linutronix.de>,
linux-mips@linux-mips.org, Paul Burton <paul.burton@mips.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/6] MIPS: Generic: Support GIC in EIC mode
Date: Mon, 5 Feb 2018 14:11:11 +0000 [thread overview]
Message-ID: <20180205141110.GC8479@saruman> (raw)
In-Reply-To: <1515148270-9391-4-git-send-email-matt.redfearn@mips.com>
[-- Attachment #1: Type: text/plain, Size: 2522 bytes --]
On Fri, Jan 05, 2018 at 10:31:07AM +0000, Matt Redfearn wrote:
> The GIC supports running in External Interrupt Controller (EIC) mode,
> and will signal this via cpu_has_veic if enabled in hardware. Currently
> the generic kernel will panic if cpu_has_veic is set - but the GIC can
> legitimately set this flag if either configured to boot in EIC mode, or
> if the GIC driver enables this mode. Make the kernel not panic in this
> case, and instead just check if the GIC is present. If so, use it's CPU
> local interrupt routing functions. If an EIC is present, but it is not
> the GIC, then the kernel does not know how to get the VIRQ for the CPU
> local interrupts and should panic. Support for alternative EICs being
> present is needed here for the generic kernel to support them.
>
> Suggested-by: Paul Burton <paul.burton@mips.com>
> Signed-off-by: Matt Redfearn <matt.redfearn@mips.com>
Applied for 4.16,
Thanks
James
> ---
>
> arch/mips/generic/irq.c | 18 +++++++++---------
> 1 file changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/arch/mips/generic/irq.c b/arch/mips/generic/irq.c
> index 394f8161e462..cb7fdaeef426 100644
> --- a/arch/mips/generic/irq.c
> +++ b/arch/mips/generic/irq.c
> @@ -22,10 +22,10 @@ int get_c0_fdc_int(void)
> {
> int mips_cpu_fdc_irq;
>
> - if (cpu_has_veic)
> - panic("Unimplemented!");
> - else if (mips_gic_present())
> + if (mips_gic_present())
> mips_cpu_fdc_irq = gic_get_c0_fdc_int();
> + else if (cpu_has_veic)
> + panic("Unimplemented!");
> else if (cp0_fdc_irq >= 0)
> mips_cpu_fdc_irq = MIPS_CPU_IRQ_BASE + cp0_fdc_irq;
> else
> @@ -38,10 +38,10 @@ int get_c0_perfcount_int(void)
> {
> int mips_cpu_perf_irq;
>
> - if (cpu_has_veic)
> - panic("Unimplemented!");
> - else if (mips_gic_present())
> + if (mips_gic_present())
> mips_cpu_perf_irq = gic_get_c0_perfcount_int();
> + else if (cpu_has_veic)
> + panic("Unimplemented!");
> else if (cp0_perfcount_irq >= 0)
> mips_cpu_perf_irq = MIPS_CPU_IRQ_BASE + cp0_perfcount_irq;
> else
> @@ -54,10 +54,10 @@ unsigned int get_c0_compare_int(void)
> {
> int mips_cpu_timer_irq;
>
> - if (cpu_has_veic)
> - panic("Unimplemented!");
> - else if (mips_gic_present())
> + if (mips_gic_present())
> mips_cpu_timer_irq = gic_get_c0_compare_int();
> + else if (cpu_has_veic)
> + panic("Unimplemented!");
> else
> mips_cpu_timer_irq = MIPS_CPU_IRQ_BASE + cp0_compare_irq;
>
> --
> 2.7.4
>
>
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2018-02-05 14:11 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-05 10:31 [PATCH 0/6] irqchip/mips-gic: Enable & use VEIC mode if available Matt Redfearn
2018-01-05 10:31 ` Matt Redfearn
2018-01-05 10:31 ` [PATCH 1/6] MIPS: Move ehb() to barrier.h Matt Redfearn
2018-01-05 10:31 ` Matt Redfearn
2018-05-17 14:30 ` James Hogan
2018-01-05 10:31 ` [PATCH 2/6] MIPS: CPS: Introduce mips_gic_enable_eic Matt Redfearn
2018-01-05 10:31 ` Matt Redfearn
2018-01-05 10:31 ` [PATCH 3/6] MIPS: Generic: Support GIC in EIC mode Matt Redfearn
2018-01-05 10:31 ` Matt Redfearn
2018-02-05 14:11 ` James Hogan [this message]
2018-01-05 10:31 ` [PATCH 4/6] irqchip/mips-gic: Always attempt to enable " Matt Redfearn
2018-01-05 10:31 ` Matt Redfearn
2018-01-05 10:31 ` [PATCH 5/6] irqchip/mips-gic: Use separate vector for shared interrupts in " Matt Redfearn
2018-01-05 10:31 ` Matt Redfearn
2018-01-05 10:31 ` [PATCH 6/6] irqchip/mips-gic: Separate local interrupt handling Matt Redfearn
2018-01-05 10:31 ` Matt Redfearn
2018-03-14 11:15 ` [PATCH 0/6] irqchip/mips-gic: Enable & use VEIC mode if available Marc Zyngier
2018-03-14 15:46 ` James Hogan
2018-03-14 15:53 ` Marc Zyngier
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=20180205141110.GC8479@saruman \
--to=jhogan@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=matt.redfearn@mips.com \
--cc=paul.burton@mips.com \
--cc=ralf@linux-mips.org \
--cc=tglx@linutronix.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.