mirror of
https://github.com/torvalds/linux.git
synced 2026-07-31 11:37:06 +02:00
media: rockchip: rkvdec: 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> Reviewed-by: Detlev Casanova <detlev.casanova@collabora.com> Co-developed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
This commit is contained in:
parent
3cf9bbb526
commit
aa099b1129
|
|
@ -354,7 +354,7 @@ static int rkvdec_try_capture_fmt(struct file *file, void *priv,
|
|||
struct v4l2_format *f)
|
||||
{
|
||||
struct v4l2_pix_format_mplane *pix_mp = &f->fmt.pix_mp;
|
||||
struct rkvdec_ctx *ctx = fh_to_rkvdec_ctx(priv);
|
||||
struct rkvdec_ctx *ctx = file_to_rkvdec_ctx(file);
|
||||
const struct rkvdec_coded_fmt_desc *coded_desc;
|
||||
|
||||
/*
|
||||
|
|
@ -387,7 +387,7 @@ static int rkvdec_try_output_fmt(struct file *file, void *priv,
|
|||
struct v4l2_format *f)
|
||||
{
|
||||
struct v4l2_pix_format_mplane *pix_mp = &f->fmt.pix_mp;
|
||||
struct rkvdec_ctx *ctx = fh_to_rkvdec_ctx(priv);
|
||||
struct rkvdec_ctx *ctx = file_to_rkvdec_ctx(file);
|
||||
const struct rkvdec_coded_fmt_desc *desc;
|
||||
|
||||
desc = rkvdec_find_coded_fmt_desc(pix_mp->pixelformat);
|
||||
|
|
@ -418,7 +418,7 @@ static int rkvdec_try_output_fmt(struct file *file, void *priv,
|
|||
static int rkvdec_s_capture_fmt(struct file *file, void *priv,
|
||||
struct v4l2_format *f)
|
||||
{
|
||||
struct rkvdec_ctx *ctx = fh_to_rkvdec_ctx(priv);
|
||||
struct rkvdec_ctx *ctx = file_to_rkvdec_ctx(file);
|
||||
struct vb2_queue *vq;
|
||||
int ret;
|
||||
|
||||
|
|
@ -439,7 +439,7 @@ static int rkvdec_s_capture_fmt(struct file *file, void *priv,
|
|||
static int rkvdec_s_output_fmt(struct file *file, void *priv,
|
||||
struct v4l2_format *f)
|
||||
{
|
||||
struct rkvdec_ctx *ctx = fh_to_rkvdec_ctx(priv);
|
||||
struct rkvdec_ctx *ctx = file_to_rkvdec_ctx(file);
|
||||
struct v4l2_m2m_ctx *m2m_ctx = ctx->fh.m2m_ctx;
|
||||
const struct rkvdec_coded_fmt_desc *desc;
|
||||
struct v4l2_format *cap_fmt;
|
||||
|
|
@ -504,7 +504,7 @@ static int rkvdec_s_output_fmt(struct file *file, void *priv,
|
|||
static int rkvdec_g_output_fmt(struct file *file, void *priv,
|
||||
struct v4l2_format *f)
|
||||
{
|
||||
struct rkvdec_ctx *ctx = fh_to_rkvdec_ctx(priv);
|
||||
struct rkvdec_ctx *ctx = file_to_rkvdec_ctx(file);
|
||||
|
||||
*f = ctx->coded_fmt;
|
||||
return 0;
|
||||
|
|
@ -513,7 +513,7 @@ static int rkvdec_g_output_fmt(struct file *file, void *priv,
|
|||
static int rkvdec_g_capture_fmt(struct file *file, void *priv,
|
||||
struct v4l2_format *f)
|
||||
{
|
||||
struct rkvdec_ctx *ctx = fh_to_rkvdec_ctx(priv);
|
||||
struct rkvdec_ctx *ctx = file_to_rkvdec_ctx(file);
|
||||
|
||||
*f = ctx->decoded_fmt;
|
||||
return 0;
|
||||
|
|
@ -532,7 +532,7 @@ static int rkvdec_enum_output_fmt(struct file *file, void *priv,
|
|||
static int rkvdec_enum_capture_fmt(struct file *file, void *priv,
|
||||
struct v4l2_fmtdesc *f)
|
||||
{
|
||||
struct rkvdec_ctx *ctx = fh_to_rkvdec_ctx(priv);
|
||||
struct rkvdec_ctx *ctx = file_to_rkvdec_ctx(file);
|
||||
u32 fourcc;
|
||||
|
||||
fourcc = rkvdec_enum_decoded_fmt(ctx, f->index, ctx->image_fmt);
|
||||
|
|
|
|||
|
|
@ -124,14 +124,9 @@ struct rkvdec_ctx {
|
|||
void *priv;
|
||||
};
|
||||
|
||||
static inline struct rkvdec_ctx *fh_to_rkvdec_ctx(struct v4l2_fh *fh)
|
||||
{
|
||||
return container_of(fh, struct rkvdec_ctx, fh);
|
||||
}
|
||||
|
||||
static inline struct rkvdec_ctx *file_to_rkvdec_ctx(struct file *filp)
|
||||
{
|
||||
return fh_to_rkvdec_ctx(file_to_v4l2_fh(filp));
|
||||
return container_of(file_to_v4l2_fh(filp), struct rkvdec_ctx, fh);
|
||||
}
|
||||
|
||||
struct rkvdec_aux_buf {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user