media: mt9p031: Refactor format handling for different sensor models
authorTarang Raval <tarang.raval@siliconsignals.io>
Tue, 29 Oct 2024 06:29:16 +0000 (11:59 +0530)
committerHans Verkuil <hverkuil@xs4all.nl>
Thu, 7 Nov 2024 08:05:58 +0000 (09:05 +0100)
Add new structure 'mt9p031_model_info' to encapsulate format codes for
the mt9p031 camera sensor family. This approach enhances code clarity
and maintainability.

Signed-off-by: Tarang Raval <tarang.raval@siliconsignals.io>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
drivers/media/i2c/mt9p031.c

index da1b90f032532fcd6dd53fabac45cc547abb24e4..4ef5fb06131d5dc29710a323424c1b817b7a4a27 100644 (file)
 #define MT9P031_TEST_PATTERN_RED                       0xa2
 #define MT9P031_TEST_PATTERN_BLUE                      0xa3
 
+struct mt9p031_model_info {
+       u32 code;
+};
+
 struct mt9p031 {
        struct v4l2_subdev subdev;
        struct media_pad pad;
@@ -1204,10 +1208,18 @@ static void mt9p031_remove(struct i2c_client *client)
        mutex_destroy(&mt9p031->power_lock);
 }
 
+static const struct mt9p031_model_info mt9p031_models_bayer = {
+       .code = MEDIA_BUS_FMT_SGRBG12_1X12
+};
+
+static const struct mt9p031_model_info mt9p031_models_mono = {
+       .code = MEDIA_BUS_FMT_Y12_1X12
+};
+
 static const struct of_device_id mt9p031_of_match[] = {
-       { .compatible = "aptina,mt9p006", .data = (void *)MEDIA_BUS_FMT_SGRBG12_1X12 },
-       { .compatible = "aptina,mt9p031", .data = (void *)MEDIA_BUS_FMT_SGRBG12_1X12 },
-       { .compatible = "aptina,mt9p031m", .data = (void *)MEDIA_BUS_FMT_Y12_1X12 },
+       { .compatible = "aptina,mt9p006", .data = &mt9p031_models_bayer },
+       { .compatible = "aptina,mt9p031", .data = &mt9p031_models_bayer },
+       { .compatible = "aptina,mt9p031m", .data = &mt9p031_models_mono },
        { /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, mt9p031_of_match);