Re: [PATCH 2/3] i2c: davinci: Refactor i2c_davinci_wait_bus_not_busy()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12 March 2015 at 10:50, Alexander Sverdlin
<alexander.sverdlin@xxxxxxxxx> wrote:
> On 11/03/15 19:35, ext Grygorii.Strashko@xxxxxxxxxx wrote:
>>> +    if (i2c_davinci_wait_status_change(dev, DAVINCI_I2C_STR_BB, 0)) {
>>> +        dev_warn(dev->dev, "timeout waiting for bus ready\n");
>>> +        davinci_i2c_recover_bus(dev);
>>> +        i2c_davinci_init(dev);
>>> +        /*
>>> +         * the bus should not be busy after init, otherwise something
>>> +         * is badly broken
>>> +         */
>>
>> I think you should recheck BB and return error if it's still detected.
>
> But after re-reading the datasheet, I must conclude, this is almost not possible.
> It will be a dead code. Reset will clear BB anyway and the only possibility to see
> BB set to 1 here is when another master transmits right after our reset. We cannot
> guarantee that we will always catch this here, so this must be any way handled over
> AL interrupt.

The question here what is worse:
- silently continue execution with undefined behavior
- or recheck and return error (That's how it was before).

I like option 2 :) - don't believe HW.

-- 
Best regards,
-grygorii
--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux