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 03/12] microblaze: intc: Clear interrupt code
Date: Tue, 10 Jul 2012 10:34:55 +0200	[thread overview]
Message-ID: <4FFBE92F.8080403@monstr.eu> (raw)
In-Reply-To: <CAPnjgZ35OFpiVzaieZh8xRvTXWCB_7JSbFZOmR5T==u7XVzB0Q@mail.gmail.com>

On 07/09/2012 11:21 PM, Simon Glass wrote:
> Hi Michal,
>
> On Mon, Jul 9, 2012 at 2:20 AM, Michal Simek <monstr at monstr.eu <mailto:monstr@monstr.eu>> wrote:
>
>     Clear and prepare for device-tree driven configuration.
>     Remove CONFIG_SYS_INTC_0 definition
>     Use dynamic allocation instead of static.
>
>     Signed-off-by: Michal Simek <monstr at monstr.eu <mailto:monstr@monstr.eu>>
>
>
> I'm not really qualified to review this, but it seems reasonable.
>
> Acked-by: Simon Glass <sjg at chromium.org <mailto:sjg@chromium.org>>

thanks.

>
>     ---
>       arch/microblaze/cpu/interrupts.c              |   88 ++++++++++++++-----------
>       arch/microblaze/cpu/start.S                   |    2 -
>       arch/microblaze/cpu/timer.c                   |    2 -
>       arch/microblaze/include/asm/microblaze_intc.h |    3 +
>       arch/microblaze/lib/board.c                   |    6 +--
>       include/configs/microblaze-generic.h          |    1 -
>       6 files changed, 54 insertions(+), 48 deletions(-)
>
>     diff --git a/arch/microblaze/cpu/interrupts.c b/arch/microblaze/cpu/interrupts.c
>     index e7ca859..ee67082 100644
>     --- a/arch/microblaze/cpu/interrupts.c
>     +++ b/arch/microblaze/cpu/interrupts.c
>     @@ -26,6 +26,7 @@
>
>       #include <common.h>
>       #include <command.h>
>     +#include <malloc.h>
>       #include <asm/microblaze_intc.h>
>       #include <asm/asm.h>
>
>     @@ -48,20 +49,19 @@ int disable_interrupts (void)
>              return (msr & 0x2) != 0;
>       }
>
>     -#ifdef CONFIG_SYS_INTC_0
>     -
>     -static struct irq_action vecs[CONFIG_SYS_INTC_0_NUM];
>     +static struct irq_action *vecs;
>     +static u32 irq_no;
>
>       /* mapping structure to interrupt controller */
>     -microblaze_intc_t *intc = (microblaze_intc_t *) (CONFIG_SYS_INTC_0_ADDR);
>     +microblaze_intc_t *intc;
>
>       /* default handler */
>     -void def_hdlr (void)
>     +static void def_hdlr(void)
>       {
>              puts ("def_hdlr\n");
>       }
>
>     -void enable_one_interrupt (int irq)
>     +static void enable_one_interrupt(int irq)
>       {
>              int mask;
>              int offset = 1;
>     @@ -76,7 +76,7 @@ void enable_one_interrupt (int irq)
>       #endif
>       }
>
>     -void disable_one_interrupt (int irq)
>     +static void disable_one_interrupt(int irq)
>       {
>              int mask;
>              int offset = 1;
>     @@ -96,7 +96,7 @@ void install_interrupt_handler (int irq, interrupt_handler_t * hdlr, void *arg)
>       {
>              struct irq_action *act;
>              /* irq out of range */
>     -       if ((irq < 0) || (irq > CONFIG_SYS_INTC_0_NUM)) {
>     +       if ((irq < 0) || (irq > irq_no)) {
>                      puts ("IRQ out of range\n");
>                      return;
>              }
>     @@ -114,7 +114,7 @@ void install_interrupt_handler (int irq, interrupt_handler_t * hdlr, void *arg)
>       }
>
>       /* initialization interrupt controller - hardware */
>     -void intc_init (void)
>     +static void intc_init(void)
>       {
>              intc->mer = 0;
>              intc->ier = 0;
>     @@ -127,18 +127,33 @@ void intc_init (void)
>       #endif
>       }
>
>     -int interrupts_init (void)
>     +int interrupts_init(void)
>       {
>              int i;
>     -       /* initialize irq list */
>     -       for (i = 0; i < CONFIG_SYS_INTC_0_NUM; i++) {
>     -               vecs[i].handler = (interrupt_handler_t *) def_hdlr;
>     -               vecs[i].arg = (void *)i;
>     -               vecs[i].count = 0;
>     +
>     +#if defined(CONFIG_SYS_INTC_0_ADDR) && defined(CONFIG_SYS_INTC_0_NUM)
>     +       intc = (microblaze_intc_t *) (CONFIG_SYS_INTC_0_ADDR);
>     +       irq_no = CONFIG_SYS_INTC_0_NUM;
>     +#endif
>     +       if (irq_no) {
>     +               vecs = calloc(1, sizeof(struct irq_action) * irq_no);
>
>
> This is fine, since I assume it is called after memalloc_init(), but you could set an arbitrary maximum limit if you prefer.
>

Yes, it is called after mem_malloc_init.
The maximum limit is 32 but it won't be reached.
This checking is done by u-boot BSP.

Applied.

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-07-10  8:34 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-09  9:20 [U-Boot] [PATCH 01/12] microblaze: board: Remove compilation warning Michal Simek
2012-07-09  9:20 ` [U-Boot] [PATCH 02/12] microblaze: Remove extern from board.c Michal Simek
2012-07-09 21:10   ` Simon Glass
2012-07-10  8:24     ` Michal Simek
2012-07-09  9:20 ` [U-Boot] [PATCH 03/12] microblaze: intc: Clear interrupt code Michal Simek
2012-07-09 21:21   ` Simon Glass
2012-07-10  8:34     ` Michal Simek [this message]
2012-07-09  9:20 ` [U-Boot] [PATCH 04/12] microblaze: intc: Registering interrupt should return value Michal Simek
2012-07-09 21:22   ` Simon Glass
2012-07-10  8:52     ` Michal Simek
2012-07-09  9:20 ` [U-Boot] [PATCH 05/12] microblaze: intc: Coding style cleanup Michal Simek
2012-07-09 21:23   ` Simon Glass
2012-07-10  8:55     ` Michal Simek
2012-07-09  9:20 ` [U-Boot] [PATCH 06/12] microblaze: intc: Add device-tree driver configuration Michal Simek
2012-07-09 21:26   ` Simon Glass
2012-07-10  9:07     ` Michal Simek
2012-07-10 21:02       ` Simon Glass
2012-07-11  5:32         ` Michal Simek
2012-07-09  9:20 ` [U-Boot] [PATCH 07/12] microblaze: Move __udelay implementation Michal Simek
2012-07-09 21:28   ` Simon Glass
2012-07-10  8:25     ` Michal Simek
2012-07-09  9:20 ` [U-Boot] [PATCH 08/12] microblaze: timer: Prepare for device-tree initialization Michal Simek
2012-07-09 18:26   ` Stephan Linz
2012-07-10  8:11     ` Michal Simek
2012-07-09 19:06   ` Stephan Linz
2012-07-10  8:16     ` Michal Simek
2012-07-10 18:36       ` Stephan Linz
2012-07-11  6:07         ` Michal Simek
2012-07-09  9:20 ` [U-Boot] [PATCH 09/12] microblaze: timer: Add device-tree driver configuration Michal Simek
2012-07-09 18:25   ` Stephan Linz
2012-07-09 21:32   ` Simon Glass
2012-07-10  9:23     ` Michal Simek
2012-07-10  9:34     ` Michal Simek
2012-07-10 21:04       ` Simon Glass
2012-07-11  6:18         ` Michal Simek
2012-07-11  9:53           ` Simon Glass
2012-07-09  9:20 ` [U-Boot] [PATCH 10/12] microblaze: Call serial multi initialization Michal Simek
2012-07-09 21:32   ` Simon Glass
2012-07-10  8:27     ` Michal Simek
2012-07-09  9:20 ` [U-Boot] [PATCH 11/12] microblaze: Clean microblaze initialization Michal Simek
2012-07-09  9:20 ` [U-Boot] [PATCH 12/12] microblaze: board: Use bi_flashstart instead of CONFIG_SYS_FLASH_BASE Michal Simek
2012-07-09 21:08 ` [U-Boot] [PATCH 01/12] microblaze: board: Remove compilation warning Simon Glass
2012-07-10  8:17   ` 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=4FFBE92F.8080403@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.