OSDN Git Service

msm: camera: Change data type of data rate
authorSamyukta Mogily <smogily@codeaurora.org>
Mon, 23 Apr 2018 10:47:17 +0000 (16:17 +0530)
committerVijay kumar Tumati <vtumati@codeaurora.org>
Fri, 27 Apr 2018 04:58:51 +0000 (10:28 +0530)
Change data rate to uint64, to ensure that the value sent
to kernel is not corrupted.

Change-Id: I692c1c3e591cbac24931078e0fb8938900fc991c
Signed-off-by: Samyukta Mogily <smogily@codeaurora.org>
drivers/media/platform/msm/camera_v2/sensor/csiphy/msm_csiphy.c
include/uapi/media/msm_camera.h
include/uapi/media/msm_camsensor_sdk.h

index 5fc2aed..4f7a627 100644 (file)
@@ -135,8 +135,10 @@ static int msm_csiphy_3phase_lane_config(
        uint8_t i = 0;
        uint16_t lane_mask = 0, lane_enable = 0, temp;
        void __iomem *csiphybase;
+       uint64_t two_gbps = 0;
 
        csiphybase = csiphy_dev->base;
+       two_gbps = 2 * (uint64_t)csiphy_params->lane_cnt * GBPS;
        lane_mask = csiphy_params->lane_mask & 0x7;
        while (lane_mask != 0) {
                temp = (i << 1)+1;
@@ -282,9 +284,9 @@ static int msm_csiphy_3phase_lane_config(
                                csiphy_3ph_reg.mipi_csiphy_3ph_lnn_ctrl51.addr +
                                0x200*i);
                }
+
                if ((csiphy_dev->hw_version == CSIPHY_VERSION_V35) &&
-                       ((csiphy_params->data_rate /
-                       csiphy_params->lane_cnt) > 2 * GBPS)) {
+                       (csiphy_params->data_rate > two_gbps)) {
                        msm_camera_io_w(0x40,
                                csiphybase +
                                csiphy_dev->ctrl_reg->csiphy_3ph_reg.
@@ -807,7 +809,7 @@ static int msm_csiphy_lane_config(struct csiphy_device *csiphy_dev,
                ratio = csiphy_dev->csiphy_max_clk/clk_rate;
                csiphy_params->settle_cnt = csiphy_params->settle_cnt/ratio;
        }
-       CDBG("%s csiphy_params, mask = 0x%x cnt = %d, data rate = %lu\n",
+       CDBG("%s csiphy_params, mask = 0x%x cnt = %d, data rate = %llu\n",
                __func__,
                csiphy_params->lane_mask,
                csiphy_params->lane_cnt, csiphy_params->data_rate);
index 8fb69ae..fd0937f 100644 (file)
@@ -1,4 +1,5 @@
-/* Copyright (c) 2009-2012, 2014-2016 The Linux Foundation. All rights reserved.
+/* Copyright (c) 2009-2012, 2014-2016, 2018 The Linux Foundation.
+ * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 and
@@ -1386,7 +1387,7 @@ struct msm_camera_csiphy_params {
        uint16_t lane_mask;
        uint8_t combo_mode;
        uint8_t csid_core;
-       unsigned long data_rate;
+       uint64_t data_rate;
 };
 
 struct msm_camera_csi2_params {
index 4d348c7..ac454ca 100644 (file)
@@ -367,7 +367,7 @@ struct msm_camera_csiphy_params {
        unsigned char csid_core;
        unsigned int csiphy_clk;
        unsigned char csi_3phase;
-       unsigned long data_rate;
+       uint64_t data_rate;
 };
 
 struct msm_camera_i2c_seq_reg_array {