[Armadillo:07731] Re: armadillo-420 usb cdc_acmのドライバが落ちる

辻 泰裕 email@hidden
2011年 11月 25日 (金) 13:59:18 JST


お世話なっております、辻です。
返信ありがとうございます。

> acm_ctrl_irq()って、acm_probe() の中で interrupt urb の処理をするコード
> の初期化に使われているはず。
> skip_countries:
> usb_fill_int_urb(acm->ctrlurb, usb_dev, usb_rcvintpipe(usb_dev,
epctrl->bEndpointAddress),
> acm->ctrl_buffer, ctrlsize, acm_ctrl_irq, acm, epctrl->bInterval);
> interrupt の urb は、指定された interval で polling するので、そこで
> acm_ctrl_irq が呼ばれ、usb_submit_urb()するが、すでにデバイスが抜けてい
> るので、-19つまり -NODEVでusb_submit_urb()が戻ってくる。

→ はい、そうなっています。

> そうすると、なぜかホストコントローラー(HC)が死んだという認識になり、
> 37番の割り込みが処理されなくなるんでしょうか?

→ はい、そこが私も不明な点です。

  acmドライバの追加が上手く行ってないのかとも思ったのですが、
  ドライバの追加は>make menuconfigからKernelのドライバのインストールで、
  "Device Drivers --->、USB support --->、USB Modem (CDC ACM) support
の選択"
  で行っておりますが、これが間違っているとか?でしょうか。


> > > ccd_acmドライバがエラーを認識し、落ちていると思われますがなにか解
決方法は
> > > ないでしょうか?
> > > 通信(ポートのオープン?)を行っていない場合は、抜き差ししても大丈
夫です。
> probe() は、open(2)の後に呼ばれるんでしょうね。データー通信しなくても
> openしていると、ダメだったりしませんか?

→ いま手元に接続する機器が無くて確認出来ないのですが、openだけして通信
していない
  状態というのは確認していません。
  ここで書いた通信していない、と言うのはopenもしていないという事です。





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