\[dora@kitty dvb-pt1\]$ hg diff
diff -r 57079477327d linux/drivers/media/dvb/pt1/pt1.c
--- a/linux/drivers/media/dvb/pt1/pt1.c Wed Apr 07 23:41:14 2010 +0900
+++ b/linux/drivers/media/dvb/pt1/pt1.c Sat Apr 09 14:51:06 2011 +0900
@@ -146,12 +146,13 @@
 {
  int i;
  for (i = 0; i < 57; i++) {
+  pt1\_read\_reg(pt1, 0);
   if (pt1\_read\_reg(pt1, 0) & 0x20000000)
    return 0;
   pt1\_write\_reg(pt1, 0, 0x00000008);
  }
  pt1\_printk(KERN\_ERR, pt1, "could not sync\\n");
- return -EIO;
+ return 0;
 }
 
 static u64 pt1\_identify(struct pt1 \*pt1)
@@ -160,6 +161,7 @@
  u64 id;
  id = 0;
  for (i = 0; i < 57; i++) {
+                pt1\_read\_reg(pt1, 0);
   id |= (u64)(pt1\_read\_reg(pt1, 0) >> 30 & 1) << i;
   pt1\_write\_reg(pt1, 0, 0x00000008);
  }
@@ -171,6 +173,7 @@
  int i;
  pt1\_write\_reg(pt1, 0, 0x00000008);
  for (i = 0; i < 3; i++) {
+                pt1\_read\_reg(pt1, 0);
   if (pt1\_read\_reg(pt1, 0) & 0x80000000)
    return 0;
   schedule\_timeout\_uninterruptible((HZ + 999) / 1000);

こんなかんじな気がする。しかし、某SDKソースのライセンスってどうなってるのかのぅ。