V4L/DVB (11076): au0828: make g_chip_ident call work properly

Make the g_chip_ident call work for the au0828/au8522.  Discovered when testing
with the v4l2_compliance tool

Signed-off-by: Devin Heitmueller <dheitmueller@linuxtv.org>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
[mchehab@redhat.com: fix merge conflict, due to a path change for analog demod]
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
diff --git a/drivers/media/dvb/frontends/au8522_decoder.c b/drivers/media/dvb/frontends/au8522_decoder.c
index e2927c1..5646363 100644
--- a/drivers/media/dvb/frontends/au8522_decoder.c
+++ b/drivers/media/dvb/frontends/au8522_decoder.c
@@ -636,6 +636,7 @@
 		break;
 	}
 
+	qc->type = 0;
 	return -EINVAL;
 }
 
diff --git a/drivers/media/video/au0828/au0828-video.c b/drivers/media/video/au0828/au0828-video.c
index 0dd1383..ce80882 100644
--- a/drivers/media/video/au0828/au0828-video.c
+++ b/drivers/media/video/au0828/au0828-video.c
@@ -1348,7 +1348,15 @@
 	chip->ident = V4L2_IDENT_NONE;
 	chip->revision = 0;
 
+	if (v4l2_chip_match_host(&chip->match)) {
+		chip->ident = V4L2_IDENT_AU0828;
+		return 0;
+	}
+
 	au0828_call_i2c_clients(dev, VIDIOC_DBG_G_CHIP_IDENT, chip);
+	if (chip->ident == V4L2_IDENT_NONE)
+		return -EINVAL;
+
 	return 0;
 }
 
diff --git a/include/media/v4l2-chip-ident.h b/include/media/v4l2-chip-ident.h
index 43684f1..ca2aa6d 100644
--- a/include/media/v4l2-chip-ident.h
+++ b/include/media/v4l2-chip-ident.h
@@ -70,6 +70,9 @@
 	V4L2_IDENT_CX23416 = 416,
 	V4L2_IDENT_CX23418 = 418,
 
+	/* module au0828 */
+	V4L2_IDENT_AU0828 = 828,
+
 	/* module indycam: just ident 2000 */
 	V4L2_IDENT_INDYCAM = 2000,