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 <[email protected]>

---

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)

-- 

Reply via email to