diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-11-20 06:56:19 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-12-29 14:53:35 -0500 |
commit | 16c7bcadff2222b297d13951dc30e133f56d0154 (patch) | |
tree | 58b94dd4791f6fcd84ce5a6346c925e7f49ad728 /drivers/media | |
parent | 35643943be58aef82826e340761e86e0d37870ec (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.c | 11 | ||||
-rw-r--r-- | drivers/media/video/em28xx/em28xx.h | 3 |
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); | |||
424 | int em28xx_audio_setup(struct em28xx *dev) | 424 | int 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 | ||
492 | init_audio: | 495 | init_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 | ||