RE: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload

2009-03-11 Thread Menon, Nishanth
> -Original Message-
> From: Woodruff, Richard
> Sent: Wednesday, March 11, 2009 6:40 PM
> To: Menon, Nishanth; linux-omap@vger.kernel.org
> Cc: ext Paul Walmsley; Nayak, Rajendra; Gupta, Ramesh
> Subject: RE: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload
>
> > It does not make sense for clock notifier_registration to oops out.. it
> has'nt
> > come out of init even..
> >
> > This looks like list_del missing in clock_notifier unregistration
> function :(.
> > I have a patch in place.. sending in a few mins
> 
> Yes.  Side issue I pointed out will come up later.  If notifier doesn't
> work there might be a few bugs its useable.

Would this appear as the following crash (after 14-18 iterations now with my 
clk_notifer_unregister patch):

Unable to handle kernel paging request at virtual address 80200800
pgd = c3eb8000
*pgd=[80200800]
Internal error: Oops: 5 [#1]
Modules linked in:Modules linked in: [last unloaded: bridgedriver] [last 
unloaded: bridgedriver]

CPU: 0Not tainted  (2.6.28-omap1-00211-gcb75442-dirty #6)
PC is at vmap_page_range+0xe4/0x1c4
LR is at vmap_page_range+0x160/0x1c4
pc : []lr : []psr: 8013


Backtrace: Backtrace:

[] [] (vmap_page_range+0x0/0x1c4) 
(vmap_page_range+0x0/0x1c4) from [] from [] 
(map_vm_area+0x28/0x40)
(map_vm_area+0x28/0x40)
[] [] (map_vm_area+0x0/0x40) (map_vm_area+0x0/0x40) from 
[] from [] (__vmalloc_area_node+0x104/0x130)
(__vmalloc_area_node+0x104/0x130)
 r5:c39e1460 r5:c39e1460 r4:03a8 r4:03a8

[] [] (__vmalloc_area_node+0x0/0x130) 
(__vmalloc_area_node+0x0/0x130) from [] from [] 
(__vmalloc_node+0x90/0xa8)
(__vmalloc_node+0x90/0xa8)
[] [] (__vmalloc_node+0x0/0xa8) (__vmalloc_node+0x0/0xa8) 
from [] from [] (vmalloc+0x28/0x34)
(vmalloc+0x28/0x34)
 r7: r7: r6:4023a000 r6:4023a000 r5:003a75f0 r5:003a75f0 
r4:4023a000 r4:4023a000

[] [] (vmalloc+0x0/0x34) (vmalloc+0x0/0x34) from 
[] from [] (load_module+0x34/0x1468)
(load_module+0x34/0x1468)
[] [] (load_module+0x0/0x1468) (load_module+0x0/0x1468) 
from [] from [] (sys_init_module+0x54/0x188)
(sys_init_module+0x54/0x188)
[] [] (sys_init_module+0x0/0x188) 
(sys_init_module+0x0/0x188) from [] from [] 
(ret_fast_syscall+0x0/0x2c)
(ret_fast_syscall+0x0/0x2c)
 r7:0080 r7:0080 r6: r6: r5:000b r5:000b 
r4: r4:

Code: Code: 0a24 0a24 e51b1030 e51b1030 e51b303c e51b303c e0836101 
e0836101 (e5952000) (e5952000)


Regards,
Nishanth Menon
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload

2009-03-11 Thread Woodruff, Richard

> From: Menon, Nishanth
> Sent: Wednesday, March 11, 2009 11:33 AM

> > Does it need DVFS enabled to fail? Is voltage high enough (to current DM)?
> > There were some issues there.
> Yes, Rajendra's VDD change is merged in [1] pm branch.

Ok.

> It does not make sense for clock notifier_registration to oops out.. it has'nt
> come out of init even..
>
> This looks like list_del missing in clock_notifier unregistration function :(.
> I have a patch in place.. sending in a few mins

Yes.  Side issue I pointed out will come up later.  If notifier doesn't work 
there might be a few bugs its useable.

Regards,
Richard W.
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload

2009-03-11 Thread Menon, Nishanth
Richard,

> -Original Message-
> From: Woodruff, Richard
> Sent: Wednesday, March 11, 2009 5:28 PM
> To: Menon, Nishanth; linux-omap@vger.kernel.org
> Cc: ext Paul Walmsley; Nayak, Rajendra; Gupta, Ramesh
> Subject: RE: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload
> 
> 
> > driver as explained below. Looking for any advice to fix this issue :(
> 
> Does it need DVFS enabled to fail? Is voltage high enough (to current DM)?
> There were some issues there.
Yes, Rajendra's VDD change is merged in [1] pm branch.
> 
> A side and possibly related note is the below 0x800 is way too high and
> will likely result in screen or other fifo related effects. The delay
> target should be around 5uS (for 26Mhz sysclk) and half of that for 13MHz
> sysclk.
> 
> Given a value of 0xC8 with ARM at 125MHz, a vdd2-opp2 -> vdd2-opp3 takes
> 105uS using current code.  This it self is too high for some display
> fifos.  0x800 is out of the park high.
> 
> End note is needs tuning for DVFS.
> 
> configure_core_dpll:
> ldr r4, omap3_cm_clksel1_pll
> ldr r5, [r4]
> ldr r6, core_m2_mask_val@ modify m2 for core dpll
> and r5, r5, r6
> orr r5, r5, r3, lsl #0x1B   @ r3 contains the M2 val
> str r5, [r4]
> mov r5, #0x800  @ wait for the clock to stabilise
> cmp r3, #2
> bne wait_clk_stable
> bx  lr
It does not make sense for clock notifier_registration to oops out.. it has'nt 
come out of init even..

This looks like list_del missing in clock_notifier unregistration function :(. 
I have a patch in place.. sending in a few mins
Regards,
Nishanth Menon
[1] 
http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=shortlog;h=pm
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload

2009-03-11 Thread Gupta, Ramesh
Rajendra,
 

> -Original Message-
> From: Nayak, Rajendra 
> Sent: Wednesday, March 11, 2009 9:25 PM
> To: Menon, Nishanth; linux-omap@vger.kernel.org
> Cc: ext Paul Walmsley; Gupta, Ramesh
> Subject: RE: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload
> 
> Does the bridge driver call a clk_notifier_unregister on the 
> exit path?

Yes, it is called.

> 
> > CPU: 0Not tainted  (2.6.28-omap1-00211-gcb75442 #1)
> > PC is at clk_notifier_register+0x68/0x108 LR is at 
> > kmem_cache_alloc+0x7c/0x84
> 
> Taking an objdump of clock.o shows me it probably is crashing 
> some place while trying to traverse through the existing list 
> of registered notifiers. It could very well be that one of 
> these is an old function pointer registered by the previous 
> insmod of the bridge driver.

 
> 
> > -Original Message-
> > From: Menon, Nishanth
> > Sent: Wednesday, March 11, 2009 8:21 PM
> > To: linux-omap@vger.kernel.org
> > Cc: ext Paul Walmsley; Nayak, Rajendra; Gupta, Ramesh
> > Subject: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload
> > 
> > Hi Folks,
> > 
> > With the latest linux-omap pm + gitorious bridge changes on 
> SDP3430, 
> > enabling BRIDGE_DVFS and SRF seems to cause an issue with clock 
> > notifier.. I am not entirely of the cause of the issue(don't have a 
> > debugger handy at the moment :( ): The condition is reproducible on 
> > exactly the third insmod of the driver as explained below. 
> Looking for 
> > any advice to fix this issue :(
> > 
> > 
> > Codebase:
> > git clone
> > git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-oma
> > p-2.6.git
> > git checkout -b pm --track origin/pm
> > git fetch git://gitorious.org/lk/mainline.git
> > tidspbridge-pm:tidspbridge-pm
> > git checkout tidspbridge-pm
> > git merge pm
> > 
> > defconfig:
> > essentially omap_3430sdp_defconfig, enable SRF and
> > bridge+bridge_dvfs. (diff b/w defconfig and .config attached).
> > 
> > Bootargs:
> > console=ttyS0,115200n8 noinitrd ip=dhcp root=/dev/nfs rw
> > nfsroot=:,nolock,wsize=1024,rsize=1024 mem=64M
> > 
> > The error:
> > insmod  ./bridgedriver.ko phys_mempool_base=0x8700 
> > phys_mempool_size=0x60 rmmod bridgedriver insmod  
> > ./bridgedriver.ko phys_mempool_base=0x8700 
> > phys_mempool_size=0x60 rmmod bridgedriver insmod  
> > ./bridgedriver.ko phys_mempool_base=0x8700 
> > phys_mempool_size=0x60
> > 
> > Unable to handle kernel paging request at virtual address 
> 756e696c pgd 
> > = c3e0c000 *pgd=[756e696c]
> > 
> > Internal error: Oops: 5 [#1]
> > Modules linked in:Modules linked in: bridgedriver(+)
> > bridgedriver(+) [last unloaded: bridgedriver] [last unloaded: 
> > bridgedriver]
> > 
> > CPU: 0Not tainted  (2.6.28-omap1-00211-gcb75442 #1)
> > PC is at clk_notifier_register+0x68/0x108 LR is at 
> > kmem_cache_alloc+0x7c/0x84
> > pc : []lr : []psr: 0093
> > sp : c3e05da0  ip : c3e0b3e0  fp : c3e05dbc 
> > 
> > Backtrace: Backtrace:
> > 
> > [] [] (clk_notifier_register+0x0/0x108)
> > (clk_notifier_register+0x0/0x108) from [] from 
> [] 
> > (bridge_init+0x394/0x3ec [bridgedriver]) (bridge_init+0x394/0x3ec 
> > [bridgedriver])  r7: r7: r6:bf08ab88 r6:bf08ab88 
> > r5:1dcd6500 r5:1dcd6500 r4:0ee6b280 r4:0ee6b280
> > 
> > [] [] (bridge_init+0x0/0x3ec
> > [bridgedriver]) (bridge_init+0x0/0x3ec [bridgedriver]) from 
> > [] from [] (do_one_initcall+0x64/0x198)
> > (do_one_initcall+0x64/0x198)
> >  r8:c002df28 r8:c002df28 r7: r7: r6:4023a000 
> > r6:4023a000 r5:bf08a520 r5:bf08a520 r4:c03aa340 r4:c03aa340
> > 
> > [] [] (do_one_initcall+0x0/0x198)
> > (do_one_initcall+0x0/0x198) from [] from [] 
> > (sys_init_module+0x98/0x188)
> > (sys_init_module+0x98/0x188)
> > [] [] (sys_init_module+0x0/0x188)
> > (sys_init_module+0x0/0x188) from [] from [] 
> > (ret_fast_syscall+0x0/0x2c)
> > (ret_fast_syscall+0x0/0x2c)
> >  r7:0080 r7:0080 r6: r6: r5:000b 
> > r5:000b r4: r4:
> > 
> > Code: Code: e5943000 e5943000 e1530006 e1530006 0a05
> > 0a05 e2424008 e2424008 (e5942008) (e5942008)
> > 
> > <4>---[ end trace c53b9e94a29571d4 ]--- ---[ end trace 
> > c53b9e94a29571d4 ]--- Segmentation fault
> > 
> > 
> > Regards,
> > Nishanth Menon
> > 

Regards
Ramesh Gupta G--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload

2009-03-11 Thread Nayak, Rajendra
Does the bridge driver call a clk_notifier_unregister on the exit path?

> CPU: 0Not tainted  (2.6.28-omap1-00211-gcb75442 #1)
> PC is at clk_notifier_register+0x68/0x108
> LR is at kmem_cache_alloc+0x7c/0x84

Taking an objdump of clock.o shows me it probably is crashing
some place while trying to traverse through the existing list of
registered notifiers. It could very well be that one of these
is an old function pointer registered by the previous insmod of the
bridge driver.


> -Original Message-
> From: Menon, Nishanth 
> Sent: Wednesday, March 11, 2009 8:21 PM
> To: linux-omap@vger.kernel.org
> Cc: ext Paul Walmsley; Nayak, Rajendra; Gupta, Ramesh
> Subject: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload
> 
> Hi Folks,
> 
> With the latest linux-omap pm + gitorious bridge changes on 
> SDP3430, enabling BRIDGE_DVFS and SRF seems to cause an issue 
> with clock notifier.. I am not entirely of the cause of the 
> issue(don't have a debugger handy at the moment :( ): The 
> condition is reproducible on exactly the third insmod of the 
> driver as explained below. Looking for any advice to fix this issue :(
> 
> 
> Codebase:
> git clone 
> git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-oma
> p-2.6.git
> git checkout -b pm --track origin/pm
> git fetch git://gitorious.org/lk/mainline.git 
> tidspbridge-pm:tidspbridge-pm
> git checkout tidspbridge-pm
> git merge pm
> 
> defconfig:
> essentially omap_3430sdp_defconfig, enable SRF and 
> bridge+bridge_dvfs. (diff b/w defconfig and .config attached).
> 
> Bootargs:
> console=ttyS0,115200n8 noinitrd ip=dhcp root=/dev/nfs rw 
> nfsroot=:,nolock,wsize=1024,rsize=1024 mem=64M
> 
> The error:
> insmod  ./bridgedriver.ko phys_mempool_base=0x8700  
> phys_mempool_size=0x60
> rmmod bridgedriver
> insmod  ./bridgedriver.ko phys_mempool_base=0x8700  
> phys_mempool_size=0x60
> rmmod bridgedriver
> insmod  ./bridgedriver.ko phys_mempool_base=0x8700  
> phys_mempool_size=0x60
> 
> Unable to handle kernel paging request at virtual address 756e696c
> pgd = c3e0c000
> *pgd=[756e696c] 
> 
> Internal error: Oops: 5 [#1]
> Modules linked in:Modules linked in: bridgedriver(+) 
> bridgedriver(+) [last unloaded: bridgedriver] [last unloaded: 
> bridgedriver]
> 
> CPU: 0Not tainted  (2.6.28-omap1-00211-gcb75442 #1)
> PC is at clk_notifier_register+0x68/0x108
> LR is at kmem_cache_alloc+0x7c/0x84
> pc : []lr : []psr: 0093
> sp : c3e05da0  ip : c3e0b3e0  fp : c3e05dbc
> 
> 
> Backtrace: Backtrace:
> 
> [] [] (clk_notifier_register+0x0/0x108) 
> (clk_notifier_register+0x0/0x108) from [] from 
> [] (bridge_init+0x394/0x3ec [bridgedriver])
> (bridge_init+0x394/0x3ec [bridgedriver])
>  r7: r7: r6:bf08ab88 r6:bf08ab88 r5:1dcd6500 
> r5:1dcd6500 r4:0ee6b280 r4:0ee6b280
> 
> [] [] (bridge_init+0x0/0x3ec 
> [bridgedriver]) (bridge_init+0x0/0x3ec [bridgedriver]) from 
> [] from [] (do_one_initcall+0x64/0x198)
> (do_one_initcall+0x64/0x198)
>  r8:c002df28 r8:c002df28 r7: r7: r6:4023a000 
> r6:4023a000 r5:bf08a520 r5:bf08a520 r4:c03aa340 r4:c03aa340
> 
> [] [] (do_one_initcall+0x0/0x198) 
> (do_one_initcall+0x0/0x198) from [] from 
> [] (sys_init_module+0x98/0x188)
> (sys_init_module+0x98/0x188)
> [] [] (sys_init_module+0x0/0x188) 
> (sys_init_module+0x0/0x188) from [] from 
> [] (ret_fast_syscall+0x0/0x2c)
> (ret_fast_syscall+0x0/0x2c)
>  r7:0080 r7:0080 r6: r6: r5:000b 
> r5:000b r4: r4:
> 
> Code: Code: e5943000 e5943000 e1530006 e1530006 0a05 
> 0a05 e2424008 e2424008 (e5942008) (e5942008)
> 
> <4>---[ end trace c53b9e94a29571d4 ]---
> ---[ end trace c53b9e94a29571d4 ]---
> Segmentation fault
> 
> 
> Regards,
> Nishanth Menon
> --
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload

2009-03-11 Thread Woodruff, Richard

> From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-
> ow...@vger.kernel.org] On Behalf Of Menon, Nishanth
> Sent: Wednesday, March 11, 2009 9:51 AM

> With the latest linux-omap pm + gitorious bridge changes on SDP3430, enabling
> BRIDGE_DVFS and SRF seems to cause an issue with clock notifier.. I am not
> entirely of the cause of the issue(don't have a debugger handy at the
> moment :( ): The condition is reproducible on exactly the third insmod of the
> driver as explained below. Looking for any advice to fix this issue :(

Does it need DVFS enabled to fail? Is voltage high enough (to current DM)? 
There were some issues there.

Regards,
Richard W.

A side and possibly related note is the below 0x800 is way too high and will 
likely result in screen or other fifo related effects. The delay target should 
be around 5uS (for 26Mhz sysclk) and half of that for 13MHz sysclk.

Given a value of 0xC8 with ARM at 125MHz, a vdd2-opp2 -> vdd2-opp3 takes 105uS 
using current code.  This it self is too high for some display fifos.  0x800 is 
out of the park high.

End note is needs tuning for DVFS.

configure_core_dpll:
ldr r4, omap3_cm_clksel1_pll
ldr r5, [r4]
ldr r6, core_m2_mask_val@ modify m2 for core dpll
and r5, r5, r6
orr r5, r5, r3, lsl #0x1B   @ r3 contains the M2 val
str r5, [r4]
mov r5, #0x800  @ wait for the clock to stabilise
cmp r3, #2
bne wait_clk_stable
bx  lr

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload

2009-03-11 Thread Menon, Nishanth
Hi Folks,

With the latest linux-omap pm + gitorious bridge changes on SDP3430, enabling 
BRIDGE_DVFS and SRF seems to cause an issue with clock notifier.. I am not 
entirely of the cause of the issue(don't have a debugger handy at the moment :( 
): The condition is reproducible on exactly the third insmod of the driver as 
explained below. Looking for any advice to fix this issue :(


Codebase:
git clone 
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git
git checkout -b pm --track origin/pm
git fetch git://gitorious.org/lk/mainline.git tidspbridge-pm:tidspbridge-pm
git checkout tidspbridge-pm
git merge pm

defconfig:
essentially omap_3430sdp_defconfig, enable SRF and bridge+bridge_dvfs. (diff 
b/w defconfig and .config attached).

Bootargs:
console=ttyS0,115200n8 noinitrd ip=dhcp root=/dev/nfs rw 
nfsroot=:,nolock,wsize=1024,rsize=1024 mem=64M

The error:
insmod  ./bridgedriver.ko phys_mempool_base=0x8700  
phys_mempool_size=0x60
rmmod bridgedriver
insmod  ./bridgedriver.ko phys_mempool_base=0x8700  
phys_mempool_size=0x60
rmmod bridgedriver
insmod  ./bridgedriver.ko phys_mempool_base=0x8700  
phys_mempool_size=0x60

Unable to handle kernel paging request at virtual address 756e696c
pgd = c3e0c000
*pgd=[756e696c] 

Internal error: Oops: 5 [#1]
Modules linked in:Modules linked in: bridgedriver(+) bridgedriver(+) [last 
unloaded: bridgedriver] [last unloaded: bridgedriver]

CPU: 0Not tainted  (2.6.28-omap1-00211-gcb75442 #1)
PC is at clk_notifier_register+0x68/0x108
LR is at kmem_cache_alloc+0x7c/0x84
pc : []lr : []psr: 0093
sp : c3e05da0  ip : c3e0b3e0  fp : c3e05dbc


Backtrace: Backtrace:

[] [] (clk_notifier_register+0x0/0x108) 
(clk_notifier_register+0x0/0x108) from [] from [] 
(bridge_init+0x394/0x3ec [bridgedriver])
(bridge_init+0x394/0x3ec [bridgedriver])
 r7: r7: r6:bf08ab88 r6:bf08ab88 r5:1dcd6500 r5:1dcd6500 
r4:0ee6b280 r4:0ee6b280

[] [] (bridge_init+0x0/0x3ec [bridgedriver]) 
(bridge_init+0x0/0x3ec [bridgedriver]) from [] from [] 
(do_one_initcall+0x64/0x198)
(do_one_initcall+0x64/0x198)
 r8:c002df28 r8:c002df28 r7: r7: r6:4023a000 r6:4023a000 
r5:bf08a520 r5:bf08a520 r4:c03aa340 r4:c03aa340

[] [] (do_one_initcall+0x0/0x198) 
(do_one_initcall+0x0/0x198) from [] from [] 
(sys_init_module+0x98/0x188)
(sys_init_module+0x98/0x188)
[] [] (sys_init_module+0x0/0x188) 
(sys_init_module+0x0/0x188) from [] from [] 
(ret_fast_syscall+0x0/0x2c)
(ret_fast_syscall+0x0/0x2c)
 r7:0080 r7:0080 r6: r6: r5:000b r5:000b 
r4: r4:

Code: Code: e5943000 e5943000 e1530006 e1530006 0a05 0a05 e2424008 
e2424008 (e5942008) (e5942008)

<4>---[ end trace c53b9e94a29571d4 ]---
---[ end trace c53b9e94a29571d4 ]---
Segmentation fault


Regards,
Nishanth Menon


sdp3430.defconfig.diff
Description: sdp3430.defconfig.diff