diff options
Diffstat (limited to 'arch/arm/mach-omap2/twl-common.c')
| -rw-r--r-- | arch/arm/mach-omap2/twl-common.c | 20 | 
1 files changed, 13 insertions, 7 deletions
diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c index e49b40b4c90..51e138cc539 100644 --- a/arch/arm/mach-omap2/twl-common.c +++ b/arch/arm/mach-omap2/twl-common.c @@ -23,6 +23,7 @@  #include <linux/i2c.h>  #include <linux/i2c/twl.h>  #include <linux/gpio.h> +#include <linux/string.h>  #include <linux/regulator/machine.h>  #include <linux/regulator/fixed.h> @@ -56,7 +57,7 @@ void __init omap_pmic_init(int bus, u32 clkrate,  			   struct twl4030_platform_data *pmic_data)  {  	omap_mux_init_signal("sys_nirq", OMAP_PIN_INPUT_PULLUP | OMAP_PIN_OFF_WAKEUPENABLE); -	strncpy(pmic_i2c_board_info.type, pmic_type, +	strlcpy(pmic_i2c_board_info.type, pmic_type,  		sizeof(pmic_i2c_board_info.type));  	pmic_i2c_board_info.irq = pmic_irq;  	pmic_i2c_board_info.platform_data = pmic_data; @@ -528,24 +529,29 @@ void __init omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,  	defined(CONFIG_SND_OMAP_SOC_OMAP_TWL4030_MODULE)  #include <linux/platform_data/omap-twl4030.h> +/* Commonly used configuration */  static struct omap_tw4030_pdata omap_twl4030_audio_data;  static struct platform_device audio_device = {  	.name		= "omap-twl4030",  	.id		= -1, -	.dev = { -		.platform_data = &omap_twl4030_audio_data, -	},  }; -void __init omap_twl4030_audio_init(char *card_name) +void omap_twl4030_audio_init(char *card_name, +				    struct omap_tw4030_pdata *pdata)  { -	omap_twl4030_audio_data.card_name = card_name; +	if (!pdata) +		pdata = &omap_twl4030_audio_data; + +	pdata->card_name = card_name; + +	audio_device.dev.platform_data = pdata;  	platform_device_register(&audio_device);  }  #else /* SOC_OMAP_TWL4030 */ -void __init omap_twl4030_audio_init(char *card_name) +void omap_twl4030_audio_init(char *card_name, +				    struct omap_tw4030_pdata *pdata)  {  	return;  }  |