Re: SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.


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


[Index of Archives]     [Linux SoC Development]     [Linux Rockchip Development]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Linux SCSI]     [Yosemite News]

  Powered by Linux