ACPI / LPSS: Only call pwm_add_table() for the first PWM controller
authorHans de Goede <hdegoede@redhat.com>
Thu, 6 Jul 2017 16:49:27 +0000 (18:49 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 6 Jul 2017 21:05:25 +0000 (23:05 +0200)
commitdd242a080d178c36442a0bb28b6acf6f126d0569
tree906ab6313421c750df1f19dd032028e23c30403d
parent6f7da290413ba713f0cdd9ff1a2a9bb129ef4f6c
ACPI / LPSS: Only call pwm_add_table() for the first PWM controller

At least on the UP board SBC both PWMs are enabled leading to us
trying to add the same pwm_lookup twice, which leads to the following:

[    0.902224] list_add double add: new=ffffffffb8efd400,
               prev=ffffffffb8efd400, next=ffffffffb8eeede0.
[    0.912466] ------------[ cut here ]------------
[    0.917624] kernel BUG at lib/list_debug.c:31!
[    0.922588] invalid opcode: 0000 [#1] SMP
...
[    1.027450] Call Trace:
[    1.030185]  pwm_add_table+0x4c/0x90
[    1.034181]  bsw_pwm_setup+0x1a/0x20
[    1.038175]  acpi_lpss_create_device+0xfe/0x420
...

This commit fixes this by only calling pwm_add_table() for the first
PWM controller (which is the one used for the backlight).

Link: https://bugzilla.redhat.com/show_bug.cgi?id=1458599
Fixes: bf7696a12071 (acpi: lpss: call pwm_add_table() for BSW...)
Fixes: 04434ab5120a (ACPI / LPSS: Call pwm_add_table() for Bay Trail...)
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: 4.11+ <stable@vger.kernel.org> # 4.11+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/acpi_lpss.c