All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@kernel.org>
To: "Hector Martin 'marcan'" <marcan@marcan.st>
Cc: SoC Team <soc@kernel.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	 Marc Zyngier <maz@kernel.org>, Rob Herring <robh+dt@kernel.org>,
	 "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	DTML <devicetree@vger.kernel.org>,
	 Olof Johansson <olof@lixom.net>
Subject: Re: [PATCH 15/18] irqchip/apple-aic: Add support for the Apple Interrupt Controller
Date: Fri, 5 Feb 2021 00:04:17 +0100	[thread overview]
Message-ID: <CAK8P3a14vsLkCujd_XBAOAjL2h878gxkaoKPpaxL4jddZZcc-A@mail.gmail.com> (raw)
In-Reply-To: <8adb1047-2b1a-9cfc-c906-3c369a8e494f@marcan.st>

On Thu, Feb 4, 2021 at 11:06 PM Hector Martin 'marcan' <marcan@marcan.st> wrote:
> On 05/02/2021 06.37, Arnd Bergmann wrote:
> > On Thu, Feb 4, 2021 at 9:39 PM Hector Martin <marcan@marcan.st> wrote:
> >> + * - This driver creates one IRQ domain for HW IRQs and the timer FIQs
> >> + * - FIQ hwirq numbers are assigned after true hwirqs, and are per-cpu
> >> + * - DT bindings use 3-cell form (like GIC):
> >> + *   - <0 nr flags> - hwirq #nr
> >> + *   - <1 nr flags> - FIQ #nr
> >> + *     - nr=0  physical timer
> >> + *     - nr=1  virtual timer
> >> + *   - <2 nr flags> - IPI #nr
> >> + *     - nr=0  other IPI
> >> + *     - nr=1  self IPI
> >
> > I think we should discuss the binding a bit here. My initial thinking was that
> > it would be better to separate the AIC from the FIQ handling, as they don't
> > seem to have any relation in hardware, and representing them as two
> > separate nodes seems like a cleaner abstraction.
>
> This was actually my original approach (I still have the FIQ irqchip
> patch lying around), but that idea somewhat broke when we decided to
> merge the vectors.
>
> If we split it up again, one of the two still needs to be the root,
> decide whether what fired is an IRQ or FIQ, and dispatch accordingly. Or
> we could have three nodes and have one root handler dispatch to IRQ and
> FIQ nodes, but that sounds like overkill... (?)

Maybe I'm misreading the low-level entry code, but my impression
was that the fiq and irq exception vectors could just be pointed to
two different root drivers from the code in kernel_ventry

> Are you proposing just having different drivers/nodes in the same file,
> or implementing these as separate drivers in separate files?

I was thinking of separate driver files.

> >> +#define TIMER_FIRING(x)                                                        \
> >> +       (((x) & (ARCH_TIMER_CTRL_ENABLE | ARCH_TIMER_CTRL_IT_MASK |            \
> >> +                ARCH_TIMER_CTRL_IT_STAT)) ==                                  \
> >> +        (ARCH_TIMER_CTRL_ENABLE | ARCH_TIMER_CTRL_IT_STAT))
> >> +
> >> +static void aic_handle_fiq(struct pt_regs *regs)
> >> +{
> >> +       /*
> >> +        * It would be really nice to find a system register that lets us get the FIQ source
> >> +        * state without having to peek down into clients...
> >> +        */
> >> +       if (TIMER_FIRING(read_sysreg(cntp_ctl_el0))) {
> >> +               handle_domain_irq(aic_irqc->hw_domain,
> >> +                                 aic_irqc->nr_hw + AIC_TMR_PHYS, regs);
> >> +       }
> >> +
> >> +       if (TIMER_FIRING(read_sysreg(cntv_ctl_el0))) {
> >> +               handle_domain_irq(aic_irqc->hw_domain,
> >> +                                 aic_irqc->nr_hw + AIC_TMR_VIRT, regs);
> >> +       }
> >> +}
> >
> > This seems to be a minor layering violation to me.
>
> Absolutely. Under the assumption that these IRQ lines are ORed together
> into FIQ with no top-level dispatch though, there isn't a great solution
> here...
>
> I think there is a chance FIQ interrupt child bits exist *somewhere*, so
> I actually plan on brute-forcing the list of implemented/valid CPU
> registers and trying to see if I can find some bits that do what I want.
> If it turns out they exist, this could alleviate some of the ugliness of
> the current approach.

