kconfig config MSM_CAMERA_FLASH
.config
/kernel/drivers/media/video/msm/Kconfig
config MSM_CAMERA_FLASH
bool "Qualcomm MSM camera flash support"
depends on MSM_CAMERA && !ARCH_MSM8X60
default n
---help---
Enable support for LED flash for msm camera
试着从这里关掉,结果不成功:( !!
FLOW: from java APP TO DRV
packages/apps/Camera/src/com/android/camera/CameraSettings.java
private void initPreference(PreferenceGroup group) {
...
if (flashMode != null) {
filterUnsupportedOptions(group,
flashMode, mParameters.getSupportedFlashModes());
}
...
}
frameworks/base/core/java/android/hardware/camera.java
public List<String> getSupportedFlashModes() {
String str = get(KEY_FLASH_MODE + SUPPORTED_VALUES_SUFFIX);
//yue KEY_FLASH_MODE + SUPPORTED_VALUES_SUFFIX="flash-mode-values"
// return null;
Log.e("CAM", "------->getSupportedFlashModes()");
Log.e("CAM", "str ="+str);
Log.e("CAM", "RETURN:List<String> ="+split(str));
return split(str);
}
frameworks/base/libs/camera/CameraParameters.cpp --->编译到system/lib/libcamera_client.so
const char CameraParameters::KEY_SUPPORTED_FLASH_MODES[] = "flash-mode-values";
vendor/qcom/android-open/libcamera2/QualcommCameraHardware.cpp--->编译到system/lib/libcamera.so
void QualcommCameraHardware::initDefaultParameters()
{
...
if (mSensorInfo.flash_enabled) {
mParameters.set(CameraParameters::KEY_FLASH_MODE,
CameraParameters::FLASH_MODE_OFF);
mParameters.set(CameraParameters::KEY_SUPPORTED_FLASH_MODES,
flash_values);
}
...
}
bool QualcommCameraHardware::startCamera()
{
...
if (ioctl(mCameraControlFd,
MSM_CAM_IOCTL_GET_SENSOR_INFO,
&mSensorInfo) < 0)
LOGW("%s: cannot retrieve sensor info!", __FUNCTION__);
else
LOGI("%s: camsensor name %s, flash %d", __FUNCTION__,
mSensorInfo.name, mSensorInfo.flash_enabled);
...
}
kernel/drivers/media/video/msm/msm_camera.c--->编译到??????????????system/lib/libcamera.so
static long msm_ioctl_config(struct file *filep, unsigned int cmd,
unsigned long arg)
{
...
switch (cmd) {
case MSM_CAM_IOCTL_GET_SENSOR_INFO:
rc = msm_get_sensor_info(pmsm->sync, argp);
break;
...
}
static int msm_get_sensor_info(struct msm_sync *sync, void __user *arg)
{
...
memcpy(&info.name[0],
sdata->sensor_name,
MAX_SENSOR_NAME);
info.flash_enabled = sdata->flash_data->flash_type !=
MSM_CAMERA_FLASH_NONE;
...
}
kernel/arch/arm/mach-msm/board-msm7x27-qrd.c--->编译到??????????????system/lib/libcamera.so
static struct msm_camera_sensor_info msm_camera_sensor_ov2655_data = {
.sensor_name = "ov2655",
.sensor_reset = 89,
.sensor_pwd = 27,
.vcm_pwd = 0,
.vcm_enable = 0,
.pdata = &msm_camera_device_data,
.flash_data = &flash_ov2655
};
static struct msm_camera_sensor_flash_data flash_ov2655 = {
// .flash_type = MSM_CAMERA_FLASH_LED,
.flash_type = MSM_CAMERA_FLASH_NONE,
.flash_src = &msm_flash_src
//yuebao
};
.config
/kernel/drivers/media/video/msm/Kconfig
config MSM_CAMERA_FLASH
bool "Qualcomm MSM camera flash support"
depends on MSM_CAMERA && !ARCH_MSM8X60
default n
---help---
Enable support for LED flash for msm camera
试着从这里关掉,结果不成功:( !!
FLOW: from java APP TO DRV
packages/apps/Camera/src/com/android/camera/CameraSettings.java
private void initPreference(PreferenceGroup group) {
...
if (flashMode != null) {
filterUnsupportedOptions(group,
flashMode, mParameters.getSupportedFlashModes());
}
...
}
frameworks/base/core/java/android/hardware/camera.java
public List<String> getSupportedFlashModes() {
String str = get(KEY_FLASH_MODE + SUPPORTED_VALUES_SUFFIX);
//yue KEY_FLASH_MODE + SUPPORTED_VALUES_SUFFIX="flash-mode-values"
// return null;
Log.e("CAM", "------->getSupportedFlashModes()");
Log.e("CAM", "str ="+str);
Log.e("CAM", "RETURN:List<String> ="+split(str));
return split(str);
}
frameworks/base/libs/camera/CameraParameters.cpp --->编译到system/lib/libcamera_client.so
const char CameraParameters::KEY_SUPPORTED_FLASH_MODES[] = "flash-mode-values";
vendor/qcom/android-open/libcamera2/QualcommCameraHardware.cpp--->编译到system/lib/libcamera.so
void QualcommCameraHardware::initDefaultParameters()
{
...
if (mSensorInfo.flash_enabled) {
mParameters.set(CameraParameters::KEY_FLASH_MODE,
CameraParameters::FLASH_MODE_OFF);
mParameters.set(CameraParameters::KEY_SUPPORTED_FLASH_MODES,
flash_values);
}
...
}
bool QualcommCameraHardware::startCamera()
{
...
if (ioctl(mCameraControlFd,
MSM_CAM_IOCTL_GET_SENSOR_INFO,
&mSensorInfo) < 0)
LOGW("%s: cannot retrieve sensor info!", __FUNCTION__);
else
LOGI("%s: camsensor name %s, flash %d", __FUNCTION__,
mSensorInfo.name, mSensorInfo.flash_enabled);
...
}
kernel/drivers/media/video/msm/msm_camera.c--->编译到??????????????system/lib/libcamera.so
static long msm_ioctl_config(struct file *filep, unsigned int cmd,
unsigned long arg)
{
...
switch (cmd) {
case MSM_CAM_IOCTL_GET_SENSOR_INFO:
rc = msm_get_sensor_info(pmsm->sync, argp);
break;
...
}
static int msm_get_sensor_info(struct msm_sync *sync, void __user *arg)
{
...
memcpy(&info.name[0],
sdata->sensor_name,
MAX_SENSOR_NAME);
info.flash_enabled = sdata->flash_data->flash_type !=
MSM_CAMERA_FLASH_NONE;
...
}
kernel/arch/arm/mach-msm/board-msm7x27-qrd.c--->编译到??????????????system/lib/libcamera.so
static struct msm_camera_sensor_info msm_camera_sensor_ov2655_data = {
.sensor_name = "ov2655",
.sensor_reset = 89,
.sensor_pwd = 27,
.vcm_pwd = 0,
.vcm_enable = 0,
.pdata = &msm_camera_device_data,
.flash_data = &flash_ov2655
};
static struct msm_camera_sensor_flash_data flash_ov2655 = {
// .flash_type = MSM_CAMERA_FLASH_LED,
.flash_type = MSM_CAMERA_FLASH_NONE,
.flash_src = &msm_flash_src
//yuebao
};