XC5000C 0x14b4 status

Unembossed Name
2015-06-25T21:01:06Z

Hi,

I was working on a Linux driver for a hybrid TV-tuner with SAA7134 PCI bridge, XC5000C RF tuner and Si2168 DVB demodulator by a
"combining" all existent at that time drivers together.
During that work, I had an issue with XC5000C.
Episodically, after attaching to DVB and reading XREG_PRODUCT_ID register, it
was possible to receive 0x14b4 instead of usual 0x1388 status. And as a result get a "xc5000: Device not found at addr 0x%02x
(0x%x)\n" in dmesg.
To workaround these, I added a few strings to a source of a driver to make it's behaviour the same for 0x14b4, as for 0x1388.
After that RF tuner identification became always successful.
I had a conversation with a hardware vendor.
Now I can say, that such behaviour, most likely, because of "early" firmware for XC5000C.
This hardware vendor is using for his Windows driver a latest firmware, and reading Product ID register always gives 0x14b4 status.
As he says, 0x1388 status is only for previous XC5000 IC. (Without C at end of a P/N)
Is this possible to patch xc5000.c with something like this:

#define XC_PRODUCT_ID_FW_LOADED 0x1388
+#define XC_PRODUCT_ID_FW_LOADED_XC5000C 0x14b4

case XC_PRODUCT_ID_FW_LOADED:
+ case XC_PRODUCT_ID_FW_LOADED_XC5000C:
printk(KERN_INFO
"xc5000: Successfully identified at address 0x%02x\n",

Or to try to get a chip vendor's permission for using a latest firmware for XC5000C in Linux, and then anyway, patch the driver?

Best regards.