Commit b95dd82c authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab

[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: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 9ff76e36
...@@ -60,6 +60,7 @@ struct go7007; ...@@ -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 = { ...@@ -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 = { ...@@ -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 = { ...@@ -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 = { ...@@ -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 @@ ...@@ -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) ...@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment