It seems that the chromeos driver does some things differently depending on ACPI (which mainline doesn't). In above link for sound/soc/codecs/ts3a227e.c contains:
#ifdef CONFIG_ACPI static struct acpi_device_id ts3a227e_acpi_match[] = { { "104C227E", 0 }, {}, }; MODULE_DEVICE_TABLE(acpi, ts3a227e_acpi_match); #endif
static struct i2c_driver ts3a227e_driver = { .driver = { ... .acpi_match_table = ACPI_PTR(ts3a227e_acpi_match), },
sound/soc/intel/boards/cht_bsw_max98090_ti.c in mainline kernel seems to already be able to detect the correct device:
static int snd_cht_mc_probe(struct platform_device *pdev) { ... drv->ts3a227e_present = acpi_dev_found("104C227E");
It seems that the chromeos driver does some things differently depending on ACPI (which mainline doesn't). In above link for sound/soc/ codecs/ ts3a227e. c contains:
#ifdef CONFIG_ACPI acpi_match[ ] = { DEVICE_ TABLE(acpi, ts3a227e_ acpi_match) ;
static struct acpi_device_id ts3a227e_
{ "104C227E", 0 },
{},
};
MODULE_
#endif
static struct i2c_driver ts3a227e_driver = { ts3a227e_ acpi_match) ,
.driver = {
...
.acpi_match_table = ACPI_PTR(
},
sound/soc/ intel/boards/ cht_bsw_ max98090_ ti.c in mainline kernel seems to already be able to detect the correct device:
static int snd_cht_ mc_probe( struct platform_device *pdev) present = acpi_dev_ found(" 104C227E" );
{
...
drv->ts3a227e_