diff options
author | Sylwester Nawrocki <s.nawrocki@samsung.com> | 2013-04-10 05:24:46 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-04-14 14:51:56 -0400 |
commit | 3530ef0a6ea56636b23b5a15ff645632f7596c04 (patch) | |
tree | 7e8e44a15f6241ebaf4ab377cf887ce10392a0d0 | |
parent | a6f5635e63ffa02c30a22ea4af21f3daa1e98cdf (diff) |
[media] exynos4-is: Rename the ISP chain configuration data structure
More appropriate names for the ISP chain data structure.
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/platform/exynos4-is/fimc-is-param.c | 191 | ||||
-rw-r--r-- | drivers/media/platform/exynos4-is/fimc-is-regs.c | 14 | ||||
-rw-r--r-- | drivers/media/platform/exynos4-is/fimc-is.c | 22 | ||||
-rw-r--r-- | drivers/media/platform/exynos4-is/fimc-is.h | 9 | ||||
-rw-r--r-- | drivers/media/platform/exynos4-is/fimc-isp.c | 6 |
5 files changed, 121 insertions, 121 deletions
diff --git a/drivers/media/platform/exynos4-is/fimc-is-param.c b/drivers/media/platform/exynos4-is/fimc-is-param.c index 58123e3e1b62..254740f5e418 100644 --- a/drivers/media/platform/exynos4-is/fimc-is-param.c +++ b/drivers/media/platform/exynos4-is/fimc-is-param.c | |||
@@ -43,7 +43,7 @@ void __fimc_is_hw_update_param_global_shotmode(struct fimc_is *is) | |||
43 | struct param_global_shotmode *dst, *src; | 43 | struct param_global_shotmode *dst, *src; |
44 | 44 | ||
45 | dst = &is->is_p_region->parameter.global.shotmode; | 45 | dst = &is->is_p_region->parameter.global.shotmode; |
46 | src = &is->cfg_param[is->scenario_id].global.shotmode; | 46 | src = &is->config[is->config_index].global.shotmode; |
47 | __hw_param_copy(dst, src); | 47 | __hw_param_copy(dst, src); |
48 | } | 48 | } |
49 | 49 | ||
@@ -52,14 +52,14 @@ void __fimc_is_hw_update_param_sensor_framerate(struct fimc_is *is) | |||
52 | struct param_sensor_framerate *dst, *src; | 52 | struct param_sensor_framerate *dst, *src; |
53 | 53 | ||
54 | dst = &is->is_p_region->parameter.sensor.frame_rate; | 54 | dst = &is->is_p_region->parameter.sensor.frame_rate; |
55 | src = &is->cfg_param[is->scenario_id].sensor.frame_rate; | 55 | src = &is->config[is->config_index].sensor.frame_rate; |
56 | __hw_param_copy(dst, src); | 56 | __hw_param_copy(dst, src); |
57 | } | 57 | } |
58 | 58 | ||
59 | int __fimc_is_hw_update_param(struct fimc_is *is, u32 offset) | 59 | int __fimc_is_hw_update_param(struct fimc_is *is, u32 offset) |
60 | { | 60 | { |
61 | struct is_param_region *par = &is->is_p_region->parameter; | 61 | struct is_param_region *par = &is->is_p_region->parameter; |
62 | struct is_config_param *cfg = &is->cfg_param[is->scenario_id]; | 62 | struct chain_config *cfg = &is->config[is->config_index]; |
63 | 63 | ||
64 | switch (offset) { | 64 | switch (offset) { |
65 | case PARAM_ISP_CONTROL: | 65 | case PARAM_ISP_CONTROL: |
@@ -163,7 +163,7 @@ int __fimc_is_hw_update_param(struct fimc_is *is, u32 offset) | |||
163 | 163 | ||
164 | unsigned int __get_pending_param_count(struct fimc_is *is) | 164 | unsigned int __get_pending_param_count(struct fimc_is *is) |
165 | { | 165 | { |
166 | struct is_config_param *config = &is->cfg_param[is->scenario_id]; | 166 | struct chain_config *config = &is->config[is->config_index]; |
167 | unsigned long flags; | 167 | unsigned long flags; |
168 | unsigned int count; | 168 | unsigned int count; |
169 | 169 | ||
@@ -180,9 +180,9 @@ int __is_hw_update_params(struct fimc_is *is) | |||
180 | unsigned long *p_index1, *p_index2; | 180 | unsigned long *p_index1, *p_index2; |
181 | int i, id, ret = 0; | 181 | int i, id, ret = 0; |
182 | 182 | ||
183 | id = is->scenario_id; | 183 | id = is->config_index; |
184 | p_index1 = &is->cfg_param[id].p_region_index1; | 184 | p_index1 = &is->config[id].p_region_index1; |
185 | p_index2 = &is->cfg_param[id].p_region_index2; | 185 | p_index2 = &is->config[id].p_region_index2; |
186 | 186 | ||
187 | if (test_bit(PARAM_GLOBAL_SHOTMODE, p_index1)) | 187 | if (test_bit(PARAM_GLOBAL_SHOTMODE, p_index1)) |
188 | __fimc_is_hw_update_param_global_shotmode(is); | 188 | __fimc_is_hw_update_param_global_shotmode(is); |
@@ -212,22 +212,21 @@ void __is_get_frame_size(struct fimc_is *is, struct v4l2_mbus_framefmt *mf) | |||
212 | { | 212 | { |
213 | struct isp_param *isp; | 213 | struct isp_param *isp; |
214 | 214 | ||
215 | isp = &is->cfg_param[is->scenario_id].isp; | 215 | isp = &is->config[is->config_index].isp; |
216 | mf->width = isp->otf_input.width; | 216 | mf->width = isp->otf_input.width; |
217 | mf->height = isp->otf_input.height; | 217 | mf->height = isp->otf_input.height; |
218 | } | 218 | } |
219 | 219 | ||
220 | void __is_set_frame_size(struct fimc_is *is, struct v4l2_mbus_framefmt *mf) | 220 | void __is_set_frame_size(struct fimc_is *is, struct v4l2_mbus_framefmt *mf) |
221 | { | 221 | { |
222 | unsigned int index = is->config_index; | ||
222 | struct isp_param *isp; | 223 | struct isp_param *isp; |
223 | struct drc_param *drc; | 224 | struct drc_param *drc; |
224 | struct fd_param *fd; | 225 | struct fd_param *fd; |
225 | unsigned int mode; | ||
226 | 226 | ||
227 | mode = is->scenario_id; | 227 | isp = &is->config[index].isp; |
228 | isp = &is->cfg_param[mode].isp; | 228 | drc = &is->config[index].drc; |
229 | drc = &is->cfg_param[mode].drc; | 229 | fd = &is->config[index].fd; |
230 | fd = &is->cfg_param[mode].fd; | ||
231 | 230 | ||
232 | /* Update isp size info (OTF only) */ | 231 | /* Update isp size info (OTF only) */ |
233 | isp->otf_input.width = mf->width; | 232 | isp->otf_input.width = mf->width; |
@@ -244,7 +243,7 @@ void __is_set_frame_size(struct fimc_is *is, struct v4l2_mbus_framefmt *mf) | |||
244 | fd->otf_input.height = mf->height; | 243 | fd->otf_input.height = mf->height; |
245 | 244 | ||
246 | if (test_bit(PARAM_ISP_OTF_INPUT, | 245 | if (test_bit(PARAM_ISP_OTF_INPUT, |
247 | &is->cfg_param[mode].p_region_index1)) | 246 | &is->config[index].p_region_index1)) |
248 | return; | 247 | return; |
249 | 248 | ||
250 | /* Update field */ | 249 | /* Update field */ |
@@ -267,14 +266,14 @@ int fimc_is_hw_get_sensor_max_framerate(struct fimc_is *is) | |||
267 | 266 | ||
268 | void __is_set_sensor(struct fimc_is *is, int fps) | 267 | void __is_set_sensor(struct fimc_is *is, int fps) |
269 | { | 268 | { |
269 | unsigned int index = is->config_index; | ||
270 | struct sensor_param *sensor; | 270 | struct sensor_param *sensor; |
271 | struct isp_param *isp; | 271 | struct isp_param *isp; |
272 | unsigned long *p_index, mode; | 272 | unsigned long *p_index; |
273 | 273 | ||
274 | mode = is->scenario_id; | 274 | p_index = &is->config[index].p_region_index1; |
275 | p_index = &is->cfg_param[mode].p_region_index1; | 275 | sensor = &is->config[index].sensor; |
276 | sensor = &is->cfg_param[mode].sensor; | 276 | isp = &is->config[index].isp; |
277 | isp = &is->cfg_param[mode].isp; | ||
278 | 277 | ||
279 | if (fps == 0) { | 278 | if (fps == 0) { |
280 | sensor->frame_rate.frame_rate = | 279 | sensor->frame_rate.frame_rate = |
@@ -298,7 +297,7 @@ void __is_set_init_isp_aa(struct fimc_is *is) | |||
298 | { | 297 | { |
299 | struct isp_param *isp; | 298 | struct isp_param *isp; |
300 | 299 | ||
301 | isp = &is->cfg_param[is->scenario_id].isp; | 300 | isp = &is->config[is->config_index].isp; |
302 | 301 | ||
303 | isp->aa.cmd = ISP_AA_COMMAND_START; | 302 | isp->aa.cmd = ISP_AA_COMMAND_START; |
304 | isp->aa.target = ISP_AA_TARGET_AF | ISP_AA_TARGET_AE | | 303 | isp->aa.target = ISP_AA_TARGET_AF | ISP_AA_TARGET_AE | |
@@ -317,8 +316,8 @@ void __is_set_init_isp_aa(struct fimc_is *is) | |||
317 | 316 | ||
318 | void __is_set_isp_flash(struct fimc_is *is, u32 cmd, u32 redeye) | 317 | void __is_set_isp_flash(struct fimc_is *is, u32 cmd, u32 redeye) |
319 | { | 318 | { |
320 | unsigned int mode = is->scenario_id; | 319 | unsigned int index = is->config_index; |
321 | struct is_config_param *cfg = &is->cfg_param[mode]; | 320 | struct chain_config *cfg = &is->config[index]; |
322 | struct isp_param *isp = &cfg->isp; | 321 | struct isp_param *isp = &cfg->isp; |
323 | 322 | ||
324 | isp->flash.cmd = cmd; | 323 | isp->flash.cmd = cmd; |
@@ -331,12 +330,12 @@ void __is_set_isp_flash(struct fimc_is *is, u32 cmd, u32 redeye) | |||
331 | 330 | ||
332 | void __is_set_isp_awb(struct fimc_is *is, u32 cmd, u32 val) | 331 | void __is_set_isp_awb(struct fimc_is *is, u32 cmd, u32 val) |
333 | { | 332 | { |
334 | unsigned int mode = is->scenario_id; | 333 | unsigned int index = is->config_index; |
335 | struct isp_param *isp; | 334 | struct isp_param *isp; |
336 | unsigned long *p_index; | 335 | unsigned long *p_index; |
337 | 336 | ||
338 | p_index = &is->cfg_param[mode].p_region_index1; | 337 | p_index = &is->config[index].p_region_index1; |
339 | isp = &is->cfg_param[mode].isp; | 338 | isp = &is->config[index].isp; |
340 | 339 | ||
341 | isp->awb.cmd = cmd; | 340 | isp->awb.cmd = cmd; |
342 | isp->awb.illumination = val; | 341 | isp->awb.illumination = val; |
@@ -348,12 +347,12 @@ void __is_set_isp_awb(struct fimc_is *is, u32 cmd, u32 val) | |||
348 | 347 | ||
349 | void __is_set_isp_effect(struct fimc_is *is, u32 cmd) | 348 | void __is_set_isp_effect(struct fimc_is *is, u32 cmd) |
350 | { | 349 | { |
351 | unsigned int mode = is->scenario_id; | 350 | unsigned int index = is->config_index; |
352 | struct isp_param *isp; | 351 | struct isp_param *isp; |
353 | unsigned long *p_index; | 352 | unsigned long *p_index; |
354 | 353 | ||
355 | p_index = &is->cfg_param[mode].p_region_index1; | 354 | p_index = &is->config[index].p_region_index1; |
356 | isp = &is->cfg_param[mode].isp; | 355 | isp = &is->config[index].isp; |
357 | 356 | ||
358 | isp->effect.cmd = cmd; | 357 | isp->effect.cmd = cmd; |
359 | isp->effect.err = ISP_IMAGE_EFFECT_ERROR_NONE; | 358 | isp->effect.err = ISP_IMAGE_EFFECT_ERROR_NONE; |
@@ -364,12 +363,12 @@ void __is_set_isp_effect(struct fimc_is *is, u32 cmd) | |||
364 | 363 | ||
365 | void __is_set_isp_iso(struct fimc_is *is, u32 cmd, u32 val) | 364 | void __is_set_isp_iso(struct fimc_is *is, u32 cmd, u32 val) |
366 | { | 365 | { |
367 | unsigned int mode = is->scenario_id; | 366 | unsigned int index = is->config_index; |
368 | struct isp_param *isp; | 367 | struct isp_param *isp; |
369 | unsigned long *p_index; | 368 | unsigned long *p_index; |
370 | 369 | ||
371 | p_index = &is->cfg_param[mode].p_region_index1; | 370 | p_index = &is->config[index].p_region_index1; |
372 | isp = &is->cfg_param[mode].isp; | 371 | isp = &is->config[index].isp; |
373 | 372 | ||
374 | isp->iso.cmd = cmd; | 373 | isp->iso.cmd = cmd; |
375 | isp->iso.value = val; | 374 | isp->iso.value = val; |
@@ -381,12 +380,12 @@ void __is_set_isp_iso(struct fimc_is *is, u32 cmd, u32 val) | |||
381 | 380 | ||
382 | void __is_set_isp_adjust(struct fimc_is *is, u32 cmd, u32 val) | 381 | void __is_set_isp_adjust(struct fimc_is *is, u32 cmd, u32 val) |
383 | { | 382 | { |
384 | unsigned int mode = is->scenario_id; | 383 | unsigned int index = is->config_index; |
385 | unsigned long *p_index; | 384 | unsigned long *p_index; |
386 | struct isp_param *isp; | 385 | struct isp_param *isp; |
387 | 386 | ||
388 | p_index = &is->cfg_param[mode].p_region_index1; | 387 | p_index = &is->config[index].p_region_index1; |
389 | isp = &is->cfg_param[mode].isp; | 388 | isp = &is->config[index].isp; |
390 | 389 | ||
391 | switch (cmd) { | 390 | switch (cmd) { |
392 | case ISP_ADJUST_COMMAND_MANUAL_CONTRAST: | 391 | case ISP_ADJUST_COMMAND_MANUAL_CONTRAST: |
@@ -428,12 +427,12 @@ void __is_set_isp_adjust(struct fimc_is *is, u32 cmd, u32 val) | |||
428 | 427 | ||
429 | void __is_set_isp_metering(struct fimc_is *is, u32 id, u32 val) | 428 | void __is_set_isp_metering(struct fimc_is *is, u32 id, u32 val) |
430 | { | 429 | { |
430 | unsigned int index = is->config_index; | ||
431 | struct isp_param *isp; | 431 | struct isp_param *isp; |
432 | unsigned long *p_index, mode; | 432 | unsigned long *p_index; |
433 | 433 | ||
434 | mode = is->scenario_id; | 434 | p_index = &is->config[index].p_region_index1; |
435 | p_index = &is->cfg_param[mode].p_region_index1; | 435 | isp = &is->config[index].isp; |
436 | isp = &is->cfg_param[mode].isp; | ||
437 | 436 | ||
438 | switch (id) { | 437 | switch (id) { |
439 | case IS_METERING_CONFIG_CMD: | 438 | case IS_METERING_CONFIG_CMD: |
@@ -463,12 +462,12 @@ void __is_set_isp_metering(struct fimc_is *is, u32 id, u32 val) | |||
463 | 462 | ||
464 | void __is_set_isp_afc(struct fimc_is *is, u32 cmd, u32 val) | 463 | void __is_set_isp_afc(struct fimc_is *is, u32 cmd, u32 val) |
465 | { | 464 | { |
465 | unsigned int index = is->config_index; | ||
466 | struct isp_param *isp; | 466 | struct isp_param *isp; |
467 | unsigned long *p_index, mode; | 467 | unsigned long *p_index; |
468 | 468 | ||
469 | mode = is->scenario_id; | 469 | p_index = &is->config[index].p_region_index1; |
470 | p_index = &is->cfg_param[mode].p_region_index1; | 470 | isp = &is->config[index].isp; |
471 | isp = &is->cfg_param[mode].isp; | ||
472 | 471 | ||
473 | isp->afc.cmd = cmd; | 472 | isp->afc.cmd = cmd; |
474 | isp->afc.manual = val; | 473 | isp->afc.manual = val; |
@@ -480,12 +479,12 @@ void __is_set_isp_afc(struct fimc_is *is, u32 cmd, u32 val) | |||
480 | 479 | ||
481 | void __is_set_drc_control(struct fimc_is *is, u32 val) | 480 | void __is_set_drc_control(struct fimc_is *is, u32 val) |
482 | { | 481 | { |
482 | unsigned int index = is->config_index; | ||
483 | struct drc_param *drc; | 483 | struct drc_param *drc; |
484 | unsigned long *p_index, mode; | 484 | unsigned long *p_index; |
485 | 485 | ||
486 | mode = is->scenario_id; | 486 | p_index = &is->config[index].p_region_index1; |
487 | p_index = &is->cfg_param[mode].p_region_index1; | 487 | drc = &is->config[index].drc; |
488 | drc = &is->cfg_param[mode].drc; | ||
489 | 488 | ||
490 | drc->control.bypass = val; | 489 | drc->control.bypass = val; |
491 | 490 | ||
@@ -495,12 +494,12 @@ void __is_set_drc_control(struct fimc_is *is, u32 val) | |||
495 | 494 | ||
496 | void __is_set_fd_control(struct fimc_is *is, u32 val) | 495 | void __is_set_fd_control(struct fimc_is *is, u32 val) |
497 | { | 496 | { |
497 | unsigned int index = is->config_index; | ||
498 | struct fd_param *fd; | 498 | struct fd_param *fd; |
499 | unsigned long *p_index, mode; | 499 | unsigned long *p_index; |
500 | 500 | ||
501 | mode = is->scenario_id; | 501 | p_index = &is->config[index].p_region_index2; |
502 | p_index = &is->cfg_param[mode].p_region_index2; | 502 | fd = &is->config[index].fd; |
503 | fd = &is->cfg_param[mode].fd; | ||
504 | 503 | ||
505 | fd->control.cmd = val; | 504 | fd->control.cmd = val; |
506 | 505 | ||
@@ -510,12 +509,12 @@ void __is_set_fd_control(struct fimc_is *is, u32 val) | |||
510 | 509 | ||
511 | void __is_set_fd_config_maxface(struct fimc_is *is, u32 val) | 510 | void __is_set_fd_config_maxface(struct fimc_is *is, u32 val) |
512 | { | 511 | { |
512 | unsigned int index = is->config_index; | ||
513 | struct fd_param *fd; | 513 | struct fd_param *fd; |
514 | unsigned long *p_index, mode; | 514 | unsigned long *p_index; |
515 | 515 | ||
516 | mode = is->scenario_id; | 516 | p_index = &is->config[index].p_region_index2; |
517 | p_index = &is->cfg_param[mode].p_region_index2; | 517 | fd = &is->config[index].fd; |
518 | fd = &is->cfg_param[mode].fd; | ||
519 | 518 | ||
520 | fd->config.max_number = val; | 519 | fd->config.max_number = val; |
521 | 520 | ||
@@ -530,12 +529,12 @@ void __is_set_fd_config_maxface(struct fimc_is *is, u32 val) | |||
530 | 529 | ||
531 | void __is_set_fd_config_rollangle(struct fimc_is *is, u32 val) | 530 | void __is_set_fd_config_rollangle(struct fimc_is *is, u32 val) |
532 | { | 531 | { |
532 | unsigned int index = is->config_index; | ||
533 | struct fd_param *fd; | 533 | struct fd_param *fd; |
534 | unsigned long *p_index, mode; | 534 | unsigned long *p_index; |
535 | 535 | ||
536 | mode = is->scenario_id; | 536 | p_index = &is->config[index].p_region_index2; |
537 | p_index = &is->cfg_param[mode].p_region_index2; | 537 | fd = &is->config[index].fd; |
538 | fd = &is->cfg_param[mode].fd; | ||
539 | 538 | ||
540 | fd->config.roll_angle = val; | 539 | fd->config.roll_angle = val; |
541 | 540 | ||
@@ -550,12 +549,12 @@ void __is_set_fd_config_rollangle(struct fimc_is *is, u32 val) | |||
550 | 549 | ||
551 | void __is_set_fd_config_yawangle(struct fimc_is *is, u32 val) | 550 | void __is_set_fd_config_yawangle(struct fimc_is *is, u32 val) |
552 | { | 551 | { |
552 | unsigned int index = is->config_index; | ||
553 | struct fd_param *fd; | 553 | struct fd_param *fd; |
554 | unsigned long *p_index, mode; | 554 | unsigned long *p_index; |
555 | 555 | ||
556 | mode = is->scenario_id; | 556 | p_index = &is->config[index].p_region_index2; |
557 | p_index = &is->cfg_param[mode].p_region_index2; | 557 | fd = &is->config[index].fd; |
558 | fd = &is->cfg_param[mode].fd; | ||
559 | 558 | ||
560 | fd->config.yaw_angle = val; | 559 | fd->config.yaw_angle = val; |
561 | 560 | ||
@@ -570,12 +569,12 @@ void __is_set_fd_config_yawangle(struct fimc_is *is, u32 val) | |||
570 | 569 | ||
571 | void __is_set_fd_config_smilemode(struct fimc_is *is, u32 val) | 570 | void __is_set_fd_config_smilemode(struct fimc_is *is, u32 val) |
572 | { | 571 | { |
572 | unsigned int index = is->config_index; | ||
573 | struct fd_param *fd; | 573 | struct fd_param *fd; |
574 | unsigned long *p_index, mode; | 574 | unsigned long *p_index; |
575 | 575 | ||
576 | mode = is->scenario_id; | 576 | p_index = &is->config[index].p_region_index2; |
577 | p_index = &is->cfg_param[mode].p_region_index2; | 577 | fd = &is->config[index].fd; |
578 | fd = &is->cfg_param[mode].fd; | ||
579 | 578 | ||
580 | fd->config.smile_mode = val; | 579 | fd->config.smile_mode = val; |
581 | 580 | ||
@@ -590,12 +589,12 @@ void __is_set_fd_config_smilemode(struct fimc_is *is, u32 val) | |||
590 | 589 | ||
591 | void __is_set_fd_config_blinkmode(struct fimc_is *is, u32 val) | 590 | void __is_set_fd_config_blinkmode(struct fimc_is *is, u32 val) |
592 | { | 591 | { |
592 | unsigned int index = is->config_index; | ||
593 | struct fd_param *fd; | 593 | struct fd_param *fd; |
594 | unsigned long *p_index, mode; | 594 | unsigned long *p_index; |
595 | 595 | ||
596 | mode = is->scenario_id; | 596 | p_index = &is->config[index].p_region_index2; |
597 | p_index = &is->cfg_param[mode].p_region_index2; | 597 | fd = &is->config[index].fd; |
598 | fd = &is->cfg_param[mode].fd; | ||
599 | 598 | ||
600 | fd->config.blink_mode = val; | 599 | fd->config.blink_mode = val; |
601 | 600 | ||
@@ -610,12 +609,12 @@ void __is_set_fd_config_blinkmode(struct fimc_is *is, u32 val) | |||
610 | 609 | ||
611 | void __is_set_fd_config_eyedetect(struct fimc_is *is, u32 val) | 610 | void __is_set_fd_config_eyedetect(struct fimc_is *is, u32 val) |
612 | { | 611 | { |
612 | unsigned int index = is->config_index; | ||
613 | struct fd_param *fd; | 613 | struct fd_param *fd; |
614 | unsigned long *p_index, mode; | 614 | unsigned long *p_index; |
615 | 615 | ||
616 | mode = is->scenario_id; | 616 | p_index = &is->config[index].p_region_index2; |
617 | p_index = &is->cfg_param[mode].p_region_index2; | 617 | fd = &is->config[index].fd; |
618 | fd = &is->cfg_param[mode].fd; | ||
619 | 618 | ||
620 | fd->config.eye_detect = val; | 619 | fd->config.eye_detect = val; |
621 | 620 | ||
@@ -630,12 +629,12 @@ void __is_set_fd_config_eyedetect(struct fimc_is *is, u32 val) | |||
630 | 629 | ||
631 | void __is_set_fd_config_mouthdetect(struct fimc_is *is, u32 val) | 630 | void __is_set_fd_config_mouthdetect(struct fimc_is *is, u32 val) |
632 | { | 631 | { |
632 | unsigned int index = is->config_index; | ||
633 | struct fd_param *fd; | 633 | struct fd_param *fd; |
634 | unsigned long *p_index, mode; | 634 | unsigned long *p_index; |
635 | 635 | ||
636 | mode = is->scenario_id; | 636 | p_index = &is->config[index].p_region_index2; |
637 | p_index = &is->cfg_param[mode].p_region_index2; | 637 | fd = &is->config[index].fd; |
638 | fd = &is->cfg_param[mode].fd; | ||
639 | 638 | ||
640 | fd->config.mouth_detect = val; | 639 | fd->config.mouth_detect = val; |
641 | 640 | ||
@@ -650,12 +649,12 @@ void __is_set_fd_config_mouthdetect(struct fimc_is *is, u32 val) | |||
650 | 649 | ||
651 | void __is_set_fd_config_orientation(struct fimc_is *is, u32 val) | 650 | void __is_set_fd_config_orientation(struct fimc_is *is, u32 val) |
652 | { | 651 | { |
652 | unsigned int index = is->config_index; | ||
653 | struct fd_param *fd; | 653 | struct fd_param *fd; |
654 | unsigned long *p_index, mode; | 654 | unsigned long *p_index; |
655 | 655 | ||
656 | mode = is->scenario_id; | 656 | p_index = &is->config[index].p_region_index2; |
657 | p_index = &is->cfg_param[mode].p_region_index2; | 657 | fd = &is->config[index].fd; |
658 | fd = &is->cfg_param[mode].fd; | ||
659 | 658 | ||
660 | fd->config.orientation = val; | 659 | fd->config.orientation = val; |
661 | 660 | ||
@@ -670,12 +669,12 @@ void __is_set_fd_config_orientation(struct fimc_is *is, u32 val) | |||
670 | 669 | ||
671 | void __is_set_fd_config_orientation_val(struct fimc_is *is, u32 val) | 670 | void __is_set_fd_config_orientation_val(struct fimc_is *is, u32 val) |
672 | { | 671 | { |
672 | unsigned int index = is->config_index; | ||
673 | struct fd_param *fd; | 673 | struct fd_param *fd; |
674 | unsigned long *p_index, mode; | 674 | unsigned long *p_index; |
675 | 675 | ||
676 | mode = is->scenario_id; | 676 | p_index = &is->config[index].p_region_index2; |
677 | p_index = &is->cfg_param[mode].p_region_index2; | 677 | fd = &is->config[index].fd; |
678 | fd = &is->cfg_param[mode].fd; | ||
679 | 678 | ||
680 | fd->config.orientation_value = val; | 679 | fd->config.orientation_value = val; |
681 | 680 | ||
@@ -696,16 +695,16 @@ void fimc_is_set_initial_params(struct fimc_is *is) | |||
696 | struct drc_param *drc; | 695 | struct drc_param *drc; |
697 | struct fd_param *fd; | 696 | struct fd_param *fd; |
698 | unsigned long *p_index1, *p_index2; | 697 | unsigned long *p_index1, *p_index2; |
699 | unsigned int mode; | 698 | unsigned int index; |
700 | 699 | ||
701 | mode = is->scenario_id; | 700 | index = is->config_index; |
702 | global = &is->cfg_param[mode].global; | 701 | global = &is->config[index].global; |
703 | sensor = &is->cfg_param[mode].sensor; | 702 | sensor = &is->config[index].sensor; |
704 | isp = &is->cfg_param[mode].isp; | 703 | isp = &is->config[index].isp; |
705 | drc = &is->cfg_param[mode].drc; | 704 | drc = &is->config[index].drc; |
706 | fd = &is->cfg_param[mode].fd; | 705 | fd = &is->config[index].fd; |
707 | p_index1 = &is->cfg_param[mode].p_region_index1; | 706 | p_index1 = &is->config[index].p_region_index1; |
708 | p_index2 = &is->cfg_param[mode].p_region_index2; | 707 | p_index2 = &is->config[index].p_region_index2; |
709 | 708 | ||
710 | /* Global */ | 709 | /* Global */ |
711 | global->shotmode.cmd = 1; | 710 | global->shotmode.cmd = 1; |
@@ -841,7 +840,7 @@ void fimc_is_set_initial_params(struct fimc_is *is) | |||
841 | 840 | ||
842 | /* Sensor */ | 841 | /* Sensor */ |
843 | if (!test_bit(PARAM_SENSOR_FRAME_RATE, p_index1)) { | 842 | if (!test_bit(PARAM_SENSOR_FRAME_RATE, p_index1)) { |
844 | if (!mode) | 843 | if (is->config_index == 0) |
845 | __is_set_sensor(is, 0); | 844 | __is_set_sensor(is, 0); |
846 | } | 845 | } |
847 | 846 | ||
diff --git a/drivers/media/platform/exynos4-is/fimc-is-regs.c b/drivers/media/platform/exynos4-is/fimc-is-regs.c index f59a289c530d..b0ff67bc1b05 100644 --- a/drivers/media/platform/exynos4-is/fimc-is-regs.c +++ b/drivers/media/platform/exynos4-is/fimc-is-regs.c | |||
@@ -79,18 +79,18 @@ int fimc_is_hw_wait_intmsr0_intmsd0(struct fimc_is *is) | |||
79 | 79 | ||
80 | int fimc_is_hw_set_param(struct fimc_is *is) | 80 | int fimc_is_hw_set_param(struct fimc_is *is) |
81 | { | 81 | { |
82 | struct is_config_param *cfg = &is->cfg_param[is->scenario_id]; | 82 | struct chain_config *config = &is->config[is->config_index]; |
83 | unsigned int param_count = __get_pending_param_count(is); | 83 | unsigned int param_count = __get_pending_param_count(is); |
84 | 84 | ||
85 | fimc_is_hw_wait_intmsr0_intmsd0(is); | 85 | fimc_is_hw_wait_intmsr0_intmsd0(is); |
86 | 86 | ||
87 | mcuctl_write(HIC_SET_PARAMETER, is, MCUCTL_REG_ISSR(0)); | 87 | mcuctl_write(HIC_SET_PARAMETER, is, MCUCTL_REG_ISSR(0)); |
88 | mcuctl_write(is->sensor_index, is, MCUCTL_REG_ISSR(1)); | 88 | mcuctl_write(is->sensor_index, is, MCUCTL_REG_ISSR(1)); |
89 | mcuctl_write(is->scenario_id, is, MCUCTL_REG_ISSR(2)); | 89 | mcuctl_write(is->config_index, is, MCUCTL_REG_ISSR(2)); |
90 | 90 | ||
91 | mcuctl_write(param_count, is, MCUCTL_REG_ISSR(3)); | 91 | mcuctl_write(param_count, is, MCUCTL_REG_ISSR(3)); |
92 | mcuctl_write(cfg->p_region_index1, is, MCUCTL_REG_ISSR(4)); | 92 | mcuctl_write(config->p_region_index1, is, MCUCTL_REG_ISSR(4)); |
93 | mcuctl_write(cfg->p_region_index2, is, MCUCTL_REG_ISSR(5)); | 93 | mcuctl_write(config->p_region_index2, is, MCUCTL_REG_ISSR(5)); |
94 | 94 | ||
95 | fimc_is_hw_set_intgr0_gd0(is); | 95 | fimc_is_hw_set_intgr0_gd0(is); |
96 | return 0; | 96 | return 0; |
@@ -174,10 +174,10 @@ int fimc_is_hw_change_mode(struct fimc_is *is) | |||
174 | HIC_CAPTURE_STILL, HIC_CAPTURE_VIDEO, | 174 | HIC_CAPTURE_STILL, HIC_CAPTURE_VIDEO, |
175 | }; | 175 | }; |
176 | 176 | ||
177 | if (WARN_ON(is->scenario_id > ARRAY_SIZE(cmd))) | 177 | if (WARN_ON(is->config_index > ARRAY_SIZE(cmd))) |
178 | return -EINVAL; | 178 | return -EINVAL; |
179 | 179 | ||
180 | mcuctl_write(cmd[is->scenario_id], is, MCUCTL_REG_ISSR(0)); | 180 | mcuctl_write(cmd[is->config_index], is, MCUCTL_REG_ISSR(0)); |
181 | mcuctl_write(is->sensor_index, is, MCUCTL_REG_ISSR(1)); | 181 | mcuctl_write(is->sensor_index, is, MCUCTL_REG_ISSR(1)); |
182 | mcuctl_write(is->setfile.sub_index, is, MCUCTL_REG_ISSR(2)); | 182 | mcuctl_write(is->setfile.sub_index, is, MCUCTL_REG_ISSR(2)); |
183 | fimc_is_hw_set_intgr0_gd0(is); | 183 | fimc_is_hw_set_intgr0_gd0(is); |
@@ -238,6 +238,6 @@ int fimc_is_itf_mode_change(struct fimc_is *is) | |||
238 | FIMC_IS_CONFIG_TIMEOUT); | 238 | FIMC_IS_CONFIG_TIMEOUT); |
239 | if (!ret < 0) | 239 | if (!ret < 0) |
240 | dev_err(&is->pdev->dev, "%s(): mode change (%d) timeout\n", | 240 | dev_err(&is->pdev->dev, "%s(): mode change (%d) timeout\n", |
241 | __func__, is->scenario_id); | 241 | __func__, is->config_index); |
242 | return ret; | 242 | return ret; |
243 | } | 243 | } |
diff --git a/drivers/media/platform/exynos4-is/fimc-is.c b/drivers/media/platform/exynos4-is/fimc-is.c index 10ec173d1254..3c81c882bfd1 100644 --- a/drivers/media/platform/exynos4-is/fimc-is.c +++ b/drivers/media/platform/exynos4-is/fimc-is.c | |||
@@ -530,8 +530,8 @@ static void fimc_is_general_irq_handler(struct fimc_is *is) | |||
530 | break; | 530 | break; |
531 | 531 | ||
532 | case HIC_SET_PARAMETER: | 532 | case HIC_SET_PARAMETER: |
533 | is->cfg_param[is->scenario_id].p_region_index1 = 0; | 533 | is->config[is->config_index].p_region_index1 = 0; |
534 | is->cfg_param[is->scenario_id].p_region_index2 = 0; | 534 | is->config[is->config_index].p_region_index2 = 0; |
535 | set_bit(IS_ST_BLOCK_CMD_CLEARED, &is->state); | 535 | set_bit(IS_ST_BLOCK_CMD_CLEARED, &is->state); |
536 | pr_debug("HIC_SET_PARAMETER\n"); | 536 | pr_debug("HIC_SET_PARAMETER\n"); |
537 | break; | 537 | break; |
@@ -590,8 +590,8 @@ static void fimc_is_general_irq_handler(struct fimc_is *is) | |||
590 | 590 | ||
591 | switch (is->i2h_cmd.args[0]) { | 591 | switch (is->i2h_cmd.args[0]) { |
592 | case HIC_SET_PARAMETER: | 592 | case HIC_SET_PARAMETER: |
593 | is->cfg_param[is->scenario_id].p_region_index1 = 0; | 593 | is->config[is->config_index].p_region_index1 = 0; |
594 | is->cfg_param[is->scenario_id].p_region_index2 = 0; | 594 | is->config[is->config_index].p_region_index2 = 0; |
595 | set_bit(IS_ST_BLOCK_CMD_CLEARED, &is->state); | 595 | set_bit(IS_ST_BLOCK_CMD_CLEARED, &is->state); |
596 | break; | 596 | break; |
597 | } | 597 | } |
@@ -656,7 +656,7 @@ static int fimc_is_hw_open_sensor(struct fimc_is *is, | |||
656 | 656 | ||
657 | int fimc_is_hw_initialize(struct fimc_is *is) | 657 | int fimc_is_hw_initialize(struct fimc_is *is) |
658 | { | 658 | { |
659 | const int scenario_ids[] = { | 659 | const int config_ids[] = { |
660 | IS_SC_PREVIEW_STILL, IS_SC_PREVIEW_VIDEO, | 660 | IS_SC_PREVIEW_STILL, IS_SC_PREVIEW_VIDEO, |
661 | IS_SC_CAPTURE_STILL, IS_SC_CAPTURE_VIDEO | 661 | IS_SC_CAPTURE_STILL, IS_SC_CAPTURE_VIDEO |
662 | }; | 662 | }; |
@@ -718,23 +718,23 @@ int fimc_is_hw_initialize(struct fimc_is *is) | |||
718 | } | 718 | } |
719 | 719 | ||
720 | /* Preserve previous mode. */ | 720 | /* Preserve previous mode. */ |
721 | prev_id = is->scenario_id; | 721 | prev_id = is->config_index; |
722 | 722 | ||
723 | /* Set initial parameter values. */ | 723 | /* Set initial parameter values. */ |
724 | for (i = 0; i < ARRAY_SIZE(scenario_ids); i++) { | 724 | for (i = 0; i < ARRAY_SIZE(config_ids); i++) { |
725 | is->scenario_id = scenario_ids[i]; | 725 | is->config_index = config_ids[i]; |
726 | fimc_is_set_initial_params(is); | 726 | fimc_is_set_initial_params(is); |
727 | ret = fimc_is_itf_s_param(is, true); | 727 | ret = fimc_is_itf_s_param(is, true); |
728 | if (ret < 0) { | 728 | if (ret < 0) { |
729 | is->scenario_id = prev_id; | 729 | is->config_index = prev_id; |
730 | return ret; | 730 | return ret; |
731 | } | 731 | } |
732 | } | 732 | } |
733 | is->scenario_id = prev_id; | 733 | is->config_index = prev_id; |
734 | 734 | ||
735 | set_bit(IS_ST_INIT_DONE, &is->state); | 735 | set_bit(IS_ST_INIT_DONE, &is->state); |
736 | dev_info(dev, "initialization sequence completed (%d)\n", | 736 | dev_info(dev, "initialization sequence completed (%d)\n", |
737 | is->scenario_id); | 737 | is->config_index); |
738 | return 0; | 738 | return 0; |
739 | } | 739 | } |
740 | 740 | ||
diff --git a/drivers/media/platform/exynos4-is/fimc-is.h b/drivers/media/platform/exynos4-is/fimc-is.h index 9406894f306d..f5275a5b0156 100644 --- a/drivers/media/platform/exynos4-is/fimc-is.h +++ b/drivers/media/platform/exynos4-is/fimc-is.h | |||
@@ -219,7 +219,7 @@ struct fimc_is_setfile { | |||
219 | u32 base; | 219 | u32 base; |
220 | }; | 220 | }; |
221 | 221 | ||
222 | struct is_config_param { | 222 | struct chain_config { |
223 | struct global_param global; | 223 | struct global_param global; |
224 | struct sensor_param sensor; | 224 | struct sensor_param sensor; |
225 | struct isp_param isp; | 225 | struct isp_param isp; |
@@ -279,12 +279,13 @@ struct fimc_is { | |||
279 | struct h2i_cmd h2i_cmd; | 279 | struct h2i_cmd h2i_cmd; |
280 | struct is_fd_result_header fd_header; | 280 | struct is_fd_result_header fd_header; |
281 | 281 | ||
282 | struct is_config_param cfg_param[IS_SC_MAX]; | 282 | struct chain_config config[IS_SC_MAX]; |
283 | unsigned config_index; | ||
284 | |||
283 | struct is_region *is_p_region; | 285 | struct is_region *is_p_region; |
284 | dma_addr_t is_dma_p_region; | 286 | dma_addr_t is_dma_p_region; |
285 | struct is_share_region *is_shared_region; | 287 | struct is_share_region *is_shared_region; |
286 | struct is_af_info af; | 288 | struct is_af_info af; |
287 | u32 scenario_id; | ||
288 | 289 | ||
289 | struct dentry *debugfs_entry; | 290 | struct dentry *debugfs_entry; |
290 | }; | 291 | }; |
@@ -301,7 +302,7 @@ static inline void fimc_is_mem_barrier(void) | |||
301 | 302 | ||
302 | static inline void fimc_is_set_param_bit(struct fimc_is *is, int num) | 303 | static inline void fimc_is_set_param_bit(struct fimc_is *is, int num) |
303 | { | 304 | { |
304 | struct is_config_param *cfg = &is->cfg_param[is->scenario_id]; | 305 | struct chain_config *cfg = &is->config[is->config_index]; |
305 | 306 | ||
306 | if (num >= 32) | 307 | if (num >= 32) |
307 | set_bit(num - 32, &cfg->p_region_index2); | 308 | set_bit(num - 32, &cfg->p_region_index2); |
diff --git a/drivers/media/platform/exynos4-is/fimc-isp.c b/drivers/media/platform/exynos4-is/fimc-isp.c index b11c001ad388..7b8fbabe3556 100644 --- a/drivers/media/platform/exynos4-is/fimc-isp.c +++ b/drivers/media/platform/exynos4-is/fimc-isp.c | |||
@@ -236,7 +236,7 @@ static int fimc_isp_subdev_s_stream(struct v4l2_subdev *sd, int on) | |||
236 | } | 236 | } |
237 | 237 | ||
238 | v4l2_dbg(1, debug, sd, "changing mode to %d\n", | 238 | v4l2_dbg(1, debug, sd, "changing mode to %d\n", |
239 | is->scenario_id); | 239 | is->config_index); |
240 | ret = fimc_is_itf_mode_change(is); | 240 | ret = fimc_is_itf_mode_change(is); |
241 | if (ret) | 241 | if (ret) |
242 | return -EINVAL; | 242 | return -EINVAL; |
@@ -317,8 +317,8 @@ static int fimc_isp_subdev_s_power(struct v4l2_subdev *sd, int on) | |||
317 | clear_bit(IS_ST_PWR_ON, &is->state); | 317 | clear_bit(IS_ST_PWR_ON, &is->state); |
318 | clear_bit(IS_ST_INIT_DONE, &is->state); | 318 | clear_bit(IS_ST_INIT_DONE, &is->state); |
319 | is->state = 0; | 319 | is->state = 0; |
320 | is->cfg_param[is->scenario_id].p_region_index1 = 0; | 320 | is->config[is->config_index].p_region_index1 = 0; |
321 | is->cfg_param[is->scenario_id].p_region_index2 = 0; | 321 | is->config[is->config_index].p_region_index2 = 0; |
322 | set_bit(IS_ST_IDLE, &is->state); | 322 | set_bit(IS_ST_IDLE, &is->state); |
323 | wmb(); | 323 | wmb(); |
324 | } | 324 | } |