Right, that would of course be ideal.

> > One idea I had was to just keep all the fiq handling in the timer driver
> > itself, jumping there directly from the top-level fiq entry whenever
> > we are on an Apple platform. At least as long as nothing else ever
> > uses fiq.
>
> In principle, as long as the timer handler only ever uses one IRQ (which
> I think is the case here, it just picks one of the 4, usually the
> physical timer, and it should only enable that one) it would work. But
> we still need *some* IRQ chip driver to deliver that, unless we want to
> throw a bunch of special-case code into the timer driver to hook
> directly into FIQs without an interrupt parent which... seems like it
> could get quite messy.

I looked at other architectures, and found that at least powerpc
and sparc64 have a really minimal timer tick, with their timer_interrupt()
function getting called directly from the exception vector, and
doing a minimum of accounting (irq_enter(), statistics, ...) manually.

It's a different question if we want to do that, or if there should always
be an irqchip for consistency.

> > When we discussed the earlier submission for the aic, I understood
> > that FIQ is used for both timer and IPI, but the IPI actually has another
> > method based on normal AIC interrupts that can be used as an
> > alternative.
>
> Correct, there are two parallel IPI implementations. It is my
> understanding that the CPU register based one, which ties into FIQ, is
> faster / more featureful (it has deferred IPIs, not sure if the plain
> AIC does those), as it is built into the core complexes instead of being
> part of the external AIC block. I could try benchmarking it within m1n1
> and see if I can find out how much faster it is.

Benchmarking would at least help understand why there are two.

My best guess was that this is mostly an artifact of the XNU kernel
design, where it makes sense to split the timer and IPI that
you want to be handled by Mach kernel from the device irqs
that (I guess) would be handled by the BSD kernel.

> I think it's worth thinking about supporting that IPI mechanism, which
> would necessitate dispatching FIQs too, so hard-coding it to route
> straight to the timer doesn't sound like a very future-proof plan...
> consider that Apple might put out a SoC in the future that rips out the
> AIC IPIs and leaves only the FIQ ones too.

I don't think we have to pay too much attention to preparing the
code design for it, we can always change it when needed. However,
anything that impacts the DT binding here would have to be designed
to not get in the way of adding it later.

> >> +static void __exception_irq_entry aic_handle_irq_or_fiq(struct pt_regs *regs)
> >> +{
> >> +       u64 isr = read_sysreg(isr_el1);
> >> +
> >> +       if (isr & PSR_F_BIT)
> >> +               aic_handle_fiq(regs);
> >> +
> >> +       if (isr & PSR_I_BIT)
> >> +               aic_handle_irq(regs);
> >> +}
> >
> > Having the shared entry point here looks reasonable to me though, it
> > does seem to make a few things easier.
> >
> > I wonder if there is a possible race here: if we are ever in a situation
> > where one of the two -- fiq or irq -- is disabled while the other one
> > is enabled, we could get into a state where a handler is run while
> > it should be masked.
>
> That's a good point. We could filter with the SPSR_ELx mask bits here.
>
> Though the FIQ support patch tries pretty hard to keep the mask bits in
> sync after early boot, so this concern might be somewhat academic. I'm
> happy to implement it if you think it might help though.

