tree -L 1 ./media/platform/msm/camera_v2/sensor/
./media/platform/msm/camera_v2/sensor/
├── actuator
├── cci
├── csid
├── csiphy
├── eeprom
├── flash
├── io
├── ir_cut
├── ir_led
├── laser_led
├── Makefile
├── msm_sensor.c
├── msm_sensor_driver.c
├── msm_sensor_driver.h
├── msm_sensor.h
├── msm_sensor_init.c
├── msm_sensor_init.h
└── ois
out/target/product/msm8953_64/obj/KERNEL_OBJ/drivers/media/platform/msm/camera_v2/sensor/
├── actuator
├── built-in.o
├── cci
├── csid
├── csiphy
├── eeprom
├── flash
├── io
├── ir_cut
├── ir_led
├── laser_led
├── modules.builtin
├── modules.order
├── msm_sensor_driver.o
├── msm_sensor_init.o
├── msm_sensor.o
└── ois
编译的生成有
msm_sensor.c, msm_sensor_init.c, msm_sensor_driver.c
msm_sensor_init.c //与v4l2相关的,无compatible
├── msm_sensor_wait_for_probe_done
├── msm_sensor_driver_cmd
├── msm_sensor_init_subdev_ioctl
├── msm_sensor_init_subdev_do_ioctl
├── msm_sensor_init_subdev_fops_ioctl
├── msm_sensor_init_module
├── msm_sensor_exit_module
msm_sensor_driver.c //comaptible: compatible = "qcom,camera"
|
|---- paltform_driver_register(&msm_sensor_paltfoem_driver)
|---- i2c_add_driver(&msm_sensor_driver_i2c)
1.msm_sensor_platform_driver
---> msm_sensor_driver_platform_probe
---> .of_match_table = msm_sensor_driver_dt_match
//{.compatible = "qcom,camera"},
msm_sensor_driver_platform_probe
// struct msm_sensor_ctrl_t *s_ctrl = NULL;
// 初始化结构体,进行成员的初始化
2.msm_sensor_driver_i2c
---> msm_sensor_driver_i2c_probe
//struct msm_sensor_ctrl_t *s_ctrl; //初始化这个 还是这个~~
-----------------------------------
怎么看没ops, 没ictl啊 ,反向grep一下
面向过程的开始在这里msm_sensor_init.c里面
msm_sensor_init_module
|
msm_sensor_init_subdev_fops_ioctl
|
msm_sensor_init_subdev_do_ioctl
|
msm_sensor_init_subdev_ioctl
|
msm_sensor_driver_cmd
|
msm_sensor_driver_probe
|
|--------rc = msm_sensor_get_power_settings()
msm_sensor_get_power_settings
|
----rc = msm_sensor_get_power_up_settings(setting, slave_info, power_info);
|
----rc = msm_sensor_get_power_down_settings(setting, slave_info,power_info);