Message ID | 1439370853-32282-1-git-send-email-dongsheng.wang@freescale.com |
---|---|
State | Accepted |
Headers | show |
Hi Alexandre, Could you apply this patch? Regards, -Dongsheng > -----Original Message----- > From: Dongsheng Wang [mailto:dongsheng.wang@freescale.com] > Sent: Wednesday, August 12, 2015 5:14 PM > To: alexandre.belloni@free-electrons.com > Cc: a.zummo@towertech.it; rtc-linux@googlegroups.com; linux- > kernel@vger.kernel.org; Wang Dongsheng-B40534 > Subject: [PATCH v2] rtc/ds3232: fix ds3232 get a WARNING trace in resume > function > > From: Wang Dongsheng <dongsheng.wang@freescale.com> > > If ds3232 work on some platform that is not implementation > irq_set_wake, ds3232 will get a WARNING trace in resume. > So fix ds3232->suspended state to false when irq_set_irq_wake > return error. > > ------------[ cut here ]------------ > WARNING: CPU: 0 PID: 729 at kernel/irq/manage.c:604 > irq_set_irq_wake+0x4b/0x8c() > Unbalanced IRQ 201 wake disable > Modules linked in: > CPU: 0 PID: 729 Comm: sh Not tainted 3.12.19-rt30+ #25 > [<800107d9>] (unwind_backtrace+0x1/0x88) from [<8000e4ef>] > (show_stack+0xb/0xc) > [<8000e4ef>] (show_stack+0xb/0xc) from [<802b5fa9>] > (dump_stack+0x4d/0x60) > [<802b5fa9>] (dump_stack+0x4d/0x60) from [<800186dd>] > (warn_slowpath_common+0x45/0x64) > [<800186dd>] (warn_slowpath_common+0x45/0x64) from [<80018717>] > (warn_slowpath_fmt+0x1b/0x24) > [<80018717>] (warn_slowpath_fmt+0x1b/0x24) from [<8003a8d3>] > (irq_set_irq_wake+0x4b/0x8c) > [<8003a8d3>] (irq_set_irq_wake+0x4b/0x8c) from [<80204fcb>] > (ds3232_resume+0x2d/0x36) > [<80204fcb>] (ds3232_resume+0x2d/0x36) from [<801954c7>] > (dpm_run_callback.isra.13+0xb/0x28) > [<801954c7>] (dpm_run_callback.isra.13+0xb/0x28) from [<80195b1b>] > (device_resume+0x7b/0xa2) > [<80195b1b>] (device_resume+0x7b/0xa2) from [<80195f0f>] > (dpm_resume+0xbb/0x19c) > [<80195f0f>] (dpm_resume+0xbb/0x19c) from [<801960d9>] > (dpm_resume_end+0x9/0x12) > [<801960d9>] (dpm_resume_end+0x9/0x12) from [<80037e1d>] > (suspend_devices_and_enter+0x17d/0x1d0) > [<80037e1d>] (suspend_devices_and_enter+0x17d/0x1d0) from [<80037ee1>] > (pm_suspend+0x71/0x128) > [<80037ee1>] (pm_suspend+0x71/0x128) from [<80037449>] > (state_store+0x6d/0x80) > [<80037449>] (state_store+0x6d/0x80) from [<800af4d5>] > (sysfs_write_file+0x9f/0xde) > [<800af4d5>] (sysfs_write_file+0x9f/0xde) from [<8007a437>] > (vfs_write+0x7b/0x104) > [<8007a437>] (vfs_write+0x7b/0x104) from [<8007a7f7>] > (SyS_write+0x27/0x48) > [<8007a7f7>] (SyS_write+0x27/0x48) from [<8000c121>] > (ret_fast_syscall+0x1/0x44) > ---[ end trace 640959d2e8de6ccc ]--- > > Signed-off-by: Wang Dongsheng <dongsheng.wang@freescale.com> > --- > *v2* > - Use dev_warn_once to instead of dev_info > > diff --git a/drivers/rtc/rtc-ds3232.c b/drivers/rtc/rtc-ds3232.c > index 7e48e53..3554970 100644 > --- a/drivers/rtc/rtc-ds3232.c > +++ b/drivers/rtc/rtc-ds3232.c > @@ -463,7 +463,10 @@ static int ds3232_suspend(struct device *dev) > > if (device_can_wakeup(dev)) { > ds3232->suspended = true; > - irq_set_irq_wake(client->irq, 1); > + if (irq_set_irq_wake(client->irq, 1)) { > + dev_warn_once(dev, "Can not set wakeup sources\n"); > + ds3232->suspended = false; > + } > } > > return 0; > -- > 2.1.0.27.g96db324
2015-08-17 16:10 GMT+09:00 Wang Dongsheng <Dongsheng.Wang@freescale.com>: > Hi Alexandre, > > Could you apply this patch? Give some time before pinging. > > Regards, > -Dongsheng > >> -----Original Message----- >> From: Dongsheng Wang [mailto:dongsheng.wang@freescale.com] >> Sent: Wednesday, August 12, 2015 5:14 PM >> To: alexandre.belloni@free-electrons.com >> Cc: a.zummo@towertech.it; rtc-linux@googlegroups.com; linux- >> kernel@vger.kernel.org; Wang Dongsheng-B40534 >> Subject: [PATCH v2] rtc/ds3232: fix ds3232 get a WARNING trace in resume >> function >> >> From: Wang Dongsheng <dongsheng.wang@freescale.com> >> >> If ds3232 work on some platform that is not implementation >> irq_set_wake, ds3232 will get a WARNING trace in resume. >> So fix ds3232->suspended state to false when irq_set_irq_wake >> return error. >> >> ------------[ cut here ]------------ Please cut of the cut-here. >> WARNING: CPU: 0 PID: 729 at kernel/irq/manage.c:604 >> irq_set_irq_wake+0x4b/0x8c() >> Unbalanced IRQ 201 wake disable >> Modules linked in: >> CPU: 0 PID: 729 Comm: sh Not tainted 3.12.19-rt30+ #25 >> [<800107d9>] (unwind_backtrace+0x1/0x88) from [<8000e4ef>] >> (show_stack+0xb/0xc) >> [<8000e4ef>] (show_stack+0xb/0xc) from [<802b5fa9>] >> (dump_stack+0x4d/0x60) >> [<802b5fa9>] (dump_stack+0x4d/0x60) from [<800186dd>] >> (warn_slowpath_common+0x45/0x64) >> [<800186dd>] (warn_slowpath_common+0x45/0x64) from [<80018717>] >> (warn_slowpath_fmt+0x1b/0x24) >> [<80018717>] (warn_slowpath_fmt+0x1b/0x24) from [<8003a8d3>] >> (irq_set_irq_wake+0x4b/0x8c) >> [<8003a8d3>] (irq_set_irq_wake+0x4b/0x8c) from [<80204fcb>] >> (ds3232_resume+0x2d/0x36) >> [<80204fcb>] (ds3232_resume+0x2d/0x36) from [<801954c7>] >> (dpm_run_callback.isra.13+0xb/0x28) >> [<801954c7>] (dpm_run_callback.isra.13+0xb/0x28) from [<80195b1b>] >> (device_resume+0x7b/0xa2) >> [<80195b1b>] (device_resume+0x7b/0xa2) from [<80195f0f>] >> (dpm_resume+0xbb/0x19c) >> [<80195f0f>] (dpm_resume+0xbb/0x19c) from [<801960d9>] >> (dpm_resume_end+0x9/0x12) >> [<801960d9>] (dpm_resume_end+0x9/0x12) from [<80037e1d>] >> (suspend_devices_and_enter+0x17d/0x1d0) >> [<80037e1d>] (suspend_devices_and_enter+0x17d/0x1d0) from [<80037ee1>] >> (pm_suspend+0x71/0x128) >> [<80037ee1>] (pm_suspend+0x71/0x128) from [<80037449>] >> (state_store+0x6d/0x80) >> [<80037449>] (state_store+0x6d/0x80) from [<800af4d5>] >> (sysfs_write_file+0x9f/0xde) >> [<800af4d5>] (sysfs_write_file+0x9f/0xde) from [<8007a437>] >> (vfs_write+0x7b/0x104) >> [<8007a437>] (vfs_write+0x7b/0x104) from [<8007a7f7>] >> (SyS_write+0x27/0x48) >> [<8007a7f7>] (SyS_write+0x27/0x48) from [<8000c121>] >> (ret_fast_syscall+0x1/0x44) >> ---[ end trace 640959d2e8de6ccc ]--- The dmesg here is not readable. Please fix it. For example by not wrapping it or removing unnecessary information like kernel addresses. >> >> Signed-off-by: Wang Dongsheng <dongsheng.wang@freescale.com> >> --- >> *v2* >> - Use dev_warn_once to instead of dev_info >> >> diff --git a/drivers/rtc/rtc-ds3232.c b/drivers/rtc/rtc-ds3232.c >> index 7e48e53..3554970 100644 >> --- a/drivers/rtc/rtc-ds3232.c >> +++ b/drivers/rtc/rtc-ds3232.c >> @@ -463,7 +463,10 @@ static int ds3232_suspend(struct device *dev) >> >> if (device_can_wakeup(dev)) { >> ds3232->suspended = true; >> - irq_set_irq_wake(client->irq, 1); >> + if (irq_set_irq_wake(client->irq, 1)) { >> + dev_warn_once(dev, "Can not set wakeup sources\n"); s/Can not/Cannot/ One wakeup source or multiple sources? Best regards, Krzysztof >> + ds3232->suspended = false; >> + } >> } >> >> return 0; >> -- >> 2.1.0.27.g96db324 > > -- > -- > You received this message because you are subscribed to "rtc-linux". > Membership options at http://groups.google.com/group/rtc-linux . > Please read http://groups.google.com/group/rtc-linux/web/checklist > before submitting a driver. > --- > You received this message because you are subscribed to the Google Groups "rtc-linux" group. > To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe@googlegroups.com. > For more options, visit https://groups.google.com/d/optout.
On 12/08/2015 at 17:14:13 +0800, Dongsheng Wang wrote : > From: Wang Dongsheng <dongsheng.wang@freescale.com> > > If ds3232 work on some platform that is not implementation > irq_set_wake, ds3232 will get a WARNING trace in resume. > So fix ds3232->suspended state to false when irq_set_irq_wake > return error. > > ------------[ cut here ]------------ > WARNING: CPU: 0 PID: 729 at kernel/irq/manage.c:604 > irq_set_irq_wake+0x4b/0x8c() > Unbalanced IRQ 201 wake disable > Modules linked in: > CPU: 0 PID: 729 Comm: sh Not tainted 3.12.19-rt30+ #25 > [<800107d9>] (unwind_backtrace+0x1/0x88) from [<8000e4ef>] > (show_stack+0xb/0xc) > [<8000e4ef>] (show_stack+0xb/0xc) from [<802b5fa9>] > (dump_stack+0x4d/0x60) > [<802b5fa9>] (dump_stack+0x4d/0x60) from [<800186dd>] > (warn_slowpath_common+0x45/0x64) > [<800186dd>] (warn_slowpath_common+0x45/0x64) from [<80018717>] > (warn_slowpath_fmt+0x1b/0x24) > [<80018717>] (warn_slowpath_fmt+0x1b/0x24) from [<8003a8d3>] > (irq_set_irq_wake+0x4b/0x8c) > [<8003a8d3>] (irq_set_irq_wake+0x4b/0x8c) from [<80204fcb>] > (ds3232_resume+0x2d/0x36) > [<80204fcb>] (ds3232_resume+0x2d/0x36) from [<801954c7>] > (dpm_run_callback.isra.13+0xb/0x28) > [<801954c7>] (dpm_run_callback.isra.13+0xb/0x28) from [<80195b1b>] > (device_resume+0x7b/0xa2) > [<80195b1b>] (device_resume+0x7b/0xa2) from [<80195f0f>] > (dpm_resume+0xbb/0x19c) > [<80195f0f>] (dpm_resume+0xbb/0x19c) from [<801960d9>] > (dpm_resume_end+0x9/0x12) > [<801960d9>] (dpm_resume_end+0x9/0x12) from [<80037e1d>] > (suspend_devices_and_enter+0x17d/0x1d0) > [<80037e1d>] (suspend_devices_and_enter+0x17d/0x1d0) from [<80037ee1>] > (pm_suspend+0x71/0x128) > [<80037ee1>] (pm_suspend+0x71/0x128) from [<80037449>] > (state_store+0x6d/0x80) > [<80037449>] (state_store+0x6d/0x80) from [<800af4d5>] > (sysfs_write_file+0x9f/0xde) > [<800af4d5>] (sysfs_write_file+0x9f/0xde) from [<8007a437>] > (vfs_write+0x7b/0x104) > [<8007a437>] (vfs_write+0x7b/0x104) from [<8007a7f7>] > (SyS_write+0x27/0x48) > [<8007a7f7>] (SyS_write+0x27/0x48) from [<8000c121>] > (ret_fast_syscall+0x1/0x44) > ---[ end trace 640959d2e8de6ccc ]--- > > Signed-off-by: Wang Dongsheng <dongsheng.wang@freescale.com> > --- > *v2* > - Use dev_warn_once to instead of dev_info > Applied, after fixing the kernel trace and the message like suggested by Krzysztof.
Thanks, I will push v3 to fix them. Regards, -Dongsheng > -----Original Message----- > From: Alexandre Belloni [mailto:alexandre.belloni@free-electrons.com] > Sent: Friday, August 21, 2015 7:22 AM > To: Wang Dongsheng-B40534; Krzysztof Kozlowski > Cc: a.zummo@towertech.it; rtc-linux@googlegroups.com; linux- > kernel@vger.kernel.org > Subject: Re: [PATCH v2] rtc/ds3232: fix ds3232 get a WARNING trace in resume > function > > On 12/08/2015 at 17:14:13 +0800, Dongsheng Wang wrote : > > From: Wang Dongsheng <dongsheng.wang@freescale.com> > > > > If ds3232 work on some platform that is not implementation > > irq_set_wake, ds3232 will get a WARNING trace in resume. > > So fix ds3232->suspended state to false when irq_set_irq_wake return > > error. > > > > ------------[ cut here ]------------ > > WARNING: CPU: 0 PID: 729 at kernel/irq/manage.c:604 > > irq_set_irq_wake+0x4b/0x8c() > > Unbalanced IRQ 201 wake disable > > Modules linked in: > > CPU: 0 PID: 729 Comm: sh Not tainted 3.12.19-rt30+ #25 [<800107d9>] > > (unwind_backtrace+0x1/0x88) from [<8000e4ef>] > > (show_stack+0xb/0xc) > > [<8000e4ef>] (show_stack+0xb/0xc) from [<802b5fa9>] > > (dump_stack+0x4d/0x60) > > [<802b5fa9>] (dump_stack+0x4d/0x60) from [<800186dd>] > > (warn_slowpath_common+0x45/0x64) > > [<800186dd>] (warn_slowpath_common+0x45/0x64) from [<80018717>] > > (warn_slowpath_fmt+0x1b/0x24) > > [<80018717>] (warn_slowpath_fmt+0x1b/0x24) from [<8003a8d3>] > > (irq_set_irq_wake+0x4b/0x8c) > > [<8003a8d3>] (irq_set_irq_wake+0x4b/0x8c) from [<80204fcb>] > > (ds3232_resume+0x2d/0x36) > > [<80204fcb>] (ds3232_resume+0x2d/0x36) from [<801954c7>] > > (dpm_run_callback.isra.13+0xb/0x28) > > [<801954c7>] (dpm_run_callback.isra.13+0xb/0x28) from [<80195b1b>] > > (device_resume+0x7b/0xa2) > > [<80195b1b>] (device_resume+0x7b/0xa2) from [<80195f0f>] > > (dpm_resume+0xbb/0x19c) > > [<80195f0f>] (dpm_resume+0xbb/0x19c) from [<801960d9>] > > (dpm_resume_end+0x9/0x12) > > [<801960d9>] (dpm_resume_end+0x9/0x12) from [<80037e1d>] > > (suspend_devices_and_enter+0x17d/0x1d0) > > [<80037e1d>] (suspend_devices_and_enter+0x17d/0x1d0) from [<80037ee1>] > > (pm_suspend+0x71/0x128) > > [<80037ee1>] (pm_suspend+0x71/0x128) from [<80037449>] > > (state_store+0x6d/0x80) > > [<80037449>] (state_store+0x6d/0x80) from [<800af4d5>] > > (sysfs_write_file+0x9f/0xde) > > [<800af4d5>] (sysfs_write_file+0x9f/0xde) from [<8007a437>] > > (vfs_write+0x7b/0x104) > > [<8007a437>] (vfs_write+0x7b/0x104) from [<8007a7f7>] > > (SyS_write+0x27/0x48) > > [<8007a7f7>] (SyS_write+0x27/0x48) from [<8000c121>] > > (ret_fast_syscall+0x1/0x44) > > ---[ end trace 640959d2e8de6ccc ]--- > > > > Signed-off-by: Wang Dongsheng <dongsheng.wang@freescale.com> > > --- > > *v2* > > - Use dev_warn_once to instead of dev_info > > > > Applied, after fixing the kernel trace and the message like suggested by > Krzysztof. > > -- > Alexandre Belloni, Free Electrons > Embedded Linux, Kernel and Android engineering http://free-electrons.com
diff --git a/drivers/rtc/rtc-ds3232.c b/drivers/rtc/rtc-ds3232.c index 7e48e53..3554970 100644 --- a/drivers/rtc/rtc-ds3232.c +++ b/drivers/rtc/rtc-ds3232.c @@ -463,7 +463,10 @@ static int ds3232_suspend(struct device *dev) if (device_can_wakeup(dev)) { ds3232->suspended = true; - irq_set_irq_wake(client->irq, 1); + if (irq_set_irq_wake(client->irq, 1)) { + dev_warn_once(dev, "Can not set wakeup sources\n"); + ds3232->suspended = false; + } } return 0;