It's probably fine as it is, just wanted to make sure you were not missing
something here.

        Arnd

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@kernel.org>
To: "Hector Martin 'marcan'" <marcan@marcan.st>
Cc: DTML <devicetree@vger.kernel.org>, Marc Zyngier <maz@kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	SoC Team <soc@kernel.org>, Rob Herring <robh+dt@kernel.org>,
	Olof Johansson <olof@lixom.net>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH 15/18] irqchip/apple-aic: Add support for the Apple Interrupt Controller
Date: Fri, 5 Feb 2021 00:04:17 +0100	[thread overview]
Message-ID: <CAK8P3a14vsLkCujd_XBAOAjL2h878gxkaoKPpaxL4jddZZcc-A@mail.gmail.com> (raw)
Message-ID: <20210204230417.Hbzt8eacx5EoXMeJPNi6M14bqY_i8DhROOU9-K30ti4@z> (raw)
In-Reply-To: <8adb1047-2b1a-9cfc-c906-3c369a8e494f@marcan.st>

On Thu, Feb 4, 2021 at 11:06 PM Hector Martin 'marcan' <marcan@marcan.st> wrote:
> On 05/02/2021 06.37, Arnd Bergmann wrote:
> > On Thu, Feb 4, 2021 at 9:39 PM Hector Martin <marcan@marcan.st> wrote:
> >> + * - This driver creates one IRQ domain for HW IRQs and the timer FIQs
> >> + * - FIQ hwirq numbers are assigned after true hwirqs, and are per-cpu
> >> + * - DT bindings use 3-cell form (like GIC):
> >> + *   - <0 nr flags> - hwirq #nr
> >> + *   - <1 nr flags> - FIQ #nr
> >> + *     - nr=0  physical timer
> >> + *     - nr=1  virtual timer
> >> + *   - <2 nr flags> - IPI #nr
> >> + *     - nr=0  other IPI
> >> + *     - nr=1  self IPI
> >
> > I think we should discuss the binding a bit here. My initial thinking was that
> > it would be better to separate the AIC from the FIQ handling, as they don't
> > seem to have any relation in hardware, and representing them as two
> > separate nodes seems like a cleaner abstraction.
>
> This was actually my original approach (I still have the FIQ irqchip
> patch lying around), but that idea somewhat broke when we decided to
> merge the vectors.
>
> If we split it up again, one of the two still needs to be the root,
> decide whether what fired is an IRQ or FIQ, and dispatch accordingly. Or
> we could have three nodes and have one root handler dispatch to IRQ and
> FIQ nodes, but that sounds like overkill... (?)

Maybe I'm misreading the low-level entry code, but my impression
was that the fiq and irq exception vectors could just be pointed to
two different root drivers from the code in kernel_ventry

> Are you proposing just having different drivers/nodes in the same file,
> or implementing these as separate drivers in separate files?

I was thinking of separate driver files.

> >> +#define TIMER_FIRING(x)                                                        \
> >> +       (((x) & (ARCH_TIMER_CTRL_ENABLE | ARCH_TIMER_CTRL_IT_MASK |            \
> >> +                ARCH_TIMER_CTRL_IT_STAT)) ==                                  \
> >> +        (ARCH_TIMER_CTRL_ENABLE | ARCH_TIMER_CTRL_IT_STAT))
> >> +
> >> +static void aic_handle_fiq(struct pt_regs *regs)
> >> +{
> >> +       /*
> >> +        * It would be really nice to find a system register that lets us get the FIQ source
> >> +        * state without having to peek down into clients...
> >> +        */
> >> +       if (TIMER_FIRING(read_sysreg(cntp_ctl_el0))) {
> >> +               handle_domain_irq(aic_irqc->hw_domain,
> >> +                                 aic_irqc->nr_hw + AIC_TMR_PHYS, regs);
> >> +       }
> >> +
> >> +       if (TIMER_FIRING(read_sysreg(cntv_ctl_el0))) {
> >> +               handle_domain_irq(aic_irqc->hw_domain,
> >> +                                 aic_irqc->nr_hw + AIC_TMR_VIRT, regs);
> >> +       }
> >> +}
> >
> > This seems to be a minor layering violation to me.
>
> Absolutely. Under the assumption that these IRQ lines are ORed together
> into FIQ with no top-level dispatch though, there isn't a great solution
> here...
>
> I think there is a chance FIQ interrupt child bits exist *somewhere*, so
> I actually plan on brute-forcing the list of implemented/valid CPU
> registers and trying to see if I can find some bits that do what I want.
> If it turns out they exist, this could alleviate some of the ugliness of
> the current approach.

