[media] vpif: Consolidate formats from capture and display
- The ch_params tables in vpif_capture.c and vpif_display.c are moved to a common table in vpif.c. Then it is easier to maintain the table. - The field "fps" is removed from the struct vpif_channel_config_params because it is not used. Signed-off-by: Mats Randgaard <mats.randgaard@cisco.com> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Acked-by : Murali Karicheri <mkaricheri@gmail.com> Acked-by: Manjunath Hadli <manjunath.hadli@ti.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
7036d6a73c
commit
aa44440635
|
@ -41,6 +41,56 @@ spinlock_t vpif_lock;
|
||||||
|
|
||||||
void __iomem *vpif_base;
|
void __iomem *vpif_base;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ch_params: video standard configuration parameters for vpif
|
||||||
|
* The table must include all presets from supported subdevices.
|
||||||
|
*/
|
||||||
|
const struct vpif_channel_config_params ch_params[] = {
|
||||||
|
/* SDTV formats */
|
||||||
|
{
|
||||||
|
.name = "NTSC_M",
|
||||||
|
.width = 720,
|
||||||
|
.height = 480,
|
||||||
|
.frm_fmt = 0,
|
||||||
|
.ycmux_mode = 1,
|
||||||
|
.eav2sav = 268,
|
||||||
|
.sav2eav = 1440,
|
||||||
|
.l1 = 1,
|
||||||
|
.l3 = 23,
|
||||||
|
.l5 = 263,
|
||||||
|
.l7 = 266,
|
||||||
|
.l9 = 286,
|
||||||
|
.l11 = 525,
|
||||||
|
.vsize = 525,
|
||||||
|
.capture_format = 0,
|
||||||
|
.vbi_supported = 1,
|
||||||
|
.hd_sd = 0,
|
||||||
|
.stdid = V4L2_STD_525_60,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "PAL_BDGHIK",
|
||||||
|
.width = 720,
|
||||||
|
.height = 576,
|
||||||
|
.frm_fmt = 0,
|
||||||
|
.ycmux_mode = 1,
|
||||||
|
.eav2sav = 280,
|
||||||
|
.sav2eav = 1440,
|
||||||
|
.l1 = 1,
|
||||||
|
.l3 = 23,
|
||||||
|
.l5 = 311,
|
||||||
|
.l7 = 313,
|
||||||
|
.l9 = 336,
|
||||||
|
.l11 = 624,
|
||||||
|
.vsize = 625,
|
||||||
|
.capture_format = 0,
|
||||||
|
.vbi_supported = 1,
|
||||||
|
.hd_sd = 0,
|
||||||
|
.stdid = V4L2_STD_625_50,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const unsigned int vpif_ch_params_count = ARRAY_SIZE(ch_params);
|
||||||
|
|
||||||
static inline void vpif_wr_bit(u32 reg, u32 bit, u32 val)
|
static inline void vpif_wr_bit(u32 reg, u32 bit, u32 val)
|
||||||
{
|
{
|
||||||
if (val)
|
if (val)
|
||||||
|
|
|
@ -577,7 +577,6 @@ struct vpif_channel_config_params {
|
||||||
char name[VPIF_MAX_NAME]; /* Name of the mode */
|
char name[VPIF_MAX_NAME]; /* Name of the mode */
|
||||||
u16 width; /* Indicates width of the image */
|
u16 width; /* Indicates width of the image */
|
||||||
u16 height; /* Indicates height of the image */
|
u16 height; /* Indicates height of the image */
|
||||||
u8 fps;
|
|
||||||
u8 frm_fmt; /* Indicates whether this is interlaced
|
u8 frm_fmt; /* Indicates whether this is interlaced
|
||||||
* or progressive format */
|
* or progressive format */
|
||||||
u8 ycmux_mode; /* Indicates whether this mode requires
|
u8 ycmux_mode; /* Indicates whether this mode requires
|
||||||
|
@ -594,6 +593,9 @@ struct vpif_channel_config_params {
|
||||||
v4l2_std_id stdid;
|
v4l2_std_id stdid;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern const unsigned int vpif_ch_params_count;
|
||||||
|
extern const struct vpif_channel_config_params ch_params[];
|
||||||
|
|
||||||
struct vpif_video_params;
|
struct vpif_video_params;
|
||||||
struct vpif_params;
|
struct vpif_params;
|
||||||
struct vpif_vbi_params;
|
struct vpif_vbi_params;
|
||||||
|
|
|
@ -81,20 +81,6 @@ static struct vpif_config_params config_params = {
|
||||||
static struct vpif_device vpif_obj = { {NULL} };
|
static struct vpif_device vpif_obj = { {NULL} };
|
||||||
static struct device *vpif_dev;
|
static struct device *vpif_dev;
|
||||||
|
|
||||||
/**
|
|
||||||
* ch_params: video standard configuration parameters for vpif
|
|
||||||
*/
|
|
||||||
static const struct vpif_channel_config_params ch_params[] = {
|
|
||||||
{
|
|
||||||
"NTSC_M", 720, 480, 30, 0, 1, 268, 1440, 1, 23, 263, 266,
|
|
||||||
286, 525, 525, 0, 1, 0, V4L2_STD_525_60,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"PAL_BDGHIK", 720, 576, 25, 0, 1, 280, 1440, 1, 23, 311, 313,
|
|
||||||
336, 624, 625, 0, 1, 0, V4L2_STD_625_50,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* vpif_uservirt_to_phys : translate user/virtual address to phy address
|
* vpif_uservirt_to_phys : translate user/virtual address to phy address
|
||||||
* @virtp: user/virtual address
|
* @virtp: user/virtual address
|
||||||
|
@ -444,7 +430,7 @@ static int vpif_update_std_info(struct channel_obj *ch)
|
||||||
|
|
||||||
std_info = &vpifparams->std_info;
|
std_info = &vpifparams->std_info;
|
||||||
|
|
||||||
for (index = 0; index < ARRAY_SIZE(ch_params); index++) {
|
for (index = 0; index < vpif_ch_params_count; index++) {
|
||||||
config = &ch_params[index];
|
config = &ch_params[index];
|
||||||
if (config->stdid & vid_ch->stdid) {
|
if (config->stdid & vid_ch->stdid) {
|
||||||
memcpy(std_info, config, sizeof(*config));
|
memcpy(std_info, config, sizeof(*config));
|
||||||
|
@ -453,7 +439,7 @@ static int vpif_update_std_info(struct channel_obj *ch)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* standard not found */
|
/* standard not found */
|
||||||
if (index == ARRAY_SIZE(ch_params))
|
if (index == vpif_ch_params_count)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
common->fmt.fmt.pix.width = std_info->width;
|
common->fmt.fmt.pix.width = std_info->width;
|
||||||
|
|
|
@ -85,17 +85,6 @@ static struct vpif_config_params config_params = {
|
||||||
static struct vpif_device vpif_obj = { {NULL} };
|
static struct vpif_device vpif_obj = { {NULL} };
|
||||||
static struct device *vpif_dev;
|
static struct device *vpif_dev;
|
||||||
|
|
||||||
static const struct vpif_channel_config_params ch_params[] = {
|
|
||||||
{
|
|
||||||
"NTSC", 720, 480, 30, 0, 1, 268, 1440, 1, 23, 263, 266,
|
|
||||||
286, 525, 525, 0, 1, 0, V4L2_STD_525_60,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"PAL", 720, 576, 25, 0, 1, 280, 1440, 1, 23, 311, 313,
|
|
||||||
336, 624, 625, 0, 1, 0, V4L2_STD_625_50,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* vpif_uservirt_to_phys: This function is used to convert user
|
* vpif_uservirt_to_phys: This function is used to convert user
|
||||||
* space virtual address to physical address.
|
* space virtual address to physical address.
|
||||||
|
@ -388,7 +377,7 @@ static int vpif_get_std_info(struct channel_obj *ch)
|
||||||
if (!std_info->stdid)
|
if (!std_info->stdid)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
for (index = 0; index < ARRAY_SIZE(ch_params); index++) {
|
for (index = 0; index < vpif_ch_params_count; index++) {
|
||||||
config = &ch_params[index];
|
config = &ch_params[index];
|
||||||
if (config->stdid & std_info->stdid) {
|
if (config->stdid & std_info->stdid) {
|
||||||
memcpy(std_info, config, sizeof(*config));
|
memcpy(std_info, config, sizeof(*config));
|
||||||
|
@ -396,8 +385,8 @@ static int vpif_get_std_info(struct channel_obj *ch)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (index == ARRAY_SIZE(ch_params))
|
if (index == vpif_ch_params_count)
|
||||||
return -1;
|
return -EINVAL;
|
||||||
|
|
||||||
common->fmt.fmt.pix.width = std_info->width;
|
common->fmt.fmt.pix.width = std_info->width;
|
||||||
common->fmt.fmt.pix.height = std_info->height;
|
common->fmt.fmt.pix.height = std_info->height;
|
||||||
|
|
Loading…
Reference in New Issue