• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/media/video/

Lines Matching refs:mxb

2     mxb - v4l2 driver for the Multimedia eXtension Board
6 Visit http://www.mihu.de/linux/saa7146/mxb/
31 #include "mxb.h"
70 input actually uses. the mxb uses port 0 for every input */
120 struct mxb
140 #define saa7111a_call(mxb, o, f, args...) \
141 v4l2_subdev_call(mxb->saa7111a, o, f, ##args)
142 #define tda9840_call(mxb, o, f, args...) \
143 v4l2_subdev_call(mxb->tda9840, o, f, ##args)
144 #define tea6415c_call(mxb, o, f, args...) \
145 v4l2_subdev_call(mxb->tea6415c, o, f, ##args)
146 #define tuner_call(mxb, o, f, args...) \
147 v4l2_subdev_call(mxb->tuner, o, f, ##args)
151 static inline void tea6420_route_cd(struct mxb *mxb, int idx)
153 v4l2_subdev_call(mxb->tea6420_1, audio, s_routing,
155 v4l2_subdev_call(mxb->tea6420_2, audio, s_routing,
159 static inline void tea6420_route_line(struct mxb *mxb, int idx)
161 v4l2_subdev_call(mxb->tea6420_1, audio, s_routing,
163 v4l2_subdev_call(mxb->tea6420_2, audio, s_routing,
171 struct mxb *mxb = NULL;
173 mxb = kzalloc(sizeof(struct mxb), GFP_KERNEL);
174 if (mxb == NULL) {
179 snprintf(mxb->i2c_adapter.name, sizeof(mxb->i2c_adapter.name), "mxb%d", mxb_num);
181 saa7146_i2c_adapter_prepare(dev, &mxb->i2c_adapter, SAA7146_I2C_BUS_BIT_RATE_480);
182 if (i2c_add_adapter(&mxb->i2c_adapter) < 0) {
184 kfree(mxb);
188 mxb->saa7111a = v4l2_i2c_new_subdev(&dev->v4l2_dev, &mxb->i2c_adapter,
190 mxb->tea6420_1 = v4l2_i2c_new_subdev(&dev->v4l2_dev, &mxb->i2c_adapter,
192 mxb->tea6420_2 = v4l2_i2c_new_subdev(&dev->v4l2_dev, &mxb->i2c_adapter,
194 mxb->tea6415c = v4l2_i2c_new_subdev(&dev->v4l2_dev, &mxb->i2c_adapter,
196 mxb->tda9840 = v4l2_i2c_new_subdev(&dev->v4l2_dev, &mxb->i2c_adapter,
198 mxb->tuner = v4l2_i2c_new_subdev(&dev->v4l2_dev, &mxb->i2c_adapter,
200 if (v4l2_i2c_new_subdev(&dev->v4l2_dev, &mxb->i2c_adapter,
202 printk(KERN_INFO "mxb: found teletext decoder\n");
206 if (!mxb->tea6420_1 || !mxb->tea6420_2 || !mxb->tea6415c ||
207 !mxb->tda9840 || !mxb->saa7111a || !mxb->tuner) {
208 printk("mxb: did not find all i2c devices. aborting\n");
209 i2c_del_adapter(&mxb->i2c_adapter);
210 kfree(mxb);
217 dev->ext_priv = mxb;
284 struct mxb* mxb = (struct mxb*)dev->ext_priv;
292 saa7111a_call(mxb, core, s_std, std);
296 saa7111a_call(mxb, video, s_routing, SAA7115_COMPOSITE0,
303 tuner_call(mxb, tuner, s_type_addr, &tun_setup);
305 mxb->cur_freq.tuner = 0;
306 mxb->cur_freq.type = V4L2_TUNER_ANALOG_TV;
307 mxb->cur_freq.frequency = freq;
308 tuner_call(mxb, tuner, s_frequency, &mxb->cur_freq);
311 tuner_call(mxb, core, s_std, std);
314 tea6420_route_line(mxb, 6);
315 tea6420_route_cd(mxb, 6);
318 tea6415c_call(mxb, video, s_routing, 3, 17, 0);
321 tea6415c_call(mxb, video, s_routing, 3, 13, 0);
323 /* the rest for mxb */
324 mxb->cur_input = 0;
325 mxb->cur_mute = 1;
327 mxb->cur_mode = V4L2_TUNER_MODE_STEREO;
330 on the mxb. if so, we must initialize it. due to lack of
338 err = i2c_transfer(&mxb->i2c_adapter, &msg, 1);
352 err = i2c_transfer(&mxb->i2c_adapter, &msg, 1);
367 saa7146_set_hps_source_and_sync(dev, input_port_selection[mxb->cur_input].hps_source,
368 input_port_selection[mxb->cur_input].hps_sync);
386 struct mxb* mxb = (struct mxb*)dev->ext_priv;
408 struct mxb *mxb = (struct mxb *)dev->ext_priv;
420 vc->value = mxb->cur_mute;
432 struct mxb *mxb = (struct mxb *)dev->ext_priv;
444 mxb->cur_mute = vc->value;
446 tea6420_route_line(mxb, vc->value ? 6 :
447 video_audio_connect[mxb->cur_input]);
465 struct mxb *mxb = (struct mxb *)dev->ext_priv;
466 *i = mxb->cur_input;
475 struct mxb *mxb = (struct mxb *)dev->ext_priv;
484 mxb->cur_input = input;
495 err = tea6415c_call(mxb, video, s_routing, 3, 17, 0);
499 err = tea6415c_call(mxb, video, s_routing, 3, 13, 0);
513 err = tea6415c_call(mxb, video, s_routing, 1, 17, 0);
521 if (saa7111a_call(mxb, video, s_routing, i, SAA7111_FMT_CCIR, 0))
525 if (0 == mxb->cur_mute)
526 tea6420_route_line(mxb, video_audio_connect[input]);
534 struct mxb *mxb = (struct mxb *)dev->ext_priv;
548 t->audmode = mxb->cur_mode;
555 struct mxb *mxb = (struct mxb *)dev->ext_priv;
562 mxb->cur_mode = t->audmode;
569 struct mxb *mxb = (struct mxb *)dev->ext_priv;
571 if (mxb->cur_input) {
573 mxb->cur_input));
577 *f = mxb->cur_freq;
579 DEB_EE(("VIDIOC_G_FREQ: freq:0x%08x.\n", mxb->cur_freq.frequency));
586 struct mxb *mxb = (struct mxb *)dev->ext_priv;
595 if (mxb->cur_input) {
596 DEB_D(("VIDIOC_S_FREQ: channel %d does not have a tuner!\n", mxb->cur_input));
600 mxb->cur_freq = *f;
601 DEB_EE(("VIDIOC_S_FREQUENCY: freq:0x%08x.\n", mxb->cur_freq.frequency));
604 tuner_call(mxb, tuner, s_frequency, &mxb->cur_freq);
617 struct mxb *mxb = (struct mxb *)dev->ext_priv;
625 memcpy(a, &mxb_audios[video_audio_connect[mxb->cur_input]], sizeof(struct v4l2_audio));
654 struct mxb *mxb = (struct mxb *)dev->ext_priv;
668 tea6420_route_cd(mxb, i);
681 tea6420_route_line(mxb, i);
698 struct mxb *mxb;
707 mxb = (struct mxb *)dev->ext_priv;
726 if (saa7146_register_device(&mxb->video_dev, dev, "mxb", VFL_TYPE_GRABBER)) {
734 if (saa7146_register_device(&mxb->vbi_dev, dev, "mxb", VFL_TYPE_VBI)) {
739 printk("mxb: found Multimedia eXtension Board #%d.\n", mxb_num);
748 struct mxb *mxb = (struct mxb *)dev->ext_priv;
752 saa7146_unregister_device(&mxb->video_dev,dev);
754 saa7146_unregister_device(&mxb->vbi_dev, dev);
759 i2c_del_adapter(&mxb->i2c_adapter);
760 kfree(mxb);
767 struct mxb *mxb = (struct mxb *)dev->ext_priv;
772 DEB_D(("VIDIOC_S_STD: setting mxb for PAL_I.\n"));
776 saa7111a_call(mxb, core, s_gpio, 0);
777 tuner_call(mxb, core, s_std, std);
781 DEB_D(("VIDIOC_S_STD: setting mxb for PAL/NTSC/SECAM.\n"));
785 saa7111a_call(mxb, core, s_gpio, 1);
786 tuner_call(mxb, core, s_std, std);
815 static struct saa7146_pci_extension_data mxb = {
826 .driver_data = (unsigned long)&mxb,