Add 'ignore_resource_conflict' error

It appears that some BIOSes reserve ACPI resources without using them,
and acpi_enable_resources=lax seems to result in failures to load
certain drivers.

Introduce a 'ignore_resource_conflict' module parameter as alternate
means to ignore ACPI resource conflicts.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
Guenter Roeck
2017-09-20 15:19:33 -07:00
parent e140a1cda3
commit 67f8b470ec

10
it87.c
View File

@@ -86,6 +86,10 @@ static unsigned short force_id;
module_param(force_id, ushort, 0); module_param(force_id, ushort, 0);
MODULE_PARM_DESC(force_id, "Override the detected device ID"); MODULE_PARM_DESC(force_id, "Override the detected device ID");
static bool ignore_resource_conflict;
module_param(ignore_resource_conflict, bool, 0);
MODULE_PARM_DESC(ignore_resource_conflict, "Ignore ACPI resource conflict");
static struct platform_device *it87_pdev[2]; static struct platform_device *it87_pdev[2];
#define REG_2E 0x2e /* The register to read/write */ #define REG_2E 0x2e /* The register to read/write */
@@ -3801,8 +3805,10 @@ static int __init it87_device_add(int index, unsigned short address,
int err; int err;
err = acpi_check_resource_conflict(&res); err = acpi_check_resource_conflict(&res);
if (err) if (err) {
return err; if (!ignore_resource_conflict)
return err;
}
pdev = platform_device_alloc(DRVNAME, address); pdev = platform_device_alloc(DRVNAME, address);
if (!pdev) if (!pdev)