diff mbox

[PATCH-v4,00/11] i2c: pxa: Fixes, cleanup and support for pxa910 family

Message ID 55AC9F61.3090207@linaro.org
State New
Headers show

Commit Message

Vaibhav Hiremath July 20, 2015, 7:12 a.m. UTC
On Monday 20 July 2015 12:39 PM, Vaibhav Hiremath wrote:
>
>
> On Monday 20 July 2015 12:36 PM, Vaibhav Hiremath wrote:
>>
>>
>> On Saturday 18 July 2015 01:19 AM, Robert Jarzmik wrote:
>>> Vaibhav Hiremath <vaibhav.hiremath@linaro.org> writes:
>>>
>>>>> So, I applied patches 1-6 to for-next to make some progress.
>>>>>
>>>>> The others need more thought because of the bindings which shall be
>>>>> discussed replying to the patches in question.
>>>>>
>>>>> Thanks for the updated work with lots of proper references.
>>>>>
>>>>
>>>> OK, Thanks and no issues.
>>>>
>>>> Lets discuss more on the bindings.
>>>
>>> I made a simple try on my reference platform with the whole patchset.
>>> It oopses on a NULL dereference.
>>>
>>> The stack is in [1].
>>> I think it boils down to :
>>>   - i2c_pxa_do_sclk_adj()
>>>     - reg_ilcr = readl(_ILCR(i2c));
>>>
>>> I also think the faulty patch is :
>>>   - i2c: pxa: Add ILCR (tLow & tHigh) configuration support
>>>
>>> My case, an I2C master case, I'd like you to find the issue and fix it.
>>>
>>
>> Which is this reference platform?
>> Can you share few details -
>>
>>   - reference Platform?
>>   - DT file if you could
>>   - Boot log (if you could)
>>
>>
>> I am using pxa1928 based platform, and I do not see any issues.
>>
>
> Having said that,
> I see issues in the patch for non PXA910 platform, where
> i2c_pxa_do_sclk_adj() will be called unconditionally and obviously
> reg_ilcr and reg_wcr are not set.
>
> I will fix this and send the patch.
>

This should fix the issue -


hvaibhav@hvaibhav-ThinkPad-T440p:~/projects/mainline/linux$ git diff 
drivers/i2c/busses/i2c-pxa.c



If you are ok, I will re-spin the patch and submit.

Thanks,
Vaibhav
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c
index e0aa087..9e372fc 100644
--- a/drivers/i2c/busses/i2c-pxa.c
+++ b/drivers/i2c/busses/i2c-pxa.c
@@ -590,6 +590,9 @@  static void i2c_pxa_do_sclk_adj(struct pxa_i2c *i2c)
  {
         unsigned int reg_ilcr;

+       if (!i2c->reg_ilcr)
+               return;
+
         reg_ilcr = readl(_ILCR(i2c));

         /* For standard/fast mode tlow and thigh counters are same */