rpms/kernel/F-7 linux-2.6-v4l-dvb-fix-airstar-hd5000-tuner.patch, NONE, 1.1 kernel-2.6.spec, 1.3328, 1.3329

Chuck Ebbert (cebbert) fedora-extras-commits at redhat.com
Fri Aug 24 17:14:38 UTC 2007


Author: cebbert

Update of /cvs/pkgs/rpms/kernel/F-7
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv9575

Modified Files:
	kernel-2.6.spec 
Added Files:
	linux-2.6-v4l-dvb-fix-airstar-hd5000-tuner.patch 
Log Message:
* Fri Aug 24 2007 Chuck Ebbert <cebbert at redhat.com>
- V4L/DVB: fix airstar hd5000 tuner


linux-2.6-v4l-dvb-fix-airstar-hd5000-tuner.patch:

--- NEW FILE linux-2.6-v4l-dvb-fix-airstar-hd5000-tuner.patch ---
From: Trent Piepho <xyzzy at speakeasy.org>
Date: Sun, 19 Aug 2007 08:05:54 +0000 (-0300)
Subject: V4L/DVB (6042): b2c2-flexcop: fix Airstar HD5000 tuning regression
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fmchehab%2Fv4l-dvb.git;a=commitdiff_plain;h=6175e487e314385e37f06448847e4c46c20edb44

V4L/DVB (6042): b2c2-flexcop: fix Airstar HD5000 tuning regression

Git changeset 6bdcc6e6dbab8daffd05e5026486f34ba41a6c72 dropped the
stand-alone lgh06xf module, whose functionality was absorbed into the
dvb-pll module. However, there was a minor difference between the code
in lgh06xf and dvb-pll, which caused a regression in b2c2-flexcop
devices using the LG-H06xF NIM.

dvb-pll will probe for the presence of an i2c pll chip by performing a
single byte read, the lgh06xf driver did not do this. Unfortunately, the
code in flexcop-i2c.c does not currently support 1 byte or 0 byte reads
as a probe.  Such probes with the current code will always fail.

In order to work around this problem, and restore proper functionality
of the Airstar HD5000 device, this hack was created to make the probe
appear to succeed.  The single byte read in dvb_pll_attach is the only
place where such a probe would ever occur, so this change is safe, and
will not affect any other devices.

Of course, if one knew how to actually perform the read operation, it
would be better to go that route.  In the meantime, however, we must
apply this workaround, in order to prevent the regression that causes
tuning to fail on the Airstar HD5000 ATSC device.

Thanks to Jarod Wilson, who had originally reported this regression, and
to Geoffrey Hausheer, whose original workaround patch led us to find the
actual cause of the problem.

Signed-off-by: Trent Piepho <xyzzy at speakeasy.org>
Cc: Geoffrey Hausheer <inli3epy93n at phracturedblue.com>
Acked-by: Jarod Wilson <jwilson at redhat.com>
Signed-off-by: Michael Krufky <mkrufky at linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab at infradead.org>
---

diff --git a/drivers/media/dvb/b2c2/flexcop-i2c.c b/drivers/media/dvb/b2c2/flexcop-i2c.c
index 02a0ea6..6bf858a 100644
--- a/drivers/media/dvb/b2c2/flexcop-i2c.c
+++ b/drivers/media/dvb/b2c2/flexcop-i2c.c
@@ -135,6 +135,13 @@ static int flexcop_master_xfer(struct i2c_adapter *i2c_adap, struct i2c_msg msgs
 	struct flexcop_device *fc = i2c_get_adapdata(i2c_adap);
 	int i, ret = 0;
 
+	/* Some drivers use 1 byte or 0 byte reads as probes, which this
+	 * driver doesn't support.  These probes will always fail, so this
+	 * hack makes them always succeed.  If one knew how, it would of
+	 * course be better to actually do the read.  */
+	if (num == 1 && msgs[0].flags == I2C_M_RD && msgs[0].len <= 1)
+		return 1;
+
 	if (mutex_lock_interruptible(&fc->i2c_mutex))
 		return -ERESTARTSYS;
 


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-7/kernel-2.6.spec,v
retrieving revision 1.3328
retrieving revision 1.3329
diff -u -r1.3328 -r1.3329
--- kernel-2.6.spec	24 Aug 2007 16:55:36 -0000	1.3328
+++ kernel-2.6.spec	24 Aug 2007 17:14:05 -0000	1.3329
@@ -613,6 +613,7 @@
 Patch740: linux-2.6-sdhci-ene-controller-quirk.patch
 Patch741: linux-2.6-sdhci-fix-interrupt-mask.patch
 Patch742: linux-2.6-sdhci-clear-error-interrupt.patch
+Patch760: linux-2.6-v4l-dvb-fix-airstar-hd5000-tuner.patch
 #Patch780: linux-2.6-clockevents-fix-resume-logic.patch
 Patch800: linux-2.6-wakeups-hdaps.patch
 Patch801: linux-2.6-wakeups.patch
@@ -1346,6 +1347,8 @@
 ApplyPatch linux-2.6-sdhci-fix-interrupt-mask.patch
 # fix the interrupt mask fix
 ApplyPatch linux-2.6-sdhci-clear-error-interrupt.patch
+# v4l/dvb: fix aritar hd5000 tuner
+ApplyPatch linux-2.6-v4l-dvb-fix-airstar-hd5000-tuner.patch
 
 # USB
 #
@@ -2303,6 +2306,9 @@
 
 %changelog
 * Fri Aug 24 2007 Chuck Ebbert <cebbert at redhat.com>
+- V4L/DVB: fix airstar hd5000 tuner
+
+* Fri Aug 24 2007 Chuck Ebbert <cebbert at redhat.com>
 - fix 3ware 9000 controller DMA fallback (#251729)
 
 * Thu Aug 23 2007 Chuck Ebbert <cebbert at redhat.com>




More information about the fedora-extras-commits mailing list