Hi,
We are working on OMAP4430 Panda Board using linux-ti-omap4_2.6.35-903.22 linux kernel.We ported dvi changes from ubuntu-natty 2.6.38 kernel. Now dvi is woking fine,we able to enable/disable dvi display using following commands and working fine.
Disbaling DVI
echo 0 > /sys/devices/platform/omapdss/display1/enabled
Eabling DVI
echo 1 > /sys/devices/platform/omapdss/display1/enabled
Lcd channel index 1
ovl[0]->manager = 2lcd
ovl[1]->manager = 2lcd
ovl[2]->manager = 2lcd
Now I disabled dvi and changed to HDMI. I am able to disable/enable the HDMI using following commands and working.
Disbaling HDMI
echo 0 > /sys/devices/platform/omapdss/display0/enabled
Eabling HMDI
echo 1 > /sys/devices/platform/omapdss/display0/enabled
Now I disabled HDMI and changed back to Dvi again . here i am uable to enable dvi and i got kernel panic shown below.i am not able to enable both dvi and hdmi at time.
echo 1 > enabled
Lcd channel index 1
ovl[0]->manager = 2lcd
ovl[1]->manager = 2lcd
ovl[2]->manager = 2lcd
ovl[3]->manager = 2lcd
omapdss DISPC error: GFX_FIFO_UNDERFLOW, disabling GFX
/sys/devices/omapdss/display1 # omapdss DISPC error: VID1_FIFO_UNDERFLOW, disabling VID1
omapdss DISPC error: VID2_FIFO_UNDERFLOW, disabling VID2
omapdss DISPC error: SYNC_LOST, disabling LCD
Unable to handle kernel NULL pointer dereference at virtual address 00000148
pgd = c0004000
[00000148] *pgd=00000000
Internal error: Oops: 17 [#1] PREEMPT SMP
last sysfs file: /sys/devices/omapdss/display1/enabled
Modules linked in:
CPU: 0 Not tainted (2.6.35.3 #0)
PC is at dispc_error_worker+0x254/0x4a4
LR is at dispc_error_worker+0x240/0x4a4
pc : [<c01c7d14>] lr : [<c01c7d00>] psr: 60000013
sp : dc855f50 ip : 00000000 fp : dc855f74
r10: c0540b84 r9 : c0540b88 r8 : c1908108
r7 : 00000000 r6 : 00000000 r5 : dc86ed00 r4 : 0002d640
r3 : 00000000 r2 : dc86ed24 r1 : dc86eda4 r0 : 00000000
Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 10c53c7d Table: 9c13404a DAC: 00000015
Process events/0 (pid: 7, stack limit = 0xdc8542f8)
Stack: (0xdc855f50 to 0xdc856000)
5f40: 00000001 c1908100 dc854000 c01c7ac0
5f60: c1908110 c1908108 dc855fbc dc855f78 c0078e68 c01c7acc dc855f8c 00000000
5f80: dc83d500 c007c95c dc855f88 dc855f88 c005c85c dc841f10 dc855fc4 c0078d68
5fa0: c1908100 00000000 00000000 00000000 dc855ff4 dc855fc0 c007c590 c0078d74
5fc0: 00000000 00000000 00000000 00000000 dc855fd0 dc855fd0 dc841f10 c007c50c
5fe0: c006a2c4 00000013 00000000 dc855ff8 c006a2c4 c007c518 00000000 00000000
Backtrace:
[<c01c7ac0>] (dispc_error_worker+0x0/0x4a4) from [<c0078e68>] (worker_thread+0x100/0x18c)
r8:c1908108 r7:c1908110 r6:c01c7ac0 r5:dc854000 r4:c1908100
r3:00000001
[<c0078d68>] (worker_thread+0x0/0x18c) from [<c007c590>] (kthread+0x84/0x8c)
[<c007c50c>] (kthread+0x0/0x8c) from [<c006a2c4>] (do_exit+0x0/0x5f0)
r7:00000013 r6:c006a2c4 r5:c007c50c r4:dc841f10
Code: e1a05000 e3560000 1a000008 e5900044 (e5903148)
We have booted Panda board dvi display in default.
i hard coded pck values in the function dpi_set_mode inside the file drivers/video/omap2/dss/dpi.c .Because i am getting divide by zero error here.
/*pck = fck / lck_div / pck_div / 1000;*/
pck=23500;
please suggest me how to solve this.
Thanks
venkat