• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/drivers/media/radio/

Lines Matching defs:zol

73 static int zol_setvol(struct zoltrix *zol, int vol)
75 zol->curvol = vol;
76 if (zol->muted)
79 mutex_lock(&zol->lock);
81 outb(0, zol->io);
82 outb(0, zol->io);
83 inb(zol->io + 3); /* Zoltrix needs to be read to confirm */
84 mutex_unlock(&zol->lock);
88 outb(zol->curvol-1, zol->io);
90 inb(zol->io + 2);
91 mutex_unlock(&zol->lock);
95 static void zol_mute(struct zoltrix *zol)
97 zol->muted = 1;
98 mutex_lock(&zol->lock);
99 outb(0, zol->io);
100 outb(0, zol->io);
101 inb(zol->io + 3); /* Zoltrix needs to be read to confirm */
102 mutex_unlock(&zol->lock);
105 static void zol_unmute(struct zoltrix *zol)
107 zol->muted = 0;
108 zol_setvol(zol, zol->curvol);
111 static int zol_setfreq(struct zoltrix *zol, unsigned long freq)
114 struct v4l2_device *v4l2_dev = &zol->v4l2_dev;
116 unsigned int stereo = zol->stereo;
130 mutex_lock(&zol->lock);
132 zol->curfreq = freq;
134 outb(0, zol->io);
135 outb(0, zol->io);
136 inb(zol->io + 3); /* Zoltrix needs to be read to confirm */
138 outb(0x40, zol->io);
139 outb(0xc0, zol->io);
144 outb(0x80, zol->io);
146 outb(0x00, zol->io);
148 outb(0x80, zol->io);
151 outb(0xc0, zol->io);
153 outb(0x40, zol->io);
155 outb(0xc0, zol->io);
161 outb(0x80, zol->io);
162 outb(0xc0, zol->io);
163 outb(0x40, zol->io);
165 inb(zol->io + 2);
169 if (zol->muted) {
170 outb(0, zol->io);
171 outb(0, zol->io);
172 inb(zol->io + 3);
176 mutex_unlock(&zol->lock);
178 if (!zol->muted)
179 zol_setvol(zol, zol->curvol);
184 static int zol_getsigstr(struct zoltrix *zol)
188 mutex_lock(&zol->lock);
189 outb(0x00, zol->io); /* This stuff I found to do nothing */
190 outb(zol->curvol, zol->io);
193 a = inb(zol->io);
195 b = inb(zol->io);
197 mutex_unlock(&zol->lock);
206 static int zol_is_stereo(struct zoltrix *zol)
210 mutex_lock(&zol->lock);
212 outb(0x00, zol->io);
213 outb(zol->curvol, zol->io);
216 x1 = inb(zol->io);
218 x2 = inb(zol->io);
220 mutex_unlock(&zol->lock);
239 struct zoltrix *zol = video_drvdata(file);
250 if (zol_is_stereo(zol))
254 v->signal = 0xFFFF * zol_getsigstr(zol);
267 struct zoltrix *zol = video_drvdata(file);
271 if (zol_setfreq(zol, f->frequency) != 0)
279 struct zoltrix *zol = video_drvdata(file);
284 f->frequency = zol->curfreq;
303 struct zoltrix *zol = video_drvdata(file);
307 ctrl->value = zol->muted;
310 ctrl->value = zol->curvol * 4096;
319 struct zoltrix *zol = video_drvdata(file);
324 zol_mute(zol);
326 zol_unmute(zol);
327 zol_setvol(zol, zol->curvol);
331 zol_setvol(zol, ctrl->value / 4096);
334 zol->stereo = 1;
335 if (zol_setfreq(zol, zol->curfreq) != 0)
389 struct zoltrix *zol = &zoltrix_card;
390 struct v4l2_device *v4l2_dev = &zol->v4l2_dev;
394 zol->io = io;
395 if (zol->io == -1) {
399 if (zol->io != 0x20c && zol->io != 0x30c) {
404 if (!request_region(zol->io, 2, "zoltrix")) {
405 v4l2_err(v4l2_dev, "port 0x%x already in use\n", zol->io);
411 release_region(zol->io, 2);
416 strlcpy(zol->vdev.name, v4l2_dev->name, sizeof(zol->vdev.name));
417 zol->vdev.v4l2_dev = v4l2_dev;
418 zol->vdev.fops = &zoltrix_fops;
419 zol->vdev.ioctl_ops = &zoltrix_ioctl_ops;
420 zol->vdev.release = video_device_release_empty;
421 video_set_drvdata(&zol->vdev, zol);
423 if (video_register_device(&zol->vdev, VFL_TYPE_RADIO, radio_nr) < 0) {
425 release_region(zol->io, 2);
430 mutex_init(&zol->lock);
436 outb(0, zol->io);
437 outb(0, zol->io);
439 inb(zol->io + 3);
441 zol->curvol = 0;
442 zol->stereo = 1;
449 struct zoltrix *zol = &zoltrix_card;
451 video_unregister_device(&zol->vdev);
452 v4l2_device_unregister(&zol->v4l2_dev);
453 release_region(zol->io, 2);