Right, that would of course be ideal.

> > One idea I had was to just keep all the fiq handling in the timer driver
> > itself, jumping there directly from the top-level fiq entry whenever
> > we are on an Apple platform. At least as long as nothing else ever
> > uses fiq.
>
> In principle, as long as the timer handler only ever uses one IRQ (which
> I think is the case here, it just picks one of the 4, usually the
> physical timer, and it should only enable that one) it would work. But
> we still need *some* IRQ chip driver to deliver that, unless we want to
> throw a bunch of special-case code into the timer driver to hook
> directly into FIQs without an interrupt parent which... seems like it
> could get quite messy.

I looked at other architectures, and found that at least powerpc
and sparc64 have a really minimal timer tick, with their timer_interrupt()
function getting called directly from the exception vector, and
doing a minimum of accounting (irq_enter(), statistics, ...) manually.

It's a different question if we want to do that, or if there should always
be an irqchip for consistency.

> > When we discussed the earlier submission for the aic, I understood
> > that FIQ is used for both timer and IPI, but the IPI actually has another
> > method based on normal AIC interrupts that can be used as an
> > alternative.
>
> Correct, there are two parallel IPI implementations. It is my
> understanding that the CPU register based one, which ties into FIQ, is
> faster / more featureful (it has deferred IPIs, not sure if the plain
> AIC does those), as it is built into the core complexes instead of being
> part of the external AIC block. I could try benchmarking it within m1n1
> and see if I can find out how much faster it is.

Benchmarking would at least help understand why there are two.

My best guess was that this is mostly an artifact of the XNU kernel
design, where it makes sense to split the timer and IPI that
you want to be handled by Mach kernel from the device irqs
that (I guess) would be handled by the BSD kernel.

> I think it's worth thinking about supporting that IPI mechanism, which
> would necessitate dispatching FIQs too, so hard-coding it to route
> straight to the timer doesn't sound like a very future-proof plan...
> consider that Apple might put out a SoC in the future that rips out the
> AIC IPIs and leaves only the FIQ ones too.

I don't think we have to pay too much attention to preparing the
code design for it, we can always change it when needed. However,
anything that impacts the DT binding here would have to be designed
to not get in the way of adding it later.

> >> +static void __exception_irq_entry aic_handle_irq_or_fiq(struct pt_regs *regs)
> >> +{
> >> +       u64 isr = read_sysreg(isr_el1);
> >> +
> >> +       if (isr & PSR_F_BIT)
> >> +               aic_handle_fiq(regs);
> >> +
> >> +       if (isr & PSR_I_BIT)
> >> +               aic_handle_irq(regs);
> >> +}
> >
> > Having the shared entry point here looks reasonable to me though, it
> > does seem to make a few things easier.
> >
> > I wonder if there is a possible race here: if we are ever in a situation
> > where one of the two -- fiq or irq -- is disabled while the other one
> > is enabled, we could get into a state where a handler is run while
> > it should be masked.
>
> That's a good point. We could filter with the SPSR_ELx mask bits here.
>
> Though the FIQ support patch tries pretty hard to keep the mask bits in
> sync after early boot, so this concern might be somewhat academic. I'm
> happy to implement it if you think it might help though.

It's probably fine as it is, just wanted to make sure you were not missing
something here.

        Arnd

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-02-04 23:04 UTC|newest]

