On Fri, Sep 08, 2017 at 12:13:07AM -0500, Pierre-Louis Bossart wrote:
From: "Fang, Yang A" yang.a.fang@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@intel.com Signed-off-by: Thierry Escande thierry.escande@collabora.com Signed-off-by: Pierre-Louis Bossart pierre-louis.bossart@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; };