2007-08-30 13:56:04

by Francis Moreau

[permalink] [raw]
Subject: i2c transfers during interrupt context

Hello,

I have a very simple question about i2c transfers.

I'm wondering if I'm allowed to initiate some very short i2c transfers
in an interrupt handler.

Thanks for your answers.
--
Francis


--
Francis


2007-08-30 15:31:47

by Jean Delvare

[permalink] [raw]
Subject: Re: i2c transfers during interrupt context

Bonjour Francis ;)

On Thu, 30 Aug 2007 15:55:49 +0200, Francis Moreau wrote:
> I have a very simple question about i2c transfers.
>
> I'm wondering if I'm allowed to initiate some very short i2c transfers
> in an interrupt handler.

Non. Tu n'as pas le droit de dormir dans un gestionnaire
d'interruption, et la majorit? des pilotes I2C dorment pendant les
transferts.

Si tu as besoin de faire ce genre de chose il faut typiquement passer
par une workqueue.

--
Jean Delvare

2007-08-30 20:16:19

by Francis Moreau

[permalink] [raw]
Subject: Re: i2c transfers during interrupt context

Bonjour Jean !

On 8/30/07, Jean Delvare <[email protected]> wrote:
> Non. Tu n'as pas le droit de dormir dans un gestionnaire
> d'interruption, et la majorit? des pilotes I2C dorment pendant les
> transferts.
>

Ok, c'est ce que je voulais savoir. Peut etre que cette regle pourrait
etre renforce par un "might_sleep()" ajoute dans les fonctions de
transfert de l'i2c-core ?

D'ailleurs pourquoi certains pilotes i2c ne dorment pas pendant les
transferts ? Qu'ont ils de different ?

> Si tu as besoin de faire ce genre de chose il faut typiquement passer
> par une workqueue.

Malheureusement dans certains cas la workqueue est schedulee trop
tardivement et le message i2c n'arrive pas a temps au device.

Une autre question, j'espere que je n'abuse pas: Comment peut on
changer la frequence du bus i2c depuis un driver ?

Merci pour tes reponses.
--
Francis

2007-08-30 20:46:41

by Jean Delvare

[permalink] [raw]
Subject: Re: i2c transfers during interrupt context

Oops, sorry for replying in French, I completely missed the fact that
the original post was on LKML and not private.

--
Jean Delvare