msm: camera: csiphy: Update logic for lane enablement

Currently lane enablement is happening as a part of lanemask
field, which is send by UMD. Lane enablement should be purely
depends on laneCnt and laneAssign attributes. Also, combo mode
sensors needs to come with combo mode flag set from the UMD.
This change updates the logic for lane enablement with respect
to laneAssign and laneCnt, and also covers all combomode selection
as per the request. This change also enables the sensors to acquire
and streamon/streamoff at anytime in session.

CRs-Fixed: 2677450
Change-Id: I4f0d3ffd7245a931c273611c9c4b7e503c038664
Signed-off-by: Jigarkumar Zala <jzala@codeaurora.org>
This commit is contained in:
Jigarkumar Zala
2020-03-16 12:20:57 -07:00
parent b4f16aace6
commit fa08068801
8 changed files with 679 additions and 387 deletions

View File

@@ -324,23 +324,18 @@ struct cam_cmd_unconditional_wait {
} __attribute__((packed));
/**
* cam_csiphy_info: Provides cmdbuffer structre
* @lane_mask : Lane mask details
* @lane_assign : Lane sensor will be using
* @csiphy_3phase : Total number of lanes
* @combo_mode : Info regarding combo_mode is enable / disable
* @lane_cnt : Total number of lanes
* @secure_mode : Secure mode flag to enable / disable
* @3phase : Details whether 3Phase / 2Phase operation
* @settle_time : Settling time in ms
* @data_rate : Data rate
* cam_csiphy_info : Provides cmdbuffer structre
* @lane_assign : Lane sensor will be using
* @lane_cnt : Total number of lanes
* @secure_mode : Secure mode flag to enable / disable
* @settle_time : Settling time in ms
* @data_rate : Data rate
*
*/
struct cam_csiphy_info {
__u16 lane_mask;
__u16 reserved;
__u16 lane_assign;
__u8 csiphy_3phase;
__u8 combo_mode;
__u16 reserved1;
__u8 lane_cnt;
__u8 secure_mode;
__u64 settle_time;
@@ -349,14 +344,18 @@ struct cam_csiphy_info {
/**
* cam_csiphy_acquire_dev_info : Information needed for
* csiphy at the time of acquire
* @combo_mode : Indicates the device mode of operation
* @reserved
* csiphy at the time of acquire
* @combo_mode : Indicates the device mode of operation
* @cphy_dphy_combo_mode : Info regarding cphy_dphy_combo mode
* @csiphy_3phase : Details whether 3Phase / 2Phase operation
* @reserve
*
*/
struct cam_csiphy_acquire_dev_info {
__u32 combo_mode;
__u32 reserved;
__u16 cphy_dphy_combo_mode;
__u8 csiphy_3phase;
__u8 reserve;
} __attribute__((packed));
/**