diff options
author | Svante Olofsson <svante@agentum.com> | 2005-09-09 16:02:48 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-09 16:57:41 -0400 |
commit | 115eea4e91049a42d81e5284cbb0f50acab6eb39 (patch) | |
tree | 9972a46642aa5cf67d2e11896f07a93d365f5bc0 /drivers/media/dvb/dvb-usb/digitv.c | |
parent | 47dc3d688d04f06d8ef90a06c48930906fbc4a8c (diff) |
[PATCH] dvb: usb: digitv: support for nxt6000 demod
Add support for the NXT6000-based digitv-box. Add .get_tune_settings callback
for the NXT6000 to have a min_tune_delay of 500ms.
Signed-off-by: Svante Olofsson <svante@agentum.com>
Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Johannes Stezenbach <js@linuxtv.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/media/dvb/dvb-usb/digitv.c')
-rw-r--r-- | drivers/media/dvb/dvb-usb/digitv.c | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/drivers/media/dvb/dvb-usb/digitv.c b/drivers/media/dvb/dvb-usb/digitv.c index 24d2bc6ca97b..74545f82eff1 100644 --- a/drivers/media/dvb/dvb-usb/digitv.c +++ b/drivers/media/dvb/dvb-usb/digitv.c | |||
@@ -111,31 +111,28 @@ static int digitv_mt352_demod_init(struct dvb_frontend *fe) | |||
111 | } | 111 | } |
112 | 112 | ||
113 | static struct mt352_config digitv_mt352_config = { | 113 | static struct mt352_config digitv_mt352_config = { |
114 | .demod_address = 0x0, /* ignored by the digitv anyway */ | ||
115 | .demod_init = digitv_mt352_demod_init, | 114 | .demod_init = digitv_mt352_demod_init, |
116 | .pll_set = dvb_usb_pll_set, | 115 | .pll_set = dvb_usb_pll_set, |
117 | }; | 116 | }; |
118 | 117 | ||
119 | static struct nxt6000_config digitv_nxt6000_config = { | 118 | static int digitv_nxt6000_pll_set(struct dvb_frontend *fe, struct dvb_frontend_parameters *fep) |
120 | .demod_address = 0x0, /* ignored by the digitv anyway */ | 119 | { |
121 | .clock_inversion = 0x0, | 120 | struct dvb_usb_device *d = fe->dvb->priv; |
121 | u8 b[5]; | ||
122 | dvb_usb_pll_set(fe,fep,b); | ||
123 | return digitv_ctrl_msg(d,USB_WRITE_TUNER,0,&b[1],4,NULL,0); | ||
124 | } | ||
122 | 125 | ||
123 | .pll_init = NULL, | 126 | static struct nxt6000_config digitv_nxt6000_config = { |
124 | .pll_set = NULL, | 127 | .clock_inversion = 1, |
128 | .pll_set = digitv_nxt6000_pll_set, | ||
125 | }; | 129 | }; |
126 | 130 | ||
127 | static int digitv_frontend_attach(struct dvb_usb_device *d) | 131 | static int digitv_frontend_attach(struct dvb_usb_device *d) |
128 | { | 132 | { |
129 | if ((d->fe = mt352_attach(&digitv_mt352_config, &d->i2c_adap)) != NULL) | 133 | if ((d->fe = mt352_attach(&digitv_mt352_config, &d->i2c_adap)) != NULL || |
134 | (d->fe = nxt6000_attach(&digitv_nxt6000_config, &d->i2c_adap)) != NULL) | ||
130 | return 0; | 135 | return 0; |
131 | if ((d->fe = nxt6000_attach(&digitv_nxt6000_config, &d->i2c_adap)) != NULL) { | ||
132 | |||
133 | warn("nxt6000 support is not done yet, in fact you are one of the first " | ||
134 | "person who wants to use this device in Linux. Please report to " | ||
135 | "linux-dvb@linuxtv.org"); | ||
136 | |||
137 | return 0; | ||
138 | } | ||
139 | return -EIO; | 136 | return -EIO; |
140 | } | 137 | } |
141 | 138 | ||
@@ -173,7 +170,18 @@ static struct dvb_usb_properties digitv_properties; | |||
173 | static int digitv_probe(struct usb_interface *intf, | 170 | static int digitv_probe(struct usb_interface *intf, |
174 | const struct usb_device_id *id) | 171 | const struct usb_device_id *id) |
175 | { | 172 | { |
176 | return dvb_usb_device_init(intf,&digitv_properties,THIS_MODULE,NULL); | 173 | struct dvb_usb_device *d; |
174 | int ret; | ||
175 | if ((ret = dvb_usb_device_init(intf,&digitv_properties,THIS_MODULE,&d)) == 0) { | ||
176 | u8 b[4] = { 0 }; | ||
177 | |||
178 | b[0] = 1; | ||
179 | digitv_ctrl_msg(d,USB_WRITE_REMOTE_TYPE,0,b,4,NULL,0); | ||
180 | |||
181 | b[0] = 0; | ||
182 | digitv_ctrl_msg(d,USB_WRITE_REMOTE,0,b,4,NULL,0); | ||
183 | } | ||
184 | return ret; | ||
177 | } | 185 | } |
178 | 186 | ||
179 | static struct usb_device_id digitv_table [] = { | 187 | static struct usb_device_id digitv_table [] = { |