aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/platform/soc_camera/mx3_camera.c35
1 files changed, 21 insertions, 14 deletions
diff --git a/drivers/media/platform/soc_camera/mx3_camera.c b/drivers/media/platform/soc_camera/mx3_camera.c
index 71b9b191957c..1047e3e8db77 100644
--- a/drivers/media/platform/soc_camera/mx3_camera.c
+++ b/drivers/media/platform/soc_camera/mx3_camera.c
@@ -460,8 +460,7 @@ static int mx3_camera_init_videobuf(struct vb2_queue *q,
460} 460}
461 461
462/* First part of ipu_csi_init_interface() */ 462/* First part of ipu_csi_init_interface() */
463static void mx3_camera_activate(struct mx3_camera_dev *mx3_cam, 463static void mx3_camera_activate(struct mx3_camera_dev *mx3_cam)
464 struct soc_camera_device *icd)
465{ 464{
466 u32 conf; 465 u32 conf;
467 long rate; 466 long rate;
@@ -505,31 +504,40 @@ static void mx3_camera_activate(struct mx3_camera_dev *mx3_cam,
505 504
506 clk_prepare_enable(mx3_cam->clk); 505 clk_prepare_enable(mx3_cam->clk);
507 rate = clk_round_rate(mx3_cam->clk, mx3_cam->mclk); 506 rate = clk_round_rate(mx3_cam->clk, mx3_cam->mclk);
508 dev_dbg(icd->parent, "Set SENS_CONF to %x, rate %ld\n", conf, rate); 507 dev_dbg(mx3_cam->soc_host.v4l2_dev.dev, "Set SENS_CONF to %x, rate %ld\n", conf, rate);
509 if (rate) 508 if (rate)
510 clk_set_rate(mx3_cam->clk, rate); 509 clk_set_rate(mx3_cam->clk, rate);
511} 510}
512 511
513/* Called with .host_lock held */
514static int mx3_camera_add_device(struct soc_camera_device *icd) 512static int mx3_camera_add_device(struct soc_camera_device *icd)
515{ 513{
516 struct soc_camera_host *ici = to_soc_camera_host(icd->parent); 514 dev_info(icd->parent, "MX3 Camera driver attached to camera %d\n",
515 icd->devnum);
516
517 return 0;
518}
519
520static void mx3_camera_remove_device(struct soc_camera_device *icd)
521{
522 dev_info(icd->parent, "MX3 Camera driver detached from camera %d\n",
523 icd->devnum);
524}
525
526/* Called with .host_lock held */
527static int mx3_camera_clock_start(struct soc_camera_host *ici)
528{
517 struct mx3_camera_dev *mx3_cam = ici->priv; 529 struct mx3_camera_dev *mx3_cam = ici->priv;
518 530
519 mx3_camera_activate(mx3_cam, icd); 531 mx3_camera_activate(mx3_cam);
520 532
521 mx3_cam->buf_total = 0; 533 mx3_cam->buf_total = 0;
522 534
523 dev_info(icd->parent, "MX3 Camera driver attached to camera %d\n",
524 icd->devnum);
525
526 return 0; 535 return 0;
527} 536}
528 537
529/* Called with .host_lock held */ 538/* Called with .host_lock held */
530static void mx3_camera_remove_device(struct soc_camera_device *icd) 539static void mx3_camera_clock_stop(struct soc_camera_host *ici)
531{ 540{
532 struct soc_camera_host *ici = to_soc_camera_host(icd->parent);
533 struct mx3_camera_dev *mx3_cam = ici->priv; 541 struct mx3_camera_dev *mx3_cam = ici->priv;
534 struct idmac_channel **ichan = &mx3_cam->idmac_channel[0]; 542 struct idmac_channel **ichan = &mx3_cam->idmac_channel[0];
535 543
@@ -539,9 +547,6 @@ static void mx3_camera_remove_device(struct soc_camera_device *icd)
539 } 547 }
540 548
541 clk_disable_unprepare(mx3_cam->clk); 549 clk_disable_unprepare(mx3_cam->clk);
542
543 dev_info(icd->parent, "MX3 Camera driver detached from camera %d\n",
544 icd->devnum);
545} 550}
546 551
547static int test_platform_param(struct mx3_camera_dev *mx3_cam, 552static int test_platform_param(struct mx3_camera_dev *mx3_cam,
@@ -1124,6 +1129,8 @@ static struct soc_camera_host_ops mx3_soc_camera_host_ops = {
1124 .owner = THIS_MODULE, 1129 .owner = THIS_MODULE,
1125 .add = mx3_camera_add_device, 1130 .add = mx3_camera_add_device,
1126 .remove = mx3_camera_remove_device, 1131 .remove = mx3_camera_remove_device,
1132 .clock_start = mx3_camera_clock_start,
1133 .clock_stop = mx3_camera_clock_stop,
1127 .set_crop = mx3_camera_set_crop, 1134 .set_crop = mx3_camera_set_crop,
1128 .set_fmt = mx3_camera_set_fmt, 1135 .set_fmt = mx3_camera_set_fmt,
1129 .try_fmt = mx3_camera_try_fmt, 1136 .try_fmt = mx3_camera_try_fmt,