Hi Fred,
+/* IRQ polarity of some chipset are not defined correctly in ACPI table. */ +static const struct dmi_system_id bcm_wrong_irq_dmi_table[] = { +#if defined(CONFIG_DMI) && defined(CONFIG_X86) + { + /* Asus T100TA */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_PRODUCT_NAME, "T100TA"), + }, + }, +#endif + { } +}; + static int bcm_acpi_probe(struct bcm_device *dev) { struct platform_device *pdev = dev->pdev; @@ -608,6 +623,12 @@ static int bcm_acpi_probe(struct bcm_device *dev) acpi_dev_get_resources(adev, &resources, bcm_resource, dev); + if (strstr(id->id, "BCM2E39") && + dmi_check_system(bcm_wrong_irq_dmi_table)) { + bt_dev_dbg(dev, "Fix irq polarity"); + dev->irq_polarity = !dev->irq_polarity; + }
Since you now the right polarity on ASUS T100 you should just set the right one, not invert the current one. Imagine that T100 receive a BIOS
update with the polarity fixed, it will be inverted to a incorrect value. Regards, Loic -- Intel Open Source Technology Center http://oss.intel.com/ -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html