diff options
| -rw-r--r-- | drivers/i2c/busses/i2c-davinci.c | 26 | ||||
| -rw-r--r-- | drivers/i2c/busses/i2c-omap.c | 6 | ||||
| -rw-r--r-- | drivers/i2c/busses/i2c-sh_mobile.c | 2 | ||||
| -rw-r--r-- | drivers/i2c/busses/i2c-simtec.c | 2 |
4 files changed, 23 insertions, 13 deletions
diff --git a/drivers/i2c/busses/i2c-davinci.c b/drivers/i2c/busses/i2c-davinci.c index 3fae3a91ce5b..c89687a10835 100644 --- a/drivers/i2c/busses/i2c-davinci.c +++ b/drivers/i2c/busses/i2c-davinci.c | |||
| @@ -187,6 +187,11 @@ static int i2c_davinci_init(struct davinci_i2c_dev *dev) | |||
| 187 | davinci_i2c_write_reg(dev, DAVINCI_I2C_CLKH_REG, clkh); | 187 | davinci_i2c_write_reg(dev, DAVINCI_I2C_CLKH_REG, clkh); |
| 188 | davinci_i2c_write_reg(dev, DAVINCI_I2C_CLKL_REG, clkl); | 188 | davinci_i2c_write_reg(dev, DAVINCI_I2C_CLKL_REG, clkl); |
| 189 | 189 | ||
| 190 | /* Respond at reserved "SMBus Host" slave address" (and zero); | ||
| 191 | * we seem to have no option to not respond... | ||
| 192 | */ | ||
| 193 | davinci_i2c_write_reg(dev, DAVINCI_I2C_OAR_REG, 0x08); | ||
| 194 | |||
| 190 | dev_dbg(dev->dev, "input_clock = %d, CLK = %d\n", input_clock, clk); | 195 | dev_dbg(dev->dev, "input_clock = %d, CLK = %d\n", input_clock, clk); |
| 191 | dev_dbg(dev->dev, "PSC = %d\n", | 196 | dev_dbg(dev->dev, "PSC = %d\n", |
| 192 | davinci_i2c_read_reg(dev, DAVINCI_I2C_PSC_REG)); | 197 | davinci_i2c_read_reg(dev, DAVINCI_I2C_PSC_REG)); |
| @@ -387,7 +392,7 @@ static void terminate_write(struct davinci_i2c_dev *dev) | |||
| 387 | davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, w); | 392 | davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, w); |
| 388 | 393 | ||
| 389 | if (!dev->terminate) | 394 | if (!dev->terminate) |
| 390 | dev_err(dev->dev, "TDR IRQ while no data to send\n"); | 395 | dev_dbg(dev->dev, "TDR IRQ while no data to send\n"); |
| 391 | } | 396 | } |
| 392 | 397 | ||
| 393 | /* | 398 | /* |
| @@ -473,9 +478,14 @@ static irqreturn_t i2c_davinci_isr(int this_irq, void *dev_id) | |||
| 473 | break; | 478 | break; |
| 474 | 479 | ||
| 475 | case DAVINCI_I2C_IVR_AAS: | 480 | case DAVINCI_I2C_IVR_AAS: |
| 476 | dev_warn(dev->dev, "Address as slave interrupt\n"); | 481 | dev_dbg(dev->dev, "Address as slave interrupt\n"); |
| 477 | }/* switch */ | 482 | break; |
| 478 | }/* while */ | 483 | |
| 484 | default: | ||
| 485 | dev_warn(dev->dev, "Unrecognized irq stat %d\n", stat); | ||
| 486 | break; | ||
| 487 | } | ||
| 488 | } | ||
| 479 | 489 | ||
| 480 | return count ? IRQ_HANDLED : IRQ_NONE; | 490 | return count ? IRQ_HANDLED : IRQ_NONE; |
| 481 | } | 491 | } |
| @@ -505,7 +515,7 @@ static int davinci_i2c_probe(struct platform_device *pdev) | |||
| 505 | return -ENODEV; | 515 | return -ENODEV; |
| 506 | } | 516 | } |
| 507 | 517 | ||
| 508 | ioarea = request_mem_region(mem->start, (mem->end - mem->start) + 1, | 518 | ioarea = request_mem_region(mem->start, resource_size(mem), |
| 509 | pdev->name); | 519 | pdev->name); |
| 510 | if (!ioarea) { | 520 | if (!ioarea) { |
| 511 | dev_err(&pdev->dev, "I2C region already claimed\n"); | 521 | dev_err(&pdev->dev, "I2C region already claimed\n"); |
| @@ -523,7 +533,7 @@ static int davinci_i2c_probe(struct platform_device *pdev) | |||
| 523 | dev->irq = irq->start; | 533 | dev->irq = irq->start; |
| 524 | platform_set_drvdata(pdev, dev); | 534 | platform_set_drvdata(pdev, dev); |
| 525 | 535 | ||
| 526 | dev->clk = clk_get(&pdev->dev, "I2CCLK"); | 536 | dev->clk = clk_get(&pdev->dev, NULL); |
| 527 | if (IS_ERR(dev->clk)) { | 537 | if (IS_ERR(dev->clk)) { |
| 528 | r = -ENODEV; | 538 | r = -ENODEV; |
| 529 | goto err_free_mem; | 539 | goto err_free_mem; |
| @@ -568,7 +578,7 @@ err_free_mem: | |||
| 568 | put_device(&pdev->dev); | 578 | put_device(&pdev->dev); |
| 569 | kfree(dev); | 579 | kfree(dev); |
| 570 | err_release_region: | 580 | err_release_region: |
| 571 | release_mem_region(mem->start, (mem->end - mem->start) + 1); | 581 | release_mem_region(mem->start, resource_size(mem)); |
| 572 | 582 | ||
| 573 | return r; | 583 | return r; |
| 574 | } | 584 | } |
| @@ -591,7 +601,7 @@ static int davinci_i2c_remove(struct platform_device *pdev) | |||
| 591 | kfree(dev); | 601 | kfree(dev); |
| 592 | 602 | ||
| 593 | mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 603 | mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
| 594 | release_mem_region(mem->start, (mem->end - mem->start) + 1); | 604 | release_mem_region(mem->start, resource_size(mem)); |
| 595 | return 0; | 605 | return 0; |
| 596 | } | 606 | } |
| 597 | 607 | ||
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c index ad8d2010c921..fdd83277c8a8 100644 --- a/drivers/i2c/busses/i2c-omap.c +++ b/drivers/i2c/busses/i2c-omap.c | |||
| @@ -806,7 +806,7 @@ omap_i2c_probe(struct platform_device *pdev) | |||
| 806 | return -ENODEV; | 806 | return -ENODEV; |
| 807 | } | 807 | } |
| 808 | 808 | ||
| 809 | ioarea = request_mem_region(mem->start, (mem->end - mem->start) + 1, | 809 | ioarea = request_mem_region(mem->start, resource_size(mem), |
| 810 | pdev->name); | 810 | pdev->name); |
| 811 | if (!ioarea) { | 811 | if (!ioarea) { |
| 812 | dev_err(&pdev->dev, "I2C region already claimed\n"); | 812 | dev_err(&pdev->dev, "I2C region already claimed\n"); |
| @@ -905,7 +905,7 @@ err_free_mem: | |||
| 905 | platform_set_drvdata(pdev, NULL); | 905 | platform_set_drvdata(pdev, NULL); |
| 906 | kfree(dev); | 906 | kfree(dev); |
| 907 | err_release_region: | 907 | err_release_region: |
| 908 | release_mem_region(mem->start, (mem->end - mem->start) + 1); | 908 | release_mem_region(mem->start, resource_size(mem)); |
| 909 | 909 | ||
| 910 | return r; | 910 | return r; |
| 911 | } | 911 | } |
| @@ -925,7 +925,7 @@ omap_i2c_remove(struct platform_device *pdev) | |||
| 925 | iounmap(dev->base); | 925 | iounmap(dev->base); |
| 926 | kfree(dev); | 926 | kfree(dev); |
| 927 | mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 927 | mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
| 928 | release_mem_region(mem->start, (mem->end - mem->start) + 1); | 928 | release_mem_region(mem->start, resource_size(mem)); |
| 929 | return 0; | 929 | return 0; |
| 930 | } | 930 | } |
| 931 | 931 | ||
diff --git a/drivers/i2c/busses/i2c-sh_mobile.c b/drivers/i2c/busses/i2c-sh_mobile.c index 1c01083b01b5..4f3d99cd1692 100644 --- a/drivers/i2c/busses/i2c-sh_mobile.c +++ b/drivers/i2c/busses/i2c-sh_mobile.c | |||
| @@ -563,7 +563,7 @@ static int sh_mobile_i2c_probe(struct platform_device *dev) | |||
| 563 | goto err_irq; | 563 | goto err_irq; |
| 564 | } | 564 | } |
| 565 | 565 | ||
| 566 | size = (res->end - res->start) + 1; | 566 | size = resource_size(res); |
| 567 | 567 | ||
| 568 | pd->reg = ioremap(res->start, size); | 568 | pd->reg = ioremap(res->start, size); |
| 569 | if (pd->reg == NULL) { | 569 | if (pd->reg == NULL) { |
diff --git a/drivers/i2c/busses/i2c-simtec.c b/drivers/i2c/busses/i2c-simtec.c index 042fda295f3a..6407f47bda82 100644 --- a/drivers/i2c/busses/i2c-simtec.c +++ b/drivers/i2c/busses/i2c-simtec.c | |||
| @@ -92,7 +92,7 @@ static int simtec_i2c_probe(struct platform_device *dev) | |||
| 92 | goto err; | 92 | goto err; |
| 93 | } | 93 | } |
| 94 | 94 | ||
| 95 | size = (res->end-res->start)+1; | 95 | size = resource_size(res); |
| 96 | 96 | ||
| 97 | pd->ioarea = request_mem_region(res->start, size, dev->name); | 97 | pd->ioarea = request_mem_region(res->start, size, dev->name); |
| 98 | if (pd->ioarea == NULL) { | 98 | if (pd->ioarea == NULL) { |
