All of lore.kernel.org
 help / color / mirror / Atom feed
* SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
@ 2013-02-22 12:00 Lonsn
  2013-02-26 12:59   ` Lonsn
  2013-02-26 21:22   ` Sylwester Nawrocki
  0 siblings, 2 replies; 23+ messages in thread
From: Lonsn @ 2013-02-22 12:00 UTC (permalink / raw)
  To: linux-samsung-soc, linux-media

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=66700000
sclk_dmc: source is sclk_a2m (0), rate is 200000000
sclk_onenand: source is hclk_dsys (1), rate is 166750000
sclk_fimc: source is ext_xtal (0), rate is 24000000
sclk_fimc: source is ext_xtal (0), rate is 24000000
sclk_fimc: source is ext_xtal (0), rate is 24000000
sclk_cam0: source is ext_xtal (0), rate is 24000000
sclk_cam1: source is ext_xtal (0), rate is 24000000
sclk_fimd: source is ext_xtal (0), rate is 24000000
sclk_mfc: source is sclk_a2m (0), rate is 200000000
sclk_g2d: source is sclk_a2m (0), rate is 200000000
sclk_g3d: source is sclk_a2m (0), rate is 200000000
sclk_csis: source is ext_xtal (0), rate is 24000000
sclk_pwi: source is ext_xtal (0), rate is 24000000
sclk_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 0x41
sched_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:~#


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
  2013-02-22 12:00 SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed) Lonsn
@ 2013-02-26 12:59   ` Lonsn
  2013-02-26 21:22   ` Sylwester Nawrocki
  1 sibling, 0 replies; 23+ messages in thread
From: Lonsn @ 2013-02-26 12:59 UTC (permalink / raw)
  Cc: linux-samsung-soc, linux-media

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.

> 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=66700000
> sclk_dmc: source is sclk_a2m (0), rate is 200000000
> sclk_onenand: source is hclk_dsys (1), rate is 166750000
> sclk_fimc: source is ext_xtal (0), rate is 24000000
> sclk_fimc: source is ext_xtal (0), rate is 24000000
> sclk_fimc: source is ext_xtal (0), rate is 24000000
> sclk_cam0: source is ext_xtal (0), rate is 24000000
> sclk_cam1: source is ext_xtal (0), rate is 24000000
> sclk_fimd: source is ext_xtal (0), rate is 24000000
> sclk_mfc: source is sclk_a2m (0), rate is 200000000
> sclk_g2d: source is sclk_a2m (0), rate is 200000000
> sclk_g3d: source is sclk_a2m (0), rate is 200000000
> sclk_csis: source is ext_xtal (0), rate is 24000000
> sclk_pwi: source is ext_xtal (0), rate is 24000000
> sclk_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 0x41
> sched_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:~#
>


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
@ 2013-02-26 12:59   ` Lonsn
  0 siblings, 0 replies; 23+ messages in thread
From: Lonsn @ 2013-02-26 12:59 UTC (permalink / raw)
  Cc: linux-samsung-soc, linux-media

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.

> 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=66700000
> sclk_dmc: source is sclk_a2m (0), rate is 200000000
> sclk_onenand: source is hclk_dsys (1), rate is 166750000
> sclk_fimc: source is ext_xtal (0), rate is 24000000
> sclk_fimc: source is ext_xtal (0), rate is 24000000
> sclk_fimc: source is ext_xtal (0), rate is 24000000
> sclk_cam0: source is ext_xtal (0), rate is 24000000
> sclk_cam1: source is ext_xtal (0), rate is 24000000
> sclk_fimd: source is ext_xtal (0), rate is 24000000
> sclk_mfc: source is sclk_a2m (0), rate is 200000000
> sclk_g2d: source is sclk_a2m (0), rate is 200000000
> sclk_g3d: source is sclk_a2m (0), rate is 200000000
> sclk_csis: source is ext_xtal (0), rate is 24000000
> sclk_pwi: source is ext_xtal (0), rate is 24000000
> sclk_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 0x41
> sched_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:~#
>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
  2013-02-26 12:59   ` Lonsn
  (?)
@ 2013-02-26 20:07   ` Sylwester Nawrocki
  2013-02-26 20:32     ` Sylwester Nawrocki
  -1 siblings, 1 reply; 23+ messages in thread
From: Sylwester Nawrocki @ 2013-02-26 20:07 UTC (permalink / raw)
  To: Lonsn; +Cc: linux-samsung-soc, linux-media

Hi Lonsn,

On 02/26/2013 01:59 PM, Lonsn wrote:
> 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?

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

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
  2013-02-26 20:07   ` Sylwester Nawrocki
@ 2013-02-26 20:32     ` Sylwester Nawrocki
  2013-02-27 15:13       ` Lonsn
  0 siblings, 1 reply; 23+ messages in thread
From: Sylwester Nawrocki @ 2013-02-26 20:32 UTC (permalink / raw)
  To: Lonsn; +Cc: linux-samsung-soc, linux-media

On 02/26/2013 09:07 PM, Sylwester Nawrocki wrote:
> Hi Lonsn,
>
> On 02/26/2013 01:59 PM, Lonsn wrote:
>> 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?
>
> 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.

To build the kernel with s3c_device_i2c3 S3C_DEV_I2C3 and 
S5PV210_SETUP_I2C3
need to be selected in Kconfig, e.g.

diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig
index 92ad72f..51ce100 100644
--- a/arch/arm/mach-s5pv210/Kconfig
+++ b/arch/arm/mach-s5pv210/Kconfig
@@ -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

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
  2013-02-22 12:00 SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed) Lonsn
@ 2013-02-26 21:22   ` Sylwester Nawrocki
  2013-02-26 21:22   ` Sylwester Nawrocki
  1 sibling, 0 replies; 23+ messages in thread
From: Sylwester Nawrocki @ 2013-02-26 21:22 UTC (permalink / raw)
  To: Lonsn
  Cc: linux-samsung-soc, linux-media, Inderpal Singh, Boojin Kim,
	linux-arm-kernel

On 02/22/2013 01:00 PM, Lonsn wrote:
> 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

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 <inderpal.singh@linaro.org>
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.

     Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
     Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
     Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>

commit faf6fbc6f2ca3b34bf464a8bb079a998e571957c
Author: Inderpal Singh <inderpal.singh@linaro.org>
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.

     Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
     Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
     Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>

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<--------------------
diff --git a/arch/arm/mach-s5pv210/clock.c b/arch/arm/mach-s5pv210/clock.c
index fcdf52d..87c7d3f 100644
--- a/arch/arm/mach-s5pv210/clock.c
+++ b/arch/arm/mach-s5pv210/clock.c
@@ -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.

> 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.

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.

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
@ 2013-02-26 21:22   ` Sylwester Nawrocki
  0 siblings, 0 replies; 23+ messages in thread
From: Sylwester Nawrocki @ 2013-02-26 21:22 UTC (permalink / raw)
  To: linux-arm-kernel

On 02/22/2013 01:00 PM, Lonsn wrote:
> 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

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 <inderpal.singh@linaro.org>
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.

     Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
     Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
     Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>

commit faf6fbc6f2ca3b34bf464a8bb079a998e571957c
Author: Inderpal Singh <inderpal.singh@linaro.org>
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.

     Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
     Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
     Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>

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<--------------------
diff --git a/arch/arm/mach-s5pv210/clock.c b/arch/arm/mach-s5pv210/clock.c
index fcdf52d..87c7d3f 100644
--- a/arch/arm/mach-s5pv210/clock.c
+++ b/arch/arm/mach-s5pv210/clock.c
@@ -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.

> 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.

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.

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
  2013-02-26 21:22   ` Sylwester Nawrocki
@ 2013-02-27 10:51     ` Inderpal Singh
  -1 siblings, 0 replies; 23+ messages in thread
