On 8/28/19 12:28 PM, Pierre-Louis Bossart wrote: > > > On 8/28/19 1:30 PM, Randy Dunlap wrote: >> >> (from linux-next tree, but problem found/seen in mmotm) >> >> Sorry, I don't know who is responsible for this driver. > > That would be me. > > I just checked with Mark Brown's for-next tree 8aceffa09b4b9867153bfe0ff6f40517240cee12 > and things are fine in i386 mode, see below. > > next-20190828 also works fine for me in i386 mode. > > if you can point me to a tree and configuration that don't work I'll look into this, I'd need more info to progress. Please try the attached randconfig file. Thanks for looking. > make ARCH=i386 >   Using /data/pbossart/ktest/broonie-next as source for kernel >   GEN     Makefile >   CALL    /data/pbossart/ktest/broonie-next/scripts/checksyscalls.sh >   CALL    /data/pbossart/ktest/broonie-next/scripts/atomic/check-atomics.sh >   CHK     include/generated/compile.h >   CC [M]  sound/hda/ext/hdac_ext_bus.o >   CC [M]  sound/hda/ext/hdac_ext_controller.o >   CC [M]  sound/hda/ext/hdac_ext_stream.o >   LD [M]  sound/hda/ext/snd-hda-ext-core.o >   CC [M]  sound/hda/hda_bus_type.o >   CC [M]  sound/hda/hdac_bus.o >   CC [M]  sound/hda/hdac_device.o >   CC [M]  sound/hda/hdac_sysfs.o >   CC [M]  sound/hda/hdac_regmap.o >   CC [M]  sound/hda/hdac_controller.o >   CC [M]  sound/hda/hdac_stream.o >   CC [M]  sound/hda/array.o >   CC [M]  sound/hda/hdmi_chmap.o >   CC [M]  sound/hda/trace.o >   CC [M]  sound/hda/hdac_component.o >   CC [M]  sound/hda/hdac_i915.o >   LD [M]  sound/hda/snd-hda-core.o >   CC [M]  sound/hda/intel-nhlt.o >   LD [M]  sound/hda/snd-intel-nhlt.o > Kernel: arch/x86/boot/bzImage is ready  (#18) >   Building modules, stage 2. >   MODPOST 156 modules >   CC      sound/hda/ext/snd-hda-ext-core.mod.o >   LD [M]  sound/hda/ext/snd-hda-ext-core.ko >   CC      sound/hda/snd-hda-core.mod.o >   LD [M]  sound/hda/snd-hda-core.ko >   CC      sound/hda/snd-intel-nhlt.mod.o >   LD [M]  sound/hda/snd-intel-nhlt.ko > > >> >> ~~~~~~~~~~~~~~~~~~~~~~ >> on i386: >> >>    CC      sound/hda/intel-nhlt.o >> ../sound/hda/intel-nhlt.c:14:25: error: redefinition of ‘intel_nhlt_init’ >>   struct nhlt_acpi_table *intel_nhlt_init(struct device *dev) >>                           ^~~~~~~~~~~~~~~ >> In file included from ../sound/hda/intel-nhlt.c:5:0: >> ../include/sound/intel-nhlt.h:134:39: note: previous definition of ‘intel_nhlt_init’ was here >>   static inline struct nhlt_acpi_table *intel_nhlt_init(struct device *dev) >>                                         ^~~~~~~~~~~~~~~ >> ../sound/hda/intel-nhlt.c: In function ‘intel_nhlt_init’: >> ../sound/hda/intel-nhlt.c:39:14: error: dereferencing pointer to incomplete type ‘struct nhlt_resource_desc’ >>    if (nhlt_ptr->length) >>                ^~ >> ../sound/hda/intel-nhlt.c:41:4: error: implicit declaration of function ‘memremap’; did you mean ‘ioremap’? [-Werror=implicit-function-declaration] >>      memremap(nhlt_ptr->min_addr, nhlt_ptr->length, >>      ^~~~~~~~ >>      ioremap >> ../sound/hda/intel-nhlt.c:42:6: error: ‘MEMREMAP_WB’ undeclared (first use in this function) >>        MEMREMAP_WB); >>        ^~~~~~~~~~~ >> ../sound/hda/intel-nhlt.c:42:6: note: each undeclared identifier is reported only once for each function it appears in >> ../sound/hda/intel-nhlt.c:45:25: error: dereferencing pointer to incomplete type ‘struct nhlt_acpi_table’ >>        (strncmp(nhlt_table->header.signature, >>                           ^~ >> ../sound/hda/intel-nhlt.c:48:3: error: implicit declaration of function ‘memunmap’; did you mean ‘vunmap’? [-Werror=implicit-function-declaration] >>     memunmap(nhlt_table); >>     ^~~~~~~~ >>     vunmap >> ../sound/hda/intel-nhlt.c: At top level: >> ../sound/hda/intel-nhlt.c:56:6: error: redefinition of ‘intel_nhlt_free’ >>   void intel_nhlt_free(struct nhlt_acpi_table *nhlt) >>        ^~~~~~~~~~~~~~~ >> In file included from ../sound/hda/intel-nhlt.c:5:0: >> ../include/sound/intel-nhlt.h:139:20: note: previous definition of ‘intel_nhlt_free’ was here >>   static inline void intel_nhlt_free(struct nhlt_acpi_table *addr) >>                      ^~~~~~~~~~~~~~~ >> ../sound/hda/intel-nhlt.c:62:5: error: redefinition of ‘intel_nhlt_get_dmic_geo’ >>   int intel_nhlt_get_dmic_geo(struct device *dev, struct nhlt_acpi_table *nhlt) >>       ^~~~~~~~~~~~~~~~~~~~~~~ >> In file included from ../sound/hda/intel-nhlt.c:5:0: >> ../include/sound/intel-nhlt.h:143:19: note: previous definition of ‘intel_nhlt_get_dmic_geo’ was here >>   static inline int intel_nhlt_get_dmic_geo(struct device *dev, >>                     ^~~~~~~~~~~~~~~~~~~~~~~ >> ../sound/hda/intel-nhlt.c: In function ‘intel_nhlt_get_dmic_geo’: >> ../sound/hda/intel-nhlt.c:76:11: error: dereferencing pointer to incomplete type ‘struct nhlt_endpoint’ >>     if (epnt->linktype == NHLT_LINK_DMIC) { >>             ^~ >> ../sound/hda/intel-nhlt.c:76:25: error: ‘NHLT_LINK_DMIC’ undeclared (first use in this function) >>     if (epnt->linktype == NHLT_LINK_DMIC) { >>                           ^~~~~~~~~~~~~~ >> ../sound/hda/intel-nhlt.c:79:15: error: dereferencing pointer to incomplete type ‘struct nhlt_dmic_array_config’ >>      switch (cfg->array_type) { >>                 ^~ >> ../sound/hda/intel-nhlt.c:80:9: error: ‘NHLT_MIC_ARRAY_2CH_SMALL’ undeclared (first use in this function) >>      case NHLT_MIC_ARRAY_2CH_SMALL: >>           ^~~~~~~~~~~~~~~~~~~~~~~~ >> ../sound/hda/intel-nhlt.c:81:9: error: ‘NHLT_MIC_ARRAY_2CH_BIG’ undeclared (first use in this function); did you mean ‘NHLT_MIC_ARRAY_2CH_SMALL’? >>      case NHLT_MIC_ARRAY_2CH_BIG: >>           ^~~~~~~~~~~~~~~~~~~~~~ >>           NHLT_MIC_ARRAY_2CH_SMALL >> ../sound/hda/intel-nhlt.c:82:16: error: ‘MIC_ARRAY_2CH’ undeclared (first use in this function); did you mean ‘NHLT_MIC_ARRAY_2CH_BIG’? >>       dmic_geo = MIC_ARRAY_2CH; >>                  ^~~~~~~~~~~~~ >>                  NHLT_MIC_ARRAY_2CH_BIG >> ../sound/hda/intel-nhlt.c:85:9: error: ‘NHLT_MIC_ARRAY_4CH_1ST_GEOM’ undeclared (first use in this function); did you mean ‘NHLT_MIC_ARRAY_2CH_BIG’? >>      case NHLT_MIC_ARRAY_4CH_1ST_GEOM: >>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~ >>           NHLT_MIC_ARRAY_2CH_BIG >> ../sound/hda/intel-nhlt.c:86:9: error: ‘NHLT_MIC_ARRAY_4CH_L_SHAPED’ undeclared (first use in this function); did you mean ‘NHLT_MIC_ARRAY_4CH_1ST_GEOM’? >>      case NHLT_MIC_ARRAY_4CH_L_SHAPED: >>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~ >>           NHLT_MIC_ARRAY_4CH_1ST_GEOM >>    AR      sound/i2c/other/built-in.a >> ../sound/hda/intel-nhlt.c:87:9: error: ‘NHLT_MIC_ARRAY_4CH_2ND_GEOM’ undeclared (first use in this function); did you mean ‘NHLT_MIC_ARRAY_4CH_1ST_GEOM’? >>      case NHLT_MIC_ARRAY_4CH_2ND_GEOM: >>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~ >>           NHLT_MIC_ARRAY_4CH_1ST_GEOM >> ../sound/hda/intel-nhlt.c:88:16: error: ‘MIC_ARRAY_4CH’ undeclared (first use in this function); did you mean ‘MIC_ARRAY_2CH’? >>       dmic_geo = MIC_ARRAY_4CH; >>                  ^~~~~~~~~~~~~ >>                  MIC_ARRAY_2CH >>    AR      sound/i2c/built-in.a >>    CC      drivers/bluetooth/btmtksdio.o >> ../sound/hda/intel-nhlt.c:90:9: error: ‘NHLT_MIC_ARRAY_VENDOR_DEFINED’ undeclared (first use in this function); did you mean ‘NHLT_MIC_ARRAY_4CH_L_SHAPED’? >>      case NHLT_MIC_ARRAY_VENDOR_DEFINED: >>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>           NHLT_MIC_ARRAY_4CH_L_SHAPED >> ../sound/hda/intel-nhlt.c:92:26: error: dereferencing pointer to incomplete type ‘struct nhlt_vendor_dmic_array_config’ >>       dmic_geo = cfg_vendor->nb_mics; >>                            ^~ >> ../sound/hda/intel-nhlt.c: At top level: >> ../sound/hda/intel-nhlt.c:106:16: error: expected declaration specifiers or ‘...’ before string constant >>   MODULE_LICENSE("GPL v2"); >>                  ^~~~~~~~ >> ../sound/hda/intel-nhlt.c:107:20: error: expected declaration specifiers or ‘...’ before string constant >>   MODULE_DESCRIPTION("Intel NHLT driver"); >>                      ^~~~~~~~~~~~~~~~~~~ >> cc1: some warnings being treated as errors >> make[3]: *** [../scripts/Makefile.build:266: sound/hda/intel-nhlt.o] Error 1 >> >> >> -- ~Randy