 +	int				dvp_order;
 +};
 +
++static int force_conf_link;
++
++static __init int ov490_force_conf_link(char *str)
++{
++	/* force configuration link */
++	/* used only if robust firmware flashing required (f.e. recovery) */
++	force_conf_link = 1;
++	return 0;
++}
++early_param("force_conf_link", ov490_force_conf_link);
++
 +static inline struct ov490_priv *to_ov490(const struct i2c_client *client)
 +{
 +	return container_of(i2c_get_clientdata(client), struct ov490_priv, sd);

+{
+	int ret, retries;
+
+	for (retries = MAXIM_NUM_RETRIES; retries; retries--) {
+		ret = i2c_smbus_write_byte_data(client, reg, val);
+		if (!(ret < 0))
+			break;

+		usleep_range(2000, 2500);			/* wait 2ms after any change of reverse channel settings */
+
+		client->addr = 0x40;				/* MAX9271-CAMx I2C */
+		reg8_write(client, 0x04, 0x43);			/* wake-up, enable reverse_control/conf_link */
+		usleep_range(2000, 2500);			/* wait 2ms after any change of reverse channel settings */
+
+		client->addr = 0x40;				/* MAX9271-CAMx I2C */
