From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jon Hunter Subject: Re: [GIT PULL] ARM: OMAP: Timer and Counter DT Updates for v3.8 Date: Thu, 8 Nov 2012 11:19:44 -0600 Message-ID: <509BE9B0.5040608@ti.com> References: <50941812.2070501@ti.com> <20121107004703.GS6801@atomide.com> <20121107234403.GS6801@atomide.com> Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit Return-path: Received: from devils.ext.ti.com ([198.47.26.153]:51324 "EHLO devils.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756024Ab2KHRTx (ORCPT ); Thu, 8 Nov 2012 12:19:53 -0500 In-Reply-To: <20121107234403.GS6801@atomide.com> Sender: linux-omap-owner@vger.kernel.org List-Id: linux-omap@vger.kernel.org To: Tony Lindgren Cc: "linux-omap@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , device-tree On 11/07/2012 05:44 PM, Tony Lindgren wrote: > Hi Jon, > > * Tony Lindgren [121106 16:48]: >> * Jon Hunter [121102 12:01]: >>> >>> git@github.com:jonhunter/linux.git dev-dt-timer >> >> Thanks pulling into omap-for-v3.8/dt branch. > > Looks like omap-for-v3.8/dt boots OK on blaze when booted > with device tree, but then current omap-for-v3.8/tmp-merge > oopses. That's a bugger. I completely missed your patch last week sorry (I will blame the Danish beer) and had clearly not folded in to my testing! > I guess we should apply the following fix somewhere or > do we need to check other places too? I will re-test your master branch today and put it through my dmtimer tests to double check. However, in general I did ensure that we checked pdata was not NULL before accessing when I introduced the dt stuff. In my changelog [1] I had ... "5. When device-tree is present the platform_data structure will be NULL and so check for this." I just need to make sure that get_context_loss_count() is not called before checking it is populated. > Regards, > > Tony > > [] (omap_dm_timer_probe+0x110/0x310) from [] (platform_drv_probe+0x1c/0x24) > [] (platform_drv_probe+0x1c/0x24) from [] (really_probe+0x60/0x1f4) > [] (really_probe+0x60/0x1f4) from [] (driver_probe_device+0x34/0x50) > [] (driver_probe_device+0x34/0x50) from [] (__driver_attach+0x94/0x98) > [] (__driver_attach+0x94/0x98) from [] (bus_for_each_dev+0x60/0x8c) > [] (bus_for_each_dev+0x60/0x8c) from [] (bus_add_driver+0x18c/0x254) > [] (bus_add_driver+0x18c/0x254) from [] (driver_register+0x5c/0x150) > [] (driver_register+0x5c/0x150) from [] (do_one_initcall+0x2c/0x178) > [] (do_one_initcall+0x2c/0x178) from [] (do_basic_setup+0x94/0xd0) > [] (do_basic_setup+0x94/0xd0) from [] (kernel_init_freeable+0x7c/0x124) > [] (kernel_init_freeable+0x7c/0x124) from [] (kernel_init+0x8/0x1a8) > [] (kernel_init+0x8/0x1a8) from [] (ret_from_fork+0x14/0x24) > > --- a/arch/arm/plat-omap/dmtimer.c > +++ b/arch/arm/plat-omap/dmtimer.c > @@ -803,8 +803,11 @@ static int __devinit omap_dm_timer_probe(struct platform_device *pdev) > > timer->irq = irq->start; > timer->pdev = pdev; > - timer->capability = pdata->timer_capability; > - timer->get_context_loss_count = pdata->get_context_loss_count; > + > + if (pdata) { > + timer->capability = pdata->timer_capability; You don't need this it is already handled a few lines before. > + timer->get_context_loss_count = pdata->get_context_loss_count; We could probably move this too. For example ... diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c index 38c12ef..9dca23e 100644 --- a/arch/arm/plat-omap/dmtimer.c +++ b/arch/arm/plat-omap/dmtimer.c @@ -799,12 +799,11 @@ static int __devinit omap_dm_timer_probe(struct platform_device *pdev) timer->id = pdev->id; timer->capability = pdata->timer_capability; timer->reserved = omap_dm_timer_reserved_systimer(timer->id); + timer->get_context_loss_count = pdata->get_context_loss_count; } timer->irq = irq->start; timer->pdev = pdev; - timer->capability = pdata->timer_capability; - timer->get_context_loss_count = pdata->get_context_loss_count; /* Skip pm_runtime_enable for OMAP1 */ if (!(timer->capability & OMAP_TIMER_NEEDS_RESET)) { Cheers Jon [1] http://marc.info/?l=linux-omap&m=135065877008624&w=2 From mboxrd@z Thu Jan 1 00:00:00 1970 From: jon-hunter@ti.com (Jon Hunter) Date: Thu, 8 Nov 2012 11:19:44 -0600 Subject: [GIT PULL] ARM: OMAP: Timer and Counter DT Updates for v3.8 In-Reply-To: <20121107234403.GS6801@atomide.com> References: <50941812.2070501@ti.com> <20121107004703.GS6801@atomide.com> <20121107234403.GS6801@atomide.com> Message-ID: <509BE9B0.5040608@ti.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 11/07/2012 05:44 PM, Tony Lindgren wrote: > Hi Jon, > > * Tony Lindgren [121106 16:48]: >> * Jon Hunter [121102 12:01]: >>> >>> git at github.com:jonhunter/linux.git dev-dt-timer >> >> Thanks pulling into omap-for-v3.8/dt branch. > > Looks like omap-for-v3.8/dt boots OK on blaze when booted > with device tree, but then current omap-for-v3.8/tmp-merge > oopses. That's a bugger. I completely missed your patch last week sorry (I will blame the Danish beer) and had clearly not folded in to my testing! > I guess we should apply the following fix somewhere or > do we need to check other places too? I will re-test your master branch today and put it through my dmtimer tests to double check. However, in general I did ensure that we checked pdata was not NULL before accessing when I introduced the dt stuff. In my changelog [1] I had ... "5. When device-tree is present the platform_data structure will be NULL and so check for this." I just need to make sure that get_context_loss_count() is not called before checking it is populated. > Regards, > > Tony > > [] (omap_dm_timer_probe+0x110/0x310) from [] (platform_drv_probe+0x1c/0x24) > [] (platform_drv_probe+0x1c/0x24) from [] (really_probe+0x60/0x1f4) > [] (really_probe+0x60/0x1f4) from [] (driver_probe_device+0x34/0x50) > [] (driver_probe_device+0x34/0x50) from [] (__driver_attach+0x94/0x98) > [] (__driver_attach+0x94/0x98) from [] (bus_for_each_dev+0x60/0x8c) > [] (bus_for_each_dev+0x60/0x8c) from [] (bus_add_driver+0x18c/0x254) > [] (bus_add_driver+0x18c/0x254) from [] (driver_register+0x5c/0x150) > [] (driver_register+0x5c/0x150) from [] (do_one_initcall+0x2c/0x178) > [] (do_one_initcall+0x2c/0x178) from [] (do_basic_setup+0x94/0xd0) > [] (do_basic_setup+0x94/0xd0) from [] (kernel_init_freeable+0x7c/0x124) > [] (kernel_init_freeable+0x7c/0x124) from [] (kernel_init+0x8/0x1a8) > [] (kernel_init+0x8/0x1a8) from [] (ret_from_fork+0x14/0x24) > > --- a/arch/arm/plat-omap/dmtimer.c > +++ b/arch/arm/plat-omap/dmtimer.c > @@ -803,8 +803,11 @@ static int __devinit omap_dm_timer_probe(struct platform_device *pdev) > > timer->irq = irq->start; > timer->pdev = pdev; > - timer->capability = pdata->timer_capability; > - timer->get_context_loss_count = pdata->get_context_loss_count; > + > + if (pdata) { > + timer->capability = pdata->timer_capability; You don't need this it is already handled a few lines before. > + timer->get_context_loss_count = pdata->get_context_loss_count; We could probably move this too. For example ... diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c index 38c12ef..9dca23e 100644 --- a/arch/arm/plat-omap/dmtimer.c +++ b/arch/arm/plat-omap/dmtimer.c @@ -799,12 +799,11 @@ static int __devinit omap_dm_timer_probe(struct platform_device *pdev) timer->id = pdev->id; timer->capability = pdata->timer_capability; timer->reserved = omap_dm_timer_reserved_systimer(timer->id); + timer->get_context_loss_count = pdata->get_context_loss_count; } timer->irq = irq->start; timer->pdev = pdev; - timer->capability = pdata->timer_capability; - timer->get_context_loss_count = pdata->get_context_loss_count; /* Skip pm_runtime_enable for OMAP1 */ if (!(timer->capability & OMAP_TIMER_NEEDS_RESET)) { Cheers Jon [1] http://marc.info/?l=linux-omap&m=135065877008624&w=2