[media] rtl28xx: reimplement I2C adapter

It is almost perfect now!

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
diff --git a/drivers/media/dvb/dvb-usb/rtl28xxu.h b/drivers/media/dvb/dvb-usb/rtl28xxu.h
index dbde378..2047b1b 100644
--- a/drivers/media/dvb/dvb-usb/rtl28xxu.h
+++ b/drivers/media/dvb/dvb-usb/rtl28xxu.h
@@ -49,25 +49,30 @@
  * USB commands
  * (usb_control_msg() index parameter)
  */
-#define DEMOD (0x00 << 8)
-#define USB   (0x01 << 8)
-#define SYS   (0x02 << 8)
-#define I2C   (0x03 << 8)
+#define DEMOD  (0x00 << 8)
+#define USB    (0x01 << 8)
+#define SYS    (0x02 << 8)
+#define I2C    (0x03 << 8)
+#define I2C_DA (0x06 << 8)
+
 #define CMD_WR_FLAG   0x10
 #define CMD_DEMOD_RD  (DEMOD)
 #define CMD_DEMOD_WR  (DEMOD | CMD_WR_FLAG)
 #define CMD_USB_RD    (USB)
 #define CMD_USB_WR    (USB | CMD_WR_FLAG)
 #define CMD_SYS_RD    (SYS)
+#define CMD_IR_RD     (CMD_SYS_RD | 0x01)
+#define CMD_IR_WR     (CMD_SYS_WR | 0x01)
 #define CMD_SYS_WR    (SYS | CMD_WR_FLAG)
 #define CMD_I2C_RD    (I2C)
 #define CMD_I2C_WR    (I2C | CMD_WR_FLAG)
-#define CMD_IR_RD     (CMD_SYS_RD | 0x01)
-#define CMD_IR_WR     (CMD_SYS_WR | 0x01)
+#define CMD_I2C_DA_RD (I2C_DA)
+#define CMD_I2C_DA_WR (I2C_DA | CMD_WR_FLAG)
 
 struct rtl28xxu_priv {
 	u8 chip_id;
 	u8 tuner;
+	u8 page; /* integrated demod active register page */
 	bool rc_active;
 };