From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
To: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai-core] I-pipe patch for ARM S3C24xx
Date: Fri, 27 Oct 2006 17:49:48 +0200 [thread overview]
Message-ID: <45422A9C.5080505@domain.hid> (raw)
In-Reply-To: <454216BB.4090507@domain.hid>
Gilles Chanteperdrix wrote:
> Sebastian Smolorz wrote:
>
>> Hi,
>>
>> here comes version 2 of the I-pipe patch for the S3C24xx ARM. The
>> reported problem is solved, the timer works as expected as far as I
>> can see. Linux is still there after insmod'ding the native skin. More
>> test results will follow next week after I tortured the new patch with
>> the whole testsuite arsenal. ;-)
>>
>> The patch has got two suboptimal characteristics due to the generic
>> ARM I-pipe implementation which I did not want to change during the
>> first steps:
>>
>> 1. Regarding the demux of chained IRQs (See [1]). As the S3C24xx has
>> more than one chained IRQ there are two consecutive queries for them
>> in __ipipe_mach_irq_mux_p() and __ipipe_mach_demux_irq(). This could
>> be optimized.
>
>
> You should use switch/case instead of if else if else if, the generated
> code would be better optimized.
>
You can make the test cheap test by using a mask.
#define __ipipe_irqbit(irq) (1 << ((irq) - S3C2410_CPUIRQ_OFFSET))
#ifdef CONFIG_CPU_S3C2440
#define __ipipe_muxed_irqmask (__ipipe_irqbit(IRQ_UART0) \
| __ipipe_irqbit(IRQ_UART1) \
| __ipipe_irqbit(IRQ_UART2) \
| __ipipe_irqbit(IRQ_ADCPARENT) \
| __ipipe_irqbit(IRQ_WDT) \
| __ipipe_irqbit(IRQ_CAM))
#else /* !CONFIG_CPU_S3C2440 */
#define __ipipe_muxed_irqmask (__ipipe_irqbit(IRQ_UART0) \
| __ipipe_irqbit(IRQ_UART1) \
| __ipipe_irqbit(IRQ_UART2) \
| __ipipe_irqbit(IRQ_ADCPARENT))
#endif /* CONFIG_CPU_S3C2440 */
#define __ipipe_mach_irq_mux_p(irq) \
((irq) <= IRQ_ADCPARENT \
&& (__ipipe_irqbit(irq) & __ipipe_muxed_irqmask(irq)))
--
Gilles Chanteperdrix
next prev parent reply other threads:[~2006-10-27 15:49 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-20 8:45 [Xenomai-core] I-pipe patch for ARM S3C24xx Sebastian Smolorz
2006-10-24 10:49 ` Sebastian Smolorz
2006-10-25 13:41 ` [Xenomai-help] " Schlägl Manfred jun.
2006-10-25 14:32 ` Sebastian Smolorz
2006-10-27 14:20 ` Sebastian Smolorz
2006-10-27 14:24 ` Gilles Chanteperdrix
2006-10-27 15:49 ` Gilles Chanteperdrix [this message]
2006-10-30 9:13 ` Sebastian Smolorz
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=45422A9C.5080505@domain.hid \
--to=gilles.chanteperdrix@xenomai.org \
--cc=xenomai@xenomai.org \
/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.