OSDN Git Service

Revert "camera_v2: update from sagit-p-oss"
authorJulian Liu <wlootlxt123@gmail.com>
Wed, 18 Sep 2019 18:54:17 +0000 (02:54 +0800)
committer0ranko0P <ranko0p@outlook.com>
Sat, 7 Dec 2019 10:22:20 +0000 (18:22 +0800)
This reverts commit e67a25de54ccdc249c887d7ad4829dc1dd127c3f.

drivers/media/platform/msm/camera_v2/jpeg_dma/msm_jpeg_dma_hw.c
drivers/media/platform/msm/camera_v2/sensor/actuator/msm_actuator.c
drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom.c
drivers/media/platform/msm/camera_v2/sensor/msm_sensor_init.c
drivers/media/platform/msm/camera_v2/sensor/ois/msm_ois.c

index 02b0cdc..994ba93 100644 (file)
@@ -1729,8 +1729,7 @@ error_regulators_get:
 void msm_jpegdma_hw_put(struct msm_jpegdma_device *dma)
 {
        mutex_lock(&dma->lock);
-       if (WARN_ON(!dma->ref_count))
-               goto err;
+       BUG_ON(dma->ref_count == 0);
 
        if (--dma->ref_count == 0) {
                msm_jpegdma_hw_halt(dma);
@@ -1748,7 +1747,6 @@ void msm_jpegdma_hw_put(struct msm_jpegdma_device *dma)
        }
        /* Reset clock rate, need to be updated on next processing */
        dma->active_clock_rate = -1;
-err:
        mutex_unlock(&dma->lock);
 }
 
index 1274d6c..06a9be4 100644 (file)
@@ -1168,6 +1168,12 @@ static int32_t msm_actuator_power_down(struct msm_actuator_ctrl_t *a_ctrl)
 {
        int32_t rc = 0;
        enum msm_sensor_power_seq_gpio_t gpio;
+#ifdef CONFIG_MACH_XIAOMI_MSM8998
+       struct device_node *src_node = NULL;
+       int i = 0;
+       const char *af_name;
+       struct device_node *of_node = a_ctrl->pdev->dev.of_node;
+#endif
 
        CDBG("Enter\n");
        if (a_ctrl->actuator_state != ACT_DISABLE_STATE) {
@@ -1227,6 +1233,70 @@ static int32_t msm_actuator_power_down(struct msm_actuator_ctrl_t *a_ctrl)
                a_ctrl->i2c_tbl_index = 0;
                a_ctrl->actuator_state = ACT_OPS_INACTIVE;
        }
+#ifdef CONFIG_MACH_XIAOMI_MSM8998
+       else {
+               if (of_gpio_count(of_node)) {
+                       for (gpio = SENSOR_GPIO_AF_PWDM;
+                               gpio < SENSOR_GPIO_MAX; gpio++) {
+                               if (a_ctrl->gconf &&
+                                       a_ctrl->gconf->gpio_num_info &&
+                                       a_ctrl->gconf->gpio_num_info->valid[gpio] == 1) {
+                                       gpio_set_value_cansleep(
+                                                       a_ctrl->gconf->gpio_num_info->
+                                                       gpio_num[gpio],
+                                                       GPIOF_OUT_INIT_LOW);
+
+                                       if (a_ctrl->cam_pinctrl_status) {
+                                               rc = pinctrl_select_state(
+                                                       a_ctrl->pinctrl_info.pinctrl,
+                                                       a_ctrl->pinctrl_info.gpio_state_suspend);
+                                               if (rc < 0)
+                                                       pr_err("ERR:%s:%d cannot set pin to suspend state: %d",
+                                                               __func__, __LINE__, rc);
+
+                                               devm_pinctrl_put(a_ctrl->pinctrl_info.pinctrl);
+                                       }
+                                       a_ctrl->cam_pinctrl_status = 0;
+                                       rc = msm_camera_request_gpio_table(
+                                               a_ctrl->gconf->cam_gpio_req_tbl,
+                                               a_ctrl->gconf->cam_gpio_req_tbl_size,
+                                               0);
+                                       if (rc < 0)
+                                               pr_err("ERR:%s:Failed in selecting state in actuator power down: %d\n", __func__, rc);
+                               }
+                       }
+               } else {
+                       for (i = 0; i < a_ctrl->vreg_cfg.num_vreg; i++) {
+                               src_node = of_parse_phandle(of_node, "cam_vaf-supply", 0);
+                               if (!src_node) {
+                                       pr_err("actuator node is NULL\n");
+                                       continue;
+                               }
+                               rc = of_property_read_string(src_node, "regulator-name", &af_name);
+                               if (rc < 0) {
+                                       if (strcmp(af_name, "vaf_gpio_supply") == 0) {
+                                               pr_err("read regulator-name fail\n");
+                                               of_node_put(src_node);
+                                               src_node = NULL;
+                                               break;
+                                       }
+                               } else {
+                                       pr_err("actuator regulator name = %s", af_name);
+                                       if (gpio_get_value_cansleep(29)) {
+                                               pr_err("actuator power down again\n");
+                                               for (i = 0; i < 3; i++) {
+                                                       rc = msm_actuator_vreg_control(a_ctrl, 0);
+                                                       if (rc < 0)
+                                                               pr_err("%s power down again failed %d\n", __func__, __LINE__);
+                                               }
+                                       }
+                               }
+                               of_node_put(src_node);
+                               src_node = NULL;
+                       }
+               }
+       }
+#endif
 
        CDBG("Exit\n");
        return rc;
index 6252fb2..16e489a 100644 (file)
@@ -29,7 +29,7 @@ struct sensor_eeprom_name_t {
 };
 
 struct sensor_eeprom_name_t sensor_eeprom_name[3];
-uint8_t eeprom_name_count = 0;
+uint8_t eeprom_name_count;
 #endif
 
 DEFINE_MSM_MUTEX(msm_eeprom_mutex);
index 3ee6607..2b4531a 100644 (file)
@@ -41,14 +41,23 @@ static const struct v4l2_subdev_internal_ops msm_sensor_init_internal_ops;
 
 static int msm_sensor_wait_for_probe_done(struct msm_sensor_init_t *s_init)
 {
+       int rc;
+#ifdef CONFIG_MACH_XIAOMI_MSM8998
+       int tm = 60000;
+#else
+       int tm = 20000;
+#endif
+
        if (s_init->module_init_status == 1) {
                CDBG("msm_cam_get_module_init_status -2\n");
                return 0;
        }
-       wait_event(s_init->state_wait,
-               (s_init->module_init_status == 1));
+       rc = wait_event_timeout(s_init->state_wait,
+               (s_init->module_init_status == 1), msecs_to_jiffies(tm));
+       if (rc == 0)
+               pr_err("%s:%d wait timeout\n", __func__, __LINE__);
 
-       return 0;
+       return rc;
 }
 
 /* Static function definition */
index 6b5a730..b283e95 100644 (file)
@@ -35,7 +35,7 @@ DEFINE_MSM_MUTEX(msm_ois_mutex);
 
 #ifdef CONFIG_MACH_CHIRON
 bool ois_spi_work_flag = true;
-bool ois_check_flag = false;
+bool ois_check_flag;
 #endif
 
 static struct v4l2_file_operations msm_ois_v4l2_subdev_fops;