Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3e5b787a authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6

* 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6:
  i2c/max6875: Really prevent 24RF08 corruption
  i2c-amd756: Fix functionality flags
  i2c: Kill the old driver matching scheme
  i2c: Convert remaining new-style drivers to use module aliasing
  i2c: Switch pasemi to the new device/driver matching scheme
  i2c: Clean up Blackfin BF527 I2C device declarations
  i2c-nforce2: Disable the second SMBus channel on the DFI Lanparty NF4 Expert
  i2c: New co-maintainer
parents 026bf9bb 70455e79
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -1940,8 +1940,10 @@ L: lm-sensors@lm-sensors.org
S:	Maintained

I2C SUBSYSTEM
P:	Jean Delvare
P:	Jean Delvare (PC drivers, core)
M:	khali@linux-fr.org
P:	Ben Dooks (embedded platforms)
M:	ben-linux@fluff.org
L:	i2c@lm-sensors.org
T:	quilt http://khali.linux-fr.org/devel/linux-2.6/jdelvare-i2c/
S:	Maintained
+0 −2
Original line number Diff line number Diff line
@@ -799,13 +799,11 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE)
	{
		I2C_BOARD_INFO("pcf8574_lcd", 0x22),
		.type = "pcf8574_lcd",
	},
#endif
#if defined(CONFIG_TWI_KEYPAD) || defined(CONFIG_TWI_KEYPAD_MODULE)
	{
		I2C_BOARD_INFO("pcf8574_keypad", 0x27),
		.type = "pcf8574_keypad",
		.irq = IRQ_PF8,
	},
#endif
+2 −5
Original line number Diff line number Diff line
@@ -24,12 +24,11 @@
 */
struct i2c_driver_device {
	char    *of_device;
	char    *i2c_driver;
	char    *i2c_type;
};

static struct i2c_driver_device i2c_devices[] __initdata = {
	{"dallas,ds1338",  "rtc-ds1307",  "ds1338"},
	{"dallas,ds1338",  "ds1338"},
};

static int __init find_i2c_driver(struct device_node *node,
@@ -40,9 +39,7 @@ static int __init find_i2c_driver(struct device_node *node,
	for (i = 0; i < ARRAY_SIZE(i2c_devices); i++) {
		if (!of_device_is_compatible(node, i2c_devices[i].of_device))
			continue;
		if (strlcpy(info->driver_name, i2c_devices[i].i2c_driver,
			    KOBJ_NAME_LEN) >= KOBJ_NAME_LEN ||
		    strlcpy(info->type, i2c_devices[i].i2c_type,
		if (strlcpy(info->type, i2c_devices[i].i2c_type,
			    I2C_NAME_SIZE) >= I2C_NAME_SIZE)
			return -ENOMEM;
		return 0;
+1 −1
Original line number Diff line number Diff line
@@ -290,7 +290,7 @@ static u32 amd756_func(struct i2c_adapter *adapter)
{
	return I2C_FUNC_SMBUS_QUICK | I2C_FUNC_SMBUS_BYTE |
	    I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_WORD_DATA |
	    I2C_FUNC_SMBUS_BLOCK_DATA | I2C_FUNC_SMBUS_PROC_CALL;
	    I2C_FUNC_SMBUS_BLOCK_DATA;
}

static const struct i2c_algorithm smbus_algorithm = {
+24 −4
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@
#include <linux/init.h>
#include <linux/i2c.h>
#include <linux/delay.h>
#include <linux/dmi.h>
#include <asm/io.h>

MODULE_LICENSE("GPL");
@@ -109,6 +110,18 @@ struct nforce2_smbus {
/* Misc definitions */
#define MAX_TIMEOUT	100

/* We disable the second SMBus channel on these boards */
static struct dmi_system_id __devinitdata nforce2_dmi_blacklist2[] = {
	{
		.ident = "DFI Lanparty NF4 Expert",
		.matches = {
			DMI_MATCH(DMI_BOARD_VENDOR, "DFI Corp,LTD"),
			DMI_MATCH(DMI_BOARD_NAME, "LP UT NF4 Expert"),
		},
	},
	{ }
};

static struct pci_driver nforce2_driver;

static void nforce2_abort(struct i2c_adapter *adap)
@@ -367,11 +380,18 @@ static int __devinit nforce2_probe(struct pci_dev *dev, const struct pci_device_
		smbuses[0].base = 0;	/* to have a check value */
	}
	/* SMBus adapter 2 */
	res2 = nforce2_probe_smb(dev, 5, NFORCE_PCI_SMB2, &smbuses[1], "SMB2");
	if (dmi_check_system(nforce2_dmi_blacklist2)) {
		dev_err(&dev->dev, "Disabling SMB2 for safety reasons.\n");
		res2 = -EPERM;
		smbuses[1].base = 0;
	} else {
		res2 = nforce2_probe_smb(dev, 5, NFORCE_PCI_SMB2, &smbuses[1],
					 "SMB2");
		if (res2 < 0) {
			dev_err(&dev->dev, "Error probing SMB2.\n");
			smbuses[1].base = 0;	/* to have a check value */
		}
	}
	if ((res1 < 0) && (res2 < 0)) {
		/* we did not find even one of the SMBuses, so we give up */
		kfree(smbuses);
Loading