diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-12-22 11:18:27 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-12-30 06:39:27 -0500 |
commit | 531c98e71805b32e9ea35a218119100bbd2b7615 (patch) | |
tree | 548f878b2d4abd66bee8d0fa0b19eeb9cf3182c9 /drivers/media/video/em28xx/em28xx-video.c | |
parent | 4b00eb25340c1a9b9eedaf0bc5b0f0d18eddb028 (diff) |
V4L/DVB (9953): em28xx: Add suport for debugging AC97 anciliary chips
The em28xx driver can be coupled to an anciliary AC97 chip. This patch
allows read/write AC97 registers directly.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/em28xx/em28xx-video.c')
-rw-r--r-- | drivers/media/video/em28xx/em28xx-video.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/media/video/em28xx/em28xx-video.c b/drivers/media/video/em28xx/em28xx-video.c index 4701b6589b10..4ea4920c927a 100644 --- a/drivers/media/video/em28xx/em28xx-video.c +++ b/drivers/media/video/em28xx/em28xx-video.c | |||
@@ -1221,6 +1221,17 @@ static int vidioc_g_register(struct file *file, void *priv, | |||
1221 | struct em28xx *dev = fh->dev; | 1221 | struct em28xx *dev = fh->dev; |
1222 | int ret; | 1222 | int ret; |
1223 | 1223 | ||
1224 | if (reg->match_type == V4L2_CHIP_MATCH_AC97) { | ||
1225 | mutex_lock(&dev->lock); | ||
1226 | ret = em28xx_read_ac97(dev, reg->reg); | ||
1227 | mutex_unlock(&dev->lock); | ||
1228 | if (ret < 0) | ||
1229 | return ret; | ||
1230 | |||
1231 | reg->val = ret; | ||
1232 | return 0; | ||
1233 | } | ||
1234 | |||
1224 | if (!v4l2_chip_match_host(reg->match_type, reg->match_chip)) | 1235 | if (!v4l2_chip_match_host(reg->match_type, reg->match_chip)) |
1225 | return -EINVAL; | 1236 | return -EINVAL; |
1226 | 1237 | ||
@@ -1256,6 +1267,14 @@ static int vidioc_s_register(struct file *file, void *priv, | |||
1256 | __le64 buf; | 1267 | __le64 buf; |
1257 | int rc; | 1268 | int rc; |
1258 | 1269 | ||
1270 | if (reg->match_type == V4L2_CHIP_MATCH_AC97) { | ||
1271 | mutex_lock(&dev->lock); | ||
1272 | rc = em28xx_write_ac97(dev, reg->reg, reg->val); | ||
1273 | mutex_unlock(&dev->lock); | ||
1274 | |||
1275 | return rc; | ||
1276 | } | ||
1277 | |||
1259 | buf = cpu_to_le64(reg->val); | 1278 | buf = cpu_to_le64(reg->val); |
1260 | 1279 | ||
1261 | mutex_lock(&dev->lock); | 1280 | mutex_lock(&dev->lock); |