[alsa-devel] [asoc:for-4.20 333/424] sound/pci/hda/patch_ca0132.c:7650:20: error: implicit declaration of function 'pci_iomap'; did you mean 'pcim_iomap'?
Hi Rakesh,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-4.20 head: 1c8bc7b3de5e76cb89aacdc7be1475a028af505f commit: 6bae5ea9498926440ffc883f3dbceb0adc65e492 [333/424] ASoC: hdac_hda: add asoc extension for legacy HDA codec drivers config: sh-allmodconfig (attached as .config) compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout 6bae5ea9498926440ffc883f3dbceb0adc65e492 # save the attached .config to linux build tree GCC_VERSION=7.2.0 make.cross ARCH=sh
All errors (new ones prefixed by >>):
sound/pci/hda/patch_ca0132.c: In function 'patch_ca0132':
sound/pci/hda/patch_ca0132.c:7650:20: error: implicit declaration of function 'pci_iomap'; did you mean 'pcim_iomap'? [-Werror=implicit-function-declaration]
spec->mem_base = pci_iomap(codec->bus->pci, 2, 0xC20); ^~~~~~~~~ pcim_iomap sound/pci/hda/patch_ca0132.c:7650:18: warning: assignment makes pointer from integer without a cast [-Wint-conversion] spec->mem_base = pci_iomap(codec->bus->pci, 2, 0xC20); ^ cc1: some warnings being treated as errors
vim +7650 sound/pci/hda/patch_ca0132.c
d5c016b56 Gabriele Martino 2015-05-18 7581 95c6e9cb7 Ian Minett 2011-06-15 7582 static int patch_ca0132(struct hda_codec *codec) 95c6e9cb7 Ian Minett 2011-06-15 7583 { 95c6e9cb7 Ian Minett 2011-06-15 7584 struct ca0132_spec *spec; a73d511c4 Ian Minett 2012-12-20 7585 int err; d5c016b56 Gabriele Martino 2015-05-18 7586 const struct snd_pci_quirk *quirk; 95c6e9cb7 Ian Minett 2011-06-15 7587 4e76a8833 Takashi Iwai 2014-02-25 7588 codec_dbg(codec, "patch_ca0132\n"); 95c6e9cb7 Ian Minett 2011-06-15 7589 95c6e9cb7 Ian Minett 2011-06-15 7590 spec = kzalloc(sizeof(*spec), GFP_KERNEL); 95c6e9cb7 Ian Minett 2011-06-15 7591 if (!spec) 95c6e9cb7 Ian Minett 2011-06-15 7592 return -ENOMEM; 95c6e9cb7 Ian Minett 2011-06-15 7593 codec->spec = spec; 993884f6a Chih-Chung Chang 2013-03-25 7594 spec->codec = codec; 95c6e9cb7 Ian Minett 2011-06-15 7595 225068ab2 Takashi Iwai 2015-05-29 7596 codec->patch_ops = ca0132_patch_ops; 225068ab2 Takashi Iwai 2015-05-29 7597 codec->pcm_format_first = 1; 225068ab2 Takashi Iwai 2015-05-29 7598 codec->no_sticky_stream = 1; 225068ab2 Takashi Iwai 2015-05-29 7599 d5c016b56 Gabriele Martino 2015-05-18 7600 /* Detect codec quirk */ d5c016b56 Gabriele Martino 2015-05-18 7601 quirk = snd_pci_quirk_lookup(codec->bus->pci, ca0132_quirks); d5c016b56 Gabriele Martino 2015-05-18 7602 if (quirk) d5c016b56 Gabriele Martino 2015-05-18 7603 spec->quirk = quirk->value; d5c016b56 Gabriele Martino 2015-05-18 7604 else d5c016b56 Gabriele Martino 2015-05-18 7605 spec->quirk = QUIRK_NONE; d5c016b56 Gabriele Martino 2015-05-18 7606 e24aa0a4c Takashi Iwai 2014-08-10 7607 spec->dsp_state = DSP_DOWNLOAD_INIT; a7e76271b Ian Minett 2012-12-20 7608 spec->num_mixers = 1; 017310fbe Connor McAdams 2018-05-08 7609 017310fbe Connor McAdams 2018-05-08 7610 /* Set which mixers each quirk uses. */ 017310fbe Connor McAdams 2018-05-08 7611 switch (spec->quirk) { 017310fbe Connor McAdams 2018-05-08 7612 case QUIRK_SBZ: e25e34450 Connor McAdams 2018-08-08 7613 spec->mixers[0] = desktop_mixer; 017310fbe Connor McAdams 2018-05-08 7614 snd_hda_codec_set_name(codec, "Sound Blaster Z"); 017310fbe Connor McAdams 2018-05-08 7615 break; e25e34450 Connor McAdams 2018-08-08 7616 case QUIRK_R3D: e25e34450 Connor McAdams 2018-08-08 7617 spec->mixers[0] = desktop_mixer; e25e34450 Connor McAdams 2018-08-08 7618 snd_hda_codec_set_name(codec, "Recon3D"); e25e34450 Connor McAdams 2018-08-08 7619 break; 017310fbe Connor McAdams 2018-05-08 7620 case QUIRK_R3DI: 017310fbe Connor McAdams 2018-05-08 7621 spec->mixers[0] = r3di_mixer; 017310fbe Connor McAdams 2018-05-08 7622 snd_hda_codec_set_name(codec, "Recon3Di"); 017310fbe Connor McAdams 2018-05-08 7623 break; 017310fbe Connor McAdams 2018-05-08 7624 default: a7e76271b Ian Minett 2012-12-20 7625 spec->mixers[0] = ca0132_mixer; 017310fbe Connor McAdams 2018-05-08 7626 break; 017310fbe Connor McAdams 2018-05-08 7627 } a7e76271b Ian Minett 2012-12-20 7628 08eca6b1f Connor McAdams 2018-08-08 7629 /* Setup whether or not to use alt functions/controls/pci_mmio */ 009b8f979 Connor McAdams 2018-05-08 7630 switch (spec->quirk) { 009b8f979 Connor McAdams 2018-05-08 7631 case QUIRK_SBZ: e42c7c731 Connor McAdams 2018-08-08 7632 case QUIRK_R3D: 08eca6b1f Connor McAdams 2018-08-08 7633 spec->use_alt_controls = true; 08eca6b1f Connor McAdams 2018-08-08 7634 spec->use_alt_functions = true; 08eca6b1f Connor McAdams 2018-08-08 7635 spec->use_pci_mmio = true; 08eca6b1f Connor McAdams 2018-08-08 7636 break; 009b8f979 Connor McAdams 2018-05-08 7637 case QUIRK_R3DI: 47cdf76e4 Connor McAdams 2018-05-08 7638 spec->use_alt_controls = true; 009b8f979 Connor McAdams 2018-05-08 7639 spec->use_alt_functions = true; 08eca6b1f Connor McAdams 2018-08-08 7640 spec->use_pci_mmio = false; 009b8f979 Connor McAdams 2018-05-08 7641 break; 009b8f979 Connor McAdams 2018-05-08 7642 default: 47cdf76e4 Connor McAdams 2018-05-08 7643 spec->use_alt_controls = false; 009b8f979 Connor McAdams 2018-05-08 7644 spec->use_alt_functions = false; 08eca6b1f Connor McAdams 2018-08-08 7645 spec->use_pci_mmio = false; 009b8f979 Connor McAdams 2018-05-08 7646 break; 009b8f979 Connor McAdams 2018-05-08 7647 } 009b8f979 Connor McAdams 2018-05-08 7648 08eca6b1f Connor McAdams 2018-08-08 7649 if (spec->use_pci_mmio) { 08eca6b1f Connor McAdams 2018-08-08 @7650 spec->mem_base = pci_iomap(codec->bus->pci, 2, 0xC20); 08eca6b1f Connor McAdams 2018-08-08 7651 if (spec->mem_base == NULL) { 08eca6b1f Connor McAdams 2018-08-08 7652 codec_warn(codec, "pci_iomap failed! Setting quirk to QUIRK_NONE."); 08eca6b1f Connor McAdams 2018-08-08 7653 spec->quirk = QUIRK_NONE; 08eca6b1f Connor McAdams 2018-08-08 7654 } 08eca6b1f Connor McAdams 2018-08-08 7655 } 08eca6b1f Connor McAdams 2018-08-08 7656 5aaca44d8 Ian Minett 2012-12-20 7657 spec->base_init_verbs = ca0132_base_init_verbs; 5aaca44d8 Ian Minett 2012-12-20 7658 spec->base_exit_verbs = ca0132_base_exit_verbs; 5aaca44d8 Ian Minett 2012-12-20 7659 993884f6a Chih-Chung Chang 2013-03-25 7660 INIT_DELAYED_WORK(&spec->unsol_hp_work, ca0132_unsol_hp_delayed); 993884f6a Chih-Chung Chang 2013-03-25 7661 95c6e9cb7 Ian Minett 2011-06-15 7662 ca0132_init_chip(codec); 95c6e9cb7 Ian Minett 2011-06-15 7663 95c6e9cb7 Ian Minett 2011-06-15 7664 ca0132_config(codec); 95c6e9cb7 Ian Minett 2011-06-15 7665 d5c016b56 Gabriele Martino 2015-05-18 7666 err = ca0132_prepare_verbs(codec); d5c016b56 Gabriele Martino 2015-05-18 7667 if (err < 0) cc91ceaf3 Takashi Iwai 2017-09-04 7668 goto error; d5c016b56 Gabriele Martino 2015-05-18 7669 a73d511c4 Ian Minett 2012-12-20 7670 err = snd_hda_parse_pin_def_config(codec, &spec->autocfg, NULL); a73d511c4 Ian Minett 2012-12-20 7671 if (err < 0) cc91ceaf3 Takashi Iwai 2017-09-04 7672 goto error; a73d511c4 Ian Minett 2012-12-20 7673 95c6e9cb7 Ian Minett 2011-06-15 7674 return 0; cc91ceaf3 Takashi Iwai 2017-09-04 7675 cc91ceaf3 Takashi Iwai 2017-09-04 7676 error: cc91ceaf3 Takashi Iwai 2017-09-04 7677 ca0132_free(codec); cc91ceaf3 Takashi Iwai 2017-09-04 7678 return err; 95c6e9cb7 Ian Minett 2011-06-15 7679 } 95c6e9cb7 Ian Minett 2011-06-15 7680
:::::: The code at line 7650 was first introduced by commit :::::: 08eca6b1f1468a4021bac7b3929fd3eb491e2629 ALSA: hda/ca0132 - Add bool variable to enable/disable pci region2 mmio
:::::: TO: Connor McAdams conmanx360@gmail.com :::::: CC: Takashi Iwai tiwai@suse.de
--- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
On Tue, 11 Sep 2018 07:29:10 +0200, kbuild test robot wrote:
Hi Rakesh,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-4.20 head: 1c8bc7b3de5e76cb89aacdc7be1475a028af505f commit: 6bae5ea9498926440ffc883f3dbceb0adc65e492 [333/424] ASoC: hdac_hda: add asoc extension for legacy HDA codec drivers config: sh-allmodconfig (attached as .config) compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout 6bae5ea9498926440ffc883f3dbceb0adc65e492 # save the attached .config to linux build tree GCC_VERSION=7.2.0 make.cross ARCH=sh
All errors (new ones prefixed by >>):
sound/pci/hda/patch_ca0132.c: In function 'patch_ca0132':
sound/pci/hda/patch_ca0132.c:7650:20: error: implicit declaration of function 'pci_iomap'; did you mean 'pcim_iomap'? [-Werror=implicit-function-declaration]
spec->mem_base = pci_iomap(codec->bus->pci, 2, 0xC20); ^~~~~~~~~ pcim_iomap
Hrm, the header file inclusion of pci_iomap() looks fairly inconsistent over architectures. SH doesn't include asm/pci_iomap.h from asm/io.h. And x86 includes it from linux/io-mapping.h.
As a quick fix, we can just include <asm/pci_iomap.h> from patch_ca0132.c, I suppose.
I can fix it in my side, but the problem is that the change isn't pulled into my tree yet. So it must be fixed in Mark's tree, or Mark send a pull request including this change and let me fix it.
thanks,
Takashi
On Tue, Sep 11, 2018 at 08:59:16AM +0200, Takashi Iwai wrote:
I can fix it in my side, but the problem is that the change isn't pulled into my tree yet. So it must be fixed in Mark's tree, or Mark send a pull request including this change and let me fix it.
I'll just apply a fix. I was kind of hoping the Intel people would care about this but guess not :(
On Tue, Sep 11, 2018 at 08:59:16AM +0200, Takashi Iwai wrote:
Hrm, the header file inclusion of pci_iomap() looks fairly inconsistent over architectures. SH doesn't include asm/pci_iomap.h from asm/io.h. And x86 includes it from linux/io-mapping.h.
As a quick fix, we can just include <asm/pci_iomap.h> from patch_ca0132.c, I suppose.
Not on x86 we can't, it's not there - asm/io.h seems safest AFAICT, everyone has it and both SH and x86 include the pci_iomap.h.
On Wed, 12 Sep 2018 13:31:28 +0200, Mark Brown wrote:
On Tue, Sep 11, 2018 at 08:59:16AM +0200, Takashi Iwai wrote:
Hrm, the header file inclusion of pci_iomap() looks fairly inconsistent over architectures. SH doesn't include asm/pci_iomap.h from asm/io.h. And x86 includes it from linux/io-mapping.h.
As a quick fix, we can just include <asm/pci_iomap.h> from patch_ca0132.c, I suppose.
Not on x86 we can't, it's not there - asm/io.h seems safest AFAICT, everyone has it and both SH and x86 include the pci_iomap.h.
Hmm, the code does include <linux/io.h>, and it includes <asm/io.h>
I don't think arch/sh/include/asm/io.h includes the necessary thing.
Takashi
On Wed, Sep 12, 2018 at 02:01:05PM +0200, Takashi Iwai wrote:
Mark Brown wrote:
Not on x86 we can't, it's not there - asm/io.h seems safest AFAICT, everyone has it and both SH and x86 include the pci_iomap.h.
Hmm, the code does include <linux/io.h>, and it includes <asm/io.h>
Yeah, at least not on SH - it is on most architectures.
I don't think arch/sh/include/asm/io.h includes the necessary thing.
I'm just about to submit a patch which makes it the (or at least a) necessary thing. This stuff shouldn't be complicated or inconsistent.
On 9/12/18 7:04 AM, Mark Brown wrote:
On Wed, Sep 12, 2018 at 02:01:05PM +0200, Takashi Iwai wrote:
Mark Brown wrote:
Not on x86 we can't, it's not there - asm/io.h seems safest AFAICT, everyone has it and both SH and x86 include the pci_iomap.h.
Hmm, the code does include <linux/io.h>, and it includes <asm/io.h>
Yeah, at least not on SH - it is on most architectures.
I don't think arch/sh/include/asm/io.h includes the necessary thing.
I'm just about to submit a patch which makes it the (or at least a) necessary thing. This stuff shouldn't be complicated or inconsistent.
Mark, did you submit the patch you mentioned? I can reproduce the issue with the latest code so something is still missing - or I didn't find it. Thanks!
On Mon, Oct 22, 2018 at 12:44:21PM -0500, Pierre-Louis Bossart wrote:
On 9/12/18 7:04 AM, Mark Brown wrote:
I don't think arch/sh/include/asm/io.h includes the necessary thing.
I'm just about to submit a patch which makes it the (or at least a) necessary thing. This stuff shouldn't be complicated or inconsistent.
Mark, did you submit the patch you mentioned? I can reproduce the issue with the latest code so something is still missing - or I didn't find it. Thanks!
Yes, the SH maintainers didn't acknowledge the patch in any way yet.
participants (4)
-
kbuild test robot
-
Mark Brown
-
Pierre-Louis Bossart
-
Takashi Iwai