@@ -1086,7 +1086,7 @@ static u64 sensor_link_rate(struct cfe_device *cfe)
1086
1086
}
1087
1087
1088
1088
link_freq = v4l2_get_link_freq (subdev -> ctrl_handler , fmt -> depth ,
1089
- cfe -> csi2 .active_data_lanes * 2 );
1089
+ cfe -> csi2 .dphy . active_lanes * 2 );
1090
1090
if (link_freq < 0 )
1091
1091
goto err ;
1092
1092
@@ -1149,27 +1149,24 @@ static int cfe_start_streaming(struct vb2_queue *vq, unsigned int count)
1149
1149
cfg_reg_write (cfe , MIPICFG_CFG , MIPICFG_CFG_SEL_CSI );
1150
1150
cfg_reg_write (cfe , MIPICFG_INTE , MIPICFG_INT_CSI_DMA | MIPICFG_INT_PISP_FE );
1151
1151
1152
- cfe -> csi2 .active_data_lanes = cfe -> csi2 .dphy .num_lanes ;
1153
- cfe_dbg ("Running with %u data lanes\n" , cfe -> csi2 .active_data_lanes );
1154
-
1155
1152
ret = v4l2_subdev_call (cfe -> sensor , pad , get_mbus_config , 0 ,
1156
1153
& mbus_config );
1157
1154
if (ret < 0 && ret != - ENOIOCTLCMD ) {
1158
1155
cfe_err ("g_mbus_config failed\n" );
1159
1156
goto err_pm_put ;
1160
1157
}
1161
1158
1162
- cfe -> csi2 .active_data_lanes = mbus_config .bus .mipi_csi2 .num_data_lanes ;
1163
- if (!cfe -> csi2 .active_data_lanes )
1164
- cfe -> csi2 .active_data_lanes = cfe -> csi2 .dphy .num_lanes ;
1165
- if (cfe -> csi2 .active_data_lanes > cfe -> csi2 .dphy .num_lanes ) {
1159
+ cfe -> csi2 .dphy . active_lanes = mbus_config .bus .mipi_csi2 .num_data_lanes ;
1160
+ if (!cfe -> csi2 .dphy . active_lanes )
1161
+ cfe -> csi2 .dphy . active_lanes = cfe -> csi2 .dphy .max_lanes ;
1162
+ if (cfe -> csi2 .dphy . active_lanes > cfe -> csi2 .dphy .max_lanes ) {
1166
1163
cfe_err ("Device has requested %u data lanes, which is >%u configured in DT\n" ,
1167
- cfe -> csi2 .active_data_lanes , cfe -> csi2 .dphy .num_lanes );
1164
+ cfe -> csi2 .dphy . active_lanes , cfe -> csi2 .dphy .max_lanes );
1168
1165
ret = - EINVAL ;
1169
1166
goto err_disable_cfe ;
1170
1167
}
1171
1168
1172
- cfe_dbg ("Configuring CSI-2 block\n" );
1169
+ cfe_dbg ("Configuring CSI-2 block - %u data lanes \n" , cfe -> csi2 . dphy . active_lanes );
1173
1170
cfe -> csi2 .dphy .dphy_rate = sensor_link_rate (cfe ) / 1000000UL ;
1174
1171
csi2_open_rx (& cfe -> csi2 );
1175
1172
@@ -2167,11 +2164,11 @@ static int of_cfe_connect_subdevs(struct cfe_device *cfe)
2167
2164
}
2168
2165
}
2169
2166
2170
- cfe -> csi2 .dphy .num_lanes = ep .bus .mipi_csi2 .num_data_lanes ;
2167
+ cfe -> csi2 .dphy .max_lanes = ep .bus .mipi_csi2 .num_data_lanes ;
2171
2168
cfe -> csi2 .bus_flags = ep .bus .mipi_csi2 .flags ;
2172
2169
2173
2170
cfe_dbg ("subdevice %pOF: %u data lanes, flags=0x%08x, multipacket_line=%u\n" ,
2174
- sensor_node , cfe -> csi2 .dphy .num_lanes , cfe -> csi2 .bus_flags ,
2171
+ sensor_node , cfe -> csi2 .dphy .max_lanes , cfe -> csi2 .bus_flags ,
2175
2172
cfe -> csi2 .multipacket_line );
2176
2173
2177
2174
/* Initialize and register the async notifier. */
0 commit comments