[alsa-devel] [PATCH 5/7] ASoC: ts3a227e: add acpi table

Vinod Koul vinod.koul at intel.com
Fri Sep 8 15:27:05 CEST 2017


On Fri, Sep 08, 2017 at 12:13:07AM -0500, Pierre-Louis Bossart wrote:
> From: "Fang, Yang A" <yang.a.fang at intel.com>
> 
> This patch adds the acpi match table for the ts3a227e audio accessory
> detection device. This enables headset features like jack plug/unplug
> notifications, mic presence, and button pressed events.
> 
> Signed-off-by: Fang, Yang A <yang.a.fang at intel.com>
> Signed-off-by: Thierry Escande <thierry.escande at collabora.com>
> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
> ---
>  sound/soc/codecs/ts3a227e.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/sound/soc/codecs/ts3a227e.c b/sound/soc/codecs/ts3a227e.c
> index 4356843..738e04b 100644
> --- a/sound/soc/codecs/ts3a227e.c
> +++ b/sound/soc/codecs/ts3a227e.c
> @@ -15,6 +15,7 @@
>  #include <linux/module.h>
>  #include <linux/of_gpio.h>
>  #include <linux/regmap.h>
> +#include <linux/acpi.h>
>  
>  #include <sound/core.h>
>  #include <sound/jack.h>
> @@ -374,11 +375,20 @@ static const struct of_device_id ts3a227e_of_match[] = {
>  };
>  MODULE_DEVICE_TABLE(of, ts3a227e_of_match);
>  
> +#ifdef CONFIG_ACPI
> +static struct acpi_device_id ts3a227e_acpi_match[] = {
> +	{ "104C227E", 0 },
> +	{},
> +};
> +MODULE_DEVICE_TABLE(acpi, ts3a227e_acpi_match);
> +#endif

so this is not present for non ACPI system,... fine

> +
>  static struct i2c_driver ts3a227e_driver = {
>  	.driver = {
>  		.name = "ts3a227e",
>  		.pm = &ts3a227e_pm,
>  		.of_match_table = of_match_ptr(ts3a227e_of_match),
> +		.acpi_match_table = ACPI_PTR(ts3a227e_acpi_match),

but then this would give compiler error on those systems as .acpi_match_table is
defined in driver core... can you compile this on non acpi and check

struct device_driver {
	const char		*name;
	struct bus_type		*bus;

	struct module		*owner;
	const char		*mod_name;	/* used for built-in modules */

	bool suppress_bind_attrs;	/* disables bind/unbind via sysfs */
	enum probe_type probe_type;

	const struct of_device_id	*of_match_table;
	const struct acpi_device_id	*acpi_match_table;

	int (*probe) (struct device *dev);
	int (*remove) (struct device *dev);
	void (*shutdown) (struct device *dev);
	int (*suspend) (struct device *dev, pm_message_t state);
	int (*resume) (struct device *dev);
	const struct attribute_group **groups;

	const struct dev_pm_ops *pm;

	struct driver_private *p;
};

-- 
~Vinod


More information about the Alsa-devel mailing list