SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
Subsystems (4)
Hi,
I have tested the kernel 3.8 with a SMDKV210 like board. But I failed with dma-pl330 and HDMI driver. For dma-pl330, kernel print:
dma-pl330 dma-pl330.0: PERIPH_ID 0x0, PCELL_ID 0x0 !
dma-pl330: probe of dma-pl330.0 failed with error -22
dma-pl330 dma-pl330.1: PERIPH_ID 0x0, PCELL_ID 0x0 !
dma-pl330: probe of dma-pl330.1 failed with error -22
For HDMI driver,
I have added the following HDMI related code to arch/arm/mach-s5pv210/mach-smdkv210.c:
/* I2C module and id for HDMIPHY */
static struct i2c_board_info hdmiphy_info = {
I2C_BOARD_INFO("hdmiphy-s5pv210", 0x38),
}; i2c_register_board_info(2, smdkv210_i2c_devs2,
ARRAY_SIZE(smdkv210_i2c_devs2));
s5p_i2c_hdmiphy_set_platdata(NULL);
s5p_hdmi_set_platdata(&hdmiphy_info, NULL, 0);
s3c_ide_set_platdata(&smdkv210_ide_pdata);then kernel print:
s5p-hdmi s5pv210-hdmi: hdmiphy adapter request failed s5p-hdmi s5pv210-hdmi: probe failed
Samsung TV Mixer driver, (c) 2010-2011 Samsung Electronics Co., Ltd.
s5p-mixer s5p-mixer: probe start
s5p-mixer s5p-mixer: resources acquired s5p-mixer s5p-mixer: module s5p-hdmi provides no subdev! s5p-mixer s5p-mixer: module s5p-sdo provides no subdev! s5p-mixer s5p-mixer: failed to register any output s5p-mixer s5p-mixer: probe failed
Can anybody help me on how to config the HDMI output function in linux kernel 3.8? I mainly want to do video hardware decode using s5pv210 MFC and then display with HDMI.
Thanks!
The followings are full kernel boot info:
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Booting Linux on physical CPU 0x0
Linux version 3.8.0-dirty (lonsn@lonsn-laptop) (gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) ) #14 PREEMPT Thu Feb 21 21:21:41 CST 2013
CPU: ARMv7 Processor [412fc082] revision 2 (ARMv7), cr=10c53c7d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: SMDKV210
Memory policy: ECC disabled, Data cache writeback
CPU S5PV210/S5PC110 (id 0x43110220)
S3C24XX Clocks, Copyright 2004 Simtec Electronics
S5PV210: PLL settings, A=1000000000, M=667000000, E=80000000 V=54000000
S5PV210: ARMCLK=1000000000, HCLKM=200000000, HCLKD=166750000
HCLKP=133400000, PCLKM=100000000, PCLKD=83375000, PCLKP=66700000sclk_dmc: source is sclk_a2m (0), rate is 200000000sclk_onenand: source is hclk_dsys (1), rate is 166750000sclk_fimc: source is ext_xtal (0), rate is 24000000sclk_fimc: source is ext_xtal (0), rate is 24000000sclk_fimc: source is ext_xtal (0), rate is 24000000sclk_cam0: source is ext_xtal (0), rate is 24000000sclk_cam1: source is ext_xtal (0), rate is 24000000sclk_fimd: source is ext_xtal (0), rate is 24000000sclk_mfc: source is sclk_a2m (0), rate is 200000000sclk_g2d: source is sclk_a2m (0), rate is 200000000sclk_g3d: source is sclk_a2m (0), rate is 200000000sclk_csis: source is ext_xtal (0), rate is 24000000sclk_pwi: source is ext_xtal (0), rate is 24000000sclk_pwm: source is ext_xtal (0), rate is 24000000
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 128016
Kernel command line: console=ttySAC2,115200 init=/linuxrc root=/dev/nfs ip=192.168.2.20:192.168.2.200:192.168.2.1:255.255.255.0:L210::off nfsroot=192.168.2.200:/home/lonsn/work/s5pv210/nfs,v3 rw rootwait enable_wait_mode=off PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)__ex_table already sorted, skipping sort
Memory: 256MB 48MB 200MB = 504MB total
Memory: 506400k/514592k available, 9696k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
vmalloc : 0xb0800000 - 0xff000000 (1256 MB)
lowmem : 0x80000000 - 0xb0000000 ( 768 MB)
modules : 0x7f000000 - 0x80000000 ( 16 MB)
.text : 0x80008000 - 0x80466414 (4474 kB)
.init : 0x80467000 - 0x80487884 ( 131 kB)
.data : 0x80488000 - 0x804c3760 ( 238 kB)
.bss : 0x804c3760 - 0x804faa48 ( 221 kB)SLUB: Genslabs=11, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 NR_IRQS:208
VIC @f6000000: id 0x00041192, vendor 0x41
VIC @f6010000: id 0x00041192, vendor 0x41
VIC @f6020000: id 0x00041192, vendor 0x41
VIC @f6030000: id 0x00041192, vendor 0x41sched_clock: 32 bits at 33MHz, resolution 29ns, wraps every 128784ms
Console: colour dummy device 80x30
Calibrating delay loop... 663.55 BogoMIPS (lpj=1658880)pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
Setting up static identity map for 0x2034e1a8 - 0x2034e200
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
S3C Power Management, Copyright 2004 Simtec Electronics
S5PV210: Initializing architecture
bio: create slab <bio-0> at 0
SCSI subsystem initialized
s3c-i2c s3c2440-i2c.0: slave address 0x10
s3c-i2c s3c2440-i2c.0: bus frequency set to 65 KHz
s3c-i2c s3c2440-i2c.0: i2c-0: S3C I2C adapter
s3c-i2c s3c2440-i2c.1: slave address 0x10
s3c-i2c s3c2440-i2c.1: bus frequency set to 65 KHz
s3c-i2c s3c2440-i2c.1: i2c-1: S3C I2C adapter
s3c-i2c s3c2440-i2c.2: slave address 0x10
s3c-i2c s3c2440-i2c.2: bus frequency set to 65 KHz
s3c-i2c s3c2440-i2c.2: i2c-2: S3C I2C adapter
Linux video capture interface: v2.00
Advanced Linux Sound Architecture Driver Initialized.
Switching to clocksource s5p_clocksource_timer
NET: Registered protocol family 2
TCP established hash table entries: 4096 (order: 3, 32768 bytes) TCP bind hash table entries: 4096 (order: 4, 81920 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP: reno registered
UDP hash table entries: 256 (order: 1, 12288 bytes)
UDP-Lite hash table entries: 256 (order: 1, 12288 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
NFS: Registering the id_resolver key type
Key type id_resolver registered
Key type id_legacy registered
ROMFS MTD (C) 2007 Red Hat, Inc.
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
s3c-fb s5pv210-fb: window 0: fb
dma-pl330 dma-pl330.0: PERIPH_ID 0x0, PCELL_ID 0x0 !
dma-pl330: probe of dma-pl330.0 failed with error -22
dma-pl330 dma-pl330.1: PERIPH_ID 0x0, PCELL_ID 0x0 !
dma-pl330: probe of dma-pl330.1 failed with error -22
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled s5pv210-uart.0: ttySAC0 at MMIO 0xe2900000 (irq = 74) is a S3C6400/10 s5pv210-uart.1: ttySAC1 at MMIO 0xe2900400 (irq = 75) is a S3C6400/10 s5pv210-uart.2: ttySAC2 at MMIO 0xe2900800 (irq = 76) is a S3C6400/10 console [ttySAC2] enabled
s5pv210-uart.3: ttySAC3 at MMIO 0xe2900c00 (irq = 77) is a S3C6400/10
brd: module loaded
loop: module loaded
dm9000 Ethernet Driver, V1.31
eth0: dm9000a at b09da300,b09dc30c IRQ 41 MAC: 00:09:c0:ff:ec:48 (platform data)
mousedev: PS/2 mouse device common for all mice
i2c /dev entries driver
m2m-testdev m2m-testdev.0: mem2mem-testdevDevice registered as /dev/video0 s5p-jpeg s5p-jpeg.0: encoder device registered as /dev/video1 s5p-jpeg s5p-jpeg.0: decoder device registered as /dev/video2 s5p-jpeg s5p-jpeg.0: Samsung S5P JPEG codec
s5p-mfc s5p-mfc: decoder registered as /dev/video3
s5p-mfc s5p-mfc: encoder registered as /dev/video4
s5p-hdmi s5pv210-hdmi: hdmiphy adapter request failed
s5p-hdmi s5pv210-hdmi: probe failed
Samsung TV Mixer driver, (c) 2010-2011 Samsung Electronics Co., Ltd.
s5p-mixer s5p-mixer: probe start
s5p-mixer s5p-mixer: resources acquired
s5p-mixer s5p-mixer: module s5p-hdmi provides no subdev!
s5p-mixer s5p-mixer: module s5p-sdo provides no subdev!
s5p-mixer s5p-mixer: failed to register any output
s5p-mixer s5p-mixer: probe failed
samsung-ac97 samsung-ac97: ac97 failed to get ac97_clock
soc-audio soc-audio: ASoC: machine SMDK WM9713 should use snd_soc_register_card() soc-audio soc-audio: ASoC: CPU DAI samsung-ac97 not registered platform soc-audio: Driver soc-audio requests probe deferral
TCP: cubic registered
NET: Registered protocol family 17
Key type dns_resolver registered
VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 2
soc-audio: probe of soc-audio failed with error -22
dm9000 dm9000 eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
IP-Config: Complete:
device=eth0, hwaddr=00:09:c0:ff:ec:48, ipaddr=192.168.2.20,
mask=255.255.255.0, gw=192.168.2.1
host=L210, domain=, nis-domain=(none)
bootserver=192.168.2.200, rootserver=192.168.2.200, rootpath=ALSA device list:
No soundcards found.
VFS: Mounted root (nfs filesystem) on device 0:9. Freeing init memory: 128K
Failed to execute /linuxrc. Attempting defaults...
init: ureadahead main process (1031) terminated with status 5
Last login: Thu Jan 1 00:00:16 UTC 1970 on tty1
root@linaro-developer:~#
Now I checked HDMI failed at:drivers/media/platform/s5p-tv/hdmi_drv.c: 912 line
adapter = i2c_get_adapter(pdata->hdmiphy_bus);
if (adapter == NULL) {
dev_err(dev, "hdmiphy adapter request failed\n");
ret = -ENXIO;
goto fail_vdev;
}Since pdata->hdmiphy_bus is 3, why i2c_get_adapter failed?
Thanks.
Quoted 204 lines
Hi,
I have tested the kernel 3.8 with a SMDKV210 like board. But I failed with dma-pl330 and HDMI driver.
For dma-pl330, kernel print:
dma-pl330 dma-pl330.0:PERIPH_ID0x0,PCELL_ID0x0!
dma-pl330: probe of dma-pl330.0 failed with error -22 dma-pl330 dma-pl330.1:PERIPH_ID0x0,PCELL_ID0x0!
dma-pl330: probe of dma-pl330.1 failed with error -22For HDMI driver,
I have added the following HDMI related code toarch/arm/mach-s5pv210/mach-smdkv210.c:
/* I2C module and id for HDMIPHY */static struct i2c_board_info hdmiphy_info = { I2C_BOARD_INFO("hdmiphy-s5pv210", 0x38), };i2c_register_board_info(2, smdkv210_i2c_devs2, ARRAY_SIZE(smdkv210_i2c_devs2)); s5p_i2c_hdmiphy_set_platdata(NULL); s5p_hdmi_set_platdata(&hdmiphy_info, NULL, 0); s3c_ide_set_platdata(&smdkv210_ide_pdata);then kernel print:
s5p-hdmi s5pv210-hdmi: hdmiphy adapter request failed s5p-hdmi s5pv210-hdmi: probe failed
Samsung TV Mixer driver, (c) 2010-2011 Samsung Electronics Co., Ltd.s5p-mixer s5p-mixer: probe start
s5p-mixer s5p-mixer: resources acquired s5p-mixer s5p-mixer: module s5p-hdmi provides no subdev! s5p-mixer s5p-mixer: module s5p-sdo provides no subdev! s5p-mixer s5p-mixer: failed to register any output s5p-mixer s5p-mixer: probe failedCan anybody help me on how to config the HDMI output function in linux kernel 3.8? I mainly want to do video hardware decode using s5pv210 MFC and then display with HDMI.
Thanks!
The followings are full kernel boot info:
Starting kernel ...Uncompressing Linux... done, booting the kernel.
Booting Linux on physical CPU0x0
Linux version 3.8.0-dirty (lonsn@lonsn-laptop) (gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) ) #14 PREEMPT Thu Feb 21 21:21:41 CST 2013
CPU: ARMv7 Processor [412fc082] revision 2 (ARMv7), cr=10c53c7d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: SMDKV210
Memory policy: ECC disabled, Data cache writeback
CPU S5PV210/S5PC110 (id0x43110220)
S3C24XX Clocks, Copyright 2004 Simtec Electronics
S5PV210: PLL settings, A=1000000000, M=667000000, E=80000000 V=54000000
S5PV210: ARMCLK=1000000000, HCLKM=200000000, HCLKD=166750000 HCLKP=133400000, PCLKM=100000000, PCLKD=83375000, PCLKP=66700000sclk_dmc: source issclk_a2m(0), rate is 200000000sclk_onenand: source ishclk_dsys(1), rate is 166750000sclk_fimc: source isext_xtal(0), rate is 24000000sclk_fimc: source isext_xtal(0), rate is 24000000sclk_fimc: source isext_xtal(0), rate is 24000000sclk_cam0: source isext_xtal(0), rate is 24000000sclk_cam1: source isext_xtal(0), rate is 24000000sclk_fimd: source isext_xtal(0), rate is 24000000sclk_mfc: source issclk_a2m(0), rate is 200000000sclk_g2d: source issclk_a2m(0), rate is 200000000sclk_g3d: source issclk_a2m(0), rate is 200000000sclk_csis: source isext_xtal(0), rate is 24000000sclk_pwi: source isext_xtal(0), rate is 24000000sclk_pwm: source isext_xtal(0), rate is 24000000
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 128016 Kernel command line: console=ttySAC2,115200 init=/linuxrc root=/dev/nfs ip=192.168.2.20:192.168.2.200:192.168.2.1:255.255.255.0:L210::off nfsroot=192.168.2.200:/home/lonsn/work/s5pv210/nfs,v3 rw rootwait enable_wait_mode=off
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)__ex_tablealready sorted, skipping sort
Memory: 256MB 48MB 200MB = 504MB total
Memory: 506400k/514592k available, 9696k reserved, 0K highmem Virtual kernel memory layout:vector : 0xffff0000 - 0xffff1000 ( 4 kB) fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) vmalloc : 0xb0800000 - 0xff000000 (1256 MB) lowmem : 0x80000000 - 0xb0000000 ( 768 MB) modules : 0x7f000000 - 0x80000000 ( 16 MB) .text : 0x80008000 - 0x80466414 (4474 kB) .init : 0x80467000 - 0x80487884 ( 131 kB) .data : 0x80488000 - 0x804c3760 ( 238 kB) .bss : 0x804c3760 - 0x804faa48 ( 221 kB)SLUB: Genslabs=11, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 NR_IRQS:208
VIC @f6000000: id0x00041192, vendor0x41
VIC @f6010000: id0x00041192, vendor0x41
VIC @f6020000: id0x00041192, vendor0x41
VIC @f6030000: id0x00041192, vendor0x41sched_clock: 32 bits at 33MHz, resolution 29ns, wraps every 128784ms
Console: colour dummy device 80x30
Calibrating delay loop... 663.55 BogoMIPS (lpj=1658880)pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
Setting up static identity map for0x2034e1a8-0x2034e200
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations S3C Power Management, Copyright 2004 Simtec Electronics
S5PV210: Initializing architecture
bio: create slab <bio-0> at 0
SCSI subsystem initialized
s3c-i2c s3c2440-i2c.0: slave address0x10
s3c-i2c s3c2440-i2c.0: bus frequency set to 65 KHz
s3c-i2c s3c2440-i2c.0: i2c-0: S3C I2C adapter
s3c-i2c s3c2440-i2c.1: slave address0x10
s3c-i2c s3c2440-i2c.1: bus frequency set to 65 KHz
s3c-i2c s3c2440-i2c.1: i2c-1: S3C I2C adapter
s3c-i2c s3c2440-i2c.2: slave address0x10
s3c-i2c s3c2440-i2c.2: bus frequency set to 65 KHz
s3c-i2c s3c2440-i2c.2: i2c-2: S3C I2C adapter
Linux video capture interface: v2.00
Advanced Linux Sound Architecture Driver Initialized. Switching to clocksources5p_clocksource_timer
NET: Registered protocol family 2
TCP established hash table entries: 4096 (order: 3, 32768 bytes) TCP bind hash table entries: 4096 (order: 4, 81920 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP: reno registered
UDP hash table entries: 256 (order: 1, 12288 bytes)
UDP-Lite hash table entries: 256 (order: 1, 12288 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
NFS: Registering theid_resolverkey type
Key typeid_resolverregistered
Key typeid_legacyregistered
ROMFS MTD (C) 2007 Red Hat, Inc.
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
s3c-fb s5pv210-fb: window 0: fb
dma-pl330 dma-pl330.0:PERIPH_ID0x0,PCELL_ID0x0!
dma-pl330: probe of dma-pl330.0 failed with error -22 dma-pl330 dma-pl330.1:PERIPH_ID0x0,PCELL_ID0x0!
dma-pl330: probe of dma-pl330.1 failed with error -22
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled s5pv210-uart.0: ttySAC0 at MMIO0xe2900000(irq = 74) is a S3C6400/10 s5pv210-uart.1: ttySAC1 at MMIO0xe2900400(irq = 75) is a S3C6400/10 s5pv210-uart.2: ttySAC2 at MMIO0xe2900800(irq = 76) is a S3C6400/10 console [ttySAC2] enabled
s5pv210-uart.3: ttySAC3 at MMIO0xe2900c00(irq = 77) is a S3C6400/10
brd: module loaded
loop: module loaded
dm9000 Ethernet Driver, V1.31
eth0: dm9000a at b09da300,b09dc30c IRQ 41 MAC: 00:09:c0:ff:ec:48 (platform data)
mousedev: PS/2 mouse device common for all mice
i2c /dev entries driver
m2m-testdev m2m-testdev.0: mem2mem-testdevDevice registered as/dev/video0s5p-jpeg s5p-jpeg.0: encoder device registered as/dev/video1s5p-jpeg s5p-jpeg.0: decoder device registered as/dev/video2s5p-jpeg s5p-jpeg.0: Samsung S5P JPEG codec
s5p-mfc s5p-mfc: decoder registered as/dev/video3
s5p-mfc s5p-mfc: encoder registered as/dev/video4
s5p-hdmi s5pv210-hdmi: hdmiphy adapter request failed
s5p-hdmi s5pv210-hdmi: probe failed
Samsung TV Mixer driver, (c) 2010-2011 Samsung Electronics Co., Ltd.s5p-mixer s5p-mixer: probe start
s5p-mixer s5p-mixer: resources acquired
s5p-mixer s5p-mixer: module s5p-hdmi provides no subdev! s5p-mixer s5p-mixer: module s5p-sdo provides no subdev! s5p-mixer s5p-mixer: failed to register any output
s5p-mixer s5p-mixer: probe failed
samsung-ac97 samsung-ac97: ac97 failed to getac97_clocksoc-audio soc-audio: ASoC: machine SMDK WM9713 should usesnd_soc_register_card()
soc-audio soc-audio: ASoC: CPU DAI samsung-ac97 not registered platform soc-audio: Driver soc-audio requests probe deferral
TCP: cubic registered
NET: Registered protocol family 17
Key typedns_resolverregistered
VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 2
soc-audio: probe of soc-audio failed with error -22
dm9000 dm9000 eth0: link up, 100Mbps, full-duplex, lpa0xCDE1
IP-Config: Complete:device=eth0, hwaddr=00:09:c0:ff:ec:48, ipaddr=192.168.2.20, mask=255.255.255.0, gw=192.168.2.1 host=L210, domain=, nis-domain=(none) bootserver=192.168.2.200, rootserver=192.168.2.200, rootpath=ALSA device list:
No soundcards found.
VFS: Mounted root (nfs filesystem) on device 0:9. Freeing init memory: 128K
Failed to execute /linuxrc. Attempting defaults...
init: ureadahead main process (1031) terminated with status 5Last login: Thu Jan 1 00:00:16 UTC 1970 on tty1
root@linaro-developer:~#
Hi Lonsn,
Quoted 9 lines · Lonsn
Now I checked HDMI failed at:
drivers/media/platform/s5p-tv/hdmi_drv.c: 912 lineadapter = i2c_get_adapter(pdata->hdmiphy_bus); if (adapter == NULL) { dev_err(dev, "hdmiphy adapter request failed\n"); ret = -ENXIO; goto fail_vdev; }Since
pdata->hdmiphy_busis 3, whyi2c_get_adapterfailed?
Do you have I2C3 bus controller device added to the list of devices registered in the init_machine() callback, i.e. &s3c_device_i2c3 entry in smdkv210_devices[] array ?
You can refer to arch/arm/mach-exynos/mach-universal_c210.c board file for how a complete setup for the HDMI driver should look like. It's for Exynos4210 SoCs but it should not be much different from what you need for S5PV210.
--
Regards,
Sylwester
Quoted 13 lines · Sylwester Nawrocki
Hi Lonsn,
Quoted 9 lines · Lonsn
Now I checked HDMI failed at:
drivers/media/platform/s5p-tv/hdmi_drv.c: 912 line adapter =i2c_get_adapter(pdata->hdmiphy_bus);
if (adapter == NULL) {dev_err(dev, "hdmiphy adapter request failed\n"); ret =-ENXIO;
gotofail_vdev;
}
Sincepdata->hdmiphy_busis 3, whyi2c_get_adapterfailed?
Quoted 8 lines
Do you have I2C3 bus controller device added to the list of devices registered in the
init_machine()callback, i.e.&s3c_device_i2c3entry in smdkv210_devices[] array ?You can refer to
arch/arm/mach-exynos/mach-universal_c210.cboard file for how a complete setup for the HDMI driver should look like. It's for Exynos4210 SoCs but it should not be much different from what you need for S5PV210.
To build the kernel with s3c_device_i2c3 S3C_DEV_I2C3 and S5PV210_SETUP_I2C3 need to be selected in Kconfig, e.g.
arch/arm/mach-s5pv210/Kconfig +2 -0
@@ -151,12 +151,14 @@ config MACH_SMDKV210 select S3C_DEV_HSMMC3 select S3C_DEV_I2C1 select S3C_DEV_I2C2 + select S3C_DEV_I2C3 select S3C_DEV_RTC select S3C_DEV_USB_HSOTG select S3C_DEV_WDT select S5PV210_SETUP_FB_24BPP select S5PV210_SETUP_I2C1 select S5PV210_SETUP_I2C2 + select S5PV210_SETUP_I2C3 select S5PV210_SETUP_IDE select S5PV210_SETUP_KEYPAD select S5PV210_SETUP_SDHCI
Quoted 8 lines · Lonsn
Hi,
I have tested the kernel 3.8 with a SMDKV210 like board. But I failed with dma-pl330 and HDMI driver.
For dma-pl330, kernel print:
dma-pl330 dma-pl330.0:PERIPH_ID0x0,PCELL_ID0x0!
dma-pl330: probe of dma-pl330.0 failed with error -22 dma-pl330 dma-pl330.1:PERIPH_ID0x0,PCELL_ID0x0!
dma-pl330: probe of dma-pl330.1 failed with error -22
Maybe there is some issue with the PL330 DMA controller clocks and the read values are all 0 because the clocks are disabled ?
It seems arch/arm/mach-s5pv210/clock.c might be missing "apb_pclk" clock supply names, which I suspect may be required after commits:
commit 7c71b8eb268ee38235f7e924d943ea9d90e59469
Author: Inderpal Singh <[email protected]> Date: Fri Sep 7 12:14:48 2012 +0530
DMA: PL330: Remove redundant runtime_suspend/resume functions
The driver's runtime_suspend/resume functions just disable/enable the clock which is already being managed at AMBA bus level runtime_suspend/resume functions.
Hence, remove the driver's runtime_suspend/resume functions.
commit faf6fbc6f2ca3b34bf464a8bb079a998e571957c
Author: Inderpal Singh <[email protected]> Date: Fri Sep 7 12:14:47 2012 +0530
DMA: PL330: Remove controller clock enable/disable
The controller clock is being enabled/disabled in AMBA bus infrastructre in probe/remove functions. Hence, its not required at driver level probe/remove.
I have added people who made related changes at Cc, hopefully they can provide some help in debugging this.
Please try the following change:
8<--------------------
arch/arm/mach-s5pv210/clock.c +2 -6
@@ -214,11 +214,6 @@ static struct clk clk_pcmcdclk2 = { .name = "pcmcdclk", }; -static struct clk dummy_apb_pclk = { - .name ="apb_pclk" , - .id =-1 , -}; -static struct clk *clkset_vpllsrc_list[] = { [0 ] = &clk_fin_vpll, [1 ] = &clk_sclk_hdmi27m,
@@ -1333,6 +1328,8 @@ static struct clk_lookup s5pv210_clk_lookup[] = {CLKDEV_INIT (NULL ,"spi_busclk0" , &clk_p),CLKDEV_INIT ("s5pv210-spi.0" ,"spi_busclk1" , &clk_sclk_spi0.clk),CLKDEV_INIT ("s5pv210-spi.1" ,"spi_busclk1" , &clk_sclk_spi1.clk), +CLKDEV_INIT ("dma-pl330.0" ,"apb_pclk" , &init_clocks_off[0 ]), + CLKDEV_INIT("dma-pl330.1", "apb_pclk", &init_clocks_off[1]), };void __init s5pv210_register_clocks (void )
@@ -1361,6 +1358,5 @@ void __init s5pv210_register_clocks(void)for (ptr =0 ; ptr <ARRAY_SIZE (clk_cdev); ptr++)s3c_disable_clocks (clk_cdev[ptr],1 ); -s3c24xx_register_clock (&dummy_apb_pclk);s3c_pwmclk_init (); }
8<--------------------
If it works then we could make some cleaner patch.
Quoted 28 lines
For HDMI driver,
I have added the following HDMI related code toarch/arm/mach-s5pv210/mach-smdkv210.c:
/* I2C module and id for HDMIPHY */
static structi2c_board_infohdmiphy_info= {I2C_BOARD_INFO("hdmiphy-s5pv210", 0x38),
};i2c_register_board_info(2,
smdkv210_i2c_devs2,ARRAY_SIZE(smdkv210_i2c_devs2));
s5p_i2c_hdmiphy_set_platdata(NULL);s5p_hdmi_set_platdata(&hdmiphy_info, NULL, 0);
s3c_ide_set_platdata(&smdkv210_ide_pdata);then kernel print:
s5p-hdmi s5pv210-hdmi: hdmiphy adapter request failed s5p-hdmi s5pv210-hdmi: probe failed
Samsung TV Mixer driver, (c) 2010-2011 Samsung Electronics Co., Ltd.s5p-mixer s5p-mixer: probe start
s5p-mixer s5p-mixer: resources acquired s5p-mixer s5p-mixer: module s5p-hdmi provides no subdev! s5p-mixer s5p-mixer: module s5p-sdo provides no subdev! s5p-mixer s5p-mixer: failed to register any output s5p-mixer s5p-mixer: probe failed
Quoted 3 lines
Can anybody help me on how to config the HDMI output function in linux kernel 3.8? I mainly want to do video hardware decode using s5pv210 MFC and then display with HDMI.
For video playback (video post-processing) you might also need at least one FIMC device. Please refer to arch/arm/mach-goni.c for an example on how to add related devices to your board. You don't need the camera stuff, just add:
&s5p_device_mfc, &s5p_device_mfc_l, &s5p_device_mfc_r, &s5p_device_fimc0, &s5p_device_fimc1, &s5p_device_fimc2, &s5p_device_fimc_md,
to smdkv210_devices[] and related Kconfig entries to make it compile. You'll need a function similar to goni_reserve() in your board file to reserve memory for the video codec.
Hope that helps.
Quoted 44 lines · Sylwester Nawrocki
Quoted 9 lines · Lonsn
Hi,
I have tested the kernel 3.8 with a SMDKV210 like board. But I failed with dma-pl330 and HDMI driver.
For dma-pl330, kernel print:
dma-pl330 dma-pl330.0:PERIPH_ID0x0,PCELL_ID0x0!
dma-pl330: probe of dma-pl330.0 failed with error -22 dma-pl330 dma-pl330.1:PERIPH_ID0x0,PCELL_ID0x0!
dma-pl330: probe of dma-pl330.1 failed with error -22Maybe there is some issue with the PL330 DMA controller clocks and the read values are all 0 because the clocks are disabled ?
It seems
arch/arm/mach-s5pv210/clock.cmight be missing "apb_pclk" clock supply names, which I suspect may be required after commits:commit
7c71b8eb268ee38235f7e924d943ea9d90e59469Author: Inderpal Singh <[email protected]> Date: Fri Sep 7 12:14:48 2012 +0530DMA: PL330: Remove redundant runtime_suspend/resume functions
The driver's runtime_suspend/resume functions just disable/enable the clock which is already being managed at AMBA bus level runtime_suspend/resume functions.
Hence, remove the driver's runtime_suspend/resume functions.
Signed-off-by Inderpal Singh <[email protected]>Tested-by Chander Kashyap <[email protected]>Signed-off-by Vinod Koul <[email protected]>commit
faf6fbc6f2ca3b34bf464a8bb079a998e571957cAuthor: Inderpal Singh <[email protected]> Date: Fri Sep 7 12:14:47 2012 +0530DMA: PL330: Remove controller clock enable/disable
The controller clock is being enabled/disabled in AMBA bus infrastructre in probe/remove functions. Hence, its not required at driver level probe/remove.
Quoted 7 lines
Signed-off-by Inderpal Singh <[email protected]>Tested-by Chander Kashyap <[email protected]>Signed-off-by Vinod Koul <[email protected]>I have added people who made related changes at Cc, hopefully they can provide some help in debugging this.
The mentioned patches just removed the redundant clock enable/disable from the driver as clock is already being managed at amba bus level in the same code path. As per my understanding the issue should come even without these patches.
@Lonsn: Can you please test without these patches?
Thanks,
Inder
Quoted 92 lines
Please try the following change:
8<--------------------
arch/arm/mach-s5pv210/clock.c +2
-6@@ -214,11 +214,6 @@ static struct clk clk_pcmcdclk2 = { .name = "pcmcdclk", }; -static struct clk dummy_apb_pclk = { - .name ="apb_pclk" , - .id =-1 , -}; -static struct clk *clkset_vpllsrc_list[] = { [0 ] = &clk_fin_vpll, [1 ] = &clk_sclk_hdmi27m,@@ -1333,6 +1328,8 @@ static struct clk_lookup s5pv210_clk_lookup[] = {CLKDEV_INIT (NULL ,"spi_busclk0" , &clk_p),CLKDEV_INIT ("s5pv210-spi.0" ,"spi_busclk1" , &clk_sclk_spi0.clk),CLKDEV_INIT ("s5pv210-spi.1" ,"spi_busclk1" , &clk_sclk_spi1.clk), +CLKDEV_INIT ("dma-pl330.0" ,"apb_pclk" , &init_clocks_off[0 ]), + CLKDEV_INIT("dma-pl330.1", "apb_pclk", &init_clocks_off[1]), };void __init s5pv210_register_clocks (void )@@ -1361,6 +1358,5 @@ void __init s5pv210_register_clocks(void)for (ptr =0 ; ptr <ARRAY_SIZE (clk_cdev); ptr++)s3c_disable_clocks (clk_cdev[ptr],1 ); -s3c24xx_register_clock (&dummy_apb_pclk);s3c_pwmclk_init (); }8<--------------------
If it works then we could make some cleaner patch.
Quoted 28 lines
For HDMI driver,
I have added the following HDMI related code toarch/arm/mach-s5pv210/mach-smdkv210.c:
/* I2C module and id for HDMIPHY */
static structi2c_board_infohdmiphy_info= {I2C_BOARD_INFO("hdmiphy-s5pv210", 0x38),
};i2c_register_board_info(2,
smdkv210_i2c_devs2,ARRAY_SIZE(smdkv210_i2c_devs2));
s5p_i2c_hdmiphy_set_platdata(NULL);s5p_hdmi_set_platdata(&hdmiphy_info, NULL, 0);
s3c_ide_set_platdata(&smdkv210_ide_pdata);then kernel print:
s5p-hdmi s5pv210-hdmi: hdmiphy adapter request failed s5p-hdmi s5pv210-hdmi: probe failed
Samsung TV Mixer driver, (c) 2010-2011 Samsung Electronics Co., Ltd.s5p-mixer s5p-mixer: probe start
s5p-mixer s5p-mixer: resources acquired s5p-mixer s5p-mixer: module s5p-hdmi provides no subdev! s5p-mixer s5p-mixer: module s5p-sdo provides no subdev! s5p-mixer s5p-mixer: failed to register any output s5p-mixer s5p-mixer: probe failedQuoted 3 lines
Can anybody help me on how to config the HDMI output function in linux kernel 3.8? I mainly want to do video hardware decode using s5pv210 MFC and then display with HDMI.
For video playback (video post-processing) you might also need at least one FIMC device. Please refer to
arch/arm/mach-goni.cfor an example on how to add related devices to your board. You don't need the camera stuff, just add:&s5p_device_mfc, &s5p_device_mfc_l, &s5p_device_mfc_r, &s5p_device_fimc0, &s5p_device_fimc1, &s5p_device_fimc2, &s5p_device_fimc_md,to smdkv210_devices[] and related
Kconfigentries to make it compile. You'll need a function similar togoni_reserve()in your board file to reserve memory for the video codec.Hope that helps.
Quoted 50 lines · Inderpal Singh
Quoted 48 lines · Sylwester Nawrocki
Quoted 9 lines · Lonsn
Hi,
I have tested the kernel 3.8 with a SMDKV210 like board. But I failed with dma-pl330 and HDMI driver.
For dma-pl330, kernel print:
dma-pl330 dma-pl330.0:PERIPH_ID0x0,PCELL_ID0x0!
dma-pl330: probe of dma-pl330.0 failed with error -22 dma-pl330 dma-pl330.1:PERIPH_ID0x0,PCELL_ID0x0!
dma-pl330: probe of dma-pl330.1 failed with error -22Maybe there is some issue with the PL330 DMA controller clocks and the read values are all 0 because the clocks are disabled ?
It seems
arch/arm/mach-s5pv210/clock.cmight be missing "apb_pclk" clock supply names, which I suspect may be required after commits:commit
7c71b8eb268ee38235f7e924d943ea9d90e59469Author: Inderpal Singh <[email protected]> Date: Fri Sep 7 12:14:48 2012 +0530DMA: PL330: Remove redundant runtime_suspend/resume functions
The driver's runtime_suspend/resume functions just disable/enable the clock which is already being managed at AMBA bus level runtime_suspend/resume functions.
Hence, remove the driver's runtime_suspend/resume functions.
Signed-off-by Inderpal Singh <[email protected]>Tested-by Chander Kashyap <[email protected]>Signed-off-by Vinod Koul <[email protected]>commit
faf6fbc6f2ca3b34bf464a8bb079a998e571957cAuthor: Inderpal Singh <[email protected]> Date: Fri Sep 7 12:14:47 2012 +0530DMA: PL330: Remove controller clock enable/disable
The controller clock is being enabled/disabled in AMBA bus infrastructre in probe/remove functions. Hence, its not required at driver level probe/remove.
Signed-off-by Inderpal Singh <[email protected]>Tested-by Chander Kashyap <[email protected]>Signed-off-by Vinod Koul <[email protected]>
Quoted 8 lines
Quoted 3 lines
I have added people who made related changes at Cc, hopefully they can provide some help in debugging this.
The mentioned patches just removed the redundant clock enable/disable from the driver as clock is already being managed at amba bus level in the same code path. As per my understanding the issue should come even without these patches.
But were the clocks managed directly by the pl330 driver same as those managed at amba bus level ? The first patch as above removed chunk
@@ -2887,24 +2884,17 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
goto probe_err1;
}- pdmac->clk = clk_get(&adev->dev, "dma");
- if (IS_ERR(pdmac->clk)) {
- dev_err(&adev->dev, "Cannot get operation clock.\n"); - ret = -EINVAL; - goto probe_err2;
- }
-
which suggest the driver was enabling directly "dma" clocks, defined at S5PV210 platform level as:
{
.name = "dma",
.devname = "dma-pl330.0",
.parent = &clk_hclk_psys.clk,
.enable = s5pv210_clk_ip0_ctrl,
.ctrlbit = (1 << 3),
}, {
.name = "dma",
.devname = "dma-pl330.1",
.parent = &clk_hclk_psys.clk,
.enable = s5pv210_clk_ip0_ctrl,
.ctrlbit = (1 << 4),
}, {And amba bus was getting only dummy clocks behind "apb_pclk" clock conn_id.
Quoted 1 line
@Lonsn: Can you please test without these patches?
I suspect reverting only patch
DMA: PL330: Remove redundant runtime_suspend/resume functions with PM_RUNTIME enabled might fix the issue.
--
Regards,
Sylwester
Quoted 36 lines · Sylwester Nawrocki
Quoted 13 lines
Hi Lonsn,
Quoted 9 lines · Lonsn
Now I checked HDMI failed at:
drivers/media/platform/s5p-tv/hdmi_drv.c: 912 line adapter =i2c_get_adapter(pdata->hdmiphy_bus);
if (adapter == NULL) {dev_err(dev, "hdmiphy adapter request failed\n"); ret =-ENXIO;
gotofail_vdev;
}
Sincepdata->hdmiphy_busis 3, whyi2c_get_adapterfailed?Quoted 8 lines
Do you have I2C3 bus controller device added to the list of devices registered in the
init_machine()callback, i.e.&s3c_device_i2c3entry in smdkv210_devices[] array ?You can refer to
arch/arm/mach-exynos/mach-universal_c210.cboard file for how a complete setup for the HDMI driver should look like. It's for Exynos4210 SoCs but it should not be much different from what you need for S5PV210.To build the kernel with
s3c_device_i2c3S3C_DEV_I2C3andS5PV210_SETUP_I2C3
need to be selected inKconfig, e.g.arch/arm/mach-s5pv210/Kconfig +1
-0@@ -151,12 +151,14 @@ config MACH_SMDKV210 select S3C_DEV_HSMMC3 select S3C_DEV_I2C1 select S3C_DEV_I2C2 + select S3C_DEV_I2C3
arch/arm/mach-s5pv210/Kconfig config MACH_SMDKV210 · line 164
Quoted 10 lines
arch/arm/mach-s5pv210/Kconfig +1
-0select S3C_DEV_RTC select S3C_DEV_USB_HSOTG select S3C_DEV_WDT select S5PV210_SETUP_FB_24BPP select S5PV210_SETUP_I2C1 select S5PV210_SETUP_I2C2 + select S5PV210_SETUP_I2C3 select S5PV210_SETUP_IDE select S5PV210_SETUP_KEYPAD select S5PV210_SETUP_SDHCI
Sylwester, thank you very much for your suggestions! Now HDMI phy has been detected after I add HDMI phy i2c bus in arch/arm/mach-s5pv210/Kconfig:
config MACH_SMDKV210
bool "SMDKV210"
select CPU_S5PV210
select S3C_DEV_FB
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC1
select S3C_DEV_HSMMC2
select S3C_DEV_HSMMC3
select S3C_DEV_I2C1
select S3C_DEV_I2C2+ select S5P_DEV_I2C_HDMIPHY
select S3C_DEV_RTC
select S3C_DEV_USB_HSOTG
and arch/arm/mach-s5pv210/mach-smdkv210.c:
static struct platform_device *smdkv210_devices[] __initdata = {
&s3c_device_adc,
&s3c_device_cfcon,
&s3c_device_fb,
&s3c_device_hsmmc0,
&s3c_device_hsmmc1,
&s3c_device_hsmmc2,
&s3c_device_hsmmc3,
&s3c_device_i2c0,
&s3c_device_i2c1,
&s3c_device_i2c2,
+ &s5p_device_i2c_hdmiphy,
&s3c_device_rtc,
&s3c_device_ts,
&s3c_device_usb_hsotg,
&s3c_device_wdt,
&s5p_device_fimc0,
&s5p_device_fimc1,
&s5p_device_fimc2,
&s5p_device_fimc_md,
&s5p_device_jpeg,
&s5p_device_mfc,
&s5p_device_mfc_l,
&s5p_device_mfc_r,
&s5pv210_device_ac97,
&s5pv210_device_iis0,
&s5pv210_device_spdif,
&samsung_asoc_idma,
&samsung_device_keypad,
&smdkv210_dm9000,
// &smdkv210_lcd_lte480wv,
&s5p_device_hdmi,
&s5p_device_mixer,
};Now kernel prints the following HDMI related:
m2m-testdev m2m-testdev.0: mem2mem-testdevDevice registered as /dev/video0 s5p-jpeg s5p-jpeg.0: encoder device registered as /dev/video1 s5p-jpeg s5p-jpeg.0: decoder device registered as /dev/video2 s5p-jpeg s5p-jpeg.0: Samsung S5P JPEG codec
s5p-mfc s5p-mfc: decoder registered as /dev/video3
s5p-mfc s5p-mfc: encoder registered as /dev/video4
s5p-hdmi s5pv210-hdmi: probe start
s5p-hdmi s5pv210-hdmi: HDMI resource init
s5p-hdmiphy 3-0038: probe successful
s5p-hdmi s5pv210-hdmi: probe successful
Samsung TV Mixer driver, (c) 2010-2011 Samsung Electronics Co., Ltd.
s5p-mixer s5p-mixer: probe start
s5p-mixer s5p-mixer: resources acquired
s5p-mixer s5p-mixer: added output 'S5P HDMI connector' from module 's5p-hdmi' s5p-mixer s5p-mixer: module s5p-sdo provides no subdev!
s5p-mixer s5p-mixer: registered layer graph0 as /dev/video5 s5p-mixer s5p-mixer: registered layer graph1 as /dev/video6 s5p-mixer s5p-mixer: registered layer video0 as /dev/video7 s5p-mixer s5p-mixer: probe successful
How can I test the HDMI output whether it's OK? Which /dev/video is real HDMI output? I have used http://git.infradead.org/users/kmpark/public-apps hdmi test program buf failed:
root@linaro-developer:/opt# ./tvdemo /dev/video7 720 480 0 0 ERROR(main.c:80) : VIDIOC_S_FMT failed: Invalid argument Aborted root@linaro-developer:/opt# Maybe I still miss some configuration in mach-smdkv210.c.
? 2013/2/27 18:51, Inderpal Singh ??:
Quoted 54 lines
Quoted 44 lines · Sylwester Nawrocki
Quoted 9 lines · Lonsn
Hi,
I have tested the kernel 3.8 with a SMDKV210 like board. But I failed with dma-pl330 and HDMI driver.
For dma-pl330, kernel print:
dma-pl330 dma-pl330.0:PERIPH_ID0x0,PCELL_ID0x0!
dma-pl330: probe of dma-pl330.0 failed with error -22 dma-pl330 dma-pl330.1:PERIPH_ID0x0,PCELL_ID0x0!
dma-pl330: probe of dma-pl330.1 failed with error -22Maybe there is some issue with the PL330 DMA controller clocks and the read values are all 0 because the clocks are disabled ?
It seems
arch/arm/mach-s5pv210/clock.cmight be missing "apb_pclk" clock supply names, which I suspect may be required after commits:commit
7c71b8eb268ee38235f7e924d943ea9d90e59469Author: Inderpal Singh <[email protected]> Date: Fri Sep 7 12:14:48 2012 +0530DMA: PL330: Remove redundant runtime_suspend/resume functions
The driver's runtime_suspend/resume functions just disable/enable the clock which is already being managed at AMBA bus level runtime_suspend/resume functions.
Hence, remove the driver's runtime_suspend/resume functions.
Signed-off-by Inderpal Singh <[email protected]>Tested-by Chander Kashyap <[email protected]>Signed-off-by Vinod Koul <[email protected]>commit
faf6fbc6f2ca3b34bf464a8bb079a998e571957cAuthor: Inderpal Singh <[email protected]> Date: Fri Sep 7 12:14:47 2012 +0530DMA: PL330: Remove controller clock enable/disable
The controller clock is being enabled/disabled in AMBA bus infrastructre in probe/remove functions. Hence, its not required at driver level probe/remove.
Quoted 7 lines
Signed-off-by Inderpal Singh <[email protected]>Tested-by Chander Kashyap <[email protected]>Signed-off-by Vinod Koul <[email protected]>I have added people who made related changes at Cc, hopefully they can provide some help in debugging this.
Quoted 6 lines
The mentioned patches just removed the redundant clock enable/disable from the driver as clock is already being managed at amba bus level in the same code path. As per my understanding the issue should come even without these patches.
@Lonsn: Can you please test without these patches?
Inder, I have made the DMA clock change according to Sylwester's suggetstions and it works!
Now kernel prints:
------------------------------------>
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
s3c-fb s5pv210-fb: window 0: fb dma-pl330 dma-pl330.0: Loaded driver for PL330 DMAC-267056 dma-pl330 dma-pl330.0: DBUFF-8x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32 dma-pl330 dma-pl330.1: Loaded driver for PL330 DMAC-267056 dma-pl330 dma-pl330.1: DBUFF-8x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32 Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled s5pv210-uart.0: ttySAC0 at MMIO 0xe2900000 (irq = 74) is a S3C6400/10
------------------------------------------>
Quoted 96 lines
Thanks,
InderQuoted 92 lines
Please try the following change:
8<--------------------
arch/arm/mach-s5pv210/clock.c +2
-6@@ -214,11 +214,6 @@ static struct clk clk_pcmcdclk2 = { .name = "pcmcdclk", }; -static struct clk dummy_apb_pclk = { - .name ="apb_pclk" , - .id =-1 , -}; -static struct clk *clkset_vpllsrc_list[] = { [0 ] = &clk_fin_vpll, [1 ] = &clk_sclk_hdmi27m,@@ -1333,6 +1328,8 @@ static struct clk_lookup s5pv210_clk_lookup[] = {CLKDEV_INIT (NULL ,"spi_busclk0" , &clk_p),CLKDEV_INIT ("s5pv210-spi.0" ,"spi_busclk1" , &clk_sclk_spi0.clk),CLKDEV_INIT ("s5pv210-spi.1" ,"spi_busclk1" , &clk_sclk_spi1.clk), +CLKDEV_INIT ("dma-pl330.0" ,"apb_pclk" , &init_clocks_off[0 ]), + CLKDEV_INIT("dma-pl330.1", "apb_pclk", &init_clocks_off[1]), };void __init s5pv210_register_clocks (void )@@ -1361,6 +1358,5 @@ void __init s5pv210_register_clocks(void)for (ptr =0 ; ptr <ARRAY_SIZE (clk_cdev); ptr++)s3c_disable_clocks (clk_cdev[ptr],1 ); -s3c24xx_register_clock (&dummy_apb_pclk);s3c_pwmclk_init (); }8<--------------------
If it works then we could make some cleaner patch.
Quoted 28 lines
For HDMI driver,
I have added the following HDMI related code toarch/arm/mach-s5pv210/mach-smdkv210.c:
/* I2C module and id for HDMIPHY */
static structi2c_board_infohdmiphy_info= {I2C_BOARD_INFO("hdmiphy-s5pv210", 0x38),
};i2c_register_board_info(2,
smdkv210_i2c_devs2,ARRAY_SIZE(smdkv210_i2c_devs2));
s5p_i2c_hdmiphy_set_platdata(NULL);s5p_hdmi_set_platdata(&hdmiphy_info, NULL, 0);
s3c_ide_set_platdata(&smdkv210_ide_pdata);then kernel print:
s5p-hdmi s5pv210-hdmi: hdmiphy adapter request failed s5p-hdmi s5pv210-hdmi: probe failed
Samsung TV Mixer driver, (c) 2010-2011 Samsung Electronics Co., Ltd.s5p-mixer s5p-mixer: probe start
s5p-mixer s5p-mixer: resources acquired s5p-mixer s5p-mixer: module s5p-hdmi provides no subdev! s5p-mixer s5p-mixer: module s5p-sdo provides no subdev! s5p-mixer s5p-mixer: failed to register any output s5p-mixer s5p-mixer: probe failedQuoted 3 lines
Can anybody help me on how to config the HDMI output function in linux kernel 3.8? I mainly want to do video hardware decode using s5pv210 MFC and then display with HDMI.
For video playback (video post-processing) you might also need at least one FIMC device. Please refer to
arch/arm/mach-goni.cfor an example on how to add related devices to your board. You don't need the camera stuff, just add:&s5p_device_mfc, &s5p_device_mfc_l, &s5p_device_mfc_r, &s5p_device_fimc0, &s5p_device_fimc1, &s5p_device_fimc2, &s5p_device_fimc_md,to smdkv210_devices[] and related
Kconfigentries to make it compile. You'll need a function similar togoni_reserve()in your board file to reserve memory for the video codec.Hope that helps.
Yes, I have added fimc0,fimc1,fimc2,fimc_md and reserve MFC memory. But currently HDMI output doesn't work correctly yet, I would try to see the HDMI output first and then video decoder.
Regards,
Quoted 93 lines · Sylwester Nawrocki
Quoted 50 lines · Inderpal Singh
Quoted 48 lines · Sylwester Nawrocki
Quoted 9 lines · Lonsn
Hi,
I have tested the kernel 3.8 with a SMDKV210 like board. But I failed with dma-pl330 and HDMI driver.
For dma-pl330, kernel print:
dma-pl330 dma-pl330.0:PERIPH_ID0x0,PCELL_ID0x0!
dma-pl330: probe of dma-pl330.0 failed with error -22 dma-pl330 dma-pl330.1:PERIPH_ID0x0,PCELL_ID0x0!
dma-pl330: probe of dma-pl330.1 failed with error -22Maybe there is some issue with the PL330 DMA controller clocks and the read values are all 0 because the clocks are disabled ?
It seems
arch/arm/mach-s5pv210/clock.cmight be missing "apb_pclk" clock supply names, which I suspect may be required after commits:commit
7c71b8eb268ee38235f7e924d943ea9d90e59469Author: Inderpal Singh <[email protected]> Date: Fri Sep 7 12:14:48 2012 +0530DMA: PL330: Remove redundant runtime_suspend/resume functions
The driver's runtime_suspend/resume functions just disable/enable the clock which is already being managed at AMBA bus level runtime_suspend/resume functions.
Hence, remove the driver's runtime_suspend/resume functions.
Signed-off-by Inderpal Singh <[email protected]>Tested-by Chander Kashyap <[email protected]>Signed-off-by Vinod Koul <[email protected]>commit
faf6fbc6f2ca3b34bf464a8bb079a998e571957cAuthor: Inderpal Singh <[email protected]> Date: Fri Sep 7 12:14:47 2012 +0530DMA: PL330: Remove controller clock enable/disable
The controller clock is being enabled/disabled in AMBA bus infrastructre in probe/remove functions. Hence, its not required at driver level probe/remove.
Signed-off-by Inderpal Singh <[email protected]>Tested-by Chander Kashyap <[email protected]>Signed-off-by Vinod Koul <[email protected]>Quoted 8 lines
Quoted 3 lines
I have added people who made related changes at Cc, hopefully they can provide some help in debugging this.
The mentioned patches just removed the redundant clock enable/disable from the driver as clock is already being managed at amba bus level in the same code path. As per my understanding the issue should come even without these patches.
But were the clocks managed directly by the pl330 driver same as those managed at amba bus level ? The first patch as above removed chunk
(quoted diff) +0
-7@@ -2887,24 +2884,17 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id) goto probe_err1; } - pdmac->clk = clk_get(&adev->dev, "dma"); - if (IS_ERR(pdmac->clk)) { - dev_err(&adev->dev, "Cannot get operation clock.\n"); - ret = -EINVAL; - goto probe_err2; - } -which suggest the driver was enabling directly "dma" clocks, defined at S5PV210 platform level as:
{ .name = "dma", .devname = "dma-pl330.0", .parent = &clk_hclk_psys.clk, .enable = s5pv210_clk_ip0_ctrl, .ctrlbit = (1 << 3), }, { .name = "dma", .devname = "dma-pl330.1", .parent = &clk_hclk_psys.clk, .enable = s5pv210_clk_ip0_ctrl, .ctrlbit = (1 << 4), }, {
Quoted 3 lines
And amba bus was getting only dummy clocks behind "
apb_pclk" clockconn_id.
Ahh Yes, I had missed this point. So the changes you suggested needs to be done as confirmed by Lonsn.
Thanks Lonsn for bringing this up :-)
Regards,
Inder
Quoted 10 lines
Quoted 1 line
@Lonsn: Can you please test without these patches?
I suspect reverting only patch
DMA: PL330: Remove redundant runtime_suspend/resume functions withPM_RUNTIMEenabled might fix the issue.--
Regards,
Sylwester
Quoted 125 lines · Lonsn
Quoted 37 lines · Sylwester Nawrocki
Quoted 13 lines
Hi Lonsn,
Quoted 9 lines · Lonsn
Now I checked HDMI failed at:
drivers/media/platform/s5p-tv/hdmi_drv.c: 912 line adapter =i2c_get_adapter(pdata->hdmiphy_bus);
if (adapter == NULL) {dev_err(dev, "hdmiphy adapter request failed\n"); ret =-ENXIO;
gotofail_vdev;
}
Sincepdata->hdmiphy_busis 3, whyi2c_get_adapterfailed?Quoted 8 lines
Do you have I2C3 bus controller device added to the list of devices registered in the
init_machine()callback, i.e.&s3c_device_i2c3entry in smdkv210_devices[] array ?You can refer to
arch/arm/mach-exynos/mach-universal_c210.cboard file for how a complete setup for the HDMI driver should look like. It's for Exynos4210 SoCs but it should not be much different from what you need for S5PV210.To build the kernel with
s3c_device_i2c3S3C_DEV_I2C3andS5PV210_SETUP_I2C3
need to be selected inKconfig, e.g.arch/arm/mach-s5pv210/Kconfig +1
-0@@ -151,12 +151,14 @@ config MACH_SMDKV210 select S3C_DEV_HSMMC3 select S3C_DEV_I2C1 select S3C_DEV_I2C2 + select S3C_DEV_I2C3arch/arm/mach-s5pv210/Kconfig config MACH_SMDKV210 · line 164
Quoted 10 lines
arch/arm/mach-s5pv210/Kconfig +1
-0select S3C_DEV_RTC select S3C_DEV_USB_HSOTG select S3C_DEV_WDT select S5PV210_SETUP_FB_24BPP select S5PV210_SETUP_I2C1 select S5PV210_SETUP_I2C2 + select S5PV210_SETUP_I2C3 select S5PV210_SETUP_IDE select S5PV210_SETUP_KEYPAD select S5PV210_SETUP_SDHCISylwester, thank you very much for your suggestions! Now HDMI phy has been detected after I add HDMI phy i2c bus in
arch/arm/mach-s5pv210/Kconfig:
configMACH_SMDKV210bool "SMDKV210" select CPU_S5PV210 select S3C_DEV_FB select S3C_DEV_HSMMC select S3C_DEV_HSMMC1 select S3C_DEV_HSMMC2 select S3C_DEV_HSMMC3 select S3C_DEV_I2C1 select S3C_DEV_I2C2+ select
S5P_DEV_I2C_HDMIPHY
selectS3C_DEV_RTC
selectS3C_DEV_USB_HSOTG
andarch/arm/mach-s5pv210/mach-smdkv210.c:static struct platform_device *smdkv210_devices[] __initdata = { &s3c_device_adc, &s3c_device_cfcon, &s3c_device_fb, &s3c_device_hsmmc0, &s3c_device_hsmmc1, &s3c_device_hsmmc2, &s3c_device_hsmmc3, &s3c_device_i2c0, &s3c_device_i2c1, &s3c_device_i2c2, + &s5p_device_i2c_hdmiphy, &s3c_device_rtc, &s3c_device_ts, &s3c_device_usb_hsotg, &s3c_device_wdt, &s5p_device_fimc0, &s5p_device_fimc1, &s5p_device_fimc2, &s5p_device_fimc_md, &s5p_device_jpeg, &s5p_device_mfc, &s5p_device_mfc_l, &s5p_device_mfc_r, &s5pv210_device_ac97, &s5pv210_device_iis0, &s5pv210_device_spdif, &samsung_asoc_idma, &samsung_device_keypad, &smdkv210_dm9000, // &smdkv210_lcd_lte480wv, &s5p_device_hdmi, &s5p_device_mixer, };Now kernel prints the following HDMI related:
m2m-testdev m2m-testdev.0: mem2mem-testdevDevice registered as/dev/video0s5p-jpeg s5p-jpeg.0: encoder device registered as/dev/video1s5p-jpeg s5p-jpeg.0: decoder device registered as/dev/video2s5p-jpeg s5p-jpeg.0: Samsung S5P JPEG codec
s5p-mfc s5p-mfc: decoder registered as/dev/video3
s5p-mfc s5p-mfc: encoder registered as/dev/video4
s5p-hdmi s5pv210-hdmi: probe start
s5p-hdmi s5pv210-hdmi: HDMI resource init
s5p-hdmiphy 3-0038: probe successful
s5p-hdmi s5pv210-hdmi: probe successful
Samsung TV Mixer driver, (c) 2010-2011 Samsung Electronics Co., Ltd.s5p-mixer s5p-mixer: probe start
s5p-mixer s5p-mixer: resources acquired
s5p-mixer s5p-mixer: added output 'S5P HDMI connector' from module 's5p-hdmi'
s5p-mixer s5p-mixer: module s5p-sdo provides no subdev! s5p-mixer s5p-mixer: registered layer graph0 as/dev/video5s5p-mixer s5p-mixer: registered layer graph1 as/dev/video6s5p-mixer s5p-mixer: registered layer video0 as/dev/video7s5p-mixer s5p-mixer: probe successfulHow can I test the HDMI output whether it's OK? Which
/dev/videois real HDMI output? I have used
http://git.infradead.org/users/kmpark/public-apps hdmi test program buf failed:
Quoted 7 lines
root@linaro-developer:/opt# ./tvdemo /dev/video7 720 480 0 0 ERROR(main.c:80) : VIDIOC_S_FMT failed: Invalid argument Aborted root@linaro-developer:/opt# Maybe I still miss some configuration in mach-smdkv210.c.
The kernel print when run tvdemo:
root@linaro-developer:/opt# ./tvdemo /dev/video7 720 480 0 0 ERROR(main.c:80) : VIDIOC_S_FMT failed: Invalid argument Aborted root@linaro-developer:/opt# dmesg s5p-mixer s5p-mixer: mxr_video_open:762 s5p-mixer s5p-mixer: resume - start s5p-mixer s5p-mixer: resume - finished s5p-hdmi s5pv210-hdmi: hdmi_g_mbus_fmt s5p-mixer s5p-mixer: src.full_size = (720, 480) s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (0, 0) s5p-mixer s5p-mixer: src.full_size = (720, 480) s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (65536, 65536) s5p-mixer s5p-mixer: mxr_s_fmt:322 s5p-mixer s5p-mixer: not recognized fourcc: 34524742 s5p-mixer s5p-mixer: mxr_video_release:842 s5p-mixer s5p-mixer: suspend - start s5p-mixer s5p-mixer: suspend - finished root@linaro-developer:/opt#
Quoted 3 lines · Lonsn
Quoted 2 lines · Lonsn
Quoted 2 lines · Sylwester Nawrocki
Quoted 1 line · Lonsn
[...]
Quoted 24 lines
Quoted 24 lines
Now kernel prints the following HDMI related:
m2m-testdev m2m-testdev.0: mem2mem-testdevDevice registered as/dev/video0
s5p-jpeg s5p-jpeg.0: encoder device registered as/dev/video1s5p-jpeg s5p-jpeg.0: decoder device registered as/dev/video2s5p-jpeg s5p-jpeg.0: Samsung S5P JPEG codec
s5p-mfc s5p-mfc: decoder registered as/dev/video3s5p-mfc s5p-mfc: encoder registered as/dev/video4s5p-hdmi s5pv210-hdmi: probe start
s5p-hdmi s5pv210-hdmi: HDMI resource init
s5p-hdmiphy 3-0038: probe successful
s5p-hdmi s5pv210-hdmi: probe successful
Samsung TV Mixer driver, (c) 2010-2011 Samsung Electronics Co., Ltd.s5p-mixer s5p-mixer: probe start
s5p-mixer s5p-mixer: resources acquired
s5p-mixer s5p-mixer: added output 'S5P HDMI connector' from module 's5p-hdmi'
s5p-mixer s5p-mixer: module s5p-sdo provides no subdev! s5p-mixer s5p-mixer: registered layer graph0 as/dev/video5s5p-mixer s5p-mixer: registered layer graph1 as/dev/video6s5p-mixer s5p-mixer: registered layer video0 as/dev/video7s5p-mixer s5p-mixer: probe successful
Quoted 6 lines
Quoted 6 lines
How can I test the HDMI output whether it's OK? Which
/dev/videois real HDMI output? I have used
http://git.infradead.org/users/kmpark/public-apps hdmi test program buf failed:root@linaro-developer:/opt# ./tvdemo /dev/video7 720 480 0 0 ERROR(main.c:80) : VIDIOC_S_FMT failed: Invalid argument
It failed because you've opened device node of the Video Processor, which supports only NV12/21(MT) formats. I believe the v4l2-hdmi-example application, which renders some simple test images, needs to be run with one the graphics layer video nodes as an argument. Doesn't it work when you try on /dev/video5 or /dev/video6 ?
Quoted 2 lines
Quoted 2 lines
root@linaro-developer:/opt#
Maybe I still miss some configuration inmach-smdkv210.c.
I don't think so, it all looks more or less OK now :)
Quoted 17 lines
The kernel print when run tvdemo:
root@linaro-developer:/opt# ./tvdemo /dev/video7 720 480 0 0 ERROR(main.c:80) : VIDIOC_S_FMT failed: Invalid argument Aborted root@linaro-developer:/opt# dmesg s5p-mixer s5p-mixer: mxr_video_open:762 s5p-mixer s5p-mixer: resume - start s5p-mixer s5p-mixer: resume - finished s5p-hdmi s5pv210-hdmi: hdmi_g_mbus_fmt s5p-mixer s5p-mixer: src.full_size = (720, 480) s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (0, 0) s5p-mixer s5p-mixer: src.full_size = (720, 480)
Quoted 8 lines
s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (65536, 65536) s5p-mixer s5p-mixer: mxr_s_fmt:322 s5p-mixer s5p-mixer: not recognized fourcc: 34524742
Yes, it must definitely be incorrect video node. Only the graph0/1 devices support RGB.
Regards,
Sylwester
Quoted 36 lines · Sylwester Nawrocki
Quoted 3 lines · Lonsn
Quoted 2 lines · Lonsn
Quoted 2 lines · Sylwester Nawrocki
Quoted 1 line · Lonsn
[...]
Quoted 24 lines
Quoted 24 lines
Now kernel prints the following HDMI related:
m2m-testdev m2m-testdev.0: mem2mem-testdevDevice registered as/dev/video0
s5p-jpeg s5p-jpeg.0: encoder device registered as/dev/video1s5p-jpeg s5p-jpeg.0: decoder device registered as/dev/video2s5p-jpeg s5p-jpeg.0: Samsung S5P JPEG codec
s5p-mfc s5p-mfc: decoder registered as/dev/video3s5p-mfc s5p-mfc: encoder registered as/dev/video4s5p-hdmi s5pv210-hdmi: probe start
s5p-hdmi s5pv210-hdmi: HDMI resource init
s5p-hdmiphy 3-0038: probe successful
s5p-hdmi s5pv210-hdmi: probe successful
Samsung TV Mixer driver, (c) 2010-2011 Samsung Electronics Co., Ltd.s5p-mixer s5p-mixer: probe start
s5p-mixer s5p-mixer: resources acquired
s5p-mixer s5p-mixer: added output 'S5P HDMI connector' from module 's5p-hdmi'
s5p-mixer s5p-mixer: module s5p-sdo provides no subdev! s5p-mixer s5p-mixer: registered layer graph0 as/dev/video5s5p-mixer s5p-mixer: registered layer graph1 as/dev/video6s5p-mixer s5p-mixer: registered layer video0 as/dev/video7s5p-mixer s5p-mixer: probe successfulQuoted 6 lines
Quoted 6 lines
How can I test the HDMI output whether it's OK? Which
/dev/videois real HDMI output? I have used
http://git.infradead.org/users/kmpark/public-apps hdmi test program buf failed:root@linaro-developer:/opt# ./tvdemo /dev/video7 720 480 0 0 ERROR(main.c:80) : VIDIOC_S_FMT failed: Invalid argument
Quoted 7 lines
It failed because you've opened device node of the Video Processor, which supports only NV12/21(MT) formats. I believe the v4l2-hdmi-example application, which renders some simple test images, needs to be run with one
the graphics layer video nodes as an argument. Doesn't it work when you try
on/dev/video5or/dev/video6?
I have tested /dev/video5 and /dev/video6, the same output as following:
root@linaro-developer:/opt# ./tvdemo /dev/video5 720 480 0 0 start ERROR(main.c:256) : VIDIOC_DQBUF failed: Invalid argument Aborted root@linaro-developer:/opt# dmesg s5p-mixer s5p-mixer: mxr_video_open:762 s5p-mixer s5p-mixer: resume - start s5p-mixer s5p-mixer: resume - finished s5p-hdmi s5pv210-hdmi: hdmi_g_mbus_fmt s5p-mixer s5p-mixer: src.full_size = (720, 480) s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (0, 0) s5p-mixer s5p-mixer: src.full_size = (720, 480) s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (0, 0) s5p-mixer s5p-mixer: mxr_s_fmt:322 s5p-mixer s5p-mixer: src.full_size = (720, 480) s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (0, 0) s5p-mixer s5p-mixer: src.full_size = (720, 480) s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (0, 0) s5p-mixer s5p-mixer: src.full_size = (720, 480) s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (0, 0) s5p-mixer s5p-mixer: mxr_g_fmt:301 s5p-mixer s5p-mixer: mxr_g_fmt:301 s5p-mixer s5p-mixer: mxr_reqbufs:672 s5p-mixer s5p-mixer: queue_setup s5p-mixer s5p-mixer: fmt = ARGB8888 s5p-mixer s5p-mixer: size[0] = 00151800 s5p-mixer s5p-mixer: mxr_querybuf:680 s5p-mixer s5p-mixer: mxr_video_mmap:829 s5p-mixer s5p-mixer: mxr_querybuf:680 s5p-mixer s5p-mixer: mxr_video_mmap:829 s5p-mixer s5p-mixer: mxr_querybuf:680 s5p-mixer s5p-mixer: mxr_video_mmap:829 s5p-mixer s5p-mixer: mxr_s_selection: rect: 720x480@0,0 s5p-mixer s5p-mixer: src.full_size = (720, 480) s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (0, 0) s5p-mixer s5p-mixer: mxr_qbuf:688(0) s5p-mixer s5p-mixer: mxr_qbuf:688(1) s5p-mixer s5p-mixer: mxr_qbuf:688(2) s5p-mixer s5p-mixer: mxr_streamon:713 s5p-mixer s5p-mixer: queuing buffer s5p-mixer s5p-mixer: queuing buffer s5p-mixer s5p-mixer: queuing buffer s5p-mixer s5p-mixer: start_streaming s5p-mixer s5p-mixer: mxr_output_get(1) s5p-hdmi s5pv210-hdmi: hdmi_runtime_resume s5p-hdmi s5pv210-hdmi: poweron succeed s5p-hdmi s5pv210-hdmi: hdmi_g_mbus_fmt s5p-mixer s5p-mixer: src.full_size = (720, 480) s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (0, 0) s5p-mixer s5p-mixer: mxr_streamer_get(1) s5p-hdmi s5pv210-hdmi: hdmi_g_mbus_fmt s5p-hdmi s5pv210-hdmi: hdmi_s_stream(1) s5p-hdmi s5pv210-hdmi: hdmi_streamon s5p-hdmi s5pv210-hdmi: hdmi_conf_apply s5p-hdmiphy 3-0038: s_dv_preset(preset = 1) s5p-tv (hdmi_drv): unplugged s5p-hdmiphy 3-0038: s_stream(1) s5p-hdmi s5pv210-hdmi: streamon: ---- CONTROL REGISTERS ---- s5p-hdmi s5pv210-hdmi: streamon:HDMI_INTC_FLAG = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_INTC_CON = 0000004c s5p-hdmi s5pv210-hdmi: streamon:HDMI_HPD_STATUS = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_PHY_RSTOUT = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_PHY_VPLL = 0000008c s5p-hdmi s5pv210-hdmi: streamon:HDMI_PHY_CMU = 00000080 s5p-hdmi s5pv210-hdmi: streamon:HDMI_CORE_RSTOUT = 00000001 s5p-hdmi s5pv210-hdmi: streamon: ---- CORE REGISTERS ---- s5p-hdmi s5pv210-hdmi: streamon:HDMI_CON_0 = 00000001 s5p-hdmi s5pv210-hdmi: streamon:HDMI_CON_1 = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_CON_2 = 00000022 s5p-hdmi s5pv210-hdmi: streamon:HDMI_SYS_STATUS = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_PHY_STATUS = 00000001 s5p-hdmi s5pv210-hdmi: streamon:HDMI_STATUS_EN = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_HPD = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_MODE_SEL = 00000001 s5p-hdmi s5pv210-hdmi: streamon:HDMI_HPD_GEN = 00000001 s5p-hdmi s5pv210-hdmi: streamon:HDMI_DC_CONTROL = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_VIDEO_PATTERN_GEN = 00000000 s5p-hdmi s5pv210-hdmi: streamon: ---- CORE SYNC REGISTERS ---- s5p-hdmi s5pv210-hdmi: streamon:HDMI_H_BLANK_0 = 0000008a s5p-hdmi s5pv210-hdmi: streamon:HDMI_H_BLANK_1 = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_BLANK_0 = 0000000d s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_BLANK_1 = 0000006a s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_BLANK_2 = 00000001 s5p-hdmi s5pv210-hdmi: streamon:HDMI_H_V_LINE_0 = 0000000d s5p-hdmi s5pv210-hdmi: streamon:HDMI_H_V_LINE_1 = 000000a2 s5p-hdmi s5pv210-hdmi: streamon:HDMI_H_V_LINE_2 = 00000035 s5p-hdmi s5pv210-hdmi: streamon:HDMI_VSYNC_POL = 00000001 s5p-hdmi s5pv210-hdmi: streamon:HDMI_INT_PRO_MODE = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_BLANK_F_0 = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_BLANK_F_1 = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_BLANK_F_2 = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_H_SYNC_GEN_0 = 00000010 s5p-hdmi s5pv210-hdmi: streamon:HDMI_H_SYNC_GEN_1 = 00000038 s5p-hdmi s5pv210-hdmi: streamon:HDMI_H_SYNC_GEN_2 = 00000011 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_SYNC_GEN_1_0 = 0000000f s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_SYNC_GEN_1_1 = 00000090 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_SYNC_GEN_1_2 = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_SYNC_GEN_2_0 = 00000001 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_SYNC_GEN_2_1 = 00000010 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_SYNC_GEN_2_2 = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_SYNC_GEN_3_0 = 00000001 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_SYNC_GEN_3_1 = 00000010 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_SYNC_GEN_3_2 = 00000000 s5p-hdmi s5pv210-hdmi: streamon: ---- TG REGISTERS ---- s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_CMD = 00000001 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_H_FSZ_L = 0000005a s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_H_FSZ_H = 00000003 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_HACT_ST_L = 0000008a s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_HACT_ST_H = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_HACT_SZ_L = 000000d0 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_HACT_SZ_H = 00000002 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_V_FSZ_L = 0000000d s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_V_FSZ_H = 00000002 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VSYNC_L = 00000009 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VSYNC_H = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VSYNC2_L = 00000033 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VSYNC2_H = 00000002 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VACT_ST_L = 0000002d s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VACT_ST_H = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VACT_SZ_L = 000000e0 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VACT_SZ_H = 00000001 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_FIELD_CHG_L = 00000033 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_FIELD_CHG_H = 00000002 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VACT_ST2_L = 00000048 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VACT_ST2_H = 00000002 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VSYNC_TOP_HDMI_L = 00000009 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VSYNC_TOP_HDMI_H = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VSYNC_BOT_HDMI_L = 00000033 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VSYNC_BOT_HDMI_H = 00000002 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_FIELD_TOP_HDMI_L = 00000009 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_FIELD_TOP_HDMI_H = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_FIELD_BOT_HDMI_L = 00000033 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_FIELD_BOT_HDMI_H = 00000002 s5p-mixer s5p-mixer: MXR_STATUS = 00000085 s5p-mixer s5p-mixer: MXR_CFG = 00000194 s5p-mixer s5p-mixer: MXR_INT_EN = 00000700 s5p-mixer s5p-mixer: MXR_INT_STATUS = 00000000 s5p-mixer s5p-mixer: MXR_LAYER_CFG = 00000312 s5p-mixer s5p-mixer: MXR_VIDEO_CFG = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC0_CFG = 003007ff s5p-mixer s5p-mixer: MXR_GRAPHIC0_BASE = 4d600000 s5p-mixer s5p-mixer: MXR_GRAPHIC0_SPAN = 000002d0 s5p-mixer s5p-mixer: MXR_GRAPHIC0_WH = 02d001e0 s5p-mixer s5p-mixer: MXR_GRAPHIC0_SXY = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC0_DXY = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC1_CFG = 003000ff s5p-mixer s5p-mixer: MXR_GRAPHIC1_BASE = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC1_SPAN = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC1_WH = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC1_SXY = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC1_DXY = 00000000 s5p-mixer s5p-mixer: VP_ENABLE = 00000002 s5p-mixer s5p-mixer: VP_SRESET = 00000000 s5p-mixer s5p-mixer: VP_SHADOW_UPDATE = 00000001 s5p-mixer s5p-mixer: VP_FIELD_ID = 00000000 s5p-mixer s5p-mixer: VP_MODE = 00000000 s5p-mixer s5p-mixer: VP_IMG_SIZE_Y = 00000000 s5p-mixer s5p-mixer: VP_IMG_SIZE_C = 00000000 s5p-mixer s5p-mixer: VP_PER_RATE_CTRL = 00000000 s5p-mixer s5p-mixer: VP_TOP_Y_PTR = 00000000 s5p-mixer s5p-mixer: VP_BOT_Y_PTR = 00000000 s5p-mixer s5p-mixer: VP_TOP_C_PTR = 00000000 s5p-mixer s5p-mixer: VP_BOT_C_PTR = 00000000 s5p-mixer s5p-mixer: VP_ENDIAN_MODE = 00000000 s5p-mixer s5p-mixer: VP_SRC_H_POSITION = 00000000 s5p-mixer s5p-mixer: VP_SRC_V_POSITION = 00000000 s5p-mixer s5p-mixer: VP_SRC_WIDTH = 00000000 s5p-mixer s5p-mixer: VP_SRC_HEIGHT = 00000000 s5p-mixer s5p-mixer: VP_DST_H_POSITION = 00000000 s5p-mixer s5p-mixer: VP_DST_V_POSITION = 00000000 s5p-mixer s5p-mixer: VP_DST_WIDTH = 00000000 s5p-mixer s5p-mixer: VP_DST_HEIGHT = 00000000 s5p-mixer s5p-mixer: VP_H_RATIO = 00000000 s5p-mixer s5p-mixer: VP_V_RATIO = 00000000 s5p-mixer s5p-mixer: mxr_dqbuf:696 s5p-mixer s5p-mixer: wait_unlock s5p-mixer s5p-mixer: wait_lock s5p-mixer s5p-mixer: mxr_video_release:842 s5p-mixer s5p-mixer: stop_streaming s5p-mixer s5p-mixer: mxr_streamer_put(0) s5p-hdmi s5pv210-hdmi: hdmi_s_stream(0) s5p-hdmi s5pv210-hdmi: hdmi_streamoff s5p-hdmiphy 3-0038: s_stream(0) s5p-hdmi s5pv210-hdmi: streamoff: ---- CONTROL REGISTERS ---- s5p-hdmi s5pv210-hdmi: streamoff:HDMI_INTC_FLAG = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_INTC_CON = 0000004c s5p-hdmi s5pv210-hdmi: streamoff:HDMI_HPD_STATUS = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_PHY_RSTOUT = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_PHY_VPLL = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_PHY_CMU = 00000080 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_CORE_RSTOUT = 00000001 s5p-hdmi s5pv210-hdmi: streamoff: ---- CORE REGISTERS ---- s5p-hdmi s5pv210-hdmi: streamoff:HDMI_CON_0 = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_CON_1 = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_CON_2 = 00000022 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_SYS_STATUS = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_PHY_STATUS = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_STATUS_EN = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_HPD = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_MODE_SEL = 00000001 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_HPD_GEN = 00000001 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_DC_CONTROL = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_VIDEO_PATTERN_GEN = 00000000 s5p-hdmi s5pv210-hdmi: streamoff: ---- CORE SYNC REGISTERS ---- s5p-hdmi s5pv210-hdmi: streamoff:HDMI_H_BLANK_0 = 0000008a s5p-hdmi s5pv210-hdmi: streamoff:HDMI_H_BLANK_1 = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_BLANK_0 = 0000000d s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_BLANK_1 = 0000006a s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_BLANK_2 = 00000001 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_H_V_LINE_0 = 0000000d s5p-hdmi s5pv210-hdmi: streamoff:HDMI_H_V_LINE_1 = 000000a2 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_H_V_LINE_2 = 00000035 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_VSYNC_POL = 00000001 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_INT_PRO_MODE = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_BLANK_F_0 = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_BLANK_F_1 = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_BLANK_F_2 = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_H_SYNC_GEN_0 = 00000010 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_H_SYNC_GEN_1 = 00000038 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_H_SYNC_GEN_2 = 00000011 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_SYNC_GEN_1_0 = 0000000f s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_SYNC_GEN_1_1 = 00000090 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_SYNC_GEN_1_2 = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_SYNC_GEN_2_0 = 00000001 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_SYNC_GEN_2_1 = 00000010 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_SYNC_GEN_2_2 = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_SYNC_GEN_3_0 = 00000001 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_SYNC_GEN_3_1 = 00000010 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_SYNC_GEN_3_2 = 00000000 s5p-hdmi s5pv210-hdmi: streamoff: ---- TG REGISTERS ---- s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_CMD = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_H_FSZ_L = 0000005a s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_H_FSZ_H = 00000003 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_HACT_ST_L = 0000008a s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_HACT_ST_H = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_HACT_SZ_L = 000000d0 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_HACT_SZ_H = 00000002 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_V_FSZ_L = 0000000d s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_V_FSZ_H = 00000002 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VSYNC_L = 00000009 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VSYNC_H = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VSYNC2_L = 00000033 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VSYNC2_H = 00000002 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VACT_ST_L = 0000002d s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VACT_ST_H = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VACT_SZ_L = 000000e0 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VACT_SZ_H = 00000001 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_FIELD_CHG_L = 00000033 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_FIELD_CHG_H = 00000002 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VACT_ST2_L = 00000048 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VACT_ST2_H = 00000002 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VSYNC_TOP_HDMI_L = 00000009 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VSYNC_TOP_HDMI_H = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VSYNC_BOT_HDMI_L = 00000033 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VSYNC_BOT_HDMI_H = 00000002 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_FIELD_TOP_HDMI_L = 00000009 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_FIELD_TOP_HDMI_H = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_FIELD_BOT_HDMI_L = 00000033 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_FIELD_BOT_HDMI_H = 00000002 s5p-mixer s5p-mixer: MXR_STATUS = 00000086 s5p-mixer s5p-mixer: MXR_CFG = 00000184 s5p-mixer s5p-mixer: MXR_INT_EN = 00000700 s5p-mixer s5p-mixer: MXR_INT_STATUS = 00000000 s5p-mixer s5p-mixer: MXR_LAYER_CFG = 00000312 s5p-mixer s5p-mixer: MXR_VIDEO_CFG = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC0_CFG = 003007ff s5p-mixer s5p-mixer: MXR_GRAPHIC0_BASE = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC0_SPAN = 000002d0 s5p-mixer s5p-mixer: MXR_GRAPHIC0_WH = 02d001e0 s5p-mixer s5p-mixer: MXR_GRAPHIC0_SXY = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC0_DXY = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC1_CFG = 003000ff s5p-mixer s5p-mixer: MXR_GRAPHIC1_BASE = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC1_SPAN = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC1_WH = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC1_SXY = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC1_DXY = 00000000 s5p-mixer s5p-mixer: VP_ENABLE = 00000002 s5p-mixer s5p-mixer: VP_SRESET = 00000000 s5p-mixer s5p-mixer: VP_SHADOW_UPDATE = 00000000 s5p-mixer s5p-mixer: VP_FIELD_ID = 00000000 s5p-mixer s5p-mixer: VP_MODE = 00000000 s5p-mixer s5p-mixer: VP_IMG_SIZE_Y = 00000000 s5p-mixer s5p-mixer: VP_IMG_SIZE_C = 00000000 s5p-mixer s5p-mixer: VP_PER_RATE_CTRL = 00000000 s5p-mixer s5p-mixer: VP_TOP_Y_PTR = 00000000 s5p-mixer s5p-mixer: VP_BOT_Y_PTR = 00000000 s5p-mixer s5p-mixer: VP_TOP_C_PTR = 00000000 s5p-mixer s5p-mixer: VP_BOT_C_PTR = 00000000 s5p-mixer s5p-mixer: VP_ENDIAN_MODE = 00000000 s5p-mixer s5p-mixer: VP_SRC_H_POSITION = 00000000 s5p-mixer s5p-mixer: VP_SRC_V_POSITION = 00000000 s5p-mixer s5p-mixer: VP_SRC_WIDTH = 00000000 s5p-mixer s5p-mixer: VP_SRC_HEIGHT = 00000000 s5p-mixer s5p-mixer: VP_DST_H_POSITION = 00000000 s5p-mixer s5p-mixer: VP_DST_V_POSITION = 00000000 s5p-mixer s5p-mixer: VP_DST_WIDTH = 00000000 s5p-mixer s5p-mixer: VP_DST_HEIGHT = 00000000 s5p-mixer s5p-mixer: VP_H_RATIO = 00000000 s5p-mixer s5p-mixer: VP_V_RATIO = 00000000 s5p-mixer s5p-mixer: mxr_output_put(0) s5p-hdmi s5pv210-hdmi: hdmi_runtime_suspend s5p-mixer s5p-mixer: suspend - start s5p-mixer s5p-mixer: suspend - finished
Quoted 37 lines
Quoted 3 lines
Quoted 3 lines
root@linaro-developer:/opt#
Maybe I still miss some configuration inmach-smdkv210.c.I don't think so, it all looks more or less OK now :)
Quoted 17 lines
The kernel print when run tvdemo:
root@linaro-developer:/opt# ./tvdemo /dev/video7 720 480 0 0 ERROR(main.c:80) : VIDIOC_S_FMT failed: Invalid argument Aborted root@linaro-developer:/opt# dmesg s5p-mixer s5p-mixer: mxr_video_open:762 s5p-mixer s5p-mixer: resume - start s5p-mixer s5p-mixer: resume - finished s5p-hdmi s5pv210-hdmi: hdmi_g_mbus_fmt s5p-mixer s5p-mixer: src.full_size = (720, 480) s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (0, 0) s5p-mixer s5p-mixer: src.full_size = (720, 480)Quoted 8 lines
s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (65536, 65536) s5p-mixer s5p-mixer: mxr_s_fmt:322 s5p-mixer s5p-mixer: not recognized fourcc: 34524742Yes, it must definitely be incorrect video node. Only the graph0/1 devices support RGB.
Regards,
Sylwester
HDMI output is OK now, it's a variable init question in 'struct v4l2_buffer buf' when call ioctl(fd, VIDIOC_DQBUF, &buf) in the hdmi example application. Add m.planes in buf then OK. Thanks all!
I will continue to test the mfc decoder for s5pv210.
Regards,
Quoted 423 lines · Lonsn
Quoted 37 lines · Sylwester Nawrocki
Quoted 3 lines · Lonsn
Quoted 2 lines · Lonsn
Quoted 2 lines · Sylwester Nawrocki
Quoted 1 line · Lonsn
[...]
Quoted 24 lines
Quoted 24 lines
Now kernel prints the following HDMI related:
m2m-testdev m2m-testdev.0: mem2mem-testdevDevice registered as/dev/video0
s5p-jpeg s5p-jpeg.0: encoder device registered as/dev/video1s5p-jpeg s5p-jpeg.0: decoder device registered as/dev/video2s5p-jpeg s5p-jpeg.0: Samsung S5P JPEG codec
s5p-mfc s5p-mfc: decoder registered as/dev/video3s5p-mfc s5p-mfc: encoder registered as/dev/video4s5p-hdmi s5pv210-hdmi: probe start
s5p-hdmi s5pv210-hdmi: HDMI resource init
s5p-hdmiphy 3-0038: probe successful
s5p-hdmi s5pv210-hdmi: probe successful
Samsung TV Mixer driver, (c) 2010-2011 Samsung Electronics Co., Ltd.s5p-mixer s5p-mixer: probe start
s5p-mixer s5p-mixer: resources acquired
s5p-mixer s5p-mixer: added output 'S5P HDMI connector' from module 's5p-hdmi'
s5p-mixer s5p-mixer: module s5p-sdo provides no subdev! s5p-mixer s5p-mixer: registered layer graph0 as/dev/video5s5p-mixer s5p-mixer: registered layer graph1 as/dev/video6s5p-mixer s5p-mixer: registered layer video0 as/dev/video7s5p-mixer s5p-mixer: probe successfulQuoted 7 lines
Quoted 7 lines
How can I test the HDMI output whether it's OK? Which
/dev/videois real
HDMI output? I have used
http://git.infradead.org/users/kmpark/public-apps hdmi test program buf failed:root@linaro-developer:/opt# ./tvdemo /dev/video7 720 480 0 0 ERROR(main.c:80) : VIDIOC_S_FMT failed: Invalid argumentQuoted 7 lines
It failed because you've opened device node of the Video Processor, which supports only NV12/21(MT) formats. I believe the v4l2-hdmi-example application, which renders some simple test images, needs to be run with one
the graphics layer video nodes as an argument. Doesn't it work when you try
on/dev/video5or/dev/video6?I have tested
/dev/video5and/dev/video6, the same output as following:root@linaro-developer:/opt# ./tvdemo /dev/video5 720 480 0 0 start ERROR(main.c:256) : VIDIOC_DQBUF failed: Invalid argument Aborted root@linaro-developer:/opt# dmesg s5p-mixer s5p-mixer: mxr_video_open:762 s5p-mixer s5p-mixer: resume - start s5p-mixer s5p-mixer: resume - finished s5p-hdmi s5pv210-hdmi: hdmi_g_mbus_fmt s5p-mixer s5p-mixer: src.full_size = (720, 480) s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (0, 0) s5p-mixer s5p-mixer: src.full_size = (720, 480) s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (0, 0) s5p-mixer s5p-mixer: mxr_s_fmt:322 s5p-mixer s5p-mixer: src.full_size = (720, 480) s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (0, 0) s5p-mixer s5p-mixer: src.full_size = (720, 480) s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (0, 0) s5p-mixer s5p-mixer: src.full_size = (720, 480) s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (0, 0) s5p-mixer s5p-mixer: mxr_g_fmt:301 s5p-mixer s5p-mixer: mxr_g_fmt:301 s5p-mixer s5p-mixer: mxr_reqbufs:672 s5p-mixer s5p-mixer: queue_setup s5p-mixer s5p-mixer: fmt = ARGB8888 s5p-mixer s5p-mixer: size[0] = 00151800 s5p-mixer s5p-mixer: mxr_querybuf:680 s5p-mixer s5p-mixer: mxr_video_mmap:829 s5p-mixer s5p-mixer: mxr_querybuf:680 s5p-mixer s5p-mixer: mxr_video_mmap:829 s5p-mixer s5p-mixer: mxr_querybuf:680 s5p-mixer s5p-mixer: mxr_video_mmap:829 s5p-mixer s5p-mixer: mxr_s_selection: rect: 720x480@0,0 s5p-mixer s5p-mixer: src.full_size = (720, 480) s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (0, 0) s5p-mixer s5p-mixer: mxr_qbuf:688(0) s5p-mixer s5p-mixer: mxr_qbuf:688(1) s5p-mixer s5p-mixer: mxr_qbuf:688(2) s5p-mixer s5p-mixer: mxr_streamon:713 s5p-mixer s5p-mixer: queuing buffer s5p-mixer s5p-mixer: queuing buffer s5p-mixer s5p-mixer: queuing buffer s5p-mixer s5p-mixer: start_streaming s5p-mixer s5p-mixer: mxr_output_get(1) s5p-hdmi s5pv210-hdmi: hdmi_runtime_resume s5p-hdmi s5pv210-hdmi: poweron succeed s5p-hdmi s5pv210-hdmi: hdmi_g_mbus_fmt s5p-mixer s5p-mixer: src.full_size = (720, 480) s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (0, 0) s5p-mixer s5p-mixer: mxr_streamer_get(1) s5p-hdmi s5pv210-hdmi: hdmi_g_mbus_fmt s5p-hdmi s5pv210-hdmi: hdmi_s_stream(1) s5p-hdmi s5pv210-hdmi: hdmi_streamon s5p-hdmi s5pv210-hdmi: hdmi_conf_apply s5p-hdmiphy 3-0038: s_dv_preset(preset = 1) s5p-tv (hdmi_drv): unplugged s5p-hdmiphy 3-0038: s_stream(1) s5p-hdmi s5pv210-hdmi: streamon: ---- CONTROL REGISTERS ---- s5p-hdmi s5pv210-hdmi: streamon:HDMI_INTC_FLAG = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_INTC_CON = 0000004c s5p-hdmi s5pv210-hdmi: streamon:HDMI_HPD_STATUS = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_PHY_RSTOUT = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_PHY_VPLL = 0000008c s5p-hdmi s5pv210-hdmi: streamon:HDMI_PHY_CMU = 00000080 s5p-hdmi s5pv210-hdmi: streamon:HDMI_CORE_RSTOUT = 00000001 s5p-hdmi s5pv210-hdmi: streamon: ---- CORE REGISTERS ---- s5p-hdmi s5pv210-hdmi: streamon:HDMI_CON_0 = 00000001 s5p-hdmi s5pv210-hdmi: streamon:HDMI_CON_1 = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_CON_2 = 00000022 s5p-hdmi s5pv210-hdmi: streamon:HDMI_SYS_STATUS = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_PHY_STATUS = 00000001 s5p-hdmi s5pv210-hdmi: streamon:HDMI_STATUS_EN = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_HPD = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_MODE_SEL = 00000001 s5p-hdmi s5pv210-hdmi: streamon:HDMI_HPD_GEN = 00000001 s5p-hdmi s5pv210-hdmi: streamon:HDMI_DC_CONTROL = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_VIDEO_PATTERN_GEN = 00000000 s5p-hdmi s5pv210-hdmi: streamon: ---- CORE SYNC REGISTERS ---- s5p-hdmi s5pv210-hdmi: streamon:HDMI_H_BLANK_0 = 0000008a s5p-hdmi s5pv210-hdmi: streamon:HDMI_H_BLANK_1 = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_BLANK_0 = 0000000d s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_BLANK_1 = 0000006a s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_BLANK_2 = 00000001 s5p-hdmi s5pv210-hdmi: streamon:HDMI_H_V_LINE_0 = 0000000d s5p-hdmi s5pv210-hdmi: streamon:HDMI_H_V_LINE_1 = 000000a2 s5p-hdmi s5pv210-hdmi: streamon:HDMI_H_V_LINE_2 = 00000035 s5p-hdmi s5pv210-hdmi: streamon:HDMI_VSYNC_POL = 00000001 s5p-hdmi s5pv210-hdmi: streamon:HDMI_INT_PRO_MODE = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_BLANK_F_0 = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_BLANK_F_1 = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_BLANK_F_2 = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_H_SYNC_GEN_0 = 00000010 s5p-hdmi s5pv210-hdmi: streamon:HDMI_H_SYNC_GEN_1 = 00000038 s5p-hdmi s5pv210-hdmi: streamon:HDMI_H_SYNC_GEN_2 = 00000011 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_SYNC_GEN_1_0 = 0000000f s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_SYNC_GEN_1_1 = 00000090 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_SYNC_GEN_1_2 = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_SYNC_GEN_2_0 = 00000001 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_SYNC_GEN_2_1 = 00000010 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_SYNC_GEN_2_2 = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_SYNC_GEN_3_0 = 00000001 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_SYNC_GEN_3_1 = 00000010 s5p-hdmi s5pv210-hdmi: streamon:HDMI_V_SYNC_GEN_3_2 = 00000000 s5p-hdmi s5pv210-hdmi: streamon: ---- TG REGISTERS ---- s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_CMD = 00000001 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_H_FSZ_L = 0000005a s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_H_FSZ_H = 00000003 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_HACT_ST_L = 0000008a s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_HACT_ST_H = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_HACT_SZ_L = 000000d0 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_HACT_SZ_H = 00000002 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_V_FSZ_L = 0000000d s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_V_FSZ_H = 00000002 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VSYNC_L = 00000009 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VSYNC_H = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VSYNC2_L = 00000033 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VSYNC2_H = 00000002 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VACT_ST_L = 0000002d s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VACT_ST_H = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VACT_SZ_L = 000000e0 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VACT_SZ_H = 00000001 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_FIELD_CHG_L = 00000033 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_FIELD_CHG_H = 00000002 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VACT_ST2_L = 00000048 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VACT_ST2_H = 00000002 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VSYNC_TOP_HDMI_L = 00000009 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VSYNC_TOP_HDMI_H = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VSYNC_BOT_HDMI_L = 00000033 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_VSYNC_BOT_HDMI_H = 00000002 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_FIELD_TOP_HDMI_L = 00000009 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_FIELD_TOP_HDMI_H = 00000000 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_FIELD_BOT_HDMI_L = 00000033 s5p-hdmi s5pv210-hdmi: streamon:HDMI_TG_FIELD_BOT_HDMI_H = 00000002 s5p-mixer s5p-mixer: MXR_STATUS = 00000085 s5p-mixer s5p-mixer: MXR_CFG = 00000194 s5p-mixer s5p-mixer: MXR_INT_EN = 00000700 s5p-mixer s5p-mixer: MXR_INT_STATUS = 00000000 s5p-mixer s5p-mixer: MXR_LAYER_CFG = 00000312 s5p-mixer s5p-mixer: MXR_VIDEO_CFG = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC0_CFG = 003007ff s5p-mixer s5p-mixer: MXR_GRAPHIC0_BASE = 4d600000 s5p-mixer s5p-mixer: MXR_GRAPHIC0_SPAN = 000002d0 s5p-mixer s5p-mixer: MXR_GRAPHIC0_WH = 02d001e0 s5p-mixer s5p-mixer: MXR_GRAPHIC0_SXY = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC0_DXY = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC1_CFG = 003000ff s5p-mixer s5p-mixer: MXR_GRAPHIC1_BASE = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC1_SPAN = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC1_WH = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC1_SXY = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC1_DXY = 00000000 s5p-mixer s5p-mixer: VP_ENABLE = 00000002 s5p-mixer s5p-mixer: VP_SRESET = 00000000 s5p-mixer s5p-mixer: VP_SHADOW_UPDATE = 00000001 s5p-mixer s5p-mixer: VP_FIELD_ID = 00000000 s5p-mixer s5p-mixer: VP_MODE = 00000000 s5p-mixer s5p-mixer: VP_IMG_SIZE_Y = 00000000 s5p-mixer s5p-mixer: VP_IMG_SIZE_C = 00000000 s5p-mixer s5p-mixer: VP_PER_RATE_CTRL = 00000000 s5p-mixer s5p-mixer: VP_TOP_Y_PTR = 00000000 s5p-mixer s5p-mixer: VP_BOT_Y_PTR = 00000000 s5p-mixer s5p-mixer: VP_TOP_C_PTR = 00000000 s5p-mixer s5p-mixer: VP_BOT_C_PTR = 00000000 s5p-mixer s5p-mixer: VP_ENDIAN_MODE = 00000000 s5p-mixer s5p-mixer: VP_SRC_H_POSITION = 00000000 s5p-mixer s5p-mixer: VP_SRC_V_POSITION = 00000000 s5p-mixer s5p-mixer: VP_SRC_WIDTH = 00000000 s5p-mixer s5p-mixer: VP_SRC_HEIGHT = 00000000 s5p-mixer s5p-mixer: VP_DST_H_POSITION = 00000000 s5p-mixer s5p-mixer: VP_DST_V_POSITION = 00000000 s5p-mixer s5p-mixer: VP_DST_WIDTH = 00000000 s5p-mixer s5p-mixer: VP_DST_HEIGHT = 00000000 s5p-mixer s5p-mixer: VP_H_RATIO = 00000000 s5p-mixer s5p-mixer: VP_V_RATIO = 00000000 s5p-mixer s5p-mixer: mxr_dqbuf:696 s5p-mixer s5p-mixer: wait_unlock s5p-mixer s5p-mixer: wait_lock s5p-mixer s5p-mixer: mxr_video_release:842 s5p-mixer s5p-mixer: stop_streaming s5p-mixer s5p-mixer: mxr_streamer_put(0) s5p-hdmi s5pv210-hdmi: hdmi_s_stream(0) s5p-hdmi s5pv210-hdmi: hdmi_streamoff s5p-hdmiphy 3-0038: s_stream(0) s5p-hdmi s5pv210-hdmi: streamoff: ---- CONTROL REGISTERS ---- s5p-hdmi s5pv210-hdmi: streamoff:HDMI_INTC_FLAG = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_INTC_CON = 0000004c s5p-hdmi s5pv210-hdmi: streamoff:HDMI_HPD_STATUS = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_PHY_RSTOUT = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_PHY_VPLL = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_PHY_CMU = 00000080 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_CORE_RSTOUT = 00000001 s5p-hdmi s5pv210-hdmi: streamoff: ---- CORE REGISTERS ---- s5p-hdmi s5pv210-hdmi: streamoff:HDMI_CON_0 = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_CON_1 = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_CON_2 = 00000022 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_SYS_STATUS = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_PHY_STATUS = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_STATUS_EN = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_HPD = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_MODE_SEL = 00000001 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_HPD_GEN = 00000001 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_DC_CONTROL = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_VIDEO_PATTERN_GEN = 00000000 s5p-hdmi s5pv210-hdmi: streamoff: ---- CORE SYNC REGISTERS ---- s5p-hdmi s5pv210-hdmi: streamoff:HDMI_H_BLANK_0 = 0000008a s5p-hdmi s5pv210-hdmi: streamoff:HDMI_H_BLANK_1 = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_BLANK_0 = 0000000d s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_BLANK_1 = 0000006a s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_BLANK_2 = 00000001 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_H_V_LINE_0 = 0000000d s5p-hdmi s5pv210-hdmi: streamoff:HDMI_H_V_LINE_1 = 000000a2 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_H_V_LINE_2 = 00000035 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_VSYNC_POL = 00000001 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_INT_PRO_MODE = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_BLANK_F_0 = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_BLANK_F_1 = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_BLANK_F_2 = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_H_SYNC_GEN_0 = 00000010 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_H_SYNC_GEN_1 = 00000038 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_H_SYNC_GEN_2 = 00000011 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_SYNC_GEN_1_0 = 0000000f s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_SYNC_GEN_1_1 = 00000090 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_SYNC_GEN_1_2 = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_SYNC_GEN_2_0 = 00000001 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_SYNC_GEN_2_1 = 00000010 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_SYNC_GEN_2_2 = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_SYNC_GEN_3_0 = 00000001 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_SYNC_GEN_3_1 = 00000010 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_V_SYNC_GEN_3_2 = 00000000 s5p-hdmi s5pv210-hdmi: streamoff: ---- TG REGISTERS ---- s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_CMD = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_H_FSZ_L = 0000005a s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_H_FSZ_H = 00000003 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_HACT_ST_L = 0000008a s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_HACT_ST_H = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_HACT_SZ_L = 000000d0 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_HACT_SZ_H = 00000002 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_V_FSZ_L = 0000000d s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_V_FSZ_H = 00000002 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VSYNC_L = 00000009 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VSYNC_H = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VSYNC2_L = 00000033 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VSYNC2_H = 00000002 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VACT_ST_L = 0000002d s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VACT_ST_H = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VACT_SZ_L = 000000e0 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VACT_SZ_H = 00000001 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_FIELD_CHG_L = 00000033 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_FIELD_CHG_H = 00000002 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VACT_ST2_L = 00000048 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VACT_ST2_H = 00000002 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VSYNC_TOP_HDMI_L = 00000009 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VSYNC_TOP_HDMI_H = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VSYNC_BOT_HDMI_L = 00000033 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_VSYNC_BOT_HDMI_H = 00000002 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_FIELD_TOP_HDMI_L = 00000009 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_FIELD_TOP_HDMI_H = 00000000 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_FIELD_BOT_HDMI_L = 00000033 s5p-hdmi s5pv210-hdmi: streamoff:HDMI_TG_FIELD_BOT_HDMI_H = 00000002 s5p-mixer s5p-mixer: MXR_STATUS = 00000086 s5p-mixer s5p-mixer: MXR_CFG = 00000184 s5p-mixer s5p-mixer: MXR_INT_EN = 00000700 s5p-mixer s5p-mixer: MXR_INT_STATUS = 00000000 s5p-mixer s5p-mixer: MXR_LAYER_CFG = 00000312 s5p-mixer s5p-mixer: MXR_VIDEO_CFG = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC0_CFG = 003007ff s5p-mixer s5p-mixer: MXR_GRAPHIC0_BASE = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC0_SPAN = 000002d0 s5p-mixer s5p-mixer: MXR_GRAPHIC0_WH = 02d001e0 s5p-mixer s5p-mixer: MXR_GRAPHIC0_SXY = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC0_DXY = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC1_CFG = 003000ff s5p-mixer s5p-mixer: MXR_GRAPHIC1_BASE = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC1_SPAN = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC1_WH = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC1_SXY = 00000000 s5p-mixer s5p-mixer: MXR_GRAPHIC1_DXY = 00000000 s5p-mixer s5p-mixer: VP_ENABLE = 00000002 s5p-mixer s5p-mixer: VP_SRESET = 00000000 s5p-mixer s5p-mixer: VP_SHADOW_UPDATE = 00000000 s5p-mixer s5p-mixer: VP_FIELD_ID = 00000000 s5p-mixer s5p-mixer: VP_MODE = 00000000 s5p-mixer s5p-mixer: VP_IMG_SIZE_Y = 00000000 s5p-mixer s5p-mixer: VP_IMG_SIZE_C = 00000000 s5p-mixer s5p-mixer: VP_PER_RATE_CTRL = 00000000 s5p-mixer s5p-mixer: VP_TOP_Y_PTR = 00000000 s5p-mixer s5p-mixer: VP_BOT_Y_PTR = 00000000 s5p-mixer s5p-mixer: VP_TOP_C_PTR = 00000000 s5p-mixer s5p-mixer: VP_BOT_C_PTR = 00000000 s5p-mixer s5p-mixer: VP_ENDIAN_MODE = 00000000 s5p-mixer s5p-mixer: VP_SRC_H_POSITION = 00000000 s5p-mixer s5p-mixer: VP_SRC_V_POSITION = 00000000 s5p-mixer s5p-mixer: VP_SRC_WIDTH = 00000000 s5p-mixer s5p-mixer: VP_SRC_HEIGHT = 00000000 s5p-mixer s5p-mixer: VP_DST_H_POSITION = 00000000 s5p-mixer s5p-mixer: VP_DST_V_POSITION = 00000000 s5p-mixer s5p-mixer: VP_DST_WIDTH = 00000000 s5p-mixer s5p-mixer: VP_DST_HEIGHT = 00000000 s5p-mixer s5p-mixer: VP_H_RATIO = 00000000 s5p-mixer s5p-mixer: VP_V_RATIO = 00000000 s5p-mixer s5p-mixer: mxr_output_put(0) s5p-hdmi s5pv210-hdmi: hdmi_runtime_suspend s5p-mixer s5p-mixer: suspend - start s5p-mixer s5p-mixer: suspend - finishedQuoted 37 lines
Quoted 3 lines
Quoted 3 lines
root@linaro-developer:/opt#
Maybe I still miss some configuration inmach-smdkv210.c.I don't think so, it all looks more or less OK now :)
Quoted 17 lines
The kernel print when run tvdemo:
root@linaro-developer:/opt# ./tvdemo /dev/video7 720 480 0 0 ERROR(main.c:80) : VIDIOC_S_FMT failed: Invalid argument Aborted root@linaro-developer:/opt# dmesg s5p-mixer s5p-mixer: mxr_video_open:762 s5p-mixer s5p-mixer: resume - start s5p-mixer s5p-mixer: resume - finished s5p-hdmi s5pv210-hdmi: hdmi_g_mbus_fmt s5p-mixer s5p-mixer: src.full_size = (720, 480) s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (0, 0) s5p-mixer s5p-mixer: src.full_size = (720, 480)Quoted 8 lines
s5p-mixer s5p-mixer: src.size = (720, 480) s5p-mixer s5p-mixer: src.offset = (0, 0) s5p-mixer s5p-mixer: dst.full_size = (720, 480) s5p-mixer s5p-mixer: dst.size = (720, 480) s5p-mixer s5p-mixer: dst.offset = (0, 0) s5p-mixer s5p-mixer: ratio = (65536, 65536) s5p-mixer s5p-mixer: mxr_s_fmt:322 s5p-mixer s5p-mixer: not recognized fourcc: 34524742Yes, it must definitely be incorrect video node. Only the graph0/1 devices support RGB.
Regards,
Sylwester
Quoted 5 lines · Lonsn
HDMI output is OK now, it's a variable init question in 'struct
v4l2_bufferbuf' when callioctl(fd, VIDIOC_DQBUF, &buf)in the hdmi example application. Add m.planes in buf then OK.
Thanks all!
I will continue to test the mfc decoder for s5pv210.
Well done! I was going to suggest exactly that to you. It's due to some change in v4l2-core in recent versions of the kernel. I'll try to update the example application when I find some time.
Regards,
Sylwester