xoocoon / hp-15-ew0xxx-snd-fix

DKMS module for fixing the sound on Linux for HP models Envy x360 15-ew0xxx
GNU General Public License v3.0
33 stars 16 forks source link

fails on Ubuntu 23.10 #30

Open OpenSourceJesus opened 8 months ago

OpenSourceJesus commented 8 months ago
Saving to: ‘linux-6.5.tar.xz’

linux-6.5.tar.xz       100%[============================>] 132.46M  1.15MB/s    in 5m 40s  

2024-01-02 11:23:15 (399 KB/s) - ‘linux-6.5.tar.xz’ saved [138898084/138898084]

Extracting original source of the kernel module
Applying cs35l41_hda.patch
patching file cs35l41_hda.c
Hunk #1 succeeded at 1239 (offset -5 lines).

Building module:
Cleaning build area...
make -j16 KERNELRELEASE=6.5.0-14-generic -C /lib/modules/6.5.0-14-generic/build M=/var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build....(bad exit status: 2)
ERROR (dkms apport): binary package for snd-hda-scodec-cs35l41: 0.1 not found
Error! Bad return status for module build on kernel: 6.5.0-14-generic (x86_64)
  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:517:45: error: passing argument 1 of ‘cs35l41_global_enable’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  517 |                 ret = cs35l41_global_enable(reg, cs35l41->hw_cfg.bst_type, 1, NULL);
      |                                             ^~~
      |                                             |
      |                                             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:517:65: error: incompatible type for argument 2 of ‘cs35l41_global_enable’
  517 |                 ret = cs35l41_global_enable(reg, cs35l41->hw_cfg.bst_type, 1, NULL);
      |                                                  ~~~~~~~~~~~~~~~^~~~~~~~~
      |                                                                 |
      |                                                                 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,
      |                                               ~~~~~~~~~~~~~~~^~~~~~
In file included from ./include/uapi/linux/posix_types.h:5,
                 from ./include/uapi/linux/types.h:14,
                 from ./include/linux/types.h:6,
                 from ./include/linux/kasan-checks.h:5,
                 from ./include/asm-generic/rwonce.h:26,
                 from ./arch/x86/include/generated/asm/rwonce.h:1,
                 from ./include/linux/compiler.h:246,
                 from ./include/linux/build_bug.h:5,
                 from ./include/linux/bits.h:21,
                 from ./include/linux/ioport.h:13,
                 from ./include/linux/acpi.h:12,
                 from /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.c:9:
./include/linux/stddef.h:8:14: warning: passing argument 4 of ‘cs35l41_global_enable’ makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
/var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.c:517:79: note: in expansion of macro ‘NULL’
  517 |                 ret = cs35l41_global_enable(reg, cs35l41->hw_cfg.bst_type, 1, NULL);
      |                                                                               ^~~~
./include/sound/cs35l41.h:906:31: note: expected ‘int’ but argument is of type ‘void *’
  906 |                           int enable, struct completion *pll_lock, bool firmware_running);
      |                           ~~~~^~~~~~
/var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.c:517:23: error: too few arguments to function ‘cs35l41_global_enable’
  517 |                 ret = cs35l41_global_enable(reg, cs35l41->hw_cfg.bst_type, 1, NULL);
      |                       ^~~~~~~~~~~~~~~~~~~~~
./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:523:45: error: passing argument 1 of ‘cs35l41_global_enable’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  523 |                 ret = cs35l41_global_enable(reg, cs35l41->hw_cfg.bst_type, 0, NULL);
      |                                             ^~~
      |                                             |
      |                                             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:523:65: error: incompatible type for argument 2 of ‘cs35l41_global_enable’
  523 |                 ret = cs35l41_global_enable(reg, cs35l41->hw_cfg.bst_type, 0, NULL);
      |                                                  ~~~~~~~~~~~~~~~^~~~~~~~~
      |                                                                 |
      |                                                                 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,
      |                                               ~~~~~~~~~~~~~~~^~~~~~
./include/linux/stddef.h:8:14: warning: passing argument 4 of ‘cs35l41_global_enable’ makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
/var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.c:523:79: note: in expansion of macro ‘NULL’
  523 |                 ret = cs35l41_global_enable(reg, cs35l41->hw_cfg.bst_type, 0, NULL);
      |                                                                               ^~~~
./include/sound/cs35l41.h:906:31: note: expected ‘int’ but argument is of type ‘void *’
  906 |                           int enable, struct completion *pll_lock, bool firmware_running);
      |                           ~~~~^~~~~~
/var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.c:523:23: error: too few arguments to function ‘cs35l41_global_enable’
  523 |                 ret = cs35l41_global_enable(reg, cs35l41->hw_cfg.bst_type, 0, NULL);
      |                       ^~~~~~~~~~~~~~~~~~~~~
./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:675:46: error: passing argument 1 of ‘cs35l41_global_enable’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  675 |                 cs35l41_global_enable(cs35l41->regmap, cs35l41->hw_cfg.bst_type, 0, NULL);
      |                                       ~~~~~~~^~~~~~~~
      |                                              |
      |                                              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:675:71: error: incompatible type for argument 2 of ‘cs35l41_global_enable’
  675 |                 cs35l41_global_enable(cs35l41->regmap, cs35l41->hw_cfg.bst_type, 0, NULL);
      |                                                        ~~~~~~~~~~~~~~~^~~~~~~~~
      |                                                                       |
      |                                                                       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,
      |                                               ~~~~~~~~~~~~~~~^~~~~~
./include/linux/stddef.h:8:14: warning: passing argument 4 of ‘cs35l41_global_enable’ makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
/var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.c:675:85: note: in expansion of macro ‘NULL’
  675 |                 cs35l41_global_enable(cs35l41->regmap, cs35l41->hw_cfg.bst_type, 0, NULL);
      |                                                                                     ^~~~
./include/sound/cs35l41.h:906:31: note: expected ‘int’ but argument is of type ‘void *’
  906 |                           int enable, struct completion *pll_lock, bool firmware_running);
      |                           ~~~~^~~~~~
/var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.c:675:17: error: too few arguments to function ‘cs35l41_global_enable’
  675 |                 cs35l41_global_enable(cs35l41->regmap, cs35l41->hw_cfg.bst_type, 0, NULL);
      |                 ^~~~~~~~~~~~~~~~~~~~~
./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
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:251: /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build/cs35l41_hda.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/usr/src/linux-headers-6.5.0-14-generic/Makefile:2037: /var/lib/dkms/snd-hda-scodec-cs35l41/0.1/build] Error 2
make: *** [Makefile:234: __sub-make] Error 2
make: Leaving directory '/usr/src/linux-headers-6.5.0-14-generic'
TheBlackmeister commented 8 months ago

I installed Ubuntu 23.04 and it is now working perfectly. However, I cannot install any other kernel patch, because it throws the same error as above (I tried installing gnome pomodoro extension). Does anyone know how to fix that?