From: Inderpal Singh @ 2013-02-27 10:51 UTC (permalink / raw)
  To: Sylwester Nawrocki
  Cc: Lonsn, linux-samsung-soc, linux-media, Boojin Kim, linux-arm-kernel

On 27 February 2013 02:52, Sylwester Nawrocki
<sylvester.nawrocki@gmail.com> wrote:
> On 02/22/2013 01:00 PM, Lonsn wrote:
>>
>> 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
>
>
> 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 <inderpal.singh@linaro.org>
> 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.
>
>     Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
>     Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
>     Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
>
> commit faf6fbc6f2ca3b34bf464a8bb079a998e571957c
> Author: Inderpal Singh <inderpal.singh@linaro.org>
> 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.
>
>     Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
>     Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
>     Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
>
> 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

> Please try the following change:
>
> 8<--------------------
> diff --git a/arch/arm/mach-s5pv210/clock.c b/arch/arm/mach-s5pv210/clock.c
> index fcdf52d..87c7d3f 100644
> --- a/arch/arm/mach-s5pv210/clock.c
> +++ b/arch/arm/mach-s5pv210/clock.c
> @@ -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.
>
>
>> 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.
>
>
> 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.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
@ 2013-02-27 10:51     ` Inderpal Singh
  0 siblings, 0 replies; 23+ messages in thread
From: Inderpal Singh @ 2013-02-27 10:51 UTC (permalink / raw)
  To: linux-arm-kernel

On 27 February 2013 02:52, Sylwester Nawrocki
<sylvester.nawrocki@gmail.com> wrote:
> On 02/22/2013 01:00 PM, Lonsn wrote:
>>
>> 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
>
>
> 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 <inderpal.singh@linaro.org>
> 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.
>
>     Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
>     Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
>     Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
>
> commit faf6fbc6f2ca3b34bf464a8bb079a998e571957c
> Author: Inderpal Singh <inderpal.singh@linaro.org>
> 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.
>
>     Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
>     Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
>     Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
>
> 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

> Please try the following change:
>
> 8<--------------------
> diff --git a/arch/arm/mach-s5pv210/clock.c b/arch/arm/mach-s5pv210/clock.c
> index fcdf52d..87c7d3f 100644
> --- a/arch/arm/mach-s5pv210/clock.c
> +++ b/arch/arm/mach-s5pv210/clock.c
> @@ -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.
>
>
>> 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.
>
>
> 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.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
  2013-02-27 10:51     ` Inderpal Singh
@ 2013-02-27 11:22       ` Sylwester Nawrocki
  -1 siblings, 0 replies; 23+ messages in thread
From: Sylwester Nawrocki @ 2013-02-27 11:22 UTC (permalink / raw)
  To: Inderpal Singh
  Cc: Sylwester Nawrocki, Lonsn, linux-samsung-soc, linux-media,
	Boojin Kim, linux-arm-kernel

On 02/27/2013 11:51 AM, Inderpal Singh wrote:
> On 27 February 2013 02:52, Sylwester Nawrocki
> <sylvester.nawrocki@gmail.com> wrote:
>> On 02/22/2013 01:00 PM, Lonsn wrote:
>>>
>>> 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
>>
>>
>> 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 <inderpal.singh@linaro.org>
>> 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.
>>
>>     Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
>>     Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
>>     Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
>>
>> commit faf6fbc6f2ca3b34bf464a8bb079a998e571957c
>> Author: Inderpal Singh <inderpal.singh@linaro.org>
>> 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.
>>
>>     Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
>>     Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
>>     Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
>>
>> 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.

> @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

^ permalink raw reply	[flat|nested] 23+ messages in thread

* SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
@ 2013-02-27 11:22       ` Sylwester Nawrocki
  0 siblings, 0 replies; 23+ messages in thread
From: Sylwester Nawrocki @ 2013-02-27 11:22 UTC (permalink / raw)
  To: linux-arm-kernel

On 02/27/2013 11:51 AM, Inderpal Singh wrote:
> On 27 February 2013 02:52, Sylwester Nawrocki
> <sylvester.nawrocki@gmail.com> wrote:
>> On 02/22/2013 01:00 PM, Lonsn wrote:
>>>
>>> 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
>>
>>
>> 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 <inderpal.singh@linaro.org>
>> 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.
>>
>>     Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
>>     Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
>>     Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
>>
>> commit faf6fbc6f2ca3b34bf464a8bb079a998e571957c
>> Author: Inderpal Singh <inderpal.singh@linaro.org>
>> 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.
>>
>>     Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
>>     Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
>>     Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
>>
>> 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.

> @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

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
  2013-02-26 20:32     ` Sylwester Nawrocki
@ 2013-02-27 15:13       ` Lonsn
  2013-02-27 15:48           ` Lonsn
  0 siblings, 1 reply; 23+ messages in thread
From: Lonsn @ 2013-02-27 15:13 UTC (permalink / raw)
  To: Sylwester Nawrocki; +Cc: linux-samsung-soc, linux-media

> On 02/26/2013 09:07 PM, Sylwester Nawrocki wrote:
>> Hi Lonsn,
>>
>> On 02/26/2013 01:59 PM, Lonsn wrote:
>>> 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?
>>
>> 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.
>
> To build the kernel with s3c_device_i2c3 S3C_DEV_I2C3 and
> S5PV210_SETUP_I2C3
> need to be selected in Kconfig, e.g.
>
> diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig
> index 92ad72f..51ce100 100644
> --- a/arch/arm/mach-s5pv210/Kconfig
> +++ b/arch/arm/mach-s5pv210/Kconfig
> @@ -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
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.



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
  2013-02-27 10:51     ` Inderpal Singh
@ 2013-02-27 15:22       ` Lonsn
  -1 siblings, 0 replies; 23+ messages in thread
From: Lonsn @ 2013-02-27 15:22 UTC (permalink / raw)
  To: Inderpal Singh
  Cc: Sylwester Nawrocki, linux-samsung-soc, linux-media, Boojin Kim,
	linux-arm-kernel

于 2013/2/27 18:51, Inderpal Singh 写道:
> On 27 February 2013 02:52, Sylwester Nawrocki
> <sylvester.nawrocki@gmail.com> wrote:
>> On 02/22/2013 01:00 PM, Lonsn wrote:
>>>
>>> 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
>>
>>
>> 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 <inderpal.singh@linaro.org>
>> 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.
>>
>>      Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
>>      Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
>>      Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
>>
>> commit faf6fbc6f2ca3b34bf464a8bb079a998e571957c
>> Author: Inderpal Singh <inderpal.singh@linaro.org>
>> 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.
>>
>>      Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
>>      Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
>>      Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
>>
>> 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?

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
------------------------------------------>
>
> Thanks,
> Inder
>
>> Please try the following change:
>>
>> 8<--------------------
>> diff --git a/arch/arm/mach-s5pv210/clock.c b/arch/arm/mach-s5pv210/clock.c
>> index fcdf52d..87c7d3f 100644
>> --- a/arch/arm/mach-s5pv210/clock.c
>> +++ b/arch/arm/mach-s5pv210/clock.c
>> @@ -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.
>>
>>
>>> 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.
>>
>>
>> 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.
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,



^ permalink raw reply	[flat|nested] 23+ messages in thread

* SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
@ 2013-02-27 15:22       ` Lonsn
  0 siblings, 0 replies; 23+ messages in thread
From: Lonsn @ 2013-02-27 15:22 UTC (permalink / raw)
  To: linux-arm-kernel

? 2013/2/27 18:51, Inderpal Singh ??:
> On 27 February 2013 02:52, Sylwester Nawrocki
> <sylvester.nawrocki@gmail.com> wrote:
>> On 02/22/2013 01:00 PM, Lonsn wrote:
>>>
>>> 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
>>
>>
>> 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 <inderpal.singh@linaro.org>
>> 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.
>>
>>      Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
>>      Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
>>      Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
>>
>> commit faf6fbc6f2ca3b34bf464a8bb079a998e571957c
>> Author: Inderpal Singh <inderpal.singh@linaro.org>
>> 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.
>>
>>      Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
>>      Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
>>      Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
>>
>> 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?

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
------------------------------------------>
>
> Thanks,
> Inder
>
>> Please try the following change:
>>
>> 8<--------------------
>> diff --git a/arch/arm/mach-s5pv210/clock.c b/arch/arm/mach-s5pv210/clock.c
>> index fcdf52d..87c7d3f 100644
>> --- a/arch/arm/mach-s5pv210/clock.c
>> +++ b/arch/arm/mach-s5pv210/clock.c
>> @@ -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.
>>
>>
>>> 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.
>>
>>
>> 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.
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,

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
  2013-02-27 11:22       ` Sylwester Nawrocki
@ 2013-02-27 15:32         ` Inderpal Singh
  -1 siblings, 0 replies; 23+ messages in thread
From: Inderpal Singh @ 2013-02-27 15:32 UTC (permalink / raw)
  To: Sylwester Nawrocki
  Cc: Sylwester Nawrocki, Lonsn, linux-samsung-soc, linux-media,
	Boojin Kim, linux-arm-kernel

On 27 February 2013 16:52, Sylwester Nawrocki <s.nawrocki@samsung.com> wrote:
> On 02/27/2013 11:51 AM, Inderpal Singh wrote:
>> On 27 February 2013 02:52, Sylwester Nawrocki
>> <sylvester.nawrocki@gmail.com> wrote:
>>> On 02/22/2013 01:00 PM, Lonsn wrote:
>>>>
>>>> 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
>>>
>>>
>>> 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 <inderpal.singh@linaro.org>
>>> 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.
>>>
>>>     Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
>>>     Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
>>>     Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
>>>
>>> commit faf6fbc6f2ca3b34bf464a8bb079a998e571957c
>>> Author: Inderpal Singh <inderpal.singh@linaro.org>
>>> 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.
>>>
>>>     Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
>>>     Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
>>>     Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
>>>
>>> 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.
>

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

>> @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

^ permalink raw reply	[flat|nested] 23+ messages in thread

* SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
@ 2013-02-27 15:32         ` Inderpal Singh
  0 siblings, 0 replies; 23+ messages in thread
From: Inderpal Singh @ 2013-02-27 15:32 UTC (permalink / raw)
  To: linux-arm-kernel

On 27 February 2013 16:52, Sylwester Nawrocki <s.nawrocki@samsung.com> wrote:
> On 02/27/2013 11:51 AM, Inderpal Singh wrote:
>> On 27 February 2013 02:52, Sylwester Nawrocki
>> <sylvester.nawrocki@gmail.com> wrote:
>>> On 02/22/2013 01:00 PM, Lonsn wrote:
>>>>
>>>> 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
>>>
>>>
>>> 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 <inderpal.singh@linaro.org>
>>> 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.
>>>
>>>     Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
>>>     Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
>>>     Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
>>>
>>> commit faf6fbc6f2ca3b34bf464a8bb079a998e571957c
>>> Author: Inderpal Singh <inderpal.singh@linaro.org>
>>> 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.
>>>
>>>     Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
>>>     Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
>>>     Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
>>>
>>> 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.
>

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

>> @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

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
  2013-02-27 15:13       ` Lonsn
@ 2013-02-27 15:48           ` Lonsn
  0 siblings, 0 replies; 23+ messages in thread
From: Lonsn @ 2013-02-27 15:48 UTC (permalink / raw)
  Cc: Sylwester Nawrocki, linux-samsung-soc, linux-media

于 2013/2/27 23:13, Lonsn 写道:
>> On 02/26/2013 09:07 PM, Sylwester Nawrocki wrote:
>>> Hi Lonsn,
>>>
>>> On 02/26/2013 01:59 PM, Lonsn wrote:
>>>> 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?
>>>
>>> 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.
>>
>> To build the kernel with s3c_device_i2c3 S3C_DEV_I2C3 and
>> S5PV210_SETUP_I2C3
>> need to be selected in Kconfig, e.g.
>>
>> diff --git a/arch/arm/mach-s5pv210/Kconfig
>> b/arch/arm/mach-s5pv210/Kconfig
>> index 92ad72f..51ce100 100644
>> --- a/arch/arm/mach-s5pv210/Kconfig
>> +++ b/arch/arm/mach-s5pv210/Kconfig
>> @@ -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
> 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.
>
>
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#

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
@ 2013-02-27 15:48           ` Lonsn
  0 siblings, 0 replies; 23+ messages in thread
