Hi, first of all thank you very much for the patch. I got this working no problem with my previous install of Ubuntu Studio 22.04.2 LTS on an ew0xxx, but since changing to 23.04 (Kernel 6.2.0-1012-lowlatency), cs35l41_hda.c fails to build.
Originally it was just leftover packages from the previous install / kernel, but after removing those (and rerunning the first setup script), the make.log for snd-hda-scodec-cs35l41 shows a whole lot of incompatible pointer type errors.
Any help is appreciated, and let me know if more information is required. Thanks.
make.log:
DKMS make.log for snd-hda-scodec-cs35l41-0.1 for kernel 6.2.0-1012-lowlatency (x86_64)
Wed 06 Sep 2023 03:22:48 PM ADT
make: Entering directory '/usr/src/linux-headers-6.2.0-1012-lowlatency'
warning: the compiler differs from the one used to build the kernel
The kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~23.04) 12.3.0
You are using: gcc-12 (Ubuntu 12.3.0-1ubuntu1~23.04) 12.3.0
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/hda_bind.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/hda_codec.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/hda_jack.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/hda_auto_parser.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/hda_sysfs.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/hda_controller.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/hda_proc.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/hda_hwdep.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/hda_beep.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/hda_generic.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/patch_realtek.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/patch_cmedia.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/patch_analog.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/patch_sigmatel.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/patch_si3054.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/patch_cirrus.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/patch_cs8409.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/patch_cs8409-tables.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/patch_ca0110.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/patch_ca0132.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/patch_conexant.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/patch_via.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/patch_hdmi.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/hda_eld.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda_i2c.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda_spi.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/hda_cs_dsp_ctl.o
CC [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/hda_intel.o
LD [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/snd-hda-codec-cmedia.o
LD [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/snd-hda-codec-analog.o
LD [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/snd-hda-codec-idt.o
LD [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/snd-hda-codec-si3054.o
LD [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/snd-hda-codec-cirrus.o
LD [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/snd-hda-codec-ca0110.o
LD [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/snd-hda-codec-cs8409.o
LD [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/snd-hda-codec-conexant.o
/var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.c: In function ‘cs35l41_hda_playback_hook’:
/var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.c:518:45: error: passing argument 1 of ‘cs35l41_global_enable’ from incompatible pointer type [-Werror=incompatible-pointer-types]
518 | ret = cs35l41_global_enable(reg, cs35l41->hw_cfg.bst_type, 1);
| ^~~
| |
| struct regmap *
In file included from /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.h:17,
from /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.c:20:
./include/sound/cs35l41.h:905:42: note: expected ‘struct device *’ but argument is of type ‘struct regmap *’
905 | int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l41_boost_type b_type,
| ~~~~~~~~~~~~~~~^~~
/var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.c:518:65: error: incompatible type for argument 2 of ‘cs35l41_global_enable’
518 | ret = cs35l41_global_enable(reg, cs35l41->hw_cfg.bst_type, 1);
| ~~~~~~~~~~~~~~~^~~~~~~~~
| |
| enum cs35l41_boost_type
./include/sound/cs35l41.h:905:62: note: expected ‘struct regmap *’ but argument is of type ‘enum cs35l41_boost_type’
905 | int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l41_boost_type b_type,
| ~~~~~~~~~~~~~~~^~~~~~
/var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.c:518:23: error: too few arguments to function ‘cs35l41_global_enable’
518 | ret = cs35l41_global_enable(reg, cs35l41->hw_cfg.bst_type, 1);
| ^~~~~~~~~~~~~~~~~~~~~
./include/sound/cs35l41.h:905:5: note: declared here
905 | int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l41_boost_type b_type,
| ^~~~~~~~~~~~~~~~~~~~~
LD [M] /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/snd-hda-codec-via.o
/var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.c:524:45: error: passing argument 1 of ‘cs35l41_global_enable’ from incompatible pointer type [-Werror=incompatible-pointer-types]
524 | ret = cs35l41_global_enable(reg, cs35l41->hw_cfg.bst_type, 0);
| ^~~
| |
| struct regmap *
./include/sound/cs35l41.h:905:42: note: expected ‘struct device *’ but argument is of type ‘struct regmap *’
905 | int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l41_boost_type b_type,
| ~~~~~~~~~~~~~~~^~~
/var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.c:524:65: error: incompatible type for argument 2 of ‘cs35l41_global_enable’
524 | ret = cs35l41_global_enable(reg, cs35l41->hw_cfg.bst_type, 0);
| ~~~~~~~~~~~~~~~^~~~~~~~~
| |
| enum cs35l41_boost_type
./include/sound/cs35l41.h:905:62: note: expected ‘struct regmap *’ but argument is of type ‘enum cs35l41_boost_type’
905 | int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l41_boost_type b_type,
| ~~~~~~~~~~~~~~~^~~~~~
/var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.c:524:23: error: too few arguments to function ‘cs35l41_global_enable’
524 | ret = cs35l41_global_enable(reg, cs35l41->hw_cfg.bst_type, 0);
| ^~~~~~~~~~~~~~~~~~~~~
./include/sound/cs35l41.h:905:5: note: declared here
905 | int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l41_boost_type b_type,
| ^~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.c: In function ‘cs35l41_runtime_suspend’:
/var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.c:676:46: error: passing argument 1 of ‘cs35l41_global_enable’ from incompatible pointer type [-Werror=incompatible-pointer-types]
676 | cs35l41_global_enable(cs35l41->regmap, cs35l41->hw_cfg.bst_type, 0);
| ~~~~~~~^~~~~~~~
| |
| struct regmap *
./include/sound/cs35l41.h:905:42: note: expected ‘struct device *’ but argument is of type ‘struct regmap *’
905 | int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l41_boost_type b_type,
| ~~~~~~~~~~~~~~~^~~
/var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.c:676:71: error: incompatible type for argument 2 of ‘cs35l41_global_enable’
676 | cs35l41_global_enable(cs35l41->regmap, cs35l41->hw_cfg.bst_type, 0);
| ~~~~~~~~~~~~~~~^~~~~~~~~
| |
| enum cs35l41_boost_type
./include/sound/cs35l41.h:905:62: note: expected ‘struct regmap *’ but argument is of type ‘enum cs35l41_boost_type’
905 | int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l41_boost_type b_type,
| ~~~~~~~~~~~~~~~^~~~~~
/var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.c:676:17: error: too few arguments to function ‘cs35l41_global_enable’
676 | cs35l41_global_enable(cs35l41->regmap, cs35l41->hw_cfg.bst_type, 0);
| ^~~~~~~~~~~~~~~~~~~~~
./include/sound/cs35l41.h:905:5: note: declared here
905 | int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l41_boost_type b_type,
| ^~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[1]: *** [scripts/Makefile.build:260: /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:2026: /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build] Error 2
make: Leaving directory '/usr/src/linux-headers-6.2.0-1012-lowlatency'
Hi, first of all thank you very much for the patch. I got this working no problem with my previous install of Ubuntu Studio 22.04.2 LTS on an ew0xxx, but since changing to 23.04 (Kernel 6.2.0-1012-lowlatency), cs35l41_hda.c fails to build.
Originally it was just leftover packages from the previous install / kernel, but after removing those (and rerunning the first setup script), the make.log for snd-hda-scodec-cs35l41 shows a whole lot of incompatible pointer type errors.
Any help is appreciated, and let me know if more information is required. Thanks.
make.log: