diff options
author | Sylwester Nawrocki <s.nawrocki@samsung.com> | 2010-12-28 09:37:55 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-03-21 19:31:39 -0400 |
commit | 70f66ea2aafbd9022a5dcdfd823538e540873585 (patch) | |
tree | d130fb9b72717ca53c95d2499a35dd5e610342d8 | |
parent | b241c6d6f4ceddddfd8097c702dcfdd6b38fbe18 (diff) |
[media] s5p-fimc: Move scaler details handling to the register API file
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | drivers/media/video/s5p-fimc/fimc-capture.c | 6 | ||||
-rw-r--r-- | drivers/media/video/s5p-fimc/fimc-core.c | 6 | ||||
-rw-r--r-- | drivers/media/video/s5p-fimc/fimc-core.h | 1 | ||||
-rw-r--r-- | drivers/media/video/s5p-fimc/fimc-reg.c | 49 |
4 files changed, 20 insertions, 42 deletions
diff --git a/drivers/media/video/s5p-fimc/fimc-capture.c b/drivers/media/video/s5p-fimc/fimc-capture.c index 91304eef812b..2b03c956d0f6 100644 --- a/drivers/media/video/s5p-fimc/fimc-capture.c +++ b/drivers/media/video/s5p-fimc/fimc-capture.c | |||
@@ -237,7 +237,6 @@ static int start_streaming(struct vb2_queue *q) | |||
237 | struct fimc_ctx *ctx = q->drv_priv; | 237 | struct fimc_ctx *ctx = q->drv_priv; |
238 | struct fimc_dev *fimc = ctx->fimc_dev; | 238 | struct fimc_dev *fimc = ctx->fimc_dev; |
239 | struct s5p_fimc_isp_info *isp_info; | 239 | struct s5p_fimc_isp_info *isp_info; |
240 | struct samsung_fimc_variant *variant = ctx->fimc_dev->variant; | ||
241 | int ret; | 240 | int ret; |
242 | 241 | ||
243 | ret = v4l2_subdev_call(fimc->vid_cap.sd, video, s_stream, 1); | 242 | ret = v4l2_subdev_call(fimc->vid_cap.sd, video, s_stream, 1); |
@@ -261,10 +260,7 @@ static int start_streaming(struct vb2_queue *q) | |||
261 | } | 260 | } |
262 | fimc_hw_set_input_path(ctx); | 261 | fimc_hw_set_input_path(ctx); |
263 | fimc_hw_set_prescaler(ctx); | 262 | fimc_hw_set_prescaler(ctx); |
264 | if (variant->has_mainscaler_ext) | 263 | fimc_hw_set_mainscaler(ctx); |
265 | fimc_hw_set_mainscaler_ext(ctx); | ||
266 | else | ||
267 | fimc_hw_set_mainscaler(ctx); | ||
268 | fimc_hw_set_target_format(ctx); | 264 | fimc_hw_set_target_format(ctx); |
269 | fimc_hw_set_rotation(ctx); | 265 | fimc_hw_set_rotation(ctx); |
270 | fimc_hw_set_effect(ctx); | 266 | fimc_hw_set_effect(ctx); |
diff --git a/drivers/media/video/s5p-fimc/fimc-core.c b/drivers/media/video/s5p-fimc/fimc-core.c index 59fa5126fc2d..09bfac45ea32 100644 --- a/drivers/media/video/s5p-fimc/fimc-core.c +++ b/drivers/media/video/s5p-fimc/fimc-core.c | |||
@@ -578,7 +578,6 @@ static void fimc_dma_run(void *priv) | |||
578 | { | 578 | { |
579 | struct fimc_ctx *ctx = priv; | 579 | struct fimc_ctx *ctx = priv; |
580 | struct fimc_dev *fimc; | 580 | struct fimc_dev *fimc; |
581 | struct samsung_fimc_variant *variant = ctx->fimc_dev->variant; | ||
582 | unsigned long flags; | 581 | unsigned long flags; |
583 | u32 ret; | 582 | u32 ret; |
584 | 583 | ||
@@ -613,10 +612,7 @@ static void fimc_dma_run(void *priv) | |||
613 | } | 612 | } |
614 | 613 | ||
615 | fimc_hw_set_prescaler(ctx); | 614 | fimc_hw_set_prescaler(ctx); |
616 | if (variant->has_mainscaler_ext) | 615 | fimc_hw_set_mainscaler(ctx); |
617 | fimc_hw_set_mainscaler_ext(ctx); | ||
618 | else | ||
619 | fimc_hw_set_mainscaler(ctx); | ||
620 | fimc_hw_set_target_format(ctx); | 616 | fimc_hw_set_target_format(ctx); |
621 | fimc_hw_set_rotation(ctx); | 617 | fimc_hw_set_rotation(ctx); |
622 | fimc_hw_set_effect(ctx); | 618 | fimc_hw_set_effect(ctx); |
diff --git a/drivers/media/video/s5p-fimc/fimc-core.h b/drivers/media/video/s5p-fimc/fimc-core.h index 8aee9e3207f9..1c15358b43b6 100644 --- a/drivers/media/video/s5p-fimc/fimc-core.h +++ b/drivers/media/video/s5p-fimc/fimc-core.h | |||
@@ -574,7 +574,6 @@ void fimc_hw_en_lastirq(struct fimc_dev *fimc, int enable); | |||
574 | void fimc_hw_en_irq(struct fimc_dev *fimc, int enable); | 574 | void fimc_hw_en_irq(struct fimc_dev *fimc, int enable); |
575 | void fimc_hw_set_prescaler(struct fimc_ctx *ctx); | 575 | void fimc_hw_set_prescaler(struct fimc_ctx *ctx); |
576 | void fimc_hw_set_mainscaler(struct fimc_ctx *ctx); | 576 | void fimc_hw_set_mainscaler(struct fimc_ctx *ctx); |
577 | void fimc_hw_set_mainscaler_ext(struct fimc_ctx *ctx); | ||
578 | void fimc_hw_en_capture(struct fimc_ctx *ctx); | 577 | void fimc_hw_en_capture(struct fimc_ctx *ctx); |
579 | void fimc_hw_set_effect(struct fimc_ctx *ctx); | 578 | void fimc_hw_set_effect(struct fimc_ctx *ctx); |
580 | void fimc_hw_set_in_dma(struct fimc_ctx *ctx); | 579 | void fimc_hw_set_in_dma(struct fimc_ctx *ctx); |
diff --git a/drivers/media/video/s5p-fimc/fimc-reg.c b/drivers/media/video/s5p-fimc/fimc-reg.c index 064fa0a8b893..8e5a0bbae580 100644 --- a/drivers/media/video/s5p-fimc/fimc-reg.c +++ b/drivers/media/video/s5p-fimc/fimc-reg.c | |||
@@ -314,6 +314,7 @@ static void fimc_hw_set_scaler(struct fimc_ctx *ctx) | |||
314 | void fimc_hw_set_mainscaler(struct fimc_ctx *ctx) | 314 | void fimc_hw_set_mainscaler(struct fimc_ctx *ctx) |
315 | { | 315 | { |
316 | struct fimc_dev *dev = ctx->fimc_dev; | 316 | struct fimc_dev *dev = ctx->fimc_dev; |
317 | struct samsung_fimc_variant *variant = dev->variant; | ||
317 | struct fimc_scaler *sc = &ctx->scaler; | 318 | struct fimc_scaler *sc = &ctx->scaler; |
318 | u32 cfg; | 319 | u32 cfg; |
319 | 320 | ||
@@ -323,40 +324,26 @@ void fimc_hw_set_mainscaler(struct fimc_ctx *ctx) | |||
323 | fimc_hw_set_scaler(ctx); | 324 | fimc_hw_set_scaler(ctx); |
324 | 325 | ||
325 | cfg = readl(dev->regs + S5P_CISCCTRL); | 326 | cfg = readl(dev->regs + S5P_CISCCTRL); |
326 | cfg &= ~S5P_CISCCTRL_MHRATIO_MASK; | ||
327 | cfg &= ~S5P_CISCCTRL_MVRATIO_MASK; | ||
328 | cfg |= S5P_CISCCTRL_MHRATIO(sc->main_hratio); | ||
329 | cfg |= S5P_CISCCTRL_MVRATIO(sc->main_vratio); | ||
330 | 327 | ||
331 | writel(cfg, dev->regs + S5P_CISCCTRL); | 328 | if (variant->has_mainscaler_ext) { |
332 | } | 329 | cfg &= ~(S5P_CISCCTRL_MHRATIO_MASK | S5P_CISCCTRL_MVRATIO_MASK); |
330 | cfg |= S5P_CISCCTRL_MHRATIO_EXT(sc->main_hratio); | ||
331 | cfg |= S5P_CISCCTRL_MVRATIO_EXT(sc->main_vratio); | ||
332 | writel(cfg, dev->regs + S5P_CISCCTRL); | ||
333 | 333 | ||
334 | void fimc_hw_set_mainscaler_ext(struct fimc_ctx *ctx) | 334 | cfg = readl(dev->regs + S5P_CIEXTEN); |
335 | { | ||
336 | struct fimc_dev *dev = ctx->fimc_dev; | ||
337 | struct fimc_scaler *sc = &ctx->scaler; | ||
338 | u32 cfg, cfg_ext; | ||
339 | 335 | ||
340 | dbg("main_hratio= 0x%X main_vratio= 0x%X", | 336 | cfg &= ~(S5P_CIEXTEN_MVRATIO_EXT_MASK | |
341 | sc->main_hratio, sc->main_vratio); | 337 | S5P_CIEXTEN_MHRATIO_EXT_MASK); |
342 | 338 | cfg |= S5P_CIEXTEN_MHRATIO_EXT(sc->main_hratio); | |
343 | fimc_hw_set_scaler(ctx); | 339 | cfg |= S5P_CIEXTEN_MVRATIO_EXT(sc->main_vratio); |
344 | 340 | writel(cfg, dev->regs + S5P_CIEXTEN); | |
345 | cfg = readl(dev->regs + S5P_CISCCTRL); | 341 | } else { |
346 | cfg &= ~S5P_CISCCTRL_MHRATIO_MASK; | 342 | cfg &= ~(S5P_CISCCTRL_MHRATIO_MASK | S5P_CISCCTRL_MVRATIO_MASK); |
347 | cfg &= ~S5P_CISCCTRL_MVRATIO_MASK; | 343 | cfg |= S5P_CISCCTRL_MHRATIO(sc->main_hratio); |
348 | cfg |= S5P_CISCCTRL_MHRATIO_EXT(sc->main_hratio); | 344 | cfg |= S5P_CISCCTRL_MVRATIO(sc->main_vratio); |
349 | cfg |= S5P_CISCCTRL_MVRATIO_EXT(sc->main_vratio); | 345 | writel(cfg, dev->regs + S5P_CISCCTRL); |
350 | 346 | } | |
351 | writel(cfg, dev->regs + S5P_CISCCTRL); | ||
352 | |||
353 | cfg_ext = readl(dev->regs + S5P_CIEXTEN); | ||
354 | cfg_ext &= ~S5P_CIEXTEN_MHRATIO_EXT_MASK; | ||
355 | cfg_ext &= ~S5P_CIEXTEN_MVRATIO_EXT_MASK; | ||
356 | cfg_ext |= S5P_CIEXTEN_MHRATIO_EXT(sc->main_hratio); | ||
357 | cfg_ext |= S5P_CIEXTEN_MVRATIO_EXT(sc->main_vratio); | ||
358 | |||
359 | writel(cfg_ext, dev->regs + S5P_CIEXTEN); | ||
360 | } | 347 | } |
361 | 348 | ||
362 | void fimc_hw_en_capture(struct fimc_ctx *ctx) | 349 | void fimc_hw_en_capture(struct fimc_ctx *ctx) |