From: Mauro Carvalho Chehab <mchehab@redhat.com>
Date: Thu, 20 Nov 2008 11:56:19 +0000 (-0300)
Subject: V4L/DVB (9652): em28xx: merge AC97 vendor id's into a single var
X-Git-Tag: firefly_0821_release~16456^2~382
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=16c7bcadff2222b297d13951dc30e133f56d0154;p=firefly-linux-kernel-4.4.55.git

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>
---

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);
 int em28xx_audio_setup(struct em28xx *dev)
 {
 	int vid1, vid2, feat, cfg;
+	u32 vid;
 
 	if (dev->chip_id == CHIP_ID_EM2874) {
 		/* Digital only device - don't load any alsa module */
@@ -475,9 +476,10 @@ int em28xx_audio_setup(struct em28xx *dev)
 	if (vid2 < 0)
 		goto init_audio;
 
-	dev->audio_mode.ac97_vendor_id1 = vid1;
-	dev->audio_mode.ac97_vendor_id2 = vid2;
-	em28xx_warn("AC97 vendor ID = %04x:%04x\n", vid1, vid2);
+	vid = vid1 << 16 | vid2;
+
+	dev->audio_mode.ac97_vendor_id = vid;
+	em28xx_warn("AC97 vendor ID = 0x%08x\n", vid);
 
 	feat = em28xx_read_ac97(dev, AC97_RESET);
 	if (feat < 0)
@@ -486,7 +488,8 @@ int em28xx_audio_setup(struct em28xx *dev)
 	dev->audio_mode.ac97_feat = feat;
 	em28xx_warn("AC97 features = 0x%04x\n", feat);
 
-	if ((vid1 == 0xffff) && (vid2 == 0xffff) && (feat == 0x6a90))
+	/* Try to identify what audio processor we have */
+	if ((vid == 0xffffffff) && (feat == 0x6a90))
 		dev->audio_mode.ac97 = EM28XX_AC97_EM202;
 
 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 {
 	enum em28xx_ac97_mode ac97;
 
 	u16 ac97_feat;
-	u16 ac97_vendor_id1;
-	u16 ac97_vendor_id2;
+	u32 ac97_vendor_id;
 
 	unsigned int has_audio:1;