Contents of /trunk/kernel26-magellan/patches-2.6.16-r12/0111-2.6.16.12-cxusb-bluebird.patch
Parent Directory | Revision Log
Revision 72 -
(show 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 | 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 |