From 3018f1ad77f6943665d5300490cff3c1ee1e4f17 Mon Sep 17 00:00:00 2001
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
Date: Thu, 12 May 2022 17:42:08 +0100
Subject: [PATCH] media: i2c: arducam-pivariety: Fixup for mainline API
 changes

Mainline APIs have changed the way in which the bus flags and
number of active CSI2 data lanes is signalled, so fix the driver
up accordingly.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
---
 drivers/media/i2c/arducam-pivariety.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/drivers/media/i2c/arducam-pivariety.c
+++ b/drivers/media/i2c/arducam-pivariety.c
@@ -66,7 +66,7 @@ struct pivariety {
 	struct v4l2_subdev sd;
 	struct media_pad pad;
 
-	struct v4l2_fwnode_bus_mipi_csi2 bus;
+	struct v4l2_mbus_config_mipi_csi2 bus;
 	struct clk *xclk;
 	u32 xclk_freq;
 
@@ -946,13 +946,13 @@ static int pivariety_get_mbus_config(str
 				     struct v4l2_mbus_config *cfg)
 {
 	struct pivariety *pivariety = to_pivariety(sd);
-	const u32 mask = V4L2_MBUS_CSI2_LANE_MASK;
 
 	if (pivariety->lanes > pivariety->bus.num_data_lanes)
 		return -EINVAL;
 
 	cfg->type = V4L2_MBUS_CSI2_DPHY;
-	cfg->flags = (pivariety->lanes << __ffs(mask)) & mask;
+	cfg->bus.mipi_csi2.flags = pivariety->bus.flags;
+	cfg->bus.mipi_csi2.num_data_lanes = pivariety->lanes;
 
 	return 0;
 }
