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

+	int ret, retries;
+	u8 buf[2] = {reg >> 8, reg & 0xff};
+
+	for (retries = MAXIM_NUM_RETRIES; retries; retries--) {
+		ret = i2c_master_send(client, buf, 2);
+		if (ret == 2) {
+			ret = i2c_master_recv(client, buf, 1);

+static __init int max9286_max9271_force_conf_link(char *str)
+{
+	/* force configuration link */
+	/* used only if robust firmware flashing required (f.e. recovery) */
+	force_conf_link = 1;
+	return 0;
+}
