Skip to content

Commit a53ea06

Browse files
committed
drivers: video: mipi_csi2rx: Change pixel rate type to uint32_t
Change pixel rate type to uint32_t which is sufficient to support pixel rates range. Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com> Signed-off-by: Trung Hieu Le <trunghieu.le@nxp.com>
1 parent 85f92f1 commit a53ea06

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

drivers/video/video_mcux_mipi_csi2rx.c

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ struct mipi_csi2rx_data {
3535
};
3636

3737
struct mipi_csi2rx_tHsSettleEscClk_config {
38-
uint64_t pixel_rate;
38+
uint32_t pixel_rate;
3939
uint8_t tHsSettle_EscClk;
4040
};
4141

@@ -51,7 +51,7 @@ static int mipi_csi2rx_update_settings(const struct device *dev, enum video_endp
5151
const struct mipi_csi2rx_config *config = dev->config;
5252
struct mipi_csi2rx_data *drv_data = dev->data;
5353
uint8_t bpp;
54-
uint64_t sensor_pixel_rate;
54+
uint32_t sensor_pixel_rate;
5555
uint32_t root_clk_rate, ui_clk_rate, sensor_byte_clk, best_match;
5656
int ret, ind = 0;
5757
struct video_format fmt;
@@ -95,9 +95,8 @@ static int mipi_csi2rx_update_settings(const struct device *dev, enum video_endp
9595
}
9696

9797
if (sensor_pixel_rate > ui_clk_rate) {
98-
ret = clock_control_set_rate(
99-
drv_data->clock_dev, drv_data->clock_ui,
100-
(clock_control_subsys_rate_t)(uint32_t)sensor_pixel_rate);
98+
ret = clock_control_set_rate(drv_data->clock_dev, drv_data->clock_ui,
99+
(clock_control_subsys_rate_t)sensor_pixel_rate);
101100
if (ret) {
102101
return ret;
103102
}
@@ -216,21 +215,20 @@ static int mipi_csi2rx_get_frmival(const struct device *dev, enum video_endpoint
216215
return video_get_frmival(config->sensor_dev, ep, frmival);
217216
}
218217

219-
static uint64_t mipi_csi2rx_cal_frame_size(const struct video_format *fmt)
218+
static uint32_t mipi_csi2rx_cal_frame_size(const struct video_format *fmt)
220219
{
221220
return fmt->height * fmt->width * video_bits_per_pixel(fmt->pixelformat);
222221
}
223222

224-
static uint64_t mipi_csi2rx_estimate_pixel_rate(const struct video_frmival *cur_fmival,
223+
static uint32_t mipi_csi2rx_estimate_pixel_rate(const struct video_frmival *cur_fmival,
225224
const struct video_frmival *fie_frmival,
226225
const struct video_format *cur_format,
227226
const struct video_format *fie_format,
228-
uint64_t cur_pixel_rate, uint8_t laneNum)
227+
uint32_t cur_pixel_rate, uint8_t laneNum)
229228
{
230-
return mipi_csi2rx_cal_frame_size(cur_format) * fie_frmival->denominator *
231-
cur_fmival->numerator * cur_pixel_rate /
232-
(mipi_csi2rx_cal_frame_size(fie_format) * fie_frmival->numerator *
233-
cur_fmival->denominator);
229+
return (mipi_csi2rx_cal_frame_size(cur_format) / mipi_csi2rx_cal_frame_size(fie_format) *
230+
fie_frmival->denominator / fie_frmival->numerator * cur_fmival->numerator /
231+
cur_fmival->denominator * cur_pixel_rate);
234232
}
235233

236234
static int mipi_csi2rx_enum_frmival(const struct device *dev, enum video_endpoint_id ep,
@@ -239,7 +237,7 @@ static int mipi_csi2rx_enum_frmival(const struct device *dev, enum video_endpoin
239237
const struct mipi_csi2rx_config *config = dev->config;
240238
struct mipi_csi2rx_data *drv_data = dev->data;
241239
int ret;
242-
uint64_t cur_pixel_rate, est_pixel_rate;
240+
uint32_t cur_pixel_rate, est_pixel_rate;
243241
struct video_frmival cur_frmival;
244242
struct video_format cur_fmt;
245243

0 commit comments

Comments
 (0)