Dib0070 i2c write failed / read failed pinnacle 72e

I've recently moved my mythdora backend to a VMware ESXi hosted VM, I'm using USB passthrough to pass my pinnacle pctv 72e DVB USB stick to the VM. At around this time I started to notice the pctv/driver fail, dmesg says "DiB0070 i2c write failed" or read failed. The only way to get it back is to reboot the VM. This is now happening almost daily, dispite a cron scheduled reboot each night.

The only two main changes are that

a) The VM is now 64bit, rather than 32bit
b) The old backend started up and shutdown automatically, so I don't really know if this problem used to exist because of the regular resets of the hardware.

I've seen reference to this problem on various web sites talking about various different tv grabber cards/USB sticks, but no solutions.

Does anyone have any ideas?

Rebuild...

I've rebuilt my backend to the 32bit version and the problem has changed slightly, I now get:

dib0700: key failed integrity check 8f 7a 78 64
dvb-usb: error while querying for an remote control event.

The above repeats many times in dmesg, the hex numbers are different each time. After a while, possibly triggered by trying to watch live tv, I then see the following repeating (I've removed less than chevrons from after the [ and before the c towards the bottom so they don't get picked up as metatags):

INFO: task khubd:22 blocked for more than 120 seconds.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
khubd D 0000399d 0 22 2 0x00000000
f6d8bde8 00000046 5db9b7b7 0000399d 000c0773 00000000 f6d80f54 c0441195
c0a5f6ac c0a64140 f6d80f54 c0a64140 c0a64140 c0403fd5 03c20d55 f6d80cb0
00000000 00000000 0000399d f6d80cb0 00000246 f6d8bde8 c0454976 00000246
Call Trace:
[c0441195>] ? irq_exit+0x3e/0x61
[c0403fd5>] ? apic_timer_interrupt+0x31/0x38
[c0454976>] ? prepare_to_wait+0x46/0x4c
[f7cb1db5>] dvb_unregister_frontend+0x99/0xd0 [dvb_core]
[c0454789>] ? autoremove_wake_function+0x0/0x34
[f7d79bd6>] dvb_usb_adapter_frontend_exit+0x1a/0x2a [dvb_usb]
[f7d7932e>] dvb_usb_exit+0x31/0x96 [dvb_usb]
[f7d793ce>] dvb_usb_device_exit+0x3b/0x4f [dvb_usb]
[c069e2ee>] usb_unbind_interface+0x50/0xc5
[c0651804>] __device_release_driver+0x5c/0x9e
[c06518e5>] device_release_driver+0x1d/0x28
[c0650ced>] bus_remove_device+0x95/0xbe
[c064f3e7>] device_del+0xf8/0x150
[c069b8f6>] usb_disable_device+0x6d/0x182
[c04582fe>] ? down+0x30/0x36
[c0695f1e>] usb_disconnect+0xd0/0x188
[c0697ad6>] hub_thread+0x56c/0x10e8
[c04350bd>] ? finish_task_switch+0x3f/0x9d
[c0454789>] ? autoremove_wake_function+0x0/0x34
[c0454551>] kthread+0x64/0x69
[c069756a>] ? hub_thread+0x0/0x10e8
[c069756a>] ? hub_thread+0x0/0x10e8
[c0454551>] ? kthread+0x64/0x69
[c04544ed>] ? kthread+0x0/0x69
[c04041e7>] kernel_thread_helper+0x7/0x10