lkml.org 
[lkml]   [2020]   [Feb]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 07/20] irqchip/gic-v4.1: Plumb mask/unmask SGI callbacks
    Date
    Implement mask/unmask for virtual SGIs by calling into the
    configuration helper.

    Signed-off-by: Marc Zyngier <maz@kernel.org>
    ---
    drivers/irqchip/irq-gic-v3-its.c | 18 ++++++++++++++++++
    1 file changed, 18 insertions(+)

    diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
    index 229e4ae9c59b..1e448d9a16ea 100644
    --- a/drivers/irqchip/irq-gic-v3-its.c
    +++ b/drivers/irqchip/irq-gic-v3-its.c
    @@ -3892,6 +3892,22 @@ static void its_configure_sgi(struct irq_data *d, bool clear)
    its_send_single_vcommand(find_4_1_its(), its_build_vsgi_cmd, &desc);
    }

    +static void its_sgi_mask_irq(struct irq_data *d)
    +{
    + struct its_vpe *vpe = irq_data_get_irq_chip_data(d);
    +
    + vpe->sgi_config[d->hwirq].enabled = false;
    + its_configure_sgi(d, false);
    +}
    +
    +static void its_sgi_unmask_irq(struct irq_data *d)
    +{
    + struct its_vpe *vpe = irq_data_get_irq_chip_data(d);
    +
    + vpe->sgi_config[d->hwirq].enabled = true;
    + its_configure_sgi(d, false);
    +}
    +
    static int its_sgi_set_affinity(struct irq_data *d,
    const struct cpumask *mask_val,
    bool force)
    @@ -3901,6 +3917,8 @@ static int its_sgi_set_affinity(struct irq_data *d,

    static struct irq_chip its_sgi_irq_chip = {
    .name = "GICv4.1-sgi",
    + .irq_mask = its_sgi_mask_irq,
    + .irq_unmask = its_sgi_unmask_irq,
    .irq_set_affinity = its_sgi_set_affinity,
    };

    --
    2.20.1
    \
     
     \ /
      Last update: 2020-02-14 15:59    [W:6.079 / U:0.220 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site