Merge branch 'v4l_for_linus' into staging/for_v3.6
* v4l_for_linus: (44 commits) [media] smia: Fix compile failures [media] Fix VIDIOC_DQEVENT docbook entry [media] s5p-fimc: Fix control creation function [media] s5p-mfc: Fix checkpatch error in s5p_mfc_shm.h file [media] s5p-mfc: Fix setting controls [media] v4l/s5p-mfc: added image size align in VIDIOC_TRY_FMT [media] v4l/s5p-mfc: corrected encoder v4l control definitions [media] v4l: mem2mem_testdev: Fix race conditions in driver [media] s5p-mfc: Bug fix of timestamp/timecode copy mechanism [media] cxd2820r: Fix an incorrect modulation type bitmask [media] em28xx: Show a warning if the board does not support remote controls [media] em28xx: Add remote control support for Terratec's Cinergy HTC Stick HD [media] USB: Staging: media: lirc: initialize spinlocks before usage [media] Revert "[media] media: mx2_camera: Fix mbus format handling" [media] bw-qcam: driver and pixfmt documentation fixes [media] cx88: fix firmware load on big-endian systems [media] cx18: support big-endian systems [media] ivtv: fix support for big-endian systems [media] tuner-core: return the frequency range of the correct tuner [media] v4l2-dev.c: fix g_parm regression in determine_valid_ioctls() ... Conflicts: Documentation/DocBook/media/v4l/vidioc-create-bufs.xml drivers/media/video/em28xx/em28xx-cards.c
This commit is contained in:
@@ -37,8 +37,8 @@ MODULE_AUTHOR("Jaroslav Kysela <perex@perex.cz>");
|
||||
MODULE_DESCRIPTION("Routines for control of TEA5757/5759 Philips AM/FM radio tuner chips");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
#define FREQ_LO (76U * 16000)
|
||||
#define FREQ_HI (108U * 16000)
|
||||
#define FREQ_LO ((tea->tea5759 ? 760 : 875) * 1600U)
|
||||
#define FREQ_HI ((tea->tea5759 ? 910 : 1080) * 1600U)
|
||||
|
||||
/*
|
||||
* definitions
|
||||
@@ -120,9 +120,9 @@ static u32 snd_tea575x_read(struct snd_tea575x *tea)
|
||||
return data;
|
||||
}
|
||||
|
||||
static u32 snd_tea575x_get_freq(struct snd_tea575x *tea)
|
||||
static u32 snd_tea575x_val_to_freq(struct snd_tea575x *tea, u32 val)
|
||||
{
|
||||
u32 freq = snd_tea575x_read(tea) & TEA575X_BIT_FREQ_MASK;
|
||||
u32 freq = val & TEA575X_BIT_FREQ_MASK;
|
||||
|
||||
if (freq == 0)
|
||||
return freq;
|
||||
@@ -139,6 +139,11 @@ static u32 snd_tea575x_get_freq(struct snd_tea575x *tea)
|
||||
return clamp(freq * 16, FREQ_LO, FREQ_HI); /* from kHz */
|
||||
}
|
||||
|
||||
static u32 snd_tea575x_get_freq(struct snd_tea575x *tea)
|
||||
{
|
||||
return snd_tea575x_val_to_freq(tea, snd_tea575x_read(tea));
|
||||
}
|
||||
|
||||
static void snd_tea575x_set_freq(struct snd_tea575x *tea)
|
||||
{
|
||||
u32 freq = tea->freq;
|
||||
@@ -156,6 +161,7 @@ static void snd_tea575x_set_freq(struct snd_tea575x *tea)
|
||||
tea->val &= ~TEA575X_BIT_FREQ_MASK;
|
||||
tea->val |= freq & TEA575X_BIT_FREQ_MASK;
|
||||
snd_tea575x_write(tea, tea->val);
|
||||
tea->freq = snd_tea575x_val_to_freq(tea, tea->val);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -319,7 +325,6 @@ static int tea575x_s_ctrl(struct v4l2_ctrl *ctrl)
|
||||
}
|
||||
|
||||
static const struct v4l2_file_operations tea575x_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.unlocked_ioctl = video_ioctl2,
|
||||
.open = v4l2_fh_open,
|
||||
.release = v4l2_fh_release,
|
||||
@@ -339,7 +344,6 @@ static const struct v4l2_ioctl_ops tea575x_ioctl_ops = {
|
||||
};
|
||||
|
||||
static const struct video_device tea575x_radio = {
|
||||
.fops = &tea575x_fops,
|
||||
.ioctl_ops = &tea575x_ioctl_ops,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
@@ -351,7 +355,7 @@ static const struct v4l2_ctrl_ops tea575x_ctrl_ops = {
|
||||
/*
|
||||
* initialize all the tea575x chips
|
||||
*/
|
||||
int snd_tea575x_init(struct snd_tea575x *tea)
|
||||
int snd_tea575x_init(struct snd_tea575x *tea, struct module *owner)
|
||||
{
|
||||
int retval;
|
||||
|
||||
@@ -376,6 +380,9 @@ int snd_tea575x_init(struct snd_tea575x *tea)
|
||||
tea->vd.lock = &tea->mutex;
|
||||
tea->vd.v4l2_dev = tea->v4l2_dev;
|
||||
tea->vd.ctrl_handler = &tea->ctrl_handler;
|
||||
tea->fops = tea575x_fops;
|
||||
tea->fops.owner = owner;
|
||||
tea->vd.fops = &tea->fops;
|
||||
set_bit(V4L2_FL_USE_FH_PRIO, &tea->vd.flags);
|
||||
/* disable hw_freq_seek if we can't use it */
|
||||
if (tea->cannot_read_data)
|
||||
|
||||
Reference in New Issue
Block a user