[Sound-open-firmware] [PATCH 3/4] byt: adapt to the new layer 2 interrupt design
Liam Girdwood
liam.r.girdwood at linux.intel.com
Tue Sep 19 16:54:45 CEST 2017
On Tue, 2017-09-19 at 15:47 +0800, Keyon Jie wrote:
> We don't actually use layer 2 interrupt in baytrail, in the
> new layer 2 interrupt design, it will fallback to use the
> root arch interrupt.
>
This is not needed if you do the abstraction in platform.c instead of
drivers.
> Signed-off-by: Keyon Jie <yang.jie at linux.intel.com>
> ---
> src/platform/baytrail/platform.c | 23 +++++++++++++++++++----
> 1 file changed, 19 insertions(+), 4 deletions(-)
>
> diff --git a/src/platform/baytrail/platform.c b/src/platform/baytrail/platform.c
> index b8c3e49..6726325 100644
> --- a/src/platform/baytrail/platform.c
> +++ b/src/platform/baytrail/platform.c
> @@ -100,7 +100,7 @@ int platform_boot_complete(uint32_t boot_message)
> }
>
> /* clear mask in PISR, bits are W1C in docs but some bits need preserved ?? */
> -void platform_interrupt_clear(uint32_t irq, uint32_t mask)
> +void byt_interrupt_clear(uint32_t irq, uint32_t mask)
> {
> switch (irq) {
> case IRQ_NUM_EXT_DMAC0:
> @@ -123,21 +123,34 @@ void platform_interrupt_clear(uint32_t irq, uint32_t mask)
> }
>
> /* TODO: expand this to 64 bit - should we just return mask of IRQ numbers */
> -uint32_t platform_interrupt_get_enabled(void)
> +uint32_t byt_interrupt_get_enabled(void)
> {
> return shim_read(SHIM_PIMR);
> }
>
> -void platform_interrupt_mask(uint32_t irq, uint32_t mask)
> +void byt_interrupt_mask(uint32_t irq)
> {
>
> }
>
> -void platform_interrupt_unmask(uint32_t irq, uint32_t mask)
> +void byt_interrupt_unmask(uint32_t irq)
> {
>
> }
>
> +static const struct plf_irq_ops byt_irq_ops = {
> + .get_enabled = byt_interrupt_get_enabled,
> + .int_clear = byt_interrupt_clear,
> + .int_mask = byt_interrupt_mask,
> + .int_unmask = byt_interrupt_unmask,
> +};
> +
> +void byt_interrupt_init(void)
> +{
> + plf_irq_ops = &byt_irq_ops;
> +}
> +
> +
> static struct timer platform_ext_timer = {
> .id = TIMER3,
> .irq = IRQ_NUM_EXT_TIMER,
> @@ -155,6 +168,8 @@ int platform_init(struct reef *reef)
> #error Undefined platform
> #endif
>
> + byt_interrupt_init();
> +
> trace_point(TRACE_BOOT_PLATFORM_MBOX);
>
> /* clear mailbox for early trace and debug */
More information about the Sound-open-firmware
mailing list