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.