Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1350169
| From | Maxim Syrchin <syrchin@dev.rtsoft.ru> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH] i2c: imx: add slave support. v2 |
| Date | 2016-03-04 12:30 +0100 |
| Message-ID | <r8W5I-5SG-9@gated-at.bofh.it> (permalink) |
| References | <qVevx-6B0-29@gated-at.bofh.it> <r8J8u-4LK-21@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Hi Wolfram,
I'm now working on creating new driver version. I think I'll be able to
sent it soon.
04.03.2016 0:35, Wolfram Sang пишет:
>> There are might be race conditions.
> Can you name them
Most of races are fixed already. There were some issues with interrupt
latencies - sometimes slave interrupt appears in process of starting
master xfer.
>> +enum imx_i2c_slave_state {
>> + I2C_IMX_SLAVE_IDLE,
>> + I2C_IMX_SLAVE_IRQ,
>> + I2C_IMX_SLAVE_POLLING
> Highlevel question first: Why do you have polling? Why would anyone not
> want to use interrupts here?
Since imx doesn't generate interrupt on "bus stop" condition we'd had to
implement polling scheme. Interrupts are used for starting polling and
for waking polling loop on new slave request. Without polling we can't
handle "end-of-packet" event correctly.
In current version states are:
I2C_IMX_SLAVE_IDLE // default state. slave process is waiting for interrupt
I2C_IMX_SLAVE_POLLING // slave transfer is in process.
I2C_IMX_MASTER // master transfer is in process.
Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread
Re: [PATCH] i2c: imx: add slave support. v2 Wolfram Sang <wsa@the-dreams.de> - 2016-03-03 22:40 +0100 Re: [PATCH] i2c: imx: add slave support. v2 Maxim Syrchin <syrchin@dev.rtsoft.ru> - 2016-03-04 12:30 +0100
csiph-web