Two I2C devices does not work together - fails in dmaengine.c

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Two I2C devices does not work together - fails in dmaengine.c

ソリューションへジャンプ
953件の閲覧回数
binoyjayan
Contributor III

Hi all,

 

I have two I2c devices installed in my i.MX28 based board. A keypad and a semtech touch device, one on i2c bus #1 and bus #2.

When i work with them seperately it both work fine. But when i press a key on the keypad and at the same time touch the screen, the kernel crashes in the code dmaengine.c in the function mxs_dma_cooked (line #227).  The following line forces the kernel to crash:

 

arch/arm/plat-mxs/dmaengine.c   :  line 227 -->                 BUG_ON(sem != pchan->active_num);

 

From the code it looks like when I press both devices simultaneously, the code fails to be completely re-entrant and thus making the active active channel on the head of the list list different from the one being used. Has anyone encountered a similar issue?

 

I am attaching the logs for reference.. It includes application logs as well as evtest logs along with the kernel stack trace...

Original Attachment has been moved to: touch_keypad_err.log.zip

ラベル(1)
タグ(4)
0 件の賞賛
1 解決策
684件の閲覧回数
binoyjayan
Contributor III

Hi All,

It finally worked for me by patching i2c-mxs.c.

See thread :

Conflict on 2 I2C buses

元の投稿で解決策を見る

0 件の賞賛
1 返信
685件の閲覧回数
binoyjayan
Contributor III

Hi All,

It finally worked for me by patching i2c-mxs.c.

See thread :

Conflict on 2 I2C buses

0 件の賞賛