aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2008-11-20 06:56:19 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-12-29 14:53:35 -0500
commit16c7bcadff2222b297d13951dc30e133f56d0154 (patch)
tree58b94dd4791f6fcd84ce5a6346c925e7f49ad728 /drivers/media
parent35643943be58aef82826e340761e86e0d37870ec (diff)
V4L/DVB (9652): em28xx: merge AC97 vendor id's into a single var
This makes easier to identify vendor ID, since AC97 vendors are generally identified by 3 bytes. The remaining byte is used by the vendor to identify its devices. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/em28xx/em28xx-core.c11
-rw-r--r--drivers/media/video/em28xx/em28xx.h3
2 files changed, 8 insertions, 6 deletions
diff --git a/drivers/media/video/em28xx/em28xx-core.c b/drivers/media/video/em28xx/em28xx-core.c
index 2f3257e87027..b0a238421f2b 100644
--- a/drivers/media/video/em28xx/em28xx-core.c
+++ b/drivers/media/video/em28xx/em28xx-core.c
@@ -424,6 +424,7 @@ EXPORT_SYMBOL_GPL(em28xx_audio_analog_set);
424int em28xx_audio_setup(struct em28xx *dev) 424int em28xx_audio_setup(struct em28xx *dev)
425{ 425{
426 int vid1, vid2, feat, cfg; 426 int vid1, vid2, feat, cfg;
427 u32 vid;
427 428
428 if (dev->chip_id == CHIP_ID_EM2874) { 429 if (dev->chip_id == CHIP_ID_EM2874) {
429 /* Digital only device - don't load any alsa module */ 430 /* Digital only device - don't load any alsa module */
@@ -475,9 +476,10 @@ int em28xx_audio_setup(struct em28xx *dev)
475 if (vid2 < 0) 476 if (vid2 < 0)
476 goto init_audio; 477 goto init_audio;
477 478
478 dev->audio_mode.ac97_vendor_id1 = vid1; 479 vid = vid1 << 16 | vid2;
479 dev->audio_mode.ac97_vendor_id2 = vid2; 480
480 em28xx_warn("AC97 vendor ID = %04x:%04x\n", vid1, vid2); 481 dev->audio_mode.ac97_vendor_id = vid;
482 em28xx_warn("AC97 vendor ID = 0x%08x\n", vid);
481 483
482 feat = em28xx_read_ac97(dev, AC97_RESET); 484 feat = em28xx_read_ac97(dev, AC97_RESET);
483 if (feat < 0) 485 if (feat < 0)
@@ -486,7 +488,8 @@ int em28xx_audio_setup(struct em28xx *dev)
486 dev->audio_mode.ac97_feat = feat; 488 dev->audio_mode.ac97_feat = feat;
487 em28xx_warn("AC97 features = 0x%04x\n", feat); 489 em28xx_warn("AC97 features = 0x%04x\n", feat);
488 490
489 if ((vid1 == 0xffff) && (vid2 == 0xffff) && (feat == 0x6a90)) 491 /* Try to identify what audio processor we have */
492 if ((vid == 0xffffffff) && (feat == 0x6a90))
490 dev->audio_mode.ac97 = EM28XX_AC97_EM202; 493 dev->audio_mode.ac97 = EM28XX_AC97_EM202;
491 494
492init_audio: 495init_audio:
diff --git a/drivers/media/video/em28xx/em28xx.h b/drivers/media/video/em28xx/em28xx.h
index 3e8e13a55f57..d965caba63e3 100644
--- a/drivers/media/video/em28xx/em28xx.h
+++ b/drivers/media/video/em28xx/em28xx.h
@@ -266,8 +266,7 @@ struct em28xx_audio_mode {
266 enum em28xx_ac97_mode ac97; 266 enum em28xx_ac97_mode ac97;
267 267
268 u16 ac97_feat; 268 u16 ac97_feat;
269 u16 ac97_vendor_id1; 269 u32 ac97_vendor_id;
270 u16 ac97_vendor_id2;
271 270
272 unsigned int has_audio:1; 271 unsigned int has_audio:1;
273 272