Magellan Linux

Contents of /trunk/kernel26-magellan/patches-2.6.16-r10/0111-2.6.16.12-cxusb-bluebird.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 70 - (show annotations) (download)
Thu May 11 19:09:22 2006 UTC (18 years ago) by niro
File size: 2813 byte(s)
import

1 From: Michael Krufky <mkrufky@linuxtv.org>
2 Date: Sat, 22 Apr 2006 07:35:50 +0000 (-0400)
3 Subject: [PATCH] cxusb-bluebird: bug-fix: power down corrupts frontend
4 X-Git-Url: http://www.kernel.org/git/?p=linux/kernel/git/stable/linux-2.6.16.y.git;a=commitdiff;h=5667cc6c6ddf816527a04ea9b0c6fc9bee6f8ed3
5
6 [PATCH] cxusb-bluebird: bug-fix: power down corrupts frontend
7
8 This patch prevents a bug where the frontend is unable to tune after waking
9 from powered down state. Now, the device remains powered on until it is
10 disconnected, just like the windows driver. It seems that the bluebird
11 firmware is unable to successfully handle tuning after a powered down state.
12
13 This patch fixes all of the FusionHDTV Bluebird USB2 devices. The Medion
14 MD95700 will still behave as before, since it was unaffected by this bug.
15
16 Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
17 Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
18 ---
19
20 --- a/drivers/media/dvb/dvb-usb/cxusb.c
21 +++ b/drivers/media/dvb/dvb-usb/cxusb.c
22 @@ -149,6 +149,15 @@ static int cxusb_power_ctrl(struct dvb_u
23 return cxusb_ctrl_msg(d, CMD_POWER_OFF, &b, 1, NULL, 0);
24 }
25
26 +static int cxusb_bluebird_power_ctrl(struct dvb_usb_device *d, int onoff)
27 +{
28 + u8 b = 0;
29 + if (onoff)
30 + return cxusb_ctrl_msg(d, CMD_POWER_ON, &b, 1, NULL, 0);
31 + else
32 + return 0;
33 +}
34 +
35 static int cxusb_streaming_ctrl(struct dvb_usb_device *d, int onoff)
36 {
37 u8 buf[2] = { 0x03, 0x00 };
38 @@ -505,7 +514,7 @@ static struct dvb_usb_properties cxusb_b
39 .size_of_priv = sizeof(struct cxusb_state),
40
41 .streaming_ctrl = cxusb_streaming_ctrl,
42 - .power_ctrl = cxusb_power_ctrl,
43 + .power_ctrl = cxusb_bluebird_power_ctrl,
44 .frontend_attach = cxusb_lgdt3303_frontend_attach,
45 .tuner_attach = cxusb_lgh064f_tuner_attach,
46
47 @@ -545,7 +554,7 @@ static struct dvb_usb_properties cxusb_b
48 .size_of_priv = sizeof(struct cxusb_state),
49
50 .streaming_ctrl = cxusb_streaming_ctrl,
51 - .power_ctrl = cxusb_power_ctrl,
52 + .power_ctrl = cxusb_bluebird_power_ctrl,
53 .frontend_attach = cxusb_dee1601_frontend_attach,
54 .tuner_attach = cxusb_dee1601_tuner_attach,
55
56 @@ -594,7 +603,7 @@ static struct dvb_usb_properties cxusb_b
57 .size_of_priv = sizeof(struct cxusb_state),
58
59 .streaming_ctrl = cxusb_streaming_ctrl,
60 - .power_ctrl = cxusb_power_ctrl,
61 + .power_ctrl = cxusb_bluebird_power_ctrl,
62 .frontend_attach = cxusb_mt352_frontend_attach,
63 .tuner_attach = cxusb_lgz201_tuner_attach,
64
65 @@ -634,7 +643,7 @@ static struct dvb_usb_properties cxusb_b
66 .size_of_priv = sizeof(struct cxusb_state),
67
68 .streaming_ctrl = cxusb_streaming_ctrl,
69 - .power_ctrl = cxusb_power_ctrl,
70 + .power_ctrl = cxusb_bluebird_power_ctrl,
71 .frontend_attach = cxusb_mt352_frontend_attach,
72 .tuner_attach = cxusb_dtt7579_tuner_attach,
73