linux-kernel.vger.kernel.org archive mirror
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).