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

Commit 21209b61 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:
  Add i2c_board_info for RiscPC PCF8583
  i2c: Make sure i2c_algo_bit_data.timeout is HZ-independent
  i2c-dev: Clarify the unit of ioctl I2C_TIMEOUT
  i2c: Timeouts reach -1
  i2c: Fix misplaced parentheses
parents a792cd12 531660ef
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
#include <linux/serial_8250.h>
#include <linux/ata_platform.h>
#include <linux/io.h>
#include <linux/i2c.h>

#include <asm/elf.h>
#include <asm/mach-types.h>
@@ -201,8 +202,13 @@ static struct platform_device *devs[] __initdata = {
	&pata_device,
};

static struct i2c_board_info i2c_rtc = {
	I2C_BOARD_INFO("pcf8583", 0x50)
};

static int __init rpc_init(void)
{
	i2c_register_board_info(0, &i2c_rtc, 1);
	return platform_add_devices(devs, ARRAY_SIZE(devs));
}

+3 −2
Original line number Diff line number Diff line
@@ -79,10 +79,11 @@ static struct i2c_algo_bit_data ioc_data = {
	.getsda		= ioc_getsda,
	.getscl		= ioc_getscl,
	.udelay		= 80,
	.timeout	= 100
	.timeout	= HZ,
};

static struct i2c_adapter ioc_ops = {
	.nr			= 0,
	.algo_data		= &ioc_data,
};

@@ -90,7 +91,7 @@ static int __init i2c_ioc_init(void)
{
	force_ones = FORCE_ONES | SCL | SDA;

	return i2c_bit_add_bus(&ioc_ops);
	return i2c_bit_add_numbered_bus(&ioc_ops);
}

module_init(i2c_ioc_init);
+2 −2
Original line number Diff line number Diff line
@@ -72,7 +72,7 @@ static unsigned int amd_ec_wait_write(struct amd_smbus *smbus)
{
	int timeout = 500;

	while (timeout-- && (inb(smbus->base + AMD_EC_SC) & AMD_EC_SC_IBF))
	while ((inb(smbus->base + AMD_EC_SC) & AMD_EC_SC_IBF) && --timeout)
		udelay(1);

	if (!timeout) {
@@ -88,7 +88,7 @@ static unsigned int amd_ec_wait_read(struct amd_smbus *smbus)
{
	int timeout = 500;

	while (timeout-- && (~inb(smbus->base + AMD_EC_SC) & AMD_EC_SC_OBF))
	while ((~inb(smbus->base + AMD_EC_SC) & AMD_EC_SC_OBF) && --timeout)
		udelay(1);

	if (!timeout) {
+1 −1
Original line number Diff line number Diff line
@@ -114,7 +114,7 @@ static int ixp2000_i2c_probe(struct platform_device *plat_dev)
	drv_data->algo_data.getsda = ixp2000_bit_getsda;
	drv_data->algo_data.getscl = ixp2000_bit_getscl;
	drv_data->algo_data.udelay = 6;
	drv_data->algo_data.timeout = 100;
	drv_data->algo_data.timeout = HZ;

	strlcpy(drv_data->adapter.name, plat_dev->dev.driver->name,
		sizeof(drv_data->adapter.name));
+1 −1
Original line number Diff line number Diff line
@@ -644,7 +644,7 @@ static int i2c_pxa_do_pio_xfer(struct pxa_i2c *i2c,

	i2c_pxa_start_message(i2c);

	while (timeout-- && i2c->msg_num > 0) {
	while (i2c->msg_num > 0 && --timeout) {
		i2c_pxa_handler(0, i2c);
		udelay(10);
	}
Loading