aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorSylwester Nawrocki <s.nawrocki@samsung.com>2012-04-27 08:33:23 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-05-20 08:23:35 -0400
commitbb7c276ec48b27d62a6d3f98e047a4b3d6a29b5c (patch)
treeaaae3dba439dfc9931dec2ce26b324ba8bd1b4cd /drivers/media
parent3d112d9aced3d4ad959e159a1662503452792295 (diff)
[media] s5p-fimc: Minor cleanups
Tidy up the variant and driver data handling. Remove the 'samsung_' prefix from some data structures since it doesn't really carry any useful information and makes the names unnecessarily long. 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>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/s5p-fimc/fimc-capture.c33
-rw-r--r--drivers/media/video/s5p-fimc/fimc-core.c41
-rw-r--r--drivers/media/video/s5p-fimc/fimc-core.h26
-rw-r--r--drivers/media/video/s5p-fimc/fimc-m2m.c2
-rw-r--r--drivers/media/video/s5p-fimc/fimc-reg.c2
5 files changed, 53 insertions, 51 deletions
diff --git a/drivers/media/video/s5p-fimc/fimc-capture.c b/drivers/media/video/s5p-fimc/fimc-capture.c
index b36809d2f9fc..15b74083a066 100644
--- a/drivers/media/video/s5p-fimc/fimc-capture.c
+++ b/drivers/media/video/s5p-fimc/fimc-capture.c
@@ -31,7 +31,7 @@
31#include "fimc-core.h" 31#include "fimc-core.h"
32#include "fimc-reg.h" 32#include "fimc-reg.h"
33 33
34static int fimc_init_capture(struct fimc_dev *fimc) 34static int fimc_capture_hw_init(struct fimc_dev *fimc)
35{ 35{
36 struct fimc_ctx *ctx = fimc->vid_cap.ctx; 36 struct fimc_ctx *ctx = fimc->vid_cap.ctx;
37 struct fimc_pipeline *p = &fimc->pipeline; 37 struct fimc_pipeline *p = &fimc->pipeline;
@@ -73,6 +73,14 @@ static int fimc_init_capture(struct fimc_dev *fimc)
73 return ret; 73 return ret;
74} 74}
75 75
76/*
77 * Reinitialize the driver so it is ready to start the streaming again.
78 * Set fimc->state to indicate stream off and the hardware shut down state.
79 * If not suspending (@suspend is false), return any buffers to videobuf2.
80 * Otherwise put any owned buffers onto the pending buffers queue, so they
81 * can be re-spun when the device is being resumed. Also perform FIMC
82 * software reset and disable streaming on the whole pipeline if required.
83 */
76static int fimc_capture_state_cleanup(struct fimc_dev *fimc, bool suspend) 84static int fimc_capture_state_cleanup(struct fimc_dev *fimc, bool suspend)
77{ 85{
78 struct fimc_vid_cap *cap = &fimc->vid_cap; 86 struct fimc_vid_cap *cap = &fimc->vid_cap;
@@ -146,9 +154,6 @@ static int fimc_capture_config_update(struct fimc_ctx *ctx)
146 struct fimc_dev *fimc = ctx->fimc_dev; 154 struct fimc_dev *fimc = ctx->fimc_dev;
147 int ret; 155 int ret;
148 156
149 if (!test_bit(ST_CAPT_APPLY_CFG, &fimc->state))
150 return 0;
151
152 fimc_hw_set_camera_offset(fimc, &ctx->s_frame); 157 fimc_hw_set_camera_offset(fimc, &ctx->s_frame);
153 158
154 ret = fimc_set_scaler_info(ctx); 159 ret = fimc_set_scaler_info(ctx);
@@ -220,7 +225,8 @@ void fimc_capture_irq_handler(struct fimc_dev *fimc, int deq_buf)
220 set_bit(ST_CAPT_RUN, &fimc->state); 225 set_bit(ST_CAPT_RUN, &fimc->state);
221 } 226 }
222 227
223 fimc_capture_config_update(cap->ctx); 228 if (test_bit(ST_CAPT_APPLY_CFG, &fimc->state))
229 fimc_capture_config_update(cap->ctx);
224done: 230done:
225 if (cap->active_buf_cnt == 1) { 231 if (cap->active_buf_cnt == 1) {
226 fimc_deactivate_capture(fimc); 232 fimc_deactivate_capture(fimc);
@@ -242,9 +248,11 @@ static int start_streaming(struct vb2_queue *q, unsigned int count)
242 248
243 vid_cap->frame_count = 0; 249 vid_cap->frame_count = 0;
244 250
245 ret = fimc_init_capture(fimc); 251 ret = fimc_capture_hw_init(fimc);
246 if (ret) 252 if (ret) {
247 goto error; 253 fimc_capture_state_cleanup(fimc, false);
254 return ret;
255 }
248 256
249 set_bit(ST_CAPT_PEND, &fimc->state); 257 set_bit(ST_CAPT_PEND, &fimc->state);
250 258
@@ -259,9 +267,6 @@ static int start_streaming(struct vb2_queue *q, unsigned int count)
259 } 267 }
260 268
261 return 0; 269 return 0;
262error:
263 fimc_capture_state_cleanup(fimc, false);
264 return ret;
265} 270}
266 271
267static int stop_streaming(struct vb2_queue *q) 272static int stop_streaming(struct vb2_queue *q)
@@ -300,7 +305,7 @@ int fimc_capture_resume(struct fimc_dev *fimc)
300 vid_cap->buf_index = 0; 305 vid_cap->buf_index = 0;
301 fimc_pipeline_initialize(&fimc->pipeline, &vid_cap->vfd->entity, 306 fimc_pipeline_initialize(&fimc->pipeline, &vid_cap->vfd->entity,
302 false); 307 false);
303 fimc_init_capture(fimc); 308 fimc_capture_hw_init(fimc);
304 309
305 clear_bit(ST_CAPT_SUSPENDED, &fimc->state); 310 clear_bit(ST_CAPT_SUSPENDED, &fimc->state);
306 311
@@ -563,7 +568,7 @@ static struct fimc_fmt *fimc_capture_try_format(struct fimc_ctx *ctx,
563{ 568{
564 bool rotation = ctx->rotation == 90 || ctx->rotation == 270; 569 bool rotation = ctx->rotation == 90 || ctx->rotation == 270;
565 struct fimc_dev *fimc = ctx->fimc_dev; 570 struct fimc_dev *fimc = ctx->fimc_dev;
566 struct samsung_fimc_variant *var = fimc->variant; 571 struct fimc_variant *var = fimc->variant;
567 struct fimc_pix_limit *pl = var->pix_limit; 572 struct fimc_pix_limit *pl = var->pix_limit;
568 struct fimc_frame *dst = &ctx->d_frame; 573 struct fimc_frame *dst = &ctx->d_frame;
569 u32 depth, min_w, max_w, min_h, align_h = 3; 574 u32 depth, min_w, max_w, min_h, align_h = 3;
@@ -629,7 +634,7 @@ static void fimc_capture_try_crop(struct fimc_ctx *ctx, struct v4l2_rect *r,
629{ 634{
630 bool rotate = ctx->rotation == 90 || ctx->rotation == 270; 635 bool rotate = ctx->rotation == 90 || ctx->rotation == 270;
631 struct fimc_dev *fimc = ctx->fimc_dev; 636 struct fimc_dev *fimc = ctx->fimc_dev;
632 struct samsung_fimc_variant *var = fimc->variant; 637 struct fimc_variant *var = fimc->variant;
633 struct fimc_pix_limit *pl = var->pix_limit; 638 struct fimc_pix_limit *pl = var->pix_limit;
634 struct fimc_frame *sink = &ctx->s_frame; 639 struct fimc_frame *sink = &ctx->s_frame;
635 u32 max_w, max_h, min_w = 0, min_h = 0, min_sz; 640 u32 max_w, max_h, min_w = 0, min_h = 0, min_sz;
diff --git a/drivers/media/video/s5p-fimc/fimc-core.c b/drivers/media/video/s5p-fimc/fimc-core.c
index e0fe9748ec57..917eef412566 100644
--- a/drivers/media/video/s5p-fimc/fimc-core.c
+++ b/drivers/media/video/s5p-fimc/fimc-core.c
@@ -188,7 +188,7 @@ static struct fimc_fmt fimc_formats[] = {
188 }, 188 },
189}; 189};
190 190
191struct fimc_fmt * fimc_get_format(unsigned int index) 191struct fimc_fmt *fimc_get_format(unsigned int index)
192{ 192{
193 if (index >= ARRAY_SIZE(fimc_formats)) 193 if (index >= ARRAY_SIZE(fimc_formats))
194 return NULL; 194 return NULL;
@@ -231,7 +231,7 @@ static int fimc_get_scaler_factor(u32 src, u32 tar, u32 *ratio, u32 *shift)
231 231
232int fimc_set_scaler_info(struct fimc_ctx *ctx) 232int fimc_set_scaler_info(struct fimc_ctx *ctx)
233{ 233{
234 struct samsung_fimc_variant *variant = ctx->fimc_dev->variant; 234 struct fimc_variant *variant = ctx->fimc_dev->variant;
235 struct device *dev = &ctx->fimc_dev->pdev->dev; 235 struct device *dev = &ctx->fimc_dev->pdev->dev;
236 struct fimc_scaler *sc = &ctx->scaler; 236 struct fimc_scaler *sc = &ctx->scaler;
237 struct fimc_frame *s_frame = &ctx->s_frame; 237 struct fimc_frame *s_frame = &ctx->s_frame;
@@ -430,7 +430,7 @@ void fimc_set_yuv_order(struct fimc_ctx *ctx)
430 430
431void fimc_prepare_dma_offset(struct fimc_ctx *ctx, struct fimc_frame *f) 431void fimc_prepare_dma_offset(struct fimc_ctx *ctx, struct fimc_frame *f)
432{ 432{
433 struct samsung_fimc_variant *variant = ctx->fimc_dev->variant; 433 struct fimc_variant *variant = ctx->fimc_dev->variant;
434 u32 i, depth = 0; 434 u32 i, depth = 0;
435 435
436 for (i = 0; i < f->fmt->colplanes; i++) 436 for (i = 0; i < f->fmt->colplanes; i++)
@@ -472,7 +472,7 @@ void fimc_prepare_dma_offset(struct fimc_ctx *ctx, struct fimc_frame *f)
472static int __fimc_s_ctrl(struct fimc_ctx *ctx, struct v4l2_ctrl *ctrl) 472static int __fimc_s_ctrl(struct fimc_ctx *ctx, struct v4l2_ctrl *ctrl)
473{ 473{
474 struct fimc_dev *fimc = ctx->fimc_dev; 474 struct fimc_dev *fimc = ctx->fimc_dev;
475 struct samsung_fimc_variant *variant = fimc->variant; 475 struct fimc_variant *variant = fimc->variant;
476 unsigned int flags = FIMC_DST_FMT | FIMC_SRC_FMT; 476 unsigned int flags = FIMC_DST_FMT | FIMC_SRC_FMT;
477 int ret = 0; 477 int ret = 0;
478 478
@@ -532,7 +532,7 @@ static const struct v4l2_ctrl_ops fimc_ctrl_ops = {
532 532
533int fimc_ctrls_create(struct fimc_ctx *ctx) 533int fimc_ctrls_create(struct fimc_ctx *ctx)
534{ 534{
535 struct samsung_fimc_variant *variant = ctx->fimc_dev->variant; 535 struct fimc_variant *variant = ctx->fimc_dev->variant;
536 unsigned int max_alpha = fimc_get_alpha_mask(ctx->d_frame.fmt); 536 unsigned int max_alpha = fimc_get_alpha_mask(ctx->d_frame.fmt);
537 537
538 if (ctx->ctrls_rdy) 538 if (ctx->ctrls_rdy)
@@ -794,15 +794,12 @@ static int fimc_m2m_resume(struct fimc_dev *fimc)
794 794
795static int fimc_probe(struct platform_device *pdev) 795static int fimc_probe(struct platform_device *pdev)
796{ 796{
797 struct fimc_drvdata *drv_data = fimc_get_drvdata(pdev);
798 struct s5p_platform_fimc *pdata;
797 struct fimc_dev *fimc; 799 struct fimc_dev *fimc;
798 struct resource *res; 800 struct resource *res;
799 struct samsung_fimc_driverdata *drv_data;
800 struct s5p_platform_fimc *pdata;
801 int ret = 0; 801 int ret = 0;
802 802
803 drv_data = (struct samsung_fimc_driverdata *)
804 platform_get_device_id(pdev)->driver_data;
805
806 if (pdev->id >= drv_data->num_entities) { 803 if (pdev->id >= drv_data->num_entities) {
807 dev_err(&pdev->dev, "Invalid platform device id: %d\n", 804 dev_err(&pdev->dev, "Invalid platform device id: %d\n",
808 pdev->id); 805 pdev->id);
@@ -1004,7 +1001,7 @@ static struct fimc_pix_limit s5p_pix_limit[4] = {
1004 }, 1001 },
1005}; 1002};
1006 1003
1007static struct samsung_fimc_variant fimc0_variant_s5p = { 1004static struct fimc_variant fimc0_variant_s5p = {
1008 .has_inp_rot = 1, 1005 .has_inp_rot = 1,
1009 .has_out_rot = 1, 1006 .has_out_rot = 1,
1010 .has_cam_if = 1, 1007 .has_cam_if = 1,
@@ -1016,17 +1013,17 @@ static struct samsung_fimc_variant fimc0_variant_s5p = {
1016 .pix_limit = &s5p_pix_limit[0], 1013 .pix_limit = &s5p_pix_limit[0],
1017}; 1014};
1018 1015
1019static struct samsung_fimc_variant fimc2_variant_s5p = { 1016static struct fimc_variant fimc2_variant_s5p = {
1020 .has_cam_if = 1, 1017 .has_cam_if = 1,
1021 .min_inp_pixsize = 16, 1018 .min_inp_pixsize = 16,
1022 .min_out_pixsize = 16, 1019 .min_out_pixsize = 16,
1023 .hor_offs_align = 8, 1020 .hor_offs_align = 8,
1024 .min_vsize_align = 16, 1021 .min_vsize_align = 16,
1025 .out_buf_count = 4, 1022 .out_buf_count = 4,
1026 .pix_limit = &s5p_pix_limit[1], 1023 .pix_limit = &s5p_pix_limit[1],
1027}; 1024};
1028 1025
1029static struct samsung_fimc_variant fimc0_variant_s5pv210 = { 1026static struct fimc_variant fimc0_variant_s5pv210 = {
1030 .pix_hoff = 1, 1027 .pix_hoff = 1,
1031 .has_inp_rot = 1, 1028 .has_inp_rot = 1,
1032 .has_out_rot = 1, 1029 .has_out_rot = 1,
@@ -1039,7 +1036,7 @@ static struct samsung_fimc_variant fimc0_variant_s5pv210 = {
1039 .pix_limit = &s5p_pix_limit[1], 1036 .pix_limit = &s5p_pix_limit[1],
1040}; 1037};
1041 1038
1042static struct samsung_fimc_variant fimc1_variant_s5pv210 = { 1039static struct fimc_variant fimc1_variant_s5pv210 = {
1043 .pix_hoff = 1, 1040 .pix_hoff = 1,
1044 .has_inp_rot = 1, 1041 .has_inp_rot = 1,
1045 .has_out_rot = 1, 1042 .has_out_rot = 1,
@@ -1053,7 +1050,7 @@ static struct samsung_fimc_variant fimc1_variant_s5pv210 = {
1053 .pix_limit = &s5p_pix_limit[2], 1050 .pix_limit = &s5p_pix_limit[2],
1054}; 1051};
1055 1052
1056static struct samsung_fimc_variant fimc2_variant_s5pv210 = { 1053static struct fimc_variant fimc2_variant_s5pv210 = {
1057 .has_cam_if = 1, 1054 .has_cam_if = 1,
1058 .pix_hoff = 1, 1055 .pix_hoff = 1,
1059 .min_inp_pixsize = 16, 1056 .min_inp_pixsize = 16,
@@ -1064,7 +1061,7 @@ static struct samsung_fimc_variant fimc2_variant_s5pv210 = {
1064 .pix_limit = &s5p_pix_limit[2], 1061 .pix_limit = &s5p_pix_limit[2],
1065}; 1062};
1066 1063
1067static struct samsung_fimc_variant fimc0_variant_exynos4 = { 1064static struct fimc_variant fimc0_variant_exynos4 = {
1068 .pix_hoff = 1, 1065 .pix_hoff = 1,
1069 .has_inp_rot = 1, 1066 .has_inp_rot = 1,
1070 .has_out_rot = 1, 1067 .has_out_rot = 1,
@@ -1080,7 +1077,7 @@ static struct samsung_fimc_variant fimc0_variant_exynos4 = {
1080 .pix_limit = &s5p_pix_limit[1], 1077 .pix_limit = &s5p_pix_limit[1],
1081}; 1078};
1082 1079
1083static struct samsung_fimc_variant fimc3_variant_exynos4 = { 1080static struct fimc_variant fimc3_variant_exynos4 = {
1084 .pix_hoff = 1, 1081 .pix_hoff = 1,
1085 .has_cam_if = 1, 1082 .has_cam_if = 1,
1086 .has_cistatus2 = 1, 1083 .has_cistatus2 = 1,
@@ -1095,7 +1092,7 @@ static struct samsung_fimc_variant fimc3_variant_exynos4 = {
1095}; 1092};
1096 1093
1097/* S5PC100 */ 1094/* S5PC100 */
1098static struct samsung_fimc_driverdata fimc_drvdata_s5p = { 1095static struct fimc_drvdata fimc_drvdata_s5p = {
1099 .variant = { 1096 .variant = {
1100 [0] = &fimc0_variant_s5p, 1097 [0] = &fimc0_variant_s5p,
1101 [1] = &fimc0_variant_s5p, 1098 [1] = &fimc0_variant_s5p,
@@ -1106,7 +1103,7 @@ static struct samsung_fimc_driverdata fimc_drvdata_s5p = {
1106}; 1103};
1107 1104
1108/* S5PV210, S5PC110 */ 1105/* S5PV210, S5PC110 */
1109static struct samsung_fimc_driverdata fimc_drvdata_s5pv210 = { 1106static struct fimc_drvdata fimc_drvdata_s5pv210 = {
1110 .variant = { 1107 .variant = {
1111 [0] = &fimc0_variant_s5pv210, 1108 [0] = &fimc0_variant_s5pv210,
1112 [1] = &fimc1_variant_s5pv210, 1109 [1] = &fimc1_variant_s5pv210,
@@ -1116,8 +1113,8 @@ static struct samsung_fimc_driverdata fimc_drvdata_s5pv210 = {
1116 .lclk_frequency = 166000000UL, 1113 .lclk_frequency = 166000000UL,
1117}; 1114};
1118 1115
1119/* S5PV310, S5PC210 */ 1116/* EXYNOS4210, S5PV310, S5PC210 */
1120static struct samsung_fimc_driverdata fimc_drvdata_exynos4 = { 1117static struct fimc_drvdata fimc_drvdata_exynos4 = {
1121 .variant = { 1118 .variant = {
1122 [0] = &fimc0_variant_exynos4, 1119 [0] = &fimc0_variant_exynos4,
1123 [1] = &fimc0_variant_exynos4, 1120 [1] = &fimc0_variant_exynos4,
diff --git a/drivers/media/video/s5p-fimc/fimc-core.h b/drivers/media/video/s5p-fimc/fimc-core.h
index fbb651cc6a96..97a25d2fac58 100644
--- a/drivers/media/video/s5p-fimc/fimc-core.h
+++ b/drivers/media/video/s5p-fimc/fimc-core.h
@@ -360,8 +360,7 @@ struct fimc_pix_limit {
360}; 360};
361 361
362/** 362/**
363 * struct samsung_fimc_variant - camera interface variant information 363 * struct fimc_variant - FIMC device variant information
364 *
365 * @pix_hoff: indicate whether horizontal offset is in pixels or in bytes 364 * @pix_hoff: indicate whether horizontal offset is in pixels or in bytes
366 * @has_inp_rot: set if has input rotator 365 * @has_inp_rot: set if has input rotator
367 * @has_out_rot: set if has output rotator 366 * @has_out_rot: set if has output rotator
@@ -376,7 +375,7 @@ struct fimc_pix_limit {
376 * @min_vsize_align: minimum vertical pixel size alignment 375 * @min_vsize_align: minimum vertical pixel size alignment
377 * @out_buf_count: the number of buffers in output DMA sequence 376 * @out_buf_count: the number of buffers in output DMA sequence
378 */ 377 */
379struct samsung_fimc_variant { 378struct fimc_variant {
380 unsigned int pix_hoff:1; 379 unsigned int pix_hoff:1;
381 unsigned int has_inp_rot:1; 380 unsigned int has_inp_rot:1;
382 unsigned int has_out_rot:1; 381 unsigned int has_out_rot:1;
@@ -393,18 +392,19 @@ struct samsung_fimc_variant {
393}; 392};
394 393
395/** 394/**
396 * struct samsung_fimc_driverdata - per device type driver data for init time. 395 * struct fimc_drvdata - per device type driver data
397 * 396 * @variant: variant information for this device
398 * @variant: the variant information for this driver. 397 * @num_entities: number of fimc instances available in a SoC
399 * @dev_cnt: number of fimc sub-devices available in SoC 398 * @lclk_frequency: local bus clock frequency
400 * @lclk_frequency: fimc bus clock frequency
401 */ 399 */
402struct samsung_fimc_driverdata { 400struct fimc_drvdata {
403 struct samsung_fimc_variant *variant[FIMC_MAX_DEVS]; 401 struct fimc_variant *variant[FIMC_MAX_DEVS];
404 unsigned long lclk_frequency; 402 int num_entities;
405 int num_entities; 403 unsigned long lclk_frequency;
406}; 404};
407 405
406#define fimc_get_drvdata(_pdev) \
407 ((struct fimc_drvdata *) platform_get_device_id(_pdev)->driver_data)
408 408
409struct fimc_ctx; 409struct fimc_ctx;
410 410
@@ -431,7 +431,7 @@ struct fimc_dev {
431 struct mutex lock; 431 struct mutex lock;
432 struct platform_device *pdev; 432 struct platform_device *pdev;
433 struct s5p_platform_fimc *pdata; 433 struct s5p_platform_fimc *pdata;
434 struct samsung_fimc_variant *variant; 434 struct fimc_variant *variant;
435 u16 id; 435 u16 id;
436 struct clk *clock[MAX_FIMC_CLOCKS]; 436 struct clk *clock[MAX_FIMC_CLOCKS];
437 void __iomem *regs; 437 void __iomem *regs;
diff --git a/drivers/media/video/s5p-fimc/fimc-m2m.c b/drivers/media/video/s5p-fimc/fimc-m2m.c
index 60bbab157c24..3de22b0db66f 100644
--- a/drivers/media/video/s5p-fimc/fimc-m2m.c
+++ b/drivers/media/video/s5p-fimc/fimc-m2m.c
@@ -295,7 +295,7 @@ static int fimc_m2m_g_fmt_mplane(struct file *file, void *fh,
295static int fimc_try_fmt_mplane(struct fimc_ctx *ctx, struct v4l2_format *f) 295static int fimc_try_fmt_mplane(struct fimc_ctx *ctx, struct v4l2_format *f)
296{ 296{
297 struct fimc_dev *fimc = ctx->fimc_dev; 297 struct fimc_dev *fimc = ctx->fimc_dev;
298 struct samsung_fimc_variant *variant = fimc->variant; 298 struct fimc_variant *variant = fimc->variant;
299 struct v4l2_pix_format_mplane *pix = &f->fmt.pix_mp; 299 struct v4l2_pix_format_mplane *pix = &f->fmt.pix_mp;
300 struct fimc_fmt *fmt; 300 struct fimc_fmt *fmt;
301 u32 max_w, mod_x, mod_y; 301 u32 max_w, mod_x, mod_y;
diff --git a/drivers/media/video/s5p-fimc/fimc-reg.c b/drivers/media/video/s5p-fimc/fimc-reg.c
index 5b1adde5a57a..382981788c43 100644
--- a/drivers/media/video/s5p-fimc/fimc-reg.c
+++ b/drivers/media/video/s5p-fimc/fimc-reg.c
@@ -313,7 +313,7 @@ static void fimc_hw_set_scaler(struct fimc_ctx *ctx)
313void fimc_hw_set_mainscaler(struct fimc_ctx *ctx) 313void fimc_hw_set_mainscaler(struct fimc_ctx *ctx)
314{ 314{
315 struct fimc_dev *dev = ctx->fimc_dev; 315 struct fimc_dev *dev = ctx->fimc_dev;
316 struct samsung_fimc_variant *variant = dev->variant; 316 struct fimc_variant *variant = dev->variant;
317 struct fimc_scaler *sc = &ctx->scaler; 317 struct fimc_scaler *sc = &ctx->scaler;
318 u32 cfg; 318 u32 cfg;
319 319