Thread overview: 240+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-04 20:39 [PATCH 00/18] Apple M1 SoC platform bring-up Hector Martin
2021-02-04 20:39 ` Hector Martin
2021-02-04 20:39 ` [PATCH 01/18] dt-bindings: vendor-prefixes: add AAPL prefix Hector Martin
2021-02-04 20:39   ` Hector Martin
2021-02-08 10:27   ` Krzysztof Kozlowski
2021-02-08 10:27     ` Krzysztof Kozlowski
2021-02-08 17:32     ` Rob Herring
2021-02-08 17:32       ` Rob Herring
2021-02-08 18:12       ` Krzysztof Kozlowski
2021-02-08 18:12         ` Krzysztof Kozlowski
2021-02-08 19:59         ` Arnd Bergmann
2021-02-08 19:59           ` Arnd Bergmann
2021-02-08 23:17         ` Hector Martin
2021-02-08 23:17           ` Hector Martin
2021-02-04 20:39 ` [PATCH 02/18] dt-bindings: arm: cpus: Add AAPL,firestorm & icestorm compatibles Hector Martin
2021-02-04 20:39   ` [PATCH 02/18] dt-bindings: arm: cpus: Add AAPL, firestorm " Hector Martin
2021-02-04 20:39 ` [PATCH 03/18] dt-bindings: arm: AAPL: Add bindings for Apple ARM platforms Hector Martin
2021-02-04 20:39   ` Hector Martin
2021-02-04 20:39 ` [PATCH 04/18] arm64: Kconfig: Introduce CONFIG_ARCH_APPLE Hector Martin
2021-02-04 20:39   ` Hector Martin
2021-02-06 13:17   ` Marc Zyngier
2021-02-06 13:17     ` Marc Zyngier
2021-02-07  8:05     ` Hector Martin 'marcan'
2021-02-07  8:05       ` Hector Martin 'marcan'
2021-02-04 20:39 ` [PATCH 05/18] tty: serial: samsung_tty: add support for Apple UARTs Hector Martin
2021-02-04 20:39   ` Hector Martin
2021-02-04 23:55   ` kernel test robot
2021-02-04 23:55     ` kernel test robot
2021-02-04 23:55     ` kernel test robot
2021-02-05  9:44     ` Hector Martin 'marcan'
2021-02-05  9:44       ` Hector Martin 'marcan'
2021-02-05  2:19   ` kernel test robot
2021-02-05  2:19     ` kernel test robot
2021-02-05  2:19     ` kernel test robot
2021-02-06 13:15   ` Marc Zyngier
2021-02-06 13:15     ` Marc Zyngier
2021-02-07  9:12     ` Hector Martin 'marcan'
2021-02-07  9:12       ` Hector Martin 'marcan'
2021-02-07  9:26       ` Hector Martin 'marcan'
2021-02-07  9:26         ` Hector Martin 'marcan'
2021-02-08  9:36         ` Krzysztof Kozlowski
2021-02-08  9:36           ` Krzysztof Kozlowski
2021-02-08 16:14           ` Hector Martin
2021-02-08 16:14             ` Hector Martin
2021-02-08 10:34       ` Marc Zyngier
2021-02-08 10:34         ` Marc Zyngier
2021-02-08 16:18         ` Hector Martin
2021-02-08 16:18           ` Hector Martin
2021-02-08 16:46           ` Greg Kroah-Hartman
2021-02-08 16:46             ` Greg Kroah-Hartman
2021-02-08 23:22             ` Hector Martin
2021-02-08 23:22               ` Hector Martin
2021-02-08 10:54   ` Krzysztof Kozlowski
2021-02-08 10:54     ` Krzysztof Kozlowski
2021-02-08 16:10     ` Hector Martin
2021-02-08 16:10       ` Hector Martin
2021-02-08 18:37       ` Krzysztof Kozlowski
2021-02-08 18:37         ` Krzysztof Kozlowski
2021-02-08 23:23         ` Hector Martin
2021-02-08 23:23           ` Hector Martin
2021-02-04 20:39 ` [PATCH 06/18] dt-bindings: serial: samsung: Add AAPL,s5l-uart compatible Hector Martin
2021-02-04 20:39   ` [PATCH 06/18] dt-bindings: serial: samsung: Add AAPL, s5l-uart compatible Hector Martin
2021-02-04 20:39 ` [PATCH 07/18] tty: serial: samsung_tty: enable for ARCH_APPLE Hector Martin
2021-02-04 20:39   ` Hector Martin
2021-02-04 21:16   ` Arnd Bergmann
2021-02-04 21:16     ` Arnd Bergmann
2021-02-04 21:27     ` Hector Martin 'marcan'
2021-02-04 21:27       ` Hector Martin 'marcan'
2021-02-04 20:39 ` [PATCH 08/18] arm64: cpufeature: Add a feature for FIQ support Hector Martin
2021-02-04 20:39   ` Hector Martin
2021-02-06 13:58   ` Marc Zyngier
2021-02-06 13:58     ` Marc Zyngier
2021-02-07  8:28     ` Hector Martin 'marcan'
2021-02-07  8:28       ` Hector Martin 'marcan'
2021-02-08 11:29       ` Marc Zyngier
2021-02-08 11:29         ` Marc Zyngier
2021-02-08 15:51         ` Hector Martin
2021-02-08 15:51           ` Hector Martin
2021-02-04 20:39 ` [PATCH 09/18] arm64: cputype: Add CPU types for the Apple M1 big/little cores Hector Martin
2021-02-04 20:39   ` Hector Martin
2021-02-04 20:39 ` [PATCH 10/18] arm64: Introduce FIQ support Hector Martin
2021-02-04 20:39   ` Hector Martin
2021-02-06 15:37   ` Marc Zyngier
2021-02-06 15:37     ` Marc Zyngier
2021-02-06 16:22     ` Arnd Bergmann
2021-02-06 16:22       ` Arnd Bergmann
2021-02-07  8:36       ` Hector Martin 'marcan'
2021-02-07  8:36         ` Hector Martin 'marcan'
2021-02-07 12:25         ` Arnd Bergmann
2021-02-07 12:25           ` Arnd Bergmann
2021-02-07 15:38           ` Hector Martin 'marcan'
2021-02-07 15:38             ` Hector Martin 'marcan'
2021-02-07 18:49             ` Arnd Bergmann
2021-02-07 18:49               ` Arnd Bergmann
2021-02-08 23:34               ` Hector Martin
2021-02-08 23:34                 ` Hector Martin
2021-02-07  8:47     ` Hector Martin 'marcan'
2021-02-07  8:47       ` Hector Martin 'marcan'
2021-02-08 11:30       ` Marc Zyngier
2021-02-08 11:30         ` Marc Zyngier
2021-02-04 20:39 ` [PATCH 11/18] arm64: Kconfig: Require FIQ support for ARCH_APPLE Hector Martin
2021-02-04 20:39   ` Hector Martin
2021-02-06 15:46   ` Marc Zyngier
2021-02-06 15:46     ` Marc Zyngier
2021-02-07  9:23     ` Hector Martin 'marcan'
2021-02-07  9:23       ` Hector Martin 'marcan'
2021-02-08 12:05       ` Marc Zyngier
2021-02-08 12:05         ` Marc Zyngier
2021-02-08 15:48         ` Hector Martin
2021-02-08 15:48           ` Hector Martin
2021-02-04 20:39 ` [PATCH 12/18] arm64: setup: Use nGnRnE IO mappings for fixmap on Apple platforms Hector Martin
2021-02-04 20:39   ` Hector Martin
2021-02-04 22:25   ` Arnd Bergmann
2021-02-04 22:25     ` Arnd Bergmann
2021-02-04 20:39 ` [PATCH 13/18] arm64: ioremap: use nGnRnE mappings on platforms that require it Hector Martin
2021-02-04 20:39   ` Hector Martin
2021-02-04 22:21   ` Arnd Bergmann
2021-02-04 22:21     ` Arnd Bergmann
2021-02-08 22:57   ` Arnd Bergmann
2021-02-08 22:57     ` Arnd Bergmann
2021-02-08 23:20     ` Mark Kettenis
2021-02-08 23:20       ` Mark Kettenis
2021-02-09  0:25       ` Hector Martin
2021-02-09  0:25         ` Hector Martin
2021-02-09  9:15         ` Arnd Bergmann
2021-02-09  9:15           ` Arnd Bergmann
2021-02-09  9:58           ` Mark Kettenis
2021-02-09  9:58             ` Mark Kettenis
2021-02-09 11:22           ` Hector Martin
2021-02-09 11:22             ` Hector Martin
2021-02-09  9:35       ` Arnd Bergmann
2021-02-09  9:35         ` Arnd Bergmann
2021-02-10 12:24     ` Hector Martin
2021-02-10 12:24       ` Hector Martin
2021-02-10 13:40       ` Mark Kettenis
2021-02-10 13:40         ` Mark Kettenis
2021-02-04 20:39 ` [PATCH 14/18] dt-bindings: interrupt-controller: Add DT bindings for apple-aic Hector Martin
2021-02-04 20:39   ` Hector Martin
2021-02-09 23:07   ` Rob Herring
2021-02-09 23:07     ` Rob Herring
2021-02-04 20:39 ` [PATCH 15/18] irqchip/apple-aic: Add support for the Apple Interrupt Controller Hector Martin
2021-02-04 20:39   ` Hector Martin
2021-02-04 21:37   ` Arnd Bergmann
2021-02-04 21:37     ` Arnd Bergmann
2021-02-04 22:04     ` Hector Martin 'marcan'
2021-02-04 22:04       ` Hector Martin 'marcan'
2021-02-04 23:04       ` Arnd Bergmann [this message]
2021-02-04 23:04         ` Arnd Bergmann
2021-02-05  7:41         ` Hector Martin 'marcan'
2021-02-05  7:41           ` Hector Martin 'marcan'
2021-02-05 10:33           ` Arnd Bergmann
2021-02-05 10:33             ` Arnd Bergmann
2021-02-05  2:27   ` kernel test robot
2021-02-05  2:27     ` kernel test robot
2021-02-05  2:27     ` kernel test robot
2021-02-05  9:45     ` Hector Martin 'marcan'
2021-02-05  9:45       ` Hector Martin 'marcan'
2021-02-08  9:25   ` Marc Zyngier
2021-02-08  9:25     ` Marc Zyngier
2021-02-08 10:29     ` Arnd Bergmann
2021-02-08 10:29       ` Arnd Bergmann
2021-02-08 11:13       ` Hector Martin 'marcan'
2021-02-08 11:13         ` Hector Martin 'marcan'
2021-02-08 11:21         ` Arnd Bergmann
2021-02-08 11:21           ` Arnd Bergmann
2021-02-08 11:36       ` Marc Zyngier
2021-02-08 11:36         ` Marc Zyngier
2021-02-08 12:17         ` Arnd Bergmann
2021-02-08 12:17           ` Arnd Bergmann
2021-02-08 15:31         ` Hector Martin
2021-02-08 15:31           ` Hector Martin
2021-02-09  6:20     ` Hector Martin
2021-02-09  6:20       ` Hector Martin
2021-02-04 20:39 ` [PATCH 16/18] irqchip/apple-aic: Add SMP / IPI support Hector Martin
2021-02-04 20:39   ` Hector Martin
2021-02-04 20:39 ` [PATCH 17/18] dt-bindings: display: add AAPL,simple-framebuffer Hector Martin
2021-02-04 20:39   ` Hector Martin
2021-02-04 20:39 ` [PATCH 18/18] arm64: apple: Add initial Mac Mini 2020 (M1) devicetree Hector Martin
2021-02-04 20:39   ` Hector Martin
2021-02-04 21:29   ` Arnd Bergmann
2021-02-04 21:29     ` Arnd Bergmann
2021-02-04 21:44     ` Hector Martin 'marcan'
2021-02-04 21:44       ` Hector Martin 'marcan'
2021-02-04 23:08       ` Arnd Bergmann
2021-02-04 23:08         ` Arnd Bergmann
2021-02-05  7:11         ` Hector Martin 'marcan'
2021-02-05  7:11           ` Hector Martin 'marcan'
2021-02-05 12:43           ` Arnd Bergmann
2021-02-05 12:43             ` Arnd Bergmann
2021-02-08 11:04   ` Krzysztof Kozlowski
2021-02-08 11:04     ` Krzysztof Kozlowski
2021-02-08 11:56     ` Hector Martin 'marcan'
2021-02-08 11:56       ` Hector Martin 'marcan'
2021-02-08 12:13       ` Krzysztof Kozlowski
2021-02-08 12:13         ` Krzysztof Kozlowski
2021-02-08 12:40         ` Arnd Bergmann
2021-02-08 12:40           ` Arnd Bergmann
2021-02-08 14:12           ` Hector Martin
2021-02-08 14:12             ` Hector Martin
2021-02-08 17:58             ` Rob Herring
2021-02-08 17:58               ` Rob Herring
2021-02-09  0:32               ` Hector Martin
2021-02-09  0:32                 ` Hector Martin
2021-02-08 19:14       ` Rob Herring
2021-02-08 19:14         ` Rob Herring
2021-02-09  0:49         ` Hector Martin
2021-02-09  0:49           ` Hector Martin
2021-02-09  2:05           ` Rob Herring
2021-02-09  2:05             ` Rob Herring
2021-02-10 10:19       ` Tony Lindgren
2021-02-10 10:19         ` Tony Lindgren
2021-02-10 11:07         ` Hector Martin
2021-02-10 11:07           ` Hector Martin
2021-02-10 11:34           ` Tony Lindgren
2021-02-10 11:34             ` Tony Lindgren
2021-02-10 11:43             ` Hector Martin
2021-02-10 11:43               ` Hector Martin
2021-02-10 12:24               ` Daniel Palmer
2021-02-10 12:24                 ` Daniel Palmer
2021-02-10 12:24                 ` Daniel Palmer
2021-02-10 12:54                 ` Tony Lindgren
2021-02-10 12:54                   ` Tony Lindgren
2021-02-10 12:56                 ` Hector Martin
2021-02-10 12:56                   ` Hector Martin
2021-02-10 12:55             ` Krzysztof Kozlowski
2021-02-10 12:55               ` Krzysztof Kozlowski
2021-02-10 13:19               ` Tony Lindgren
2021-02-10 13:19                 ` Tony Lindgren
2021-02-10 13:25                 ` Krzysztof Kozlowski
2021-02-10 13:25                   ` Krzysztof Kozlowski
2021-02-08 12:27   ` Marc Zyngier
2021-02-08 12:27     ` Marc Zyngier
2021-02-08 14:53     ` Hector Martin
2021-02-08 14:53       ` Hector Martin
2021-02-08 15:36       ` Marc Zyngier
2021-02-08 15:36         ` Marc Zyngier
2021-02-04 22:43 ` [PATCH 00/18] Apple M1 SoC platform bring-up Arnd Bergmann
2021-02-04 22:43   ` Arnd Bergmann
2021-02-05 11:35 ` Hector Martin 'marcan'
2021-02-05 11:35   ` Hector Martin 'marcan'

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=CAK8P3a14vsLkCujd_XBAOAjL2h878gxkaoKPpaxL4jddZZcc-A@mail.gmail.com \
    --to=arnd@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcan@marcan.st \
    --cc=maz@kernel.org \
    --cc=olof@lixom.net \
    --cc=robh+dt@kernel.org \
    --cc=soc@kernel.org \
    /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.