A few dirty hacks to make the camera driver work: - because V4L no longer guarantees that minor numbers provided by the client are actually used, the preview/codec selection mechanism falls apart. We work around this by defaulting to preview when we don't know better. - power up the camera in platform code, not cleanly via power control device. Signed-off-by: Werner Almesberger --- Index: cam/drivers/media/video/s3c_camera_driver.c =================================================================== --- cam.orig/drivers/media/video/s3c_camera_driver.c 2009-03-04 20:52:03.000000000 +0800 +++ cam/drivers/media/video/s3c_camera_driver.c 2009-03-04 20:54:08.000000000 +0800 @@ -74,6 +74,7 @@ default: printk(KERN_ERR "Unknown minor number\n"); + ret = &s3c_fimc[FIMC_PREVIEW_INDEX]; } return ret; Index: cam/arch/arm/mach-s3c6410/mach-om-3d7k.c =================================================================== --- cam.orig/arch/arm/mach-s3c6410/mach-om-3d7k.c 2009-03-04 20:52:03.000000000 +0800 +++ cam/arch/arm/mach-s3c6410/mach-om-3d7k.c 2009-03-04 20:56:40.000000000 +0800 @@ -1025,6 +1025,10 @@ pcf50633_reg_write(pcf, PCF50633_REG_LEDDIM, 0x01); pcf50633_reg_write(pcf, PCF50633_REG_LEDENA, 0x01); + /* @@@ do this properly later - WA */ + pcf50633_reg_write(om_3d7k_pcf, 0x30, 0x21); + pcf50633_reg_write(om_3d7k_pcf, 0x39, 0x13); + pcf50633_reg_write(om_3d7k_pcf, 0x3a, 0x21); } static void om_3d7k_l1k002_pwronoff(int level) --