Added code to detect the XC4100 chip, which is presumably an analog-only
"value" version of the XC4000. It is not sure, however, if any devices
using this have actually been produced and sold, so the patch may be
unneeded.
Signed-off-by: Istvan Varga <[email protected]>
diff -uNr xc4000_orig/drivers/media/common/tuners/xc4000.c xc4000/drivers/media/common/tuners/xc4000.c
--- xc4000_orig/drivers/media/common/tuners/xc4000.c 2011-06-04 16:35:50.000000000 +0200
+++ xc4000/drivers/media/common/tuners/xc4000.c 2011-06-04 16:40:09.000000000 +0200
@@ -140,7 +140,8 @@
/* Product id */
#define XC_PRODUCT_ID_FW_NOT_LOADED 0x2000
-#define XC_PRODUCT_ID_FW_LOADED 0x0FA0
+#define XC_PRODUCT_ID_XC4000 0x0FA0
+#define XC_PRODUCT_ID_XC4100 0x1004
/* Registers (Write-only) */
#define XREG_INIT 0x00
@@ -1071,7 +1072,9 @@
#endif
/* Check that the tuner hardware model remains consistent over time. */
- if (priv->hwmodel == 0 && hwmodel == 4000) {
+ if (priv->hwmodel == 0 &&
+ (hwmodel == XC_PRODUCT_ID_XC4000 ||
+ hwmodel == XC_PRODUCT_ID_XC4100)) {
priv->hwmodel = hwmodel;
priv->hwvers = version & 0xff00;
} else if (priv->hwmodel == 0 || priv->hwmodel != hwmodel ||
@@ -1678,7 +1681,8 @@
}
switch (id) {
- case XC_PRODUCT_ID_FW_LOADED:
+ case XC_PRODUCT_ID_XC4000:
+ case XC_PRODUCT_ID_XC4100:
printk(KERN_INFO
"xc4000: Successfully identified at address 0x%02x\n",
cfg->i2c_address);