.. | .. |
---|
468 | 468 | struct rkisp_isp_params_val_v32 *priv_val; |
---|
469 | 469 | struct rkisp_dummy_buffer *buf; |
---|
470 | 470 | int idx, buf_fd = -1; |
---|
471 | | - u32 reg = 0, ctrl; |
---|
| 471 | + u32 reg = 0, ctrl, mask; |
---|
472 | 472 | |
---|
473 | 473 | priv_val = (struct rkisp_isp_params_val_v32 *)dev->params_vdev.priv_val; |
---|
474 | 474 | if (!priv_val->buf_info_owner && priv_val->buf_info_idx >= 0) { |
---|
.. | .. |
---|
481 | 481 | if (priv_val->buf_info_owner == RKISP_INFO2DRR_OWNER_GAIN) { |
---|
482 | 482 | reg = ISP3X_GAIN_CTRL; |
---|
483 | 483 | ctrl = ISP3X_GAIN_2DDR_EN; |
---|
| 484 | + mask = ISP3X_GAIN_2DDR_EN; |
---|
484 | 485 | } else { |
---|
485 | 486 | reg = ISP3X_RAWAWB_CTRL; |
---|
486 | 487 | ctrl = ISP32_RAWAWB_2DDR_PATH_EN; |
---|
| 488 | + mask = ISP32_RAWAWB_2DDR_PATH_EN | ISP32_RAWAWB_2DDR_PATH_DS; |
---|
487 | 489 | } |
---|
488 | 490 | |
---|
489 | 491 | idx = priv_val->buf_info_idx; |
---|
.. | .. |
---|
510 | 512 | } else if (reg == ISP3X_RAWAWB_CTRL && |
---|
511 | 513 | rkisp_read(dev, reg, true) & ISP32_RAWAWB_2DDR_PATH_ERR) { |
---|
512 | 514 | v4l2_warn(&dev->v4l2_dev, "rawawb2ddr path error idx:%d\n", idx); |
---|
| 515 | + } else { |
---|
| 516 | + u32 v0 = rkisp_read(dev, reg, false); |
---|
| 517 | + u32 v1 = rkisp_read_reg_cache(dev, reg); |
---|
| 518 | + |
---|
| 519 | + if ((v0 & mask) != (v1 & mask)) |
---|
| 520 | + rkisp_write(dev, reg, v0 | (v1 & mask), false); |
---|
513 | 521 | } |
---|
514 | 522 | |
---|
515 | 523 | if (buf_fd == -1) |
---|
.. | .. |
---|
627 | 635 | ops->get_dhaz_stats(stats_vdev, cur_stat_buf); |
---|
628 | 636 | ops->get_vsm_stats(stats_vdev, cur_stat_buf); |
---|
629 | 637 | } |
---|
| 638 | + |
---|
| 639 | + if (cur_stat_buf && stats_vdev->dev->is_first_double) |
---|
| 640 | + cur_stat_buf->meas_type |= ISP32_STAT_RTT_FST; |
---|
630 | 641 | |
---|
631 | 642 | if (is_dummy) { |
---|
632 | 643 | spin_lock_irqsave(&stats_vdev->rd_lock, flags); |
---|
.. | .. |
---|
1035 | 1046 | work.frame_id = cur_frame_id; |
---|
1036 | 1047 | work.isp_ris = temp_isp_ris | isp_ris; |
---|
1037 | 1048 | work.isp3a_ris = temp_isp3a_ris; |
---|
1038 | | - work.timestamp = ktime_get_ns(); |
---|
| 1049 | + work.timestamp = rkisp_time_get_ns(stats_vdev->dev); |
---|
1039 | 1050 | rkisp_stats_send_meas_v32(stats_vdev, &work); |
---|
1040 | 1051 | } |
---|
1041 | 1052 | |
---|