Hi Iwai-san, On Tue, Nov 6, 2018 at 5:18 PM Takashi Iwai <tiwai@xxxxxxx> wrote: > On Tue, 06 Nov 2018 02:04:47 +0100, > Randy Dunlap wrote: > > > > On 11/5/18 2:12 PM, Geert Uytterhoeven wrote: > > > On Mon, Nov 5, 2018 at 11:07 PM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: > > >> Below is the list of build error/warning regressions/improvements in > > >> v4.20-rc1[1] compared to v4.19[2]. > > >> > > >> Summarized: > > >> - build errors: +3/-0 > > >> - build warnings: +449/-2712 > > >> > > >> Happy fixing! ;-) > > >> > > >> Thanks to the linux-next team for providing the build service. > > >> > > >> [1] http://kisskb.ellerman.id.au/kisskb/branch/linus/head/651022382c7f8da46cb4872a545ee1da6d097d2a/ (all 240 configs) > > >> [2] http://kisskb.ellerman.id.au/kisskb/branch/linus/head/84df9525b0c27f3ebc2ebb1864fa62a97fdedb7d/ (all 240 configs) > > >> > > >> > > >> *** ERRORS *** > > >> > > >> + /kisskb/src/sound/pci/hda/patch_ca0132.c: error: implicit declaration of function 'pci_iomap' [-Werror=implicit-function-declaration]: => 8799:3 > > > > > > sh4-all{mod,yes}config > > > > > > Looks like d9b84a15892c0233 ("ALSA: hda: Fix implicit definition of > > > pci_iomap() on SH") > > > is not sufficient? > > > > Different problem. This is about "select": > > > > config SND_SOC_ALL_CODECS > > tristate "Build all ASoC CODEC drivers" > > > > That enables (sets): > > select SND_SOC_HDAC_HDA > > which selects SND_HDA even though CONFIG_PCI is not enabled. > > Actually it is OK to enable CONFIG_SND_HDA_CODEC_CA0132 without > CONFIG_PCI. IIRC, there was a system like that, too. > The commit above should have covered the build failure on SH, but > apparently isn't enough for some arch setups, as it seems. > > The cause is clear now: pci_iomap() is defined in > asm-generic/pci_iomap.h only when CONFIG_GENERIC_PCI_IOMAP is > defined. Including asm/io.h doesn't help unless CONFIG_PCI is set. > > Below is a quick fix for this. > > > thanks, > > Takashi > > -- 8< -- > > From: Takashi Iwai <tiwai@xxxxxxx> > Subject: [PATCH] ALSA: hda/ca0132 - Yet more fix on build breakage without PCI > support > > The recent change in CA0132 codec driver for supporting more > Creative boards includes the pci_iomap() call to get the extra > register accesses. This is supposed to work on all archs and setups, > by the implicit assumption that every arch would provide a dummy > function returning NULL when no PCI is available. But the reality > bites, of course; as Geert's regular build test shows, some configs > (at least SH4 without CONFIG_PCI) leads to a build error due to the > implicit function declaration. > > So this is another attempt to fix the issue: now we add an ifdef > CONFIG_PCI line, so that pci_iomap() won't be called unless PCI is > really usable. This should fall back to the standard quirk again with > a warning. > > Fixes: d9b84a15892c0233 ("ALSA: hda: Fix implicit definition of pci_iomap() on SH") > Reported-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> > Cc: <stable@xxxxxxxxxxxxxxx> > Signed-off-by: Takashi Iwai <tiwai@xxxxxxx> Thanks for your patch! > --- a/sound/pci/hda/patch_ca0132.c > +++ b/sound/pci/hda/patch_ca0132.c > @@ -8796,7 +8796,13 @@ static int patch_ca0132(struct hda_codec *codec) > } > > if (spec->use_pci_mmio) { > + /* > + * ifdef below needed due to lack of pci_iomap() decleration > + * for some archs when no PCI is defined > + */ > +#ifdef CONFIG_PCI > spec->mem_base = pci_iomap(codec->bus->pci, 2, 0xC20); > +#endif I'm sorry, but that is not a proper fix. This should be fixed in the SH-specific code, to behave like other architectures. > if (spec->mem_base == NULL) { > codec_warn(codec, "pci_iomap failed! Setting quirk to QUIRK_NONE."); > spec->quirk = QUIRK_NONE; Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds