All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1] irqchip: al-fic: add support for irq retrigger
@ 2019-09-09  8:39 Talel Shenhar
  2019-09-09  9:40 ` Marc Zyngier
  2019-10-14 18:38 ` [tip: irq/urgent] irqchip/al-fic: Add " tip-bot2 for Talel Shenhar
  0 siblings, 2 replies; 4+ messages in thread
From: Talel Shenhar @ 2019-09-09  8:39 UTC (permalink / raw)
  To: tglx, jason, maz, talel, linux-kernel
  Cc: dwmw, benh, hhhawa, ronenk, jonnyc, hanochu, barakw

Introduce interrupts retrigger support for Amazon's Annapurna Labs Fabric
Interrupt Controller.

Signed-off-by: Talel Shenhar <talel@amazon.com>
---
 drivers/irqchip/irq-al-fic.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/irqchip/irq-al-fic.c b/drivers/irqchip/irq-al-fic.c
index 1a57cee..0b0a737 100644
--- a/drivers/irqchip/irq-al-fic.c
+++ b/drivers/irqchip/irq-al-fic.c
@@ -15,6 +15,7 @@
 
 /* FIC Registers */
 #define AL_FIC_CAUSE		0x00
+#define AL_FIC_SET_CAUSE	0x08
 #define AL_FIC_MASK		0x10
 #define AL_FIC_CONTROL		0x28
 
@@ -126,6 +127,16 @@ static void al_fic_irq_handler(struct irq_desc *desc)
 	chained_irq_exit(irqchip, desc);
 }
 
