mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 04:23:35 +02:00
media: tegra-vde: Access v4l2_fh from file
The v4l2_fh associated with an open file handle is now guaranteed to be available in file->private_data, initialised by v4l2_fh_add(). Access the v4l2_fh, and from there the driver-specific structure, from the file * in all ioctl handlers. Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
This commit is contained in:
parent
50363fc1fe
commit
25fe47cdc9
|
|
@ -46,9 +46,9 @@ static const struct v4l2_ctrl_config ctrl_cfgs[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static inline struct tegra_ctx *fh_to_tegra_ctx(struct v4l2_fh *fh)
|
||||
static inline struct tegra_ctx *file_to_tegra_ctx(struct file *file)
|
||||
{
|
||||
return container_of(fh, struct tegra_ctx, fh);
|
||||
return container_of(file_to_v4l2_fh(file), struct tegra_ctx, fh);
|
||||
}
|
||||
|
||||
static void tegra_set_control_data(struct tegra_ctx *ctx, void *data, u32 id)
|
||||
|
|
@ -506,7 +506,7 @@ static int tegra_querycap(struct file *file, void *priv,
|
|||
static int tegra_enum_decoded_fmt(struct file *file, void *priv,
|
||||
struct v4l2_fmtdesc *f)
|
||||
{
|
||||
struct tegra_ctx *ctx = fh_to_tegra_ctx(priv);
|
||||
struct tegra_ctx *ctx = file_to_tegra_ctx(file);
|
||||
|
||||
if (WARN_ON(!ctx->coded_fmt_desc))
|
||||
return -EINVAL;
|
||||
|
|
@ -522,7 +522,7 @@ static int tegra_enum_decoded_fmt(struct file *file, void *priv,
|
|||
static int tegra_g_decoded_fmt(struct file *file, void *priv,
|
||||
struct v4l2_format *f)
|
||||
{
|
||||
struct tegra_ctx *ctx = fh_to_tegra_ctx(priv);
|
||||
struct tegra_ctx *ctx = file_to_tegra_ctx(file);
|
||||
|
||||
*f = ctx->decoded_fmt;
|
||||
return 0;
|
||||
|
|
@ -531,8 +531,8 @@ static int tegra_g_decoded_fmt(struct file *file, void *priv,
|
|||
static int tegra_try_decoded_fmt(struct file *file, void *priv,
|
||||
struct v4l2_format *f)
|
||||
{
|
||||
struct tegra_ctx *ctx = file_to_tegra_ctx(file);
|
||||
struct v4l2_pix_format_mplane *pix_mp = &f->fmt.pix_mp;
|
||||
struct tegra_ctx *ctx = fh_to_tegra_ctx(priv);
|
||||
const struct tegra_coded_fmt_desc *coded_desc;
|
||||
unsigned int i;
|
||||
|
||||
|
|
@ -571,7 +571,7 @@ static int tegra_try_decoded_fmt(struct file *file, void *priv,
|
|||
static int tegra_s_decoded_fmt(struct file *file, void *priv,
|
||||
struct v4l2_format *f)
|
||||
{
|
||||
struct tegra_ctx *ctx = fh_to_tegra_ctx(priv);
|
||||
struct tegra_ctx *ctx = file_to_tegra_ctx(file);
|
||||
struct vb2_queue *vq;
|
||||
int err;
|
||||
|
||||
|
|
@ -593,7 +593,7 @@ static int tegra_s_decoded_fmt(struct file *file, void *priv,
|
|||
static int tegra_enum_coded_fmt(struct file *file, void *priv,
|
||||
struct v4l2_fmtdesc *f)
|
||||
{
|
||||
struct tegra_ctx *ctx = fh_to_tegra_ctx(priv);
|
||||
struct tegra_ctx *ctx = file_to_tegra_ctx(file);
|
||||
const struct tegra_vde_soc *soc = ctx->vde->soc;
|
||||
|
||||
if (f->index >= soc->num_coded_fmts)
|
||||
|
|
@ -607,7 +607,7 @@ static int tegra_enum_coded_fmt(struct file *file, void *priv,
|
|||
static int tegra_g_coded_fmt(struct file *file, void *priv,
|
||||
struct v4l2_format *f)
|
||||
{
|
||||
struct tegra_ctx *ctx = fh_to_tegra_ctx(priv);
|
||||
struct tegra_ctx *ctx = file_to_tegra_ctx(file);
|
||||
|
||||
*f = ctx->coded_fmt;
|
||||
return 0;
|
||||
|
|
@ -631,7 +631,7 @@ static int tegra_try_coded_fmt(struct file *file, void *priv,
|
|||
struct v4l2_format *f)
|
||||
{
|
||||
struct v4l2_pix_format_mplane *pix_mp = &f->fmt.pix_mp;
|
||||
struct tegra_ctx *ctx = fh_to_tegra_ctx(priv);
|
||||
struct tegra_ctx *ctx = file_to_tegra_ctx(file);
|
||||
const struct tegra_vde_soc *soc = ctx->vde->soc;
|
||||
int size = pix_mp->plane_fmt[0].sizeimage;
|
||||
const struct tegra_coded_fmt_desc *desc;
|
||||
|
|
@ -656,7 +656,7 @@ static int tegra_try_coded_fmt(struct file *file, void *priv,
|
|||
static int tegra_s_coded_fmt(struct file *file, void *priv,
|
||||
struct v4l2_format *f)
|
||||
{
|
||||
struct tegra_ctx *ctx = fh_to_tegra_ctx(priv);
|
||||
struct tegra_ctx *ctx = file_to_tegra_ctx(file);
|
||||
struct v4l2_m2m_ctx *m2m_ctx = ctx->fh.m2m_ctx;
|
||||
const struct tegra_coded_fmt_desc *desc;
|
||||
struct vb2_queue *peer_vq, *vq;
|
||||
|
|
@ -718,7 +718,7 @@ static int tegra_s_coded_fmt(struct file *file, void *priv,
|
|||
static int tegra_enum_framesizes(struct file *file, void *priv,
|
||||
struct v4l2_frmsizeenum *fsize)
|
||||
{
|
||||
struct tegra_ctx *ctx = fh_to_tegra_ctx(priv);
|
||||
struct tegra_ctx *ctx = file_to_tegra_ctx(file);
|
||||
const struct tegra_coded_fmt_desc *fmt;
|
||||
|
||||
if (fsize->index)
|
||||
|
|
@ -852,8 +852,8 @@ static int tegra_open(struct file *file)
|
|||
|
||||
static int tegra_release(struct file *file)
|
||||
{
|
||||
struct tegra_ctx *ctx = file_to_tegra_ctx(file);
|
||||
struct v4l2_fh *fh = file_to_v4l2_fh(file);
|
||||
struct tegra_ctx *ctx = fh_to_tegra_ctx(fh);
|
||||
struct tegra_vde *vde = ctx->vde;
|
||||
|
||||
v4l2_fh_del(fh, file);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user