V4L/DVB (4666): Ensure the WM8775 driver is loaded generically for any board.

A generic change to cards to allow any board to specify whether
it needs the wm8775 module loaded (by the core) or not.

Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c
index 6214eb8..425d15d 100644
--- a/drivers/media/video/cx88/cx88-cards.c
+++ b/drivers/media/video/cx88/cx88-cards.c
@@ -1287,6 +1287,7 @@
 		.tuner_addr	= ADDR_UNSET,
 		.radio_addr	= ADDR_UNSET,
 		.tda9887_conf   = TDA9887_PRESENT,
+		.audio_chip     = AUDIO_CHIP_WM8775,
 		.input		= {{
 			.type   = CX88_VMUX_TELEVISION,
 			.vmux   = 0,
diff --git a/drivers/media/video/cx88/cx88-video.c b/drivers/media/video/cx88/cx88-video.c
index fbc79e9..cb0c0ee 100644
--- a/drivers/media/video/cx88/cx88-video.c
+++ b/drivers/media/video/cx88/cx88-video.c
@@ -1928,6 +1928,9 @@
 	if (TUNER_ABSENT != core->tuner_type)
 		request_module("tuner");
 
+	if (cx88_boards[ core->board ].audio_chip == AUDIO_CHIP_WM8775)
+		request_module("wm8775");
+
 	/* register v4l devices */
 	dev->video_dev = cx88_vdev_init(core,dev->pci,
 					&cx8800_video_template,"video");
diff --git a/drivers/media/video/cx88/cx88.h b/drivers/media/video/cx88/cx88.h
index 89f12e2..2371ab4 100644
--- a/drivers/media/video/cx88/cx88.h
+++ b/drivers/media/video/cx88/cx88.h
@@ -30,6 +30,7 @@
 #include <media/tveeprom.h>
 #include <media/video-buf.h>
 #include <media/cx2341x.h>
+#include <media/audiochip.h>
 #include <media/video-buf-dvb.h>
 
 #include "btcx-risc.h"
@@ -232,6 +233,7 @@
 	struct cx88_input       radio;
 	unsigned int            blackbird:1;
 	unsigned int            dvb:1;
+	enum audiochip          audio_chip;
 };
 
 struct cx88_subid {
diff --git a/include/media/audiochip.h b/include/media/audiochip.h
index 1fd4a22..db8823d 100644
--- a/include/media/audiochip.h
+++ b/include/media/audiochip.h
@@ -18,7 +18,9 @@
 	AUDIO_CHIP_TDA9874,
 	AUDIO_CHIP_PIC16C54,
 	/* Provided by msp3400.c */
-	AUDIO_CHIP_MSP34XX
+	AUDIO_CHIP_MSP34XX,
+	/* Provided by wm8775.c */
+	AUDIO_CHIP_WM8775
 };
 
 #endif /* AUDIOCHIP_H */