@@ -512,6 +512,7 @@ struct platform_device nuc900_device_ac97 = {
.dev = {
.dma_mask = &nuc900_device_audio_dmamask,
.coherent_dma_mask = -1,
+ .platform_data = mfp_set_groupg,
}
};
@@ -22,8 +22,6 @@
#include <sound/soc.h>
#include <linux/clk.h>
-#include <mach/mfp.h>
-
#include "nuc900-audio.h"
static DEFINE_MUTEX(ac97_mutex);
@@ -320,6 +318,8 @@ static const struct snd_soc_component_driver nuc900_ac97_component = {
static int nuc900_ac97_drvprobe(struct platform_device *pdev)
{
+ void (*mfp_set_groupg)(struct device *dev, const char *subname);
+
struct nuc900_audio *nuc900_audio;
int ret;
@@ -362,6 +362,8 @@ static int nuc900_ac97_drvprobe(struct platform_device *pdev)
if (ret)
goto out;
+ mfp_set_groupg = platform_get_drvdata(pdev);
+
/* enbale ac97 multifunction pin */
mfp_set_groupg(nuc900_audio->dev, NULL);
@@ -21,8 +21,6 @@
#include <sound/pcm_params.h>
#include <sound/soc.h>
-#include <mach/hardware.h>
-
#include "nuc900-audio.h"
static const struct snd_pcm_hardware nuc900_pcm_hardware = {
The ac97 driver remains as one of the few places using w90x900/nuc900 mach/*.h header files for the purpose of pin configuration. We can avoid that by passing a pointer to the one function it needs to call as platform data. Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- arch/arm/mach-w90x900/dev.c | 1 + sound/soc/nuc900/nuc900-ac97.c | 6 ++++-- sound/soc/nuc900/nuc900-pcm.c | 2 -- 3 files changed, 5 insertions(+), 4 deletions(-) -- 2.9.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel