[Armadillo:01614] 割り込みの使い方について

ASAHI Takeshi email@hidden
2007年 5月 22日 (火) 15:25:28 JST


はじめまして。朝日と申します。

ハードウェア割り込みの使い方について質問があります。

Armadillo-9 hardware manual ver.1.06 p28に
「CPU(EP9315)のINT1として割り込みが通知されます」
と記載されていることから、デバイスドライバでINT1を
扱おうとしています。

しかしながら、request_irq()のパラメータに
・irq = 1
・handler = 割り込みパンドラのポインタ(!= 0)
・irq_flags = 0
・dev_id = "foobarbaz"
を与えると、-EINVALが戻されます。
irq = 2の場合は、-EINVALが戻されません。

このことから、下記ソースコードのif文を見ると、
irq_desc[1].validが0のためではないかと考えられます。
しかし、irq_desc[1].validの制御の仕方が分かりません。

---------------------------------------
        int request_irq(
                unsigned int irq,
                irqreturn_t (*handler)(int, void *, struct pt_regs *),
                unsigned long irq_flags,
                const char * devname, void *dev_id)
        {
                unsigned long retval;
                struct irqaction *action;
       
                if (irq >= NR_IRQS || !irq_desc[irq].valid || !handler ||
                    (irq_flags & SA_SHIRQ && !dev_id))
                        return -EINVAL;
---------------------------------------
(上記コードはアットマークテクノの森島様から頂きました)

Linuxカーネルのバージョンは以下の通りです。
Linux armadillo9 2.6.12.3-a9-6 #1 Mon Sep 4 22:31:10 JST 2006 armv4tl
GNU/Linux

デバイスドライバでINT1の割り込みハンドラを登録するには
request_irq()の他に何か記述が必要でしょうか。

割り込み制御のサンプルコード等がありましたらご教示願えれば幸いです。
どうぞよろしくお願いいたします。
--
朝日




armadillo メーリングリストの案内