Lines Matching refs:fmi
47 struct fmi
58 static struct fmi fmi_card;
73 struct fmi *fmi = handle;
76 if (!fmi->mute)
86 mutex_lock(&fmi->lock);
87 outb_p(bits, fmi->io);
88 mutex_unlock(&fmi->lock);
91 static inline void fmi_mute(struct fmi *fmi)
93 mutex_lock(&fmi->lock);
94 outb(0x00, fmi->io);
95 mutex_unlock(&fmi->lock);
98 static inline void fmi_unmute(struct fmi *fmi)
100 mutex_lock(&fmi->lock);
101 outb(0x08, fmi->io);
102 mutex_unlock(&fmi->lock);
105 static inline int fmi_getsigstr(struct fmi *fmi)
110 mutex_lock(&fmi->lock);
111 val = fmi->mute ? 0x00 : 0x08; /* mute/unmute */
112 outb(val, fmi->io);
113 outb(val | 0x10, fmi->io);
115 res = (int)inb(fmi->io + 1);
116 outb(val, fmi->io);
118 mutex_unlock(&fmi->lock);
122 static void fmi_set_freq(struct fmi *fmi)
124 fmi->curfreq = clamp(fmi->curfreq, RSF16_MINFREQ, RSF16_MAXFREQ);
127 lm7000_set_freq((fmi->curfreq / 800) * 800, fmi, fmi_set_pins);
142 struct fmi *fmi = video_drvdata(file);
154 v->signal = fmi_getsigstr(fmi);
167 struct fmi *fmi = video_drvdata(file);
172 fmi->curfreq = f->frequency;
173 fmi_set_freq(fmi);
181 struct fmi *fmi = video_drvdata(file);
186 f->frequency = fmi->curfreq;
192 struct fmi *fmi = container_of(ctrl->handler, struct fmi, hdl);
197 fmi_mute(fmi);
199 fmi_unmute(fmi);
200 fmi->mute = ctrl->val;
274 struct fmi *fmi = &fmi_card;
275 struct v4l2_device *v4l2_dev = &fmi->v4l2_dev;
276 struct v4l2_ctrl_handler *hdl = &fmi->hdl;
318 fmi->io = io;
322 release_region(fmi->io, 2);
341 strscpy(fmi->vdev.name, v4l2_dev->name, sizeof(fmi->vdev.name));
342 fmi->vdev.v4l2_dev = v4l2_dev;
343 fmi->vdev.fops = &fmi_fops;
344 fmi->vdev.ioctl_ops = &fmi_ioctl_ops;
345 fmi->vdev.release = video_device_release_empty;
346 fmi->vdev.device_caps = V4L2_CAP_TUNER | V4L2_CAP_RADIO;
347 video_set_drvdata(&fmi->vdev, fmi);
349 mutex_init(&fmi->lock);
352 fmi->mute = true;
353 fmi->curfreq = RSF16_MINFREQ;
354 fmi_set_freq(fmi);
356 if (video_register_device(&fmi->vdev, VFL_TYPE_RADIO, radio_nr) < 0) {
359 release_region(fmi->io, 2);
365 v4l2_info(v4l2_dev, "card driver at 0x%x\n", fmi->io);
371 struct fmi *fmi = &fmi_card;
373 v4l2_ctrl_handler_free(&fmi->hdl);
374 video_unregister_device(&fmi->vdev);
375 v4l2_device_unregister(&fmi->v4l2_dev);
376 release_region(fmi->io, 2);