Removing WM8944 driver, adding WM8974


#1

Hello,
we removed the WM8944 driver and added the WM8974 driver using the menuconfig .
But the rebuilding the image failed. We got the error:
yocto/kernel/sound/soc/msm/mdm9607.c:2774: undefined reference to `wm8944_get_intf_type’
It seems that although the driver is removed, the source mdm9607.c still asked for the driver.
What is the best way remove wm8944 driver and to add the driver for wm8974?


#2

Are you building a custom board that includes a WM8974 instead of the WM8944? Or are you putting the WM8974 on an IoT card or other type of expansion? I believe the file sound/soc/msm/mdm9607.c makes some assumptions that their is a WM8944 present on the board and is referencing symbols provided by that board. I suspect that in order to get the WM8974 working properly, you will have to adapt that code to provide corresponding setup steps for the WM8974.


#3

Hello dfrey,
yes, we developed own pcb includes a WM8974.
Now we would like remove the WM8944 driver, and to add the WM8974 driver.
When we do that, bulding of the image failed with the error:
yocto/kernel/sound/soc/msm/mdm9607.c:2774: undefined reference to `wm8944_get_intf_type’


#4

It seems that there is a dependency from mdm9607 to the wm8944 driver code. I think this is probably an accident. I would say for now the easiest thing to do would be to continue building the wm8944 driver and build the wm8974 driver as well.

I think you will have to create a device tree for your board. One thing that you will need to change is in arch/arm/boot/dts/qcom/mdm9607-wp76xx.dtsi. This file includes a section sound-wm8944 which I think you will need to disable. I think you will also need to define a similar section for the wm8974.