+static int al_fic_irq_retrigger(struct irq_data *data)
+{
+	struct irq_chip_generic *gc = irq_data_get_irq_chip_data(data);
+	struct al_fic *fic = gc->private;
+
+	writel_relaxed(BIT(data->hwirq), fic->base + AL_FIC_SET_CAUSE);
+
+	return 1;
+}
+
 static int al_fic_register(struct device_node *node,
 			   struct al_fic *fic)
 {
@@ -159,6 +170,7 @@ static int al_fic_register(struct device_node *node,
 	gc->chip_types->chip.irq_unmask = irq_gc_mask_clr_bit;
 	gc->chip_types->chip.irq_ack = irq_gc_ack_clr_bit;
 	gc->chip_types->chip.irq_set_type = al_fic_irq_set_type;
+	gc->chip_types->chip.irq_retrigger = al_fic_irq_retrigger;
 	gc->chip_types->chip.flags = IRQCHIP_SKIP_SET_WAKE;
 	gc->private = fic;
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/1] irqchip: al-fic: add support for irq retrigger
  2019-09-09  8:39 [PATCH 1/1] irqchip: al-fic: add support for irq retrigger Talel Shenhar
@ 2019-09-09  9:40 ` Marc Zyngier
  2019-09-09 10:18   ` [UNVERIFIED SENDER] " Shenhar, Talel
  2019-10-14 18:38 ` [tip: irq/urgent] irqchip/al-fic: Add " tip-bot2 for Talel Shenhar
  1 sibling, 1 reply; 4+ messages in thread
From: Marc Zyngier @ 2019-09-09  9:40 UTC (permalink / raw)
  To: Talel Shenhar
  Cc: tglx, jason, linux-kernel, dwmw, benh, hhhawa, ronenk, jonnyc,
	hanochu, barakw

On Mon, 09 Sep 2019 09:39:18 +0100,
Talel Shenhar <talel@amazon.com> wrote:

Hi Talel,

> 
> Introduce interrupts retrigger support for Amazon's Annapurna Labs Fabric
> Interrupt Controller.
> 
> Signed-off-by: Talel Shenhar <talel@amazon.com>
> ---
>  drivers/irqchip/irq-al-fic.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/drivers/irqchip/irq-al-fic.c b/drivers/irqchip/irq-al-fic.c
> index 1a57cee..0b0a737 100644
> --- a/drivers/irqchip/irq-al-fic.c
> +++ b/drivers/irqchip/irq-al-fic.c
> @@ -15,6 +15,7 @@
>  
>  /* FIC Registers */
>  #define AL_FIC_CAUSE		0x00
> +#define AL_FIC_SET_CAUSE	0x08
>  #define AL_FIC_MASK		0x10
>  #define AL_FIC_CONTROL		0x28
>  
> @@ -126,6 +127,16 @@ static void al_fic_irq_handler(struct irq_desc *desc)
>  	chained_irq_exit(irqchip, desc);
>  }
>  
> +static int al_fic_irq_retrigger(struct irq_data *data)
> +{
> +	struct irq_chip_generic *gc = irq_data_get_irq_chip_data(data);
> +	struct al_fic *fic = gc->private;
> +
> +	writel_relaxed(BIT(data->hwirq), fic->base + AL_FIC_SET_CAUSE);
> +
> +	return 1;
> +}
> +
>  static int al_fic_register(struct device_node *node,
>  			   struct al_fic *fic)
>  {
> @@ -159,6 +170,7 @@ static int al_fic_register(struct device_node *node,
>  	gc->chip_types->chip.irq_unmask = irq_gc_mask_clr_bit;
>  	gc->chip_types->chip.irq_ack = irq_gc_ack_clr_bit;
>  	gc->chip_types->chip.irq_set_type = al_fic_irq_set_type;
> +	gc->chip_types->chip.irq_retrigger = al_fic_irq_retrigger;
>  	gc->chip_types->chip.flags = IRQCHIP_SKIP_SET_WAKE;
>  	gc->private = fic;

Looks good to me. Is this a fix or a new feature? If the former, I can
queue it up for -rc1.

	M.

-- 
Jazz is not dead, it just smells funny.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [UNVERIFIED SENDER] Re: [PATCH 1/1] irqchip: al-fic: add support for irq retrigger
  2019-09-09  9:40 ` Marc Zyngier
@ 2019-09-09 10:18   ` Shenhar, Talel
  0 siblings, 0 replies; 4+ messages in thread
From: Shenhar, Talel @ 2019-09-09 10:18 UTC (permalink / raw)
  To: Marc Zyngier
  Cc: tglx, jason, linux-kernel, dwmw, benh, hhhawa, ronenk, jonnyc,
	hanochu, barakw


On 9/9/2019 12:40 PM, Marc Zyngier wrote:
> On Mon, 09 Sep 2019 09:39:18 +0100,
> Talel Shenhar <talel@amazon.com> wrote:
>
> Hi Talel,
>
>> Introduce interrupts retrigger support for Amazon's Annapurna Labs Fabric
>> Interrupt Controller.
>>
>> Signed-off-by: Talel Shenhar <talel@amazon.com>
>> ---
>>   drivers/irqchip/irq-al-fic.c | 12 ++++++++++++
>>   1 file changed, 12 insertions(+)
>>
>> diff --git a/drivers/irqchip/irq-al-fic.c b/drivers/irqchip/irq-al-fic.c
>> index 1a57cee..0b0a737 100644
>> --- a/drivers/irqchip/irq-al-fic.c
>> +++ b/drivers/irqchip/irq-al-fic.c
>> @@ -15,6 +15,7 @@
>>   
>>   /* FIC Registers */
>>   #define AL_FIC_CAUSE		0x00
>> +#define AL_FIC_SET_CAUSE	0x08
>>   #define AL_FIC_MASK		0x10
>>   #define AL_FIC_CONTROL		0x28
>>   
>> @@ -126,6 +127,16 @@ static void al_fic_irq_handler(struct irq_desc *desc)
>>   	chained_irq_exit(irqchip, desc);
>>   }
>>   
>> +static int al_fic_irq_retrigger(struct irq_data *data)
>> +{
>> +	struct irq_chip_generic *gc = irq_data_get_irq_chip_data(data);
>> +	struct al_fic *fic = gc->private;
>> +
>> +	writel_relaxed(BIT(data->hwirq), fic->base + AL_FIC_SET_CAUSE);
>> +
>> +	return 1;
>> +}
>> +
>>   static int al_fic_register(struct device_node *node,
>>   			   struct al_fic *fic)
>>   {
>> @@ -159,6 +170,7 @@ static int al_fic_register(struct device_node *node,
>>   	gc->chip_types->chip.irq_unmask = irq_gc_mask_clr_bit;
>>   	gc->chip_types->chip.irq_ack = irq_gc_ack_clr_bit;
>>   	gc->chip_types->chip.irq_set_type = al_fic_irq_set_type;
>> +	gc->chip_types->chip.irq_retrigger = al_fic_irq_retrigger;
>>   	gc->chip_types->chip.flags = IRQCHIP_SKIP_SET_WAKE;
>>   	gc->private = fic;
> Looks good to me. Is this a fix or a new feature? If the former, I can
> queue it up for -rc1.
>
> 	M.

This is an enhancement to the merged al-fic driver. queuing it up sounds 
good.

Thanks Marc!



^ permalink raw reply	[flat|nested] 4+ messages in thread

* [tip: irq/urgent] irqchip/al-fic: Add support for irq retrigger
  2019-09-09  8:39 [PATCH 1/1] irqchip: al-fic: add support for irq retrigger Talel Shenhar
  2019-09-09  9:40 ` Marc Zyngier
@ 2019-10-14 18:38 ` tip-bot2 for Talel Shenhar
  1 sibling, 0 replies; 4+ messages in thread
From: tip-bot2 for Talel Shenhar @ 2019-10-14 18:38 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: Talel Shenhar, Marc Zyngier, Ingo Molnar, Borislav Petkov, linux-kernel

The following commit has been merged into the irq/urgent branch of tip:

Commit-ID:     9c426b770bd088f18899f836093d810a83b59b98
Gitweb:        https://git.kernel.org/tip/9c426b770bd088f18899f836093d810a83b59b98
Author:        Talel Shenhar <talel@amazon.com>
AuthorDate:    Mon, 09 Sep 2019 11:39:18 +03:00
Committer:     Marc Zyngier <maz@kernel.org>
CommitterDate: Mon, 09 Sep 2019 18:11:47 +01:00

irqchip/al-fic: Add support for irq retrigger

Introduce interrupts retrigger support for Amazon's Annapurna Labs Fabric
Interrupt Controller.

Signed-off-by: Talel Shenhar <talel@amazon.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/1568018358-18985-1-git-send-email-talel@amazon.com
---
 drivers/irqchip/irq-al-fic.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/irqchip/irq-al-fic.c b/drivers/irqchip/irq-al-fic.c
index 1a57cee..0b0a737 100644
--- a/drivers/irqchip/irq-al-fic.c
+++ b/drivers/irqchip/irq-al-fic.c
@@ -15,6 +15,7 @@
 
 /* FIC Registers */
 #define AL_FIC_CAUSE		0x00
+#define AL_FIC_SET_CAUSE	0x08
 #define AL_FIC_MASK		0x10
 #define AL_FIC_CONTROL		0x28
 
@@ -126,6 +127,16 @@ static void al_fic_irq_handler(struct irq_desc *desc)
 	chained_irq_exit(irqchip, desc);
 }
 
+static int al_fic_irq_retrigger(struct irq_data *data)
+{
+	struct irq_chip_generic *gc = irq_data_get_irq_chip_data(data);
+	struct al_fic *fic = gc->private;
+
+	writel_relaxed(BIT(data->hwirq), fic->base + AL_FIC_SET_CAUSE);
+
+	return 1;
+}
+
 static int al_fic_register(struct device_node *node,
 			   struct al_fic *fic)
 {
@@ -159,6 +170,7 @@ static int al_fic_register(struct device_node *node,
 	gc->chip_types->chip.irq_unmask = irq_gc_mask_clr_bit;
 	gc->chip_types->chip.irq_ack = irq_gc_ack_clr_bit;
 	gc->chip_types->chip.irq_set_type = al_fic_irq_set_type;
+	gc->chip_types->chip.irq_retrigger = al_fic_irq_retrigger;
 	gc->chip_types->chip.flags = IRQCHIP_SKIP_SET_WAKE;
 	gc->private = fic;
 

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-10-14 18:39 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-09  8:39 [PATCH 1/1] irqchip: al-fic: add support for irq retrigger Talel Shenhar
2019-09-09  9:40 ` Marc Zyngier
2019-09-09 10:18   ` [UNVERIFIED SENDER] " Shenhar, Talel
2019-10-14 18:38 ` [tip: irq/urgent] irqchip/al-fic: Add " tip-bot2 for Talel Shenhar

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.