From: Xiong Zhou <[email protected]>
This patch fixes build failure of next-20130325 (and also next-20130322),
about sound soc codec modules, based on previous implementation.
Failing message:
MODPOST 2490 modules
ERROR: "arizona_rate_text" [sound/soc/codecs/snd-soc-wm-adsp.ko] undefined!
ERROR: "arizona_rate_val" [sound/soc/codecs/snd-soc-wm-adsp.ko] undefined!
WARNING: modpost: Found 5 section mismatch(es).
Signed-off-by: Xiong Zhou <[email protected]>
---
sound/soc/codecs/arizona.c | 8 ++------
sound/soc/codecs/arizona.h | 10 ++++++++--
2 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/sound/soc/codecs/arizona.c b/sound/soc/codecs/arizona.c
index 26e1579..166db32 100644
--- a/sound/soc/codecs/arizona.c
+++ b/sound/soc/codecs/arizona.c
@@ -433,14 +433,10 @@ EXPORT_SYMBOL_GPL(arizona_mixer_values);
const DECLARE_TLV_DB_SCALE(arizona_mixer_tlv, -3200, 100, 0);
EXPORT_SYMBOL_GPL(arizona_mixer_tlv);
-const char *arizona_rate_text[ARIZONA_RATE_ENUM_SIZE] = {
- "SYNCCLK rate", "8kHz", "16kHz", "ASYNCCLK rate",
-};
+extern const char *arizona_rate_text[ARIZONA_RATE_ENUM_SIZE];
EXPORT_SYMBOL_GPL(arizona_rate_text);
-const int arizona_rate_val[ARIZONA_RATE_ENUM_SIZE] = {
- 0, 1, 2, 8,
-};
+extern const int arizona_rate_val[ARIZONA_RATE_ENUM_SIZE];
EXPORT_SYMBOL_GPL(arizona_rate_val);
diff --git a/sound/soc/codecs/arizona.h b/sound/soc/codecs/arizona.h
index a754a1c..3e43456 100644
--- a/sound/soc/codecs/arizona.h
+++ b/sound/soc/codecs/arizona.h
@@ -181,8 +181,14 @@ extern int arizona_mixer_values[ARIZONA_NUM_MIXER_INPUTS];
ARIZONA_MIXER_ROUTES(name, name "R")
#define ARIZONA_RATE_ENUM_SIZE 4
-extern const char *arizona_rate_text[ARIZONA_RATE_ENUM_SIZE];
-extern const int arizona_rate_val[ARIZONA_RATE_ENUM_SIZE];
+
+const char *arizona_rate_text[ARIZONA_RATE_ENUM_SIZE] = {
+ "SYNCCLK rate", "8kHz", "16kHz", "ASYNCCLK rate",
+};
+
+const int arizona_rate_val[ARIZONA_RATE_ENUM_SIZE] = {
+ 0, 1, 2, 8,
+};
extern const struct soc_enum arizona_isrc_fsl[];
On Mon, Mar 25, 2013 at 07:59:43PM +0800, Xiong Zhou wrote:
> -const char *arizona_rate_text[ARIZONA_RATE_ENUM_SIZE] = {
> - "SYNCCLK rate", "8kHz", "16kHz", "ASYNCCLK rate",
> -};
> +extern const char *arizona_rate_text[ARIZONA_RATE_ENUM_SIZE];
> EXPORT_SYMBOL_GPL(arizona_rate_text);
No, this isn't a good fix at all - we're moving the array to the header
but still exporting it from this file which is not clever at all. The
user should be conditional.
On Mon, 25 Mar 2013, Mark Brown wrote:
> On Mon, Mar 25, 2013 at 07:59:43PM +0800, Xiong Zhou wrote:
>
> > -const char *arizona_rate_text[ARIZONA_RATE_ENUM_SIZE] = {
> > - "SYNCCLK rate", "8kHz", "16kHz", "ASYNCCLK rate",
> > -};
> > +extern const char *arizona_rate_text[ARIZONA_RATE_ENUM_SIZE];
> > EXPORT_SYMBOL_GPL(arizona_rate_text);
>
> No, this isn't a good fix at all - we're moving the array to the header
> but still exporting it from this file which is not clever at all. The
> user should be conditional.
>
Yes, I agree with you much. Do you have some plan with this array?
The exproting seems not necesary right now, How about just moving
the array to the header?
On Mon, Mar 25, 2013 at 08:34:27PM +0800, Xiong Zhou wrote:
> On Mon, 25 Mar 2013, Mark Brown wrote:
> > No, this isn't a good fix at all - we're moving the array to the header
> > but still exporting it from this file which is not clever at all. The
> > user should be conditional.
> Yes, I agree with you much. Do you have some plan with this array?
> The exproting seems not necesary right now, How about just moving
> the array to the header?
Exactly what I said in my reply...