From: Lonsn @ 2013-02-27 15:48 UTC (permalink / raw)
  Cc: Sylwester Nawrocki, linux-samsung-soc, linux-media

于 2013/2/27 23:13, Lonsn 写道:
>> On 02/26/2013 09:07 PM, Sylwester Nawrocki wrote:
>>> Hi Lonsn,
>>>
>>> On 02/26/2013 01:59 PM, Lonsn wrote:
>>>> 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?
>>>
>>> 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.
>>
>> To build the kernel with s3c_device_i2c3 S3C_DEV_I2C3 and
>> S5PV210_SETUP_I2C3
>> need to be selected in Kconfig, e.g.
>>
>> diff --git a/arch/arm/mach-s5pv210/Kconfig
>> b/arch/arm/mach-s5pv210/Kconfig
>> index 92ad72f..51ce100 100644
>> --- a/arch/arm/mach-s5pv210/Kconfig
>> +++ b/arch/arm/mach-s5pv210/Kconfig
>> @@ -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
> 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.
>
>
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#

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
  2013-02-27 15:48           ` Lonsn
  (?)
@ 2013-02-27 21:41           ` Sylwester Nawrocki
  2013-02-28 12:28             ` Lonsn
  -1 siblings, 1 reply; 23+ messages in thread
From: Sylwester Nawrocki @ 2013-02-27 21:41 UTC (permalink / raw)
  To: Lonsn; +Cc: linux-samsung-soc, linux-media

On 02/27/2013 04:48 PM, Lonsn wrote:
> 于 2013/2/27 23:13, Lonsn 写道:
>>> On 02/26/2013 09:07 PM, Sylwester Nawrocki wrote:
>>>> On 02/26/2013 01:59 PM, Lonsn wrote:
[...]
>> 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

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 ?

>> root@linaro-developer:/opt#
>> Maybe I still miss some configuration in mach-smdkv210.c.

I don't think so, it all looks more or less OK now :)

> 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

Yes, it must definitely be incorrect video node. Only the graph0/1
devices support RGB.

Regards,
Sylwester

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
  2013-02-27 21:41           ` Sylwester Nawrocki
@ 2013-02-28 12:28             ` Lonsn
  2013-02-28 15:09                 ` Lonsn
  0 siblings, 1 reply; 23+ messages in thread
From: Lonsn @ 2013-02-28 12:28 UTC (permalink / raw)
  To: Sylwester Nawrocki; +Cc: linux-samsung-soc, linux-media

于 2013/2/28 5:41, Sylwester Nawrocki 写道:
> On 02/27/2013 04:48 PM, Lonsn wrote:
>> 于 2013/2/27 23:13, Lonsn 写道:
>>>> On 02/26/2013 09:07 PM, Sylwester Nawrocki wrote:
>>>>> On 02/26/2013 01:59 PM, Lonsn wrote:
> [...]
>>> 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
>
> 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 ?
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
>
>>> root@linaro-developer:/opt#
>>> Maybe I still miss some configuration in mach-smdkv210.c.
>
> I don't think so, it all looks more or less OK now :)
>
>> 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
>
> Yes, it must definitely be incorrect video node. Only the graph0/1
> devices support RGB.
>
> Regards,
> Sylwester


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
  2013-02-28 12:28             ` Lonsn
@ 2013-02-28 15:09                 ` Lonsn
  0 siblings, 0 replies; 23+ messages in thread
From: Lonsn @ 2013-02-28 15:09 UTC (permalink / raw)
  Cc: Sylwester Nawrocki, linux-samsung-soc, linux-media

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,

于 2013/2/28 20:28, Lonsn 写道:
> 于 2013/2/28 5:41, Sylwester Nawrocki 写道:
>> On 02/27/2013 04:48 PM, Lonsn wrote:
>>> 于 2013/2/27 23:13, Lonsn 写道:
>>>>> On 02/26/2013 09:07 PM, Sylwester Nawrocki wrote:
>>>>>> On 02/26/2013 01:59 PM, Lonsn wrote:
>> [...]
>>>> 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
>>
>> 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 ?
> 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
>>
>>>> root@linaro-developer:/opt#
>>>> Maybe I still miss some configuration in mach-smdkv210.c.
>>
>> I don't think so, it all looks more or less OK now :)
>>
>>> 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
>>
>> Yes, it must definitely be incorrect video node. Only the graph0/1
>> devices support RGB.
>>
>> Regards,
>> Sylwester
>


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
@ 2013-02-28 15:09                 ` Lonsn
  0 siblings, 0 replies; 23+ messages in thread
From: Lonsn @ 2013-02-28 15:09 UTC (permalink / raw)
  Cc: Sylwester Nawrocki, linux-samsung-soc, linux-media

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,

于 2013/2/28 20:28, Lonsn 写道:
> 于 2013/2/28 5:41, Sylwester Nawrocki 写道:
>> On 02/27/2013 04:48 PM, Lonsn wrote:
>>> 于 2013/2/27 23:13, Lonsn 写道:
>>>>> On 02/26/2013 09:07 PM, Sylwester Nawrocki wrote:
>>>>>> On 02/26/2013 01:59 PM, Lonsn wrote:
>> [...]
>>>> 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
>>
>> 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 ?
> 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
>>
>>>> root@linaro-developer:/opt#
>>>> Maybe I still miss some configuration in mach-smdkv210.c.
>>
>> I don't think so, it all looks more or less OK now :)
>>
>>> 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
>>
>> Yes, it must definitely be incorrect video node. Only the graph0/1
>> devices support RGB.
>>
>> Regards,
>> Sylwester
>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
  2013-02-28 15:09                 ` Lonsn
  (?)
@ 2013-02-28 15:54                 ` Sylwester Nawrocki
  -1 siblings, 0 replies; 23+ messages in thread
From: Sylwester Nawrocki @ 2013-02-28 15:54 UTC (permalink / raw)
  To: Lonsn; +Cc: Sylwester Nawrocki, linux-samsung-soc, linux-media

On 02/28/2013 04:09 PM, Lonsn wrote:
> 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.

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

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2013-02-28 15:54 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-02-22 12:00 SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed) Lonsn
2013-02-26 12:59 ` Lonsn
2013-02-26 12:59   ` Lonsn
2013-02-26 20:07   ` Sylwester Nawrocki
2013-02-26 20:32     ` Sylwester Nawrocki
2013-02-27 15:13       ` Lonsn
2013-02-27 15:48         ` Lonsn
2013-02-27 15:48           ` Lonsn
2013-02-27 21:41           ` Sylwester Nawrocki
2013-02-28 12:28             ` Lonsn
2013-02-28 15:09               ` Lonsn
2013-02-28 15:09                 ` Lonsn
2013-02-28 15:54                 ` Sylwester Nawrocki
2013-02-26 21:22 ` Sylwester Nawrocki
2013-02-26 21:22   ` Sylwester Nawrocki
2013-02-27 10:51   ` Inderpal Singh
2013-02-27 10:51     ` Inderpal Singh
2013-02-27 11:22     ` Sylwester Nawrocki
2013-02-27 11:22       ` Sylwester Nawrocki
2013-02-27 15:32       ` Inderpal Singh
2013-02-27 15:32         ` Inderpal Singh
2013-02-27 15:22     ` Lonsn
2013-02-27 15:22       ` Lonsn

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.