Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 294972
b: refs/heads/master
c: d0d2832
h: refs/heads/master
v: v3
  • Loading branch information
Sachin Kamat authored and Mauro Carvalho Chehab committed Mar 8, 2012
1 parent 74cd6b0 commit 05f492f
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 8 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: eb732518e0db585376f95256b18b2149240e3ad3
refs/heads/master: d0d2832658a1677c2ba339db068475851277af7d
5 changes: 5 additions & 0 deletions trunk/drivers/media/video/s5p-g2d/g2d-hw.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,11 @@ void g2d_set_rop4(struct g2d_dev *d, u32 r)
w(r, ROP4_REG);
}

void g2d_set_flip(struct g2d_dev *d, u32 r)
{
w(r, SRC_MSK_DIRECT_REG);
}

u32 g2d_cmd_stretch(u32 e)
{
e &= 1;
Expand Down
27 changes: 20 additions & 7 deletions trunk/drivers/media/video/s5p-g2d/g2d.c
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,11 @@ static int g2d_s_ctrl(struct v4l2_ctrl *ctrl)
else
ctx->rop = ROP4_COPY;
break;

case V4L2_CID_HFLIP:
ctx->flip = ctx->ctrl_hflip->val | (ctx->ctrl_vflip->val << 1);
break;

default:
v4l2_err(&ctx->dev->v4l2_dev, "unknown control\n");
return -EINVAL;
Expand All @@ -200,11 +205,13 @@ int g2d_setup_ctrls(struct g2d_ctx *ctx)
{
struct g2d_dev *dev = ctx->dev;

v4l2_ctrl_handler_init(&ctx->ctrl_handler, 1);
if (ctx->ctrl_handler.error) {
v4l2_err(&dev->v4l2_dev, "v4l2_ctrl_handler_init failed\n");
return ctx->ctrl_handler.error;
}
v4l2_ctrl_handler_init(&ctx->ctrl_handler, 3);

ctx->ctrl_hflip = v4l2_ctrl_new_std(&ctx->ctrl_handler, &g2d_ctrl_ops,
V4L2_CID_HFLIP, 0, 1, 1, 0);

ctx->ctrl_vflip = v4l2_ctrl_new_std(&ctx->ctrl_handler, &g2d_ctrl_ops,
V4L2_CID_VFLIP, 0, 1, 1, 0);

v4l2_ctrl_new_std_menu(
&ctx->ctrl_handler,
Expand All @@ -215,10 +222,14 @@ int g2d_setup_ctrls(struct g2d_ctx *ctx)
V4L2_COLORFX_NONE);

if (ctx->ctrl_handler.error) {
v4l2_err(&dev->v4l2_dev, "v4l2_ctrl_handler_init failed\n");
return ctx->ctrl_handler.error;
int err = ctx->ctrl_handler.error;
v4l2_err(&dev->v4l2_dev, "g2d_setup_ctrls failed\n");
v4l2_ctrl_handler_free(&ctx->ctrl_handler);
return err;
}

v4l2_ctrl_cluster(2, &ctx->ctrl_hflip);

return 0;
}

Expand Down Expand Up @@ -564,6 +575,8 @@ static void device_run(void *prv)
g2d_set_dst_addr(dev, vb2_dma_contig_plane_dma_addr(dst, 0));

g2d_set_rop4(dev, ctx->rop);
g2d_set_flip(dev, ctx->flip);

if (ctx->in.c_width != ctx->out.c_width ||
ctx->in.c_height != ctx->out.c_height)
cmd |= g2d_cmd_stretch(1);
Expand Down
4 changes: 4 additions & 0 deletions trunk/drivers/media/video/s5p-g2d/g2d.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,11 @@ struct g2d_ctx {
struct v4l2_m2m_ctx *m2m_ctx;
struct g2d_frame in;
struct g2d_frame out;
struct v4l2_ctrl *ctrl_hflip;
struct v4l2_ctrl *ctrl_vflip;
struct v4l2_ctrl_handler ctrl_handler;
u32 rop;
u32 flip;
};

struct g2d_fmt {
Expand All @@ -77,6 +80,7 @@ void g2d_set_dst_addr(struct g2d_dev *d, dma_addr_t a);
void g2d_start(struct g2d_dev *d);
void g2d_clear_int(struct g2d_dev *d);
void g2d_set_rop4(struct g2d_dev *d, u32 r);
void g2d_set_flip(struct g2d_dev *d, u32 r);
u32 g2d_cmd_stretch(u32 e);
void g2d_set_cmd(struct g2d_dev *d, u32 c);

Expand Down

0 comments on commit 05f492f

Please sign in to comment.