diff options
Diffstat (limited to 'extras/recipes-kernel/linux/linux-omap-psp-2.6.32/cam/0042-omap3beagle-camera-Further-clode-cleanup.patch')
-rw-r--r-- | extras/recipes-kernel/linux/linux-omap-psp-2.6.32/cam/0042-omap3beagle-camera-Further-clode-cleanup.patch | 237 |
1 files changed, 237 insertions, 0 deletions
diff --git a/extras/recipes-kernel/linux/linux-omap-psp-2.6.32/cam/0042-omap3beagle-camera-Further-clode-cleanup.patch b/extras/recipes-kernel/linux/linux-omap-psp-2.6.32/cam/0042-omap3beagle-camera-Further-clode-cleanup.patch new file mode 100644 index 00000000..8855e6d6 --- /dev/null +++ b/extras/recipes-kernel/linux/linux-omap-psp-2.6.32/cam/0042-omap3beagle-camera-Further-clode-cleanup.patch @@ -0,0 +1,237 @@ +From 7f6cbc648dcf2d7805f12e7b56bb2c7b602ca61d Mon Sep 17 00:00:00 2001 +From: Vaibhav Hiremath <hvaibhav@ti.com> +Date: Wed, 14 Jul 2010 19:07:06 +0530 +Subject: [PATCH 42/75] omap3beagle-camera: Further clode cleanup + +Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com> +--- + arch/arm/mach-omap2/board-omap3beagle-camera.c | 89 ++++-------------------- + drivers/media/video/isp/isp.h | 13 ++++ + 2 files changed, 28 insertions(+), 74 deletions(-) + +diff --git a/arch/arm/mach-omap2/board-omap3beagle-camera.c b/arch/arm/mach-omap2/board-omap3beagle-camera.c +index 8d4e5ab..90eadd0 100644 +--- a/arch/arm/mach-omap2/board-omap3beagle-camera.c ++++ b/arch/arm/mach-omap2/board-omap3beagle-camera.c +@@ -46,21 +46,19 @@ + #include "mux.h" + #include "board-omap3beagle-camera.h" + +-#define MODULE_NAME "omap3beaglelmb" ++#define MODULE_NAME "omap3beaglelmb" + +-#define CAM_USE_XCLKA 0 ++#define CAM_USE_XCLKA 0 + +-#define ISP_MT9V113_MCLK 216000000 ++#define ISP_MT9V113_MCLK 216000000 + +-#define LEOPARD_RESET_GPIO 98 ++#define LEOPARD_RESET_GPIO 98 + + static struct regulator *beagle_mt9v113_1_8v1; + static struct regulator *beagle_mt9v113_1_8v2; + +-#if defined(CONFIG_VIDEO_MT9V113) || defined(CONFIG_VIDEO_MT9V113_MODULE) +- + /* Arbitrary memory handling limit */ +-#define MT9V113_BIGGEST_FRAME_BYTE_SIZE PAGE_ALIGN(2048 * 1536 * 4) ++#define MT9V113_MAX_FRAME_SIZE PAGE_ALIGN(640 * 480 * 4) + + static struct isp_interface_config mt9v113_if_config = { + .ccdc_par_ser = ISP_PARLL, +@@ -77,21 +75,6 @@ static struct isp_interface_config mt9v113_if_config = { + }; + + static struct v4l2_ifparm mt9v113_ifparm_s = { +-#if 0 +- .if_type = V4L2_IF_TYPE_RAW, +- .u = { +- .raw = { +- .frame_start_on_rising_vs = 1, +- .bt_sync_correct = 0, +- .swap = 0, +- .latch_clk_inv = 0, +- .nobt_hs_inv = 0, /* active high */ +- .nobt_vs_inv = 0, /* active high */ +- .clock_min = MT9V113_CLK_MIN, +- .clock_max = MT9V113_CLK_MAX, +- }, +- }, +-#else + .if_type = V4L2_IF_TYPE_YCbCr, + .u = { + .ycbcr = { +@@ -99,13 +82,12 @@ static struct v4l2_ifparm mt9v113_ifparm_s = { + .bt_sync_correct = 0, + .swap = 0, + .latch_clk_inv = 0, +- .nobt_hs_inv = 0, /* active high */ +- .nobt_vs_inv = 0, /* active high */ ++ .nobt_hs_inv = 0, ++ .nobt_vs_inv = 0, + .clock_min = MT9V113_CLK_MIN, + .clock_max = MT9V113_CLK_MAX, + }, + }, +-#endif + }; + + /** +@@ -124,16 +106,14 @@ static int mt9v113_ifparm(struct v4l2_ifparm *p) + return 0; + } + +-#if defined(CONFIG_VIDEO_OMAP3) || defined(CONFIG_VIDEO_OMAP3_MODULE) + static struct omap34xxcam_hw_config mt9v113_hwc = { + .dev_index = 0, + .dev_minor = 0, + .dev_type = OMAP34XXCAM_SLAVE_SENSOR, + .u.sensor.sensor_isp = 1, +- .u.sensor.capture_mem = MT9V113_BIGGEST_FRAME_BYTE_SIZE * 2, ++ .u.sensor.capture_mem = MT9V113_MAX_FRAME_SIZE * 2, + .u.sensor.ival_default = { 1, 10 }, + }; +-#endif + + /** + * @brief mt9v113_set_prv_data - Returns mt9v113 omap34xx driver private data +@@ -144,7 +124,6 @@ static struct omap34xxcam_hw_config mt9v113_hwc = { + */ + static int mt9v113_set_prv_data(void *priv) + { +-#if defined(CONFIG_VIDEO_OMAP3) || defined(CONFIG_VIDEO_OMAP3_MODULE) + struct omap34xxcam_hw_config *hwc = priv; + + if (priv == NULL) +@@ -154,10 +133,8 @@ static int mt9v113_set_prv_data(void *priv) + hwc->dev_index = mt9v113_hwc.dev_index; + hwc->dev_minor = mt9v113_hwc.dev_minor; + hwc->dev_type = mt9v113_hwc.dev_type; ++ + return 0; +-#else +- return -EINVAL; +-#endif + } + + /** +@@ -172,21 +149,22 @@ static int mt9v113_power_set(struct v4l2_int_device *s, enum v4l2_power power) + struct omap34xxcam_videodev *vdev = s->u.slave->master->priv; + + switch (power) { +- case V4L2_POWER_OFF: + case V4L2_POWER_STANDBY: ++ break; ++ ++ case V4L2_POWER_OFF: + isp_set_xclk(vdev->cam->isp, 0, CAM_USE_XCLKA); + + if (regulator_is_enabled(beagle_mt9v113_1_8v1)) + regulator_disable(beagle_mt9v113_1_8v1); + if (regulator_is_enabled(beagle_mt9v113_1_8v2)) + regulator_disable(beagle_mt9v113_1_8v2); ++ + break; + + case V4L2_POWER_ON: +-#if defined(CONFIG_VIDEO_OMAP3) || defined(CONFIG_VIDEO_OMAP3_MODULE) +- isp_configure_interface(vdev->cam->isp, &mt9v113_if_config); +-#endif + ++ isp_configure_interface(vdev->cam->isp, &mt9v113_if_config); + /* Set RESET_BAR to 0 */ + gpio_set_value(LEOPARD_RESET_GPIO, 0); + +@@ -216,8 +194,8 @@ static int mt9v113_power_set(struct v4l2_int_device *s, enum v4l2_power power) + + default: + return -ENODEV; +- break; + } ++ + return 0; + } + +@@ -232,9 +210,6 @@ struct mt9v113_platform_data mt9v113_pdata = { + .vs_polarity = 1, /* 0 - Active low, 1- Active high */ + }; + +-#endif /* #ifdef CONFIG_VIDEO_MT9V113 */ +- +- + static int beagle_cam_probe(struct platform_device *pdev) + { + beagle_mt9v113_1_8v1 = regulator_get(&pdev->dev, "vaux3_1"); +@@ -277,40 +252,6 @@ static int beagle_cam_remove(struct platform_device *pdev) + + gpio_free(LEOPARD_RESET_GPIO); + +- /* MUX init */ +- omap_ctrl_writew(OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0, +- 0x10C); /* CAM_HS */ +- omap_ctrl_writew(OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0, +- 0x10E); /* CAM_VS */ +- omap_ctrl_writew(OMAP_PIN_OUTPUT | OMAP_MUX_MODE0, +- 0x110); /* CAM_XCLKA */ +- omap_ctrl_writew(OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0, +- 0x112); /* CAM_PCLK */ +- omap_ctrl_writew(OMAP_PIN_INPUT | OMAP_MUX_MODE0, +- 0x116); /* CAM_D0 */ +- omap_ctrl_writew(OMAP_PIN_INPUT | OMAP_MUX_MODE0, +- 0x118); /* CAM_D1 */ +- omap_ctrl_writew(OMAP_PIN_INPUT | OMAP_MUX_MODE0, +- 0x11A); /* CAM_D2 */ +- omap_ctrl_writew(OMAP_PIN_INPUT | OMAP_MUX_MODE0, +- 0x11C); /* CAM_D3 */ +- omap_ctrl_writew(OMAP_PIN_INPUT | OMAP_MUX_MODE0, +- 0x11E); /* CAM_D4 */ +- omap_ctrl_writew(OMAP_PIN_INPUT | OMAP_MUX_MODE0, +- 0x120); /* CAM_D5 */ +- omap_ctrl_writew(OMAP_PIN_INPUT | OMAP_MUX_MODE0, +- 0x122); /* CAM_D6 */ +- omap_ctrl_writew(OMAP_PIN_INPUT | OMAP_MUX_MODE0, +- 0x124); /* CAM_D7 */ +- omap_ctrl_writew(OMAP_PIN_INPUT | OMAP_MUX_MODE0, +- 0x126); /* CAM_D8 */ +- omap_ctrl_writew(OMAP_PIN_INPUT | OMAP_MUX_MODE0, +- 0x128); /* CAM_D9 */ +- omap_ctrl_writew(OMAP_PIN_INPUT | OMAP_MUX_MODE0, +- 0x12A); /* CAM_D10 */ +- omap_ctrl_writew(OMAP_PIN_INPUT | OMAP_MUX_MODE0, +- 0x12C); /* CAM_D11 */ +- + return 0; + } + +diff --git a/drivers/media/video/isp/isp.h b/drivers/media/video/isp/isp.h +index 85c3fa9..4929fad 100644 +--- a/drivers/media/video/isp/isp.h ++++ b/drivers/media/video/isp/isp.h +@@ -482,10 +482,23 @@ int isp_set_callback(struct device *dev, enum isp_callback_type type, + + int isp_unset_callback(struct device *dev, enum isp_callback_type type); + ++#if defined(CONFIG_VIDEO_OMAP3_ISP) + u32 isp_set_xclk(struct device *dev, u32 xclk, u8 xclksel); + + int isp_configure_interface(struct device *dev, + struct isp_interface_config *config); ++#else ++static inline u32 isp_set_xclk(struct device *dev, u32 xclk, u8 xclksel) ++{ ++ return 0; ++} ++static inline int isp_configure_interface(struct device *dev, ++ struct isp_interface_config *config) ++{ ++ return 0; ++} ++ ++#endif + + struct device *isp_get(void); + +-- +1.6.6.1 + |