fmi
mutex_lock(&fmi->lock);
outb(0x08, fmi->io);
mutex_unlock(&fmi->lock);
static inline int fmi_getsigstr(struct fmi *fmi)
mutex_lock(&fmi->lock);
val = fmi->mute ? 0x00 : 0x08; /* mute/unmute */
outb(val, fmi->io);
outb(val | 0x10, fmi->io);
res = (int)inb(fmi->io + 1);
outb(val, fmi->io);
mutex_unlock(&fmi->lock);
static void fmi_set_freq(struct fmi *fmi)
fmi->curfreq = clamp(fmi->curfreq, RSF16_MINFREQ, RSF16_MAXFREQ);
lm7000_set_freq((fmi->curfreq / 800) * 800, fmi, fmi_set_pins);
struct fmi *fmi = video_drvdata(file);
v->signal = fmi_getsigstr(fmi);
struct fmi *fmi = video_drvdata(file);
fmi->curfreq = f->frequency;
fmi_set_freq(fmi);
struct fmi *fmi = video_drvdata(file);
f->frequency = fmi->curfreq;
struct fmi *fmi = container_of(ctrl->handler, struct fmi, hdl);
fmi_mute(fmi);
fmi_unmute(fmi);
fmi->mute = ctrl->val;
struct fmi *fmi = &fmi_card;
struct v4l2_device *v4l2_dev = &fmi->v4l2_dev;
struct v4l2_ctrl_handler *hdl = &fmi->hdl;
fmi->io = io;
release_region(fmi->io, 2);
strscpy(fmi->vdev.name, v4l2_dev->name, sizeof(fmi->vdev.name));
fmi->vdev.v4l2_dev = v4l2_dev;
fmi->vdev.fops = &fmi_fops;
fmi->vdev.ioctl_ops = &fmi_ioctl_ops;
fmi->vdev.release = video_device_release_empty;
fmi->vdev.device_caps = V4L2_CAP_TUNER | V4L2_CAP_RADIO;
video_set_drvdata(&fmi->vdev, fmi);
mutex_init(&fmi->lock);
fmi->mute = true;
fmi->curfreq = RSF16_MINFREQ;
fmi_set_freq(fmi);
if (video_register_device(&fmi->vdev, VFL_TYPE_RADIO, radio_nr) < 0) {
release_region(fmi->io, 2);
v4l2_info(v4l2_dev, "card driver at 0x%x\n", fmi->io);
struct fmi *fmi = &fmi_card;
v4l2_ctrl_handler_free(&fmi->hdl);
video_unregister_device(&fmi->vdev);
v4l2_device_unregister(&fmi->v4l2_dev);
release_region(fmi->io, 2);
static struct fmi fmi_card;
struct fmi *fmi = handle;
if (!fmi->mute)
mutex_lock(&fmi->lock);
outb_p(bits, fmi->io);
mutex_unlock(&fmi->lock);
static inline void fmi_mute(struct fmi *fmi)
mutex_lock(&fmi->lock);
outb(0x00, fmi->io);
mutex_unlock(&fmi->lock);
static inline void fmi_unmute(struct fmi *fmi)
struct enetc_psfp_meter *fmi;
fmi = enetc_get_meter_by_index(index);
WARN_ON(!fmi);
z = refcount_dec_and_test(&fmi->refcount);
enetc_flowmeter_hw_set(priv, fmi, false);
hlist_del(&fmi->node);
kfree(fmi);
struct enetc_psfp_meter *fmi)
if (fmi) {
err = enetc_flowmeter_hw_set(priv, fmi, true);
struct enetc_psfp_meter *fmi = NULL, *old_fmi;
fmi = kzalloc_obj(*fmi);
if (!fmi) {
refcount_set(&fmi->refcount, 1);
fmi->cir = entryp->police.rate_bytes_ps;
fmi->cbs = entryp->police.burst;
fmi->index = entryp->hw_index;
filter->fmi_index = fmi->index;
sfi->meter_id = fmi->index;
sfi_overwrite ? NULL : sfi, sgi, fmi);
fmi->refcount = old_fmi->refcount;
refcount_set(&fmi->refcount,
hlist_add_head(&fmi->node, &epsfp.psfp_meter_list);
kfree(fmi);
struct enetc_psfp_meter *fmi,
cbd.index = cpu_to_le16((u16)fmi->index);
if (fmi->cir) {
temp = (u64)8000 * fmi->cir;
fmi_config->cbs = cpu_to_le32(fmi->cbs);