[PATCH] i2c: Hide probe errors cause by ACPI resource conflicts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



When an ACPI resource conflict is detected, error messages are already
printed by ACPI. There's no point in causing the driver core to print
more error messages, so return one of the error codes for which no
message is printed.

This fixes bug #14293:
http://bugzilla.kernel.org/show_bug.cgi?id=14293

Signed-off-by: Jean Delvare <khali@xxxxxxxxxxxx>
---
 drivers/i2c/busses/i2c-amd756.c  |    2 +-
 drivers/i2c/busses/i2c-amd8111.c |    4 +++-
 drivers/i2c/busses/i2c-i801.c    |    4 +++-
 drivers/i2c/busses/i2c-isch.c    |    2 +-
 drivers/i2c/busses/i2c-piix4.c   |    4 ++--
 drivers/i2c/busses/i2c-sis96x.c  |    2 +-
 drivers/i2c/busses/i2c-viapro.c  |    2 +-
 7 files changed, 12 insertions(+), 8 deletions(-)

--- linux-2.6.32-rc1.orig/drivers/i2c/busses/i2c-amd756.c	2009-10-04 09:21:28.000000000 +0200
+++ linux-2.6.32-rc1/drivers/i2c/busses/i2c-amd756.c	2009-10-04 11:49:30.000000000 +0200
@@ -364,7 +364,7 @@ static int __devinit amd756_probe(struct
 	error = acpi_check_region(amd756_ioport, SMB_IOSIZE,
 				  amd756_driver.name);
 	if (error)
-		return error;
+		return -ENODEV;
 
 	if (!request_region(amd756_ioport, SMB_IOSIZE, amd756_driver.name)) {
 		dev_err(&pdev->dev, "SMB region 0x%x already in use!\n",
--- linux-2.6.32-rc1.orig/drivers/i2c/busses/i2c-amd8111.c	2009-10-04 09:21:28.000000000 +0200
+++ linux-2.6.32-rc1/drivers/i2c/busses/i2c-amd8111.c	2009-10-04 11:49:30.000000000 +0200
@@ -376,8 +376,10 @@ static int __devinit amd8111_probe(struc
 	smbus->size = pci_resource_len(dev, 0);
 
 	error = acpi_check_resource_conflict(&dev->resource[0]);
-	if (error)
+	if (error) {
+		error = -ENODEV;
 		goto out_kfree;
+	}
 
 	if (!request_region(smbus->base, smbus->size, amd8111_driver.name)) {
 		error = -EBUSY;
--- linux-2.6.32-rc1.orig/drivers/i2c/busses/i2c-i801.c	2009-10-04 09:21:28.000000000 +0200
+++ linux-2.6.32-rc1/drivers/i2c/busses/i2c-i801.c	2009-10-04 11:49:30.000000000 +0200
@@ -732,8 +732,10 @@ static int __devinit i801_probe(struct p
 	}
 
 	err = acpi_check_resource_conflict(&dev->resource[SMBBAR]);
-	if (err)
+	if (err) {
+		err = -ENODEV;
 		goto exit;
+	}
 
 	err = pci_request_region(dev, SMBBAR, i801_driver.name);
 	if (err) {
--- linux-2.6.32-rc1.orig/drivers/i2c/busses/i2c-isch.c	2009-10-04 09:21:28.000000000 +0200
+++ linux-2.6.32-rc1/drivers/i2c/busses/i2c-isch.c	2009-10-04 11:49:30.000000000 +0200
@@ -281,7 +281,7 @@ static int __devinit sch_probe(struct pc
 		return -ENODEV;
 	}
 	if (acpi_check_region(sch_smba, SMBIOSIZE, sch_driver.name))
-		return -EBUSY;
+		return -ENODEV;
 	if (!request_region(sch_smba, SMBIOSIZE, sch_driver.name)) {
 		dev_err(&dev->dev, "SMBus region 0x%x already in use!\n",
 			sch_smba);
--- linux-2.6.32-rc1.orig/drivers/i2c/busses/i2c-piix4.c	2009-10-04 09:21:28.000000000 +0200
+++ linux-2.6.32-rc1/drivers/i2c/busses/i2c-piix4.c	2009-10-04 11:49:30.000000000 +0200
@@ -169,7 +169,7 @@ static int __devinit piix4_setup(struct
 	}
 
 	if (acpi_check_region(piix4_smba, SMBIOSIZE, piix4_driver.name))
-		return -EBUSY;
+		return -ENODEV;
 
 	if (!request_region(piix4_smba, SMBIOSIZE, piix4_driver.name)) {
 		dev_err(&PIIX4_dev->dev, "SMBus region 0x%x already in use!\n",
@@ -260,7 +260,7 @@ static int __devinit piix4_setup_sb800(s
 
 	piix4_smba = ((smba_en_hi << 8) | smba_en_lo) & 0xffe0;
 	if (acpi_check_region(piix4_smba, SMBIOSIZE, piix4_driver.name))
-		return -EBUSY;
+		return -ENODEV;
 
 	if (!request_region(piix4_smba, SMBIOSIZE, piix4_driver.name)) {
 		dev_err(&PIIX4_dev->dev, "SMBus region 0x%x already in use!\n",
--- linux-2.6.32-rc1.orig/drivers/i2c/busses/i2c-sis96x.c	2009-10-04 09:21:28.000000000 +0200
+++ linux-2.6.32-rc1/drivers/i2c/busses/i2c-sis96x.c	2009-10-04 11:49:30.000000000 +0200
@@ -280,7 +280,7 @@ static int __devinit sis96x_probe(struct
 
 	retval = acpi_check_resource_conflict(&dev->resource[SIS96x_BAR]);
 	if (retval)
-		return retval;
+		return -ENODEV;
 
 	/* Everything is happy, let's grab the memory and set things up. */
 	if (!request_region(sis96x_smbus_base, SMB_IOSIZE,
--- linux-2.6.32-rc1.orig/drivers/i2c/busses/i2c-viapro.c	2009-10-04 09:21:28.000000000 +0200
+++ linux-2.6.32-rc1/drivers/i2c/busses/i2c-viapro.c	2009-10-04 11:49:30.000000000 +0200
@@ -365,7 +365,7 @@ static int __devinit vt596_probe(struct
 found:
 	error = acpi_check_region(vt596_smba, 8, vt596_driver.name);
 	if (error)
-		return error;
+		return -ENODEV;
 
 	if (!request_region(vt596_smba, 8, vt596_driver.name)) {
 		dev_err(&pdev->dev, "SMBus region 0x%x already in use!\n",


-- 
Jean Delvare
--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux