Annotation of /trunk/kernel26-magellan/patches-2.6.16-r12/0111-2.6.16.12-cxusb-bluebird.patch
Parent Directory | Revision Log
Revision 72 -
(hide annotations)
(download)
Mon Jun 5 09:25:38 2006 UTC (18 years, 3 months ago) by niro
File size: 2813 byte(s)
Mon Jun 5 09:25:38 2006 UTC (18 years, 3 months ago) by niro
File size: 2813 byte(s)
ver bump to 2.6.16-r12: - updated to linux-2.6.16.19 - updated to ck11
1 | niro | 72 | 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 |