[alsa-devel] [PATCH] ASoC: pcm512x: Add PCM512x driver

Lars-Peter Clausen lars at metafoo.de
Thu Feb 6 14:24:07 CET 2014


On 02/06/2014 01:26 PM, Mark Brown wrote:
[...]
> +static const char *pcm512x_dsp_program_texts[] = {

Nitpick: should be "static const char * const ...", a immutable array of 
pointers pointing to immutable strings. Same for all the enum texts in this 
driver.
[...]
> +static int __init pcm512x_modinit(void)
> +{
> +	int ret = 0;
> +
> +#if IS_ENABLED(CONFIG_I2C)
> +	ret = i2c_add_driver(&pcm512x_i2c_driver);
> +	if (ret) {
> +		printk(KERN_ERR "Failed to register pcm512x I2C driver: %d\n",
> +		       ret);
> +	}
> +#endif
> +#if defined(CONFIG_SPI_MASTER)
> +	ret = spi_register_driver(&pcm512x_spi_driver);
> +	if (ret != 0) {
> +		printk(KERN_ERR "Failed to register pcm512x SPI driver: %d\n",
> +		       ret);
> +	}
> +#endif

Another reason why I think it is better to separate the I2C and SPI bits 
into different modules. If the registration of the SPI driver fails you'll 
return an error and the module will not be loaded. At the same time the i2c 
driver is already registered. I know that this is rather theoretical, but if 
we don't care if our error handling is correct, because we assume that the 
error will never happen, we do not need error handling at all.

> +	return ret;
> +}


More information about the Alsa-devel mailing list