Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (116 commits) V4L/DVB (13698): pms: replace asm/uaccess.h to linux/uaccess.h V4L/DVB (13690): radio/si470x: #include <sched.h> V4L/DVB (13688): au8522: modify the attributes of local filter coefficients V4L/DVB (13687): cx231xx: use NULL when pointer is needed V4L/DVB: Davinci VPFE Capture: remove unused #include <linux/version.h> V4L/DVB (13685): Correct code taking the size of a pointer V4L/DVB (13684): Fix some cut-and-paste noise in dib0090.h V4L/DVB (13683): sanio-ms: clean up init, exit and id_table V4L/DVB (13682): dib8000: make some constant static V4L/DVB: lgs8gxx: Use shifts rather than multiply/divide when possible V4L/DVB (13680b): DocBook/media: create links for included sources V4L/DVB (13680a): DocBook/media: copy images after building HTML V4L/DVB (13678): Add support for yet another DvbWorld, TeVii and Prof USB devices V4L/DVB (13676): configurable IRQ mode on NetUP Dual DVB-S2 CI; IRQ from CAM processing (CI interface works faster) V4L/DVB (13674): stv090x: Add DiSEqC envelope mode V4L/DVB (13673): lnbp21: Implement 22 kHz tone control V4L/DVB (13671): sh_mobile_ceu_camera: Remove frame size page alignment V4L/DVB (13670): soc-camera: Add mt9t112 camera driver V4L/DVB (13669): tw9910: Add sync polarity support V4L/DVB (13668): tw9910: remove cropping ...
This commit is contained in:
@@ -316,20 +316,23 @@ static struct soc_camera_platform_info camera_info = {
|
||||
.format_name = "UYVY",
|
||||
.format_depth = 16,
|
||||
.format = {
|
||||
.pixelformat = V4L2_PIX_FMT_UYVY,
|
||||
.code = V4L2_MBUS_FMT_YUYV8_2X8_BE,
|
||||
.colorspace = V4L2_COLORSPACE_SMPTE170M,
|
||||
.field = V4L2_FIELD_NONE,
|
||||
.width = 640,
|
||||
.height = 480,
|
||||
},
|
||||
.bus_param = SOCAM_PCLK_SAMPLE_RISING | SOCAM_HSYNC_ACTIVE_HIGH |
|
||||
SOCAM_VSYNC_ACTIVE_HIGH | SOCAM_MASTER | SOCAM_DATAWIDTH_8,
|
||||
.set_capture = camera_set_capture,
|
||||
.link = {
|
||||
.bus_id = 0,
|
||||
.add_device = ap325rxa_camera_add,
|
||||
.del_device = ap325rxa_camera_del,
|
||||
.module_name = "soc_camera_platform",
|
||||
},
|
||||
};
|
||||
|
||||
struct soc_camera_link camera_link = {
|
||||
.bus_id = 0,
|
||||
.add_device = ap325rxa_camera_add,
|
||||
.del_device = ap325rxa_camera_del,
|
||||
.module_name = "soc_camera_platform",
|
||||
.priv = &camera_info,
|
||||
};
|
||||
|
||||
static void dummy_release(struct device *dev)
|
||||
@@ -347,7 +350,7 @@ static struct platform_device camera_device = {
|
||||
static int ap325rxa_camera_add(struct soc_camera_link *icl,
|
||||
struct device *dev)
|
||||
{
|
||||
if (icl != &camera_info.link || camera_probe() <= 0)
|
||||
if (icl != &camera_link || camera_probe() <= 0)
|
||||
return -ENODEV;
|
||||
|
||||
camera_info.dev = dev;
|
||||
@@ -357,7 +360,7 @@ static int ap325rxa_camera_add(struct soc_camera_link *icl,
|
||||
|
||||
static void ap325rxa_camera_del(struct soc_camera_link *icl)
|
||||
{
|
||||
if (icl != &camera_info.link)
|
||||
if (icl != &camera_link)
|
||||
return;
|
||||
|
||||
platform_device_unregister(&camera_device);
|
||||
@@ -470,13 +473,15 @@ static struct ov772x_camera_info ov7725_info = {
|
||||
.buswidth = SOCAM_DATAWIDTH_8,
|
||||
.flags = OV772X_FLAG_VFLIP | OV772X_FLAG_HFLIP,
|
||||
.edgectrl = OV772X_AUTO_EDGECTRL(0xf, 0),
|
||||
.link = {
|
||||
.bus_id = 0,
|
||||
.power = ov7725_power,
|
||||
.board_info = &ap325rxa_i2c_camera[0],
|
||||
.i2c_adapter_id = 0,
|
||||
.module_name = "ov772x",
|
||||
},
|
||||
};
|
||||
|
||||
static struct soc_camera_link ov7725_link = {
|
||||
.bus_id = 0,
|
||||
.power = ov7725_power,
|
||||
.board_info = &ap325rxa_i2c_camera[0],
|
||||
.i2c_adapter_id = 0,
|
||||
.module_name = "ov772x",
|
||||
.priv = &ov7725_info,
|
||||
};
|
||||
|
||||
static struct platform_device ap325rxa_camera[] = {
|
||||
@@ -484,13 +489,13 @@ static struct platform_device ap325rxa_camera[] = {
|
||||
.name = "soc-camera-pdrv",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = &ov7725_info.link,
|
||||
.platform_data = &ov7725_link,
|
||||
},
|
||||
}, {
|
||||
.name = "soc-camera-pdrv",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &camera_info.link,
|
||||
.platform_data = &camera_link,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
@@ -19,6 +19,7 @@
|
||||
#include <linux/input/sh_keysc.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/usb/r8a66597.h>
|
||||
#include <media/rj54n1cb0c.h>
|
||||
#include <media/soc_camera.h>
|
||||
#include <media/sh_mobile_ceu.h>
|
||||
#include <video/sh_mobile_lcdc.h>
|
||||
@@ -255,6 +256,9 @@ static struct i2c_board_info kfr2r09_i2c_camera = {
|
||||
|
||||
static struct clk *camera_clk;
|
||||
|
||||
/* set VIO_CKO clock to 25MHz */
|
||||
#define CEU_MCLK_FREQ 25000000
|
||||
|
||||
#define DRVCRB 0xA405018C
|
||||
static int camera_power(struct device *dev, int mode)
|
||||
{
|
||||
@@ -267,8 +271,7 @@ static int camera_power(struct device *dev, int mode)
|
||||
if (IS_ERR(camera_clk))
|
||||
return PTR_ERR(camera_clk);
|
||||
|
||||
/* set VIO_CKO clock to 25MHz */
|
||||
rate = clk_round_rate(camera_clk, 25000000);
|
||||
rate = clk_round_rate(camera_clk, CEU_MCLK_FREQ);
|
||||
ret = clk_set_rate(camera_clk, rate);
|
||||
if (ret < 0)
|
||||
goto eclkrate;
|
||||
@@ -318,11 +321,17 @@ eclkrate:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static struct rj54n1_pdata rj54n1_priv = {
|
||||
.mclk_freq = CEU_MCLK_FREQ,
|
||||
.ioctl_high = false,
|
||||
};
|
||||
|
||||
static struct soc_camera_link rj54n1_link = {
|
||||
.power = camera_power,
|
||||
.board_info = &kfr2r09_i2c_camera,
|
||||
.i2c_adapter_id = 1,
|
||||
.module_name = "rj54n1cb0c",
|
||||
.priv = &rj54n1_priv,
|
||||
};
|
||||
|
||||
static struct platform_device kfr2r09_camera = {
|
||||
|
@@ -432,23 +432,27 @@ static struct i2c_board_info migor_i2c_camera[] = {
|
||||
|
||||
static struct ov772x_camera_info ov7725_info = {
|
||||
.buswidth = SOCAM_DATAWIDTH_8,
|
||||
.link = {
|
||||
.power = ov7725_power,
|
||||
.board_info = &migor_i2c_camera[0],
|
||||
.i2c_adapter_id = 0,
|
||||
.module_name = "ov772x",
|
||||
},
|
||||
};
|
||||
|
||||
static struct soc_camera_link ov7725_link = {
|
||||
.power = ov7725_power,
|
||||
.board_info = &migor_i2c_camera[0],
|
||||
.i2c_adapter_id = 0,
|
||||
.module_name = "ov772x",
|
||||
.priv = &ov7725_info,
|
||||
};
|
||||
|
||||
static struct tw9910_video_info tw9910_info = {
|
||||
.buswidth = SOCAM_DATAWIDTH_8,
|
||||
.mpout = TW9910_MPO_FIELD,
|
||||
.link = {
|
||||
.power = tw9910_power,
|
||||
.board_info = &migor_i2c_camera[1],
|
||||
.i2c_adapter_id = 0,
|
||||
.module_name = "tw9910",
|
||||
}
|
||||
};
|
||||
|
||||
static struct soc_camera_link tw9910_link = {
|
||||
.power = tw9910_power,
|
||||
.board_info = &migor_i2c_camera[1],
|
||||
.i2c_adapter_id = 0,
|
||||
.module_name = "tw9910",
|
||||
.priv = &tw9910_info,
|
||||
};
|
||||
|
||||
static struct platform_device migor_camera[] = {
|
||||
@@ -456,13 +460,13 @@ static struct platform_device migor_camera[] = {
|
||||
.name = "soc-camera-pdrv",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = &ov7725_info.link,
|
||||
.platform_data = &ov7725_link,
|
||||
},
|
||||
}, {
|
||||
.name = "soc-camera-pdrv",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &tw9910_info.link,
|
||||
.platform_data = &tw9910_link,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
Reference in New Issue
Block a user