Re: [PATCH v9 3/4] ASoC: tda998x: add a codec to the HDMI transmitter

From: Jyri Sarha
Date: Fri Jan 09 2015 - 05:24:35 EST


On 01/07/2015 08:02 PM, Jean-Francois Moine wrote:
On Wed, 7 Jan 2015 15:41:38 +0000
Russell King - ARM Linux <linux@xxxxxxxxxxxxxxxx> wrote:

On Wed, Jan 07, 2015 at 03:10:47PM +0000, Andrew Jackson wrote:
On 01/07/15 10:51, Jean-Francois Moine wrote:
diff --git a/drivers/gpu/drm/i2c/Kconfig b/drivers/gpu/drm/i2c/Kconfig
index 22c7ed6..24fc975 100644
--- a/drivers/gpu/drm/i2c/Kconfig
+++ b/drivers/gpu/drm/i2c/Kconfig
@@ -28,6 +28,7 @@ config DRM_I2C_SIL164
config DRM_I2C_NXP_TDA998X
tristate "NXP Semiconductors TDA998X HDMI encoder"
default m if DRM_TILCDC
+ select SND_SOC_TDA998X

Do you need this since sound/soc/codecs/Kconfig conditionally brings in the
CODEC driver?

For SND_SOC_ALL_CODECS only.

More importantly, it's broken, because it'll cause Kconfig to complain
if you enable DRM_I2C_NXP_TDA998X, but have ASoC disabled.

Moreover, if you decide you want the sound and ASoC built as a module,
but want to build in DRM and TDA998x support (so you can get video
output working on boot before initramfs/rootfs), Kconfig may well
complain.

select SND_SOC_TDA998X if SND_SOC

should work in all cases.


I think that would still fail if DRM and TDA998x is built in and SND_SOC is built as modules. A request_module() call before tda9998x_codec_register() should help. Or could could write:

select SND_SOC_TDA998X if (SND_SOC=DRM_I2C_NXP_TDA998X || SND_SOC=y)

+static int __init tda998x_codec_init(void)
+{
+ return 0;
+}
+static void __exit tda998x_codec_exit(void)
+{
+}
+module_init(tda998x_codec_init);
+module_exit(tda998x_codec_exit);

There's no need for these if they remain as the above. Modules can have
both init/exit functions, or neither, and they are still unloadable.
Only modules which provide only an init function get locked in on load.

Thanks.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/