All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Simek <monstr@monstr.eu>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 3/7] microblaze: intc: Registering interrupt should return value
Date: Wed, 08 Aug 2012 10:27:03 +0200	[thread overview]
Message-ID: <502222D7.9070705@monstr.eu> (raw)
In-Reply-To: <1344370237.29456.88.camel@keto>

On 08/07/2012 10:10 PM, Stephan Linz wrote:
> Am Montag, den 06.08.2012, 09:46 +0200 schrieb Michal Simek:
>> Return value to find out if un/registration was succesful.
>>
>> Signed-off-by: Michal Simek <monstr@monstr.eu>
>>
>> ---
>> v2: Add comment to header file to describe parameters and return codes
>> ---
>>   arch/microblaze/cpu/interrupts.c              |   16 +++++++++-------
>>   arch/microblaze/include/asm/microblaze_intc.h |   11 ++++++++++-
>>   2 files changed, 19 insertions(+), 8 deletions(-)
>>
>> diff --git a/arch/microblaze/cpu/interrupts.c b/arch/microblaze/cpu/interrupts.c
>> index ee67082..08f6bad 100644
>> --- a/arch/microblaze/cpu/interrupts.c
>> +++ b/arch/microblaze/cpu/interrupts.c
>> @@ -91,14 +91,13 @@ static void disable_one_interrupt(int irq)
>>   #endif
>>   }
>>
>> -/* adding new handler for interrupt */
>> -void install_interrupt_handler (int irq, interrupt_handler_t * hdlr, void *arg)
>> +int install_interrupt_handler(int irq, interrupt_handler_t *hdlr, void *arg)
>>   {
>>   	struct irq_action *act;
>>   	/* irq out of range */
>>   	if ((irq < 0) || (irq > irq_no)) {
>>   		puts ("IRQ out of range\n");
>> -		return;
>> +		return -1;
>>   	}
>>   	act = &vecs[irq];
>>   	if (hdlr) {		/* enable */
>> @@ -106,11 +105,14 @@ void install_interrupt_handler (int irq, interrupt_handler_t * hdlr, void *arg)
>>   		act->arg = arg;
>>   		act->count = 0;
>>   		enable_one_interrupt (irq);
>> -	} else {		/* disable */
>> -		act->handler = (interrupt_handler_t *) def_hdlr;
>> -		act->arg = (void *)irq;
>> -		disable_one_interrupt (irq);
>> +		return 0;
>>   	}
>> +
>> +	/* Disable */
>> +	act->handler = (interrupt_handler_t *) def_hdlr;
>> +	act->arg = (void *)irq;
>> +	disable_one_interrupt(irq);
>> +	return 1;
>>   }
>>
>>   /* initialization interrupt controller - hardware */
>> diff --git a/arch/microblaze/include/asm/microblaze_intc.h b/arch/microblaze/include/asm/microblaze_intc.h
>> index 6142b9c..e9640f5 100644
>> --- a/arch/microblaze/include/asm/microblaze_intc.h
>> +++ b/arch/microblaze/include/asm/microblaze_intc.h
>> @@ -39,7 +39,16 @@ struct irq_action {
>>   	int count; /* number of interrupt */
>>   };
>>
>> -void install_interrupt_handler (int irq, interrupt_handler_t * hdlr,
>> +/**
>> + * Register and unregister interrupt handler rutines
>> + *
>> + * @param irq	IRQ number
>> + * @param hdlr	Interrupt handler rutine
>> + * @param arg	Pointer to argument which is passed to int. handler rutine
>> + * @return	0 if registration pass, 1 if unregistration pass,
>> + *		or an error code < 0 otherwise
>> + */
>> +int install_interrupt_handler(int irq, interrupt_handler_t *hdlr,
>>   				       void *arg);
>
> Hi Michal,
>
> why not two different functions here, one for registration, another one
> for unregistration? To mee it is puzzling to use a 'install' function
> for unregistration ...

partially agree with that. Maybe we could introduce one macro for that.

#define uninstall_interrupt_handler(irq) install_interrupt_handler(irq, NULL, NULL)


> ... whatever, you should evaluate the return code in fsl_init2() too.

Not necessary to do it in this patch.

Thanks,
Michal


-- 
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
Microblaze U-BOOT custodian

  reply	other threads:[~2012-08-08  8:27 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-06  7:46 [U-Boot] [PATCH v2 1/7] microblaze: Add support for device tree driven board configuration Michal Simek
2012-08-06  7:46 ` [U-Boot] [PATCH v2 2/7] microblaze: board: Remove compilation warning Michal Simek
2012-08-07 20:10   ` Stephan Linz
2012-08-06  7:46 ` [U-Boot] [PATCH v2 3/7] microblaze: intc: Registering interrupt should return value Michal Simek
2012-08-07 20:10   ` Stephan Linz
2012-08-08  8:27     ` Michal Simek [this message]
2012-08-08 17:47       ` Stephan Linz
2012-08-06  7:46 ` [U-Boot] [PATCH v2 4/7] microblaze: intc: Coding style cleanup Michal Simek
2012-08-07 20:10   ` Stephan Linz
2012-08-06  7:46 ` [U-Boot] [PATCH v2 5/7] microblaze: timer: Prepare for device-tree initialization Michal Simek
2012-08-07 20:10   ` Stephan Linz
2012-08-08  8:27     ` Michal Simek
2012-08-06  7:46 ` [U-Boot] [PATCH v2 6/7] microblaze: Clean microblaze initialization Michal Simek
2012-08-07 20:10   ` Stephan Linz
2012-08-06  7:46 ` [U-Boot] [PATCH v2 7/7] microblaze: board: Use bi_flashstart instead of CONFIG_SYS_FLASH_BASE Michal Simek
2012-08-07 20:10   ` Stephan Linz
2012-08-07 20:10 ` [U-Boot] [PATCH v2 1/7] microblaze: Add support for device tree driven board configuration Stephan Linz
2012-08-10  7:16   ` Michal Simek

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=502222D7.9070705@monstr.eu \
    --to=monstr@monstr.eu \
    --cc=u-boot@lists.denx.de \
    /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.