diff options
Diffstat (limited to 'drivers/i2c/busses')
| -rw-r--r-- | drivers/i2c/busses/i2c-cpm.c | 5 | ||||
| -rw-r--r-- | drivers/i2c/busses/i2c-ibm_iic.c | 3 | ||||
| -rw-r--r-- | drivers/i2c/busses/i2c-mpc.c | 1 | ||||
| -rw-r--r-- | drivers/i2c/busses/i2c-pca-isa.c | 12 | ||||
| -rw-r--r-- | drivers/i2c/busses/i2c-pca-platform.c | 11 |
5 files changed, 24 insertions, 8 deletions
diff --git a/drivers/i2c/busses/i2c-cpm.c b/drivers/i2c/busses/i2c-cpm.c index f7bd2613cecc..f2de3be35df3 100644 --- a/drivers/i2c/busses/i2c-cpm.c +++ b/drivers/i2c/busses/i2c-cpm.c | |||
| @@ -677,6 +677,11 @@ static int __devinit cpm_i2c_probe(struct platform_device *ofdev, | |||
| 677 | dev_dbg(&ofdev->dev, "hw routines for %s registered.\n", | 677 | dev_dbg(&ofdev->dev, "hw routines for %s registered.\n", |
| 678 | cpm->adap.name); | 678 | cpm->adap.name); |
| 679 | 679 | ||
| 680 | /* | ||
| 681 | * register OF I2C devices | ||
| 682 | */ | ||
| 683 | of_i2c_register_devices(&cpm->adap); | ||
| 684 | |||
| 680 | return 0; | 685 | return 0; |
| 681 | out_shut: | 686 | out_shut: |
| 682 | cpm_i2c_shutdown(cpm); | 687 | cpm_i2c_shutdown(cpm); |
diff --git a/drivers/i2c/busses/i2c-ibm_iic.c b/drivers/i2c/busses/i2c-ibm_iic.c index 43ca32fddde2..89eedf45d30e 100644 --- a/drivers/i2c/busses/i2c-ibm_iic.c +++ b/drivers/i2c/busses/i2c-ibm_iic.c | |||
| @@ -761,6 +761,9 @@ static int __devinit iic_probe(struct platform_device *ofdev, | |||
| 761 | dev_info(&ofdev->dev, "using %s mode\n", | 761 | dev_info(&ofdev->dev, "using %s mode\n", |
| 762 | dev->fast_mode ? "fast (400 kHz)" : "standard (100 kHz)"); | 762 | dev->fast_mode ? "fast (400 kHz)" : "standard (100 kHz)"); |
| 763 | 763 | ||
| 764 | /* Now register all the child nodes */ | ||
| 765 | of_i2c_register_devices(adap); | ||
| 766 | |||
| 764 | return 0; | 767 | return 0; |
| 765 | 768 | ||
| 766 | error_cleanup: | 769 | error_cleanup: |
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c index a1c419a716af..b74e6dc6886c 100644 --- a/drivers/i2c/busses/i2c-mpc.c +++ b/drivers/i2c/busses/i2c-mpc.c | |||
| @@ -632,6 +632,7 @@ static int __devinit fsl_i2c_probe(struct platform_device *op, | |||
| 632 | dev_err(i2c->dev, "failed to add adapter\n"); | 632 | dev_err(i2c->dev, "failed to add adapter\n"); |
| 633 | goto fail_add; | 633 | goto fail_add; |
| 634 | } | 634 | } |
| 635 | of_i2c_register_devices(&i2c->adap); | ||
| 635 | 636 | ||
| 636 | return result; | 637 | return result; |
| 637 | 638 | ||
diff --git a/drivers/i2c/busses/i2c-pca-isa.c b/drivers/i2c/busses/i2c-pca-isa.c index bbd77603a417..29933f87d8fa 100644 --- a/drivers/i2c/busses/i2c-pca-isa.c +++ b/drivers/i2c/busses/i2c-pca-isa.c | |||
| @@ -71,8 +71,8 @@ static int pca_isa_readbyte(void *pd, int reg) | |||
| 71 | 71 | ||
| 72 | static int pca_isa_waitforcompletion(void *pd) | 72 | static int pca_isa_waitforcompletion(void *pd) |
| 73 | { | 73 | { |
| 74 | long ret = ~0; | ||
| 75 | unsigned long timeout; | 74 | unsigned long timeout; |
| 75 | long ret; | ||
| 76 | 76 | ||
| 77 | if (irq > -1) { | 77 | if (irq > -1) { |
| 78 | ret = wait_event_timeout(pca_wait, | 78 | ret = wait_event_timeout(pca_wait, |
| @@ -81,11 +81,15 @@ static int pca_isa_waitforcompletion(void *pd) | |||
| 81 | } else { | 81 | } else { |
| 82 | /* Do polling */ | 82 | /* Do polling */ |
| 83 | timeout = jiffies + pca_isa_ops.timeout; | 83 | timeout = jiffies + pca_isa_ops.timeout; |
| 84 | while (((pca_isa_readbyte(pd, I2C_PCA_CON) | 84 | do { |
| 85 | & I2C_PCA_CON_SI) == 0) | 85 | ret = time_before(jiffies, timeout); |
| 86 | && (ret = time_before(jiffies, timeout))) | 86 | if (pca_isa_readbyte(pd, I2C_PCA_CON) |
| 87 | & I2C_PCA_CON_SI) | ||
| 88 | break; | ||
| 87 | udelay(100); | 89 | udelay(100); |
| 90 | } while (ret); | ||
| 88 | } | 91 | } |
| 92 | |||
| 89 | return ret > 0; | 93 | return ret > 0; |
| 90 | } | 94 | } |
| 91 | 95 | ||
diff --git a/drivers/i2c/busses/i2c-pca-platform.c b/drivers/i2c/busses/i2c-pca-platform.c index ef5c78487eb7..5f6d7f89e225 100644 --- a/drivers/i2c/busses/i2c-pca-platform.c +++ b/drivers/i2c/busses/i2c-pca-platform.c | |||
| @@ -80,8 +80,8 @@ static void i2c_pca_pf_writebyte32(void *pd, int reg, int val) | |||
| 80 | static int i2c_pca_pf_waitforcompletion(void *pd) | 80 | static int i2c_pca_pf_waitforcompletion(void *pd) |
| 81 | { | 81 | { |
| 82 | struct i2c_pca_pf_data *i2c = pd; | 82 | struct i2c_pca_pf_data *i2c = pd; |
| 83 | long ret = ~0; | ||
| 84 | unsigned long timeout; | 83 | unsigned long timeout; |
| 84 | long ret; | ||
| 85 | 85 | ||
| 86 | if (i2c->irq) { | 86 | if (i2c->irq) { |
| 87 | ret = wait_event_timeout(i2c->wait, | 87 | ret = wait_event_timeout(i2c->wait, |
| @@ -90,10 +90,13 @@ static int i2c_pca_pf_waitforcompletion(void *pd) | |||
| 90 | } else { | 90 | } else { |
| 91 | /* Do polling */ | 91 | /* Do polling */ |
| 92 | timeout = jiffies + i2c->adap.timeout; | 92 | timeout = jiffies + i2c->adap.timeout; |
| 93 | while (((i2c->algo_data.read_byte(i2c, I2C_PCA_CON) | 93 | do { |
| 94 | & I2C_PCA_CON_SI) == 0) | 94 | ret = time_before(jiffies, timeout); |
| 95 | && (ret = time_before(jiffies, timeout))) | 95 | if (i2c->algo_data.read_byte(i2c, I2C_PCA_CON) |
| 96 | & I2C_PCA_CON_SI) | ||
| 97 | break; | ||
| 96 | udelay(100); | 98 | udelay(100); |
| 99 | } while (ret); | ||
| 97 | } | 100 | } |
| 98 | 101 | ||
| 99 | return ret > 0; | 102 | return ret > 0; |
