summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSakari Ailus <sakari.ailus@linux.intel.com>2020-05-28 01:00:29 +0200
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>2020-12-03 12:27:31 +0100
commite40f1bcbeea6482bae1e077bb57a21ef5db2b499 (patch)
tree1aa12248e817db125ce6851d0a70ea984100d1af
parent7d8d59f260bad0b3b11dc94e88b4195a2d1798af (diff)
media: ccs: Replace somewhat harsh internal checks based on BUG with WARN_ON
If an internal driver error was encountered, BUG was issued. Instead, do less harsh WARN_ON_ONCE and try to manage with the consequences. Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
-rw-r--r--drivers/media/i2c/ccs/ccs-core.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/media/i2c/ccs/ccs-core.c b/drivers/media/i2c/ccs/ccs-core.c
index 25b4c84524ff..70b4d2180971 100644
--- a/drivers/media/i2c/ccs/ccs-core.c
+++ b/drivers/media/i2c/ccs/ccs-core.c
@@ -546,6 +546,10 @@ static void ccs_update_mbus_formats(struct ccs_sensor *sensor)
to_csi_format_idx(sensor->internal_csi_format) & ~3;
unsigned int pixel_order = ccs_pixel_order(sensor);
+ if (WARN_ON_ONCE(max(internal_csi_format_idx, csi_format_idx) +
+ pixel_order >= ARRAY_SIZE(ccs_csi_data_formats)))
+ return;
+
sensor->mbus_frame_fmts =
sensor->default_mbus_frame_fmts << pixel_order;
sensor->csi_format =
@@ -554,9 +558,6 @@ static void ccs_update_mbus_formats(struct ccs_sensor *sensor)
&ccs_csi_data_formats[internal_csi_format_idx
+ pixel_order];
- BUG_ON(max(internal_csi_format_idx, csi_format_idx) + pixel_order
- >= ARRAY_SIZE(ccs_csi_data_formats));
-
dev_dbg(&client->dev, "new pixel order %s\n",
pixel_order_str[pixel_order]);
}
@@ -1806,7 +1807,7 @@ static void ccs_propagate(struct v4l2_subdev *subdev,
*crops[CCS_PAD_SRC] = *comp;
break;
default:
- BUG();
+ WARN_ON_ONCE(1);
}
}