Re: [PATCH V3 5/5] rtc: max77686: move initialisation of rtc regmap, irq chip locally

From: Laxman Dewangan
Date: Fri Feb 05 2016 - 09:48:32 EST


Hi Krzysztof, Javier,

On Thursday 04 February 2016 02:38 PM, Krzysztof Kozlowski wrote:
On 04.02.2016 15:58, Krzysztof Kozlowski wrote:
3. Can you try locally to not use devm_regmap_init_i2c() and just use
the regmap_init_i2c() and proper removal of this from error path and
remove callback?
I'll try to find some time for that. Maybe tomorrow.
regmap_init_i2c does not help. However helps commenting out the:
regmap_del_irq_chip(info->rtc_irq, info->rtc_irq_data);
from remove() callback.



I am trying to reproduce this in my system but I am ending up with different issue as it need to enable the suspend.
can you please help on following experiment:
1. In probe/init, do
regmap_add_irq_chip()
regmap_del_irq_chip() and then
regmap_add_irq_chip() and
then without unbind()/bind(), working or not?

This is to make sure that it is universal issue rather than calling from remove callback only.

2. Do regmap_add_irq_chip() but dont do any interrupt registration i.e. comment regmap_irq_get_virq() and request_threaded_irq() and hence free_irq().
Then do unbind/bind and then suspend.
To make sure that this happen when only we have client registered interrupt.

3. Extension of 2
Do regmap_add_irq_chip(), call regmap_irq_get_virq() for creating irq mapping but dont do any interrupt registration i.e. comment request_threaded_irq() and hence free_irq().
Then do unbind/bind and then suspend.
To make sure that this happen when only we have client registered interrupt or with mapping also.


Thanks for help in advance.