[media] go7007: set up the saa7115 audio clock correctly
The s_crystal_freq operation has to be called for the saa7115 to set up the audio clock correctly. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
9ff76e36dc
commit
b95dd82cd1
3 changed files with 12 additions and 1 deletions
|
@ -60,6 +60,7 @@ struct go7007;
|
||||||
#define GO7007_SENSOR_TV (1<<7)
|
#define GO7007_SENSOR_TV (1<<7)
|
||||||
#define GO7007_SENSOR_VBI (1<<8)
|
#define GO7007_SENSOR_VBI (1<<8)
|
||||||
#define GO7007_SENSOR_SCALING (1<<9)
|
#define GO7007_SENSOR_SCALING (1<<9)
|
||||||
|
#define GO7007_SENSOR_SAA7115 (1<<10)
|
||||||
|
|
||||||
/* Characteristics of audio sensor devices */
|
/* Characteristics of audio sensor devices */
|
||||||
#define GO7007_AUDIO_I2S_MODE_1 (1)
|
#define GO7007_AUDIO_I2S_MODE_1 (1)
|
||||||
|
|
|
@ -88,6 +88,7 @@ static struct go7007_usb_board board_matrix_ii = {
|
||||||
.sensor_flags = GO7007_SENSOR_656 |
|
.sensor_flags = GO7007_SENSOR_656 |
|
||||||
GO7007_SENSOR_VALID_ENABLE |
|
GO7007_SENSOR_VALID_ENABLE |
|
||||||
GO7007_SENSOR_TV |
|
GO7007_SENSOR_TV |
|
||||||
|
GO7007_SENSOR_SAA7115 |
|
||||||
GO7007_SENSOR_VBI |
|
GO7007_SENSOR_VBI |
|
||||||
GO7007_SENSOR_SCALING,
|
GO7007_SENSOR_SCALING,
|
||||||
.num_i2c_devs = 1,
|
.num_i2c_devs = 1,
|
||||||
|
@ -131,7 +132,7 @@ static struct go7007_usb_board board_matrix_reload = {
|
||||||
.num_i2c_devs = 1,
|
.num_i2c_devs = 1,
|
||||||
.i2c_devs = {
|
.i2c_devs = {
|
||||||
{
|
{
|
||||||
.type = "saa7115",
|
.type = "saa7113",
|
||||||
.addr = 0x25,
|
.addr = 0x25,
|
||||||
.is_video = 1,
|
.is_video = 1,
|
||||||
},
|
},
|
||||||
|
@ -160,6 +161,7 @@ static struct go7007_usb_board board_star_trek = {
|
||||||
.sensor_flags = GO7007_SENSOR_656 |
|
.sensor_flags = GO7007_SENSOR_656 |
|
||||||
GO7007_SENSOR_VALID_ENABLE |
|
GO7007_SENSOR_VALID_ENABLE |
|
||||||
GO7007_SENSOR_TV |
|
GO7007_SENSOR_TV |
|
||||||
|
GO7007_SENSOR_SAA7115 |
|
||||||
GO7007_SENSOR_VBI |
|
GO7007_SENSOR_VBI |
|
||||||
GO7007_SENSOR_SCALING,
|
GO7007_SENSOR_SCALING,
|
||||||
.audio_flags = GO7007_AUDIO_I2S_MODE_1 |
|
.audio_flags = GO7007_AUDIO_I2S_MODE_1 |
|
||||||
|
@ -207,6 +209,7 @@ static struct go7007_usb_board board_px_tv402u = {
|
||||||
.sensor_flags = GO7007_SENSOR_656 |
|
.sensor_flags = GO7007_SENSOR_656 |
|
||||||
GO7007_SENSOR_VALID_ENABLE |
|
GO7007_SENSOR_VALID_ENABLE |
|
||||||
GO7007_SENSOR_TV |
|
GO7007_SENSOR_TV |
|
||||||
|
GO7007_SENSOR_SAA7115 |
|
||||||
GO7007_SENSOR_VBI |
|
GO7007_SENSOR_VBI |
|
||||||
GO7007_SENSOR_SCALING,
|
GO7007_SENSOR_SCALING,
|
||||||
.audio_flags = GO7007_AUDIO_I2S_MODE_1 |
|
.audio_flags = GO7007_AUDIO_I2S_MODE_1 |
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
#include <media/v4l2-ioctl.h>
|
#include <media/v4l2-ioctl.h>
|
||||||
#include <media/v4l2-subdev.h>
|
#include <media/v4l2-subdev.h>
|
||||||
#include <media/v4l2-event.h>
|
#include <media/v4l2-event.h>
|
||||||
|
#include <media/saa7115.h>
|
||||||
|
|
||||||
#include "go7007.h"
|
#include "go7007.h"
|
||||||
#include "go7007-priv.h"
|
#include "go7007-priv.h"
|
||||||
|
@ -1461,6 +1462,12 @@ int go7007_v4l2_init(struct go7007 *go)
|
||||||
v4l2_disable_ioctl(go->video_dev, VIDIOC_S_AUDIO);
|
v4l2_disable_ioctl(go->video_dev, VIDIOC_S_AUDIO);
|
||||||
v4l2_disable_ioctl(go->video_dev, VIDIOC_ENUMAUDIO);
|
v4l2_disable_ioctl(go->video_dev, VIDIOC_ENUMAUDIO);
|
||||||
}
|
}
|
||||||
|
/* Setup correct crystal frequency on this board */
|
||||||
|
if (go->board_info->sensor_flags & GO7007_SENSOR_SAA7115)
|
||||||
|
v4l2_subdev_call(go->sd_video, video, s_crystal_freq,
|
||||||
|
SAA7115_FREQ_24_576_MHZ,
|
||||||
|
SAA7115_FREQ_FL_APLL | SAA7115_FREQ_FL_UCGC |
|
||||||
|
SAA7115_FREQ_FL_DOUBLE_ASCLK);
|
||||||
go7007_s_input(go);
|
go7007_s_input(go);
|
||||||
if (go->board_info->sensor_flags & GO7007_SENSOR_TV)
|
if (go->board_info->sensor_flags & GO7007_SENSOR_TV)
|
||||||
go7007_s_std(go);
|
go7007_s_std(go);
|
||||||
|
|
Loading…
Add table
Reference in a new issue