diff options
| -rw-r--r-- | drivers/i2c/busses/i2c-bfin-twi.c | 6 | ||||
| -rw-r--r-- | drivers/i2c/busses/i2c-omap.c | 13 | ||||
| -rw-r--r-- | drivers/watchdog/adx_wdt.c | 4 | ||||
| -rw-r--r-- | drivers/watchdog/at32ap700x_wdt.c | 2 | ||||
| -rw-r--r-- | drivers/watchdog/davinci_wdt.c | 2 | ||||
| -rw-r--r-- | drivers/watchdog/iTCO_wdt.c | 4 | ||||
| -rw-r--r-- | drivers/watchdog/mpcore_wdt.c | 2 | ||||
| -rw-r--r-- | drivers/watchdog/mv64x60_wdt.c | 2 | ||||
| -rw-r--r-- | drivers/watchdog/omap_wdt.c | 9 | ||||
| -rw-r--r-- | drivers/watchdog/pnx4008_wdt.c | 2 | ||||
| -rw-r--r-- | drivers/watchdog/s3c2410_wdt.c | 2 | ||||
| -rw-r--r-- | drivers/watchdog/txx9wdt.c | 6 |
12 files changed, 33 insertions, 21 deletions
diff --git a/drivers/i2c/busses/i2c-bfin-twi.c b/drivers/i2c/busses/i2c-bfin-twi.c index b309ac2c3d5c..fe3fb567317d 100644 --- a/drivers/i2c/busses/i2c-bfin-twi.c +++ b/drivers/i2c/busses/i2c-bfin-twi.c | |||
| @@ -693,13 +693,13 @@ static int i2c_bfin_twi_probe(struct platform_device *pdev) | |||
| 693 | } | 693 | } |
| 694 | 694 | ||
| 695 | /* Set TWI internal clock as 10MHz */ | 695 | /* Set TWI internal clock as 10MHz */ |
| 696 | write_CONTROL(iface, ((get_sclk() / 1024 / 1024 + 5) / 10) & 0x7F); | 696 | write_CONTROL(iface, ((get_sclk() / 1000 / 1000 + 5) / 10) & 0x7F); |
| 697 | 697 | ||
| 698 | /* | 698 | /* |
| 699 | * We will not end up with a CLKDIV=0 because no one will specify | 699 | * We will not end up with a CLKDIV=0 because no one will specify |
| 700 | * 20kHz SCL or less in Kconfig now. (5 * 1024 / 20 = 0x100) | 700 | * 20kHz SCL or less in Kconfig now. (5 * 1000 / 20 = 250) |
| 701 | */ | 701 | */ |
| 702 | clkhilow = 5 * 1024 / CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ; | 702 | clkhilow = ((10 * 1000 / CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ) + 1) / 2; |
| 703 | 703 | ||
| 704 | /* Set Twi interface clock as specified */ | 704 | /* Set Twi interface clock as specified */ |
| 705 | write_CLKDIV(iface, (clkhilow << 8) | clkhilow); | 705 | write_CLKDIV(iface, (clkhilow << 8) | clkhilow); |
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c index 75bf3ad18099..0037e31076ba 100644 --- a/drivers/i2c/busses/i2c-omap.c +++ b/drivers/i2c/busses/i2c-omap.c | |||
| @@ -247,7 +247,13 @@ static void omap_i2c_unidle(struct omap_i2c_dev *dev) | |||
| 247 | omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, OMAP_I2C_CON_EN); | 247 | omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, OMAP_I2C_CON_EN); |
| 248 | } | 248 | } |
| 249 | dev->idle = 0; | 249 | dev->idle = 0; |
| 250 | omap_i2c_write_reg(dev, OMAP_I2C_IE_REG, dev->iestate); | 250 | |
| 251 | /* | ||
| 252 | * Don't write to this register if the IE state is 0 as it can | ||
| 253 | * cause deadlock. | ||
| 254 | */ | ||
| 255 | if (dev->iestate) | ||
| 256 | omap_i2c_write_reg(dev, OMAP_I2C_IE_REG, dev->iestate); | ||
| 251 | } | 257 | } |
| 252 | 258 | ||
| 253 | static void omap_i2c_idle(struct omap_i2c_dev *dev) | 259 | static void omap_i2c_idle(struct omap_i2c_dev *dev) |
| @@ -280,6 +286,11 @@ static int omap_i2c_init(struct omap_i2c_dev *dev) | |||
| 280 | unsigned long internal_clk = 0; | 286 | unsigned long internal_clk = 0; |
| 281 | 287 | ||
| 282 | if (dev->rev >= OMAP_I2C_REV_2) { | 288 | if (dev->rev >= OMAP_I2C_REV_2) { |
| 289 | /* Disable I2C controller before soft reset */ | ||
| 290 | omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, | ||
| 291 | omap_i2c_read_reg(dev, OMAP_I2C_CON_REG) & | ||
| 292 | ~(OMAP_I2C_CON_EN)); | ||
| 293 | |||
| 283 | omap_i2c_write_reg(dev, OMAP_I2C_SYSC_REG, SYSC_SOFTRESET_MASK); | 294 | omap_i2c_write_reg(dev, OMAP_I2C_SYSC_REG, SYSC_SOFTRESET_MASK); |
| 284 | /* For some reason we need to set the EN bit before the | 295 | /* For some reason we need to set the EN bit before the |
| 285 | * reset done bit gets set. */ | 296 | * reset done bit gets set. */ |
diff --git a/drivers/watchdog/adx_wdt.c b/drivers/watchdog/adx_wdt.c index 9c6594473d3b..9d7d155364f8 100644 --- a/drivers/watchdog/adx_wdt.c +++ b/drivers/watchdog/adx_wdt.c | |||
| @@ -242,14 +242,14 @@ static int __devinit adx_wdt_probe(struct platform_device *pdev) | |||
| 242 | } | 242 | } |
| 243 | 243 | ||
| 244 | res = devm_request_mem_region(&pdev->dev, res->start, | 244 | res = devm_request_mem_region(&pdev->dev, res->start, |
| 245 | res->end - res->start + 1, res->name); | 245 | resource_size(res), res->name); |
| 246 | if (!res) { | 246 | if (!res) { |
| 247 | dev_err(&pdev->dev, "cannot request I/O memory region\n"); | 247 | dev_err(&pdev->dev, "cannot request I/O memory region\n"); |
| 248 | return -ENXIO; | 248 | return -ENXIO; |
| 249 | } | 249 | } |
| 250 | 250 | ||
| 251 | wdt->base = devm_ioremap_nocache(&pdev->dev, res->start, | 251 | wdt->base = devm_ioremap_nocache(&pdev->dev, res->start, |
| 252 | res->end - res->start + 1); | 252 | resource_size(res)); |
| 253 | if (!wdt->base) { | 253 | if (!wdt->base) { |
| 254 | dev_err(&pdev->dev, "cannot remap I/O memory region\n"); | 254 | dev_err(&pdev->dev, "cannot remap I/O memory region\n"); |
| 255 | return -ENXIO; | 255 | return -ENXIO; |
diff --git a/drivers/watchdog/at32ap700x_wdt.c b/drivers/watchdog/at32ap700x_wdt.c index e8ae638e5804..037847923dcb 100644 --- a/drivers/watchdog/at32ap700x_wdt.c +++ b/drivers/watchdog/at32ap700x_wdt.c | |||
| @@ -326,7 +326,7 @@ static int __init at32_wdt_probe(struct platform_device *pdev) | |||
| 326 | return -ENOMEM; | 326 | return -ENOMEM; |
| 327 | } | 327 | } |
| 328 | 328 | ||
| 329 | wdt->regs = ioremap(regs->start, regs->end - regs->start + 1); | 329 | wdt->regs = ioremap(regs->start, resource_size(regs)); |
| 330 | if (!wdt->regs) { | 330 | if (!wdt->regs) { |
| 331 | ret = -ENOMEM; | 331 | ret = -ENOMEM; |
| 332 | dev_dbg(&pdev->dev, "could not map I/O memory\n"); | 332 | dev_dbg(&pdev->dev, "could not map I/O memory\n"); |
diff --git a/drivers/watchdog/davinci_wdt.c b/drivers/watchdog/davinci_wdt.c index 9d7520fa9e9c..887136de1857 100644 --- a/drivers/watchdog/davinci_wdt.c +++ b/drivers/watchdog/davinci_wdt.c | |||
| @@ -221,7 +221,7 @@ static int __devinit davinci_wdt_probe(struct platform_device *pdev) | |||
| 221 | return -ENOENT; | 221 | return -ENOENT; |
| 222 | } | 222 | } |
| 223 | 223 | ||
| 224 | size = res->end - res->start + 1; | 224 | size = resource_size(res); |
| 225 | wdt_mem = request_mem_region(res->start, size, pdev->name); | 225 | wdt_mem = request_mem_region(res->start, size, pdev->name); |
| 226 | 226 | ||
| 227 | if (wdt_mem == NULL) { | 227 | if (wdt_mem == NULL) { |
diff --git a/drivers/watchdog/iTCO_wdt.c b/drivers/watchdog/iTCO_wdt.c index e44fbb31bc6f..c8a3bec26830 100644 --- a/drivers/watchdog/iTCO_wdt.c +++ b/drivers/watchdog/iTCO_wdt.c | |||
| @@ -30,6 +30,7 @@ | |||
| 30 | * document number 316972-004, 316973-012: 82801I (ICH9) | 30 | * document number 316972-004, 316973-012: 82801I (ICH9) |
| 31 | * document number 319973-002, 319974-002: 82801J (ICH10) | 31 | * document number 319973-002, 319974-002: 82801J (ICH10) |
| 32 | * document number 322169-001, 322170-001: 5 Series, 3400 Series (PCH) | 32 | * document number 322169-001, 322170-001: 5 Series, 3400 Series (PCH) |
| 33 | * document number 320066-003, 320257-008: EP80597 (IICH) | ||
| 33 | */ | 34 | */ |
| 34 | 35 | ||
| 35 | /* | 36 | /* |
| @@ -100,6 +101,7 @@ enum iTCO_chipsets { | |||
| 100 | TCO_PCH, /* PCH Desktop Full Featured */ | 101 | TCO_PCH, /* PCH Desktop Full Featured */ |
| 101 | TCO_PCHM, /* PCH Mobile Full Featured */ | 102 | TCO_PCHM, /* PCH Mobile Full Featured */ |
| 102 | TCO_PCHMSFF, /* PCH Mobile SFF Full Featured */ | 103 | TCO_PCHMSFF, /* PCH Mobile SFF Full Featured */ |
| 104 | TCO_EP80579, /* EP80579 */ | ||
| 103 | }; | 105 | }; |
| 104 | 106 | ||
| 105 | static struct { | 107 | static struct { |
| @@ -143,6 +145,7 @@ static struct { | |||
| 143 | {"PCH Desktop Full Featured", 2}, | 145 | {"PCH Desktop Full Featured", 2}, |
| 144 | {"PCH Mobile Full Featured", 2}, | 146 | {"PCH Mobile Full Featured", 2}, |
| 145 | {"PCH Mobile SFF Full Featured", 2}, | 147 | {"PCH Mobile SFF Full Featured", 2}, |
| 148 | {"EP80579", 2}, | ||
| 146 | {NULL, 0} | 149 | {NULL, 0} |
| 147 | }; | 150 | }; |
| 148 | 151 | ||
| @@ -214,6 +217,7 @@ static struct pci_device_id iTCO_wdt_pci_tbl[] = { | |||
| 214 | { ITCO_PCI_DEVICE(0x3b00, TCO_PCH)}, | 217 | { ITCO_PCI_DEVICE(0x3b00, TCO_PCH)}, |
| 215 | { ITCO_PCI_DEVICE(0x3b01, TCO_PCHM)}, | 218 | { ITCO_PCI_DEVICE(0x3b01, TCO_PCHM)}, |
| 216 | { ITCO_PCI_DEVICE(0x3b0d, TCO_PCHMSFF)}, | 219 | { ITCO_PCI_DEVICE(0x3b0d, TCO_PCHMSFF)}, |
| 220 | { ITCO_PCI_DEVICE(0x5031, TCO_EP80579)}, | ||
| 217 | { 0, }, /* End of list */ | 221 | { 0, }, /* End of list */ |
| 218 | }; | 222 | }; |
| 219 | MODULE_DEVICE_TABLE(pci, iTCO_wdt_pci_tbl); | 223 | MODULE_DEVICE_TABLE(pci, iTCO_wdt_pci_tbl); |
diff --git a/drivers/watchdog/mpcore_wdt.c b/drivers/watchdog/mpcore_wdt.c index 83fa34b214b4..a2dc07c2ed49 100644 --- a/drivers/watchdog/mpcore_wdt.c +++ b/drivers/watchdog/mpcore_wdt.c | |||
| @@ -350,7 +350,7 @@ static int __devinit mpcore_wdt_probe(struct platform_device *dev) | |||
| 350 | ret = -ENXIO; | 350 | ret = -ENXIO; |
| 351 | goto err_free; | 351 | goto err_free; |
| 352 | } | 352 | } |
| 353 | wdt->base = ioremap(res->start, res->end - res->start + 1); | 353 | wdt->base = ioremap(res->start, resource_size(res)); |
| 354 | if (!wdt->base) { | 354 | if (!wdt->base) { |
| 355 | ret = -ENOMEM; | 355 | ret = -ENOMEM; |
| 356 | goto err_free; | 356 | goto err_free; |
diff --git a/drivers/watchdog/mv64x60_wdt.c b/drivers/watchdog/mv64x60_wdt.c index acf589dc057c..a51dbe4c43da 100644 --- a/drivers/watchdog/mv64x60_wdt.c +++ b/drivers/watchdog/mv64x60_wdt.c | |||
| @@ -275,7 +275,7 @@ static int __devinit mv64x60_wdt_probe(struct platform_device *dev) | |||
| 275 | if (!r) | 275 | if (!r) |
| 276 | return -ENODEV; | 276 | return -ENODEV; |
| 277 | 277 | ||
| 278 | mv64x60_wdt_regs = ioremap(r->start, r->end - r->start + 1); | 278 | mv64x60_wdt_regs = ioremap(r->start, resource_size(r)); |
| 279 | if (mv64x60_wdt_regs == NULL) | 279 | if (mv64x60_wdt_regs == NULL) |
| 280 | return -ENOMEM; | 280 | return -ENOMEM; |
| 281 | 281 | ||
diff --git a/drivers/watchdog/omap_wdt.c b/drivers/watchdog/omap_wdt.c index 429ea99eaee5..c6aaf2845741 100644 --- a/drivers/watchdog/omap_wdt.c +++ b/drivers/watchdog/omap_wdt.c | |||
| @@ -277,8 +277,7 @@ static int __devinit omap_wdt_probe(struct platform_device *pdev) | |||
| 277 | goto err_busy; | 277 | goto err_busy; |
| 278 | } | 278 | } |
| 279 | 279 | ||
| 280 | mem = request_mem_region(res->start, res->end - res->start + 1, | 280 | mem = request_mem_region(res->start, resource_size(res), pdev->name); |
| 281 | pdev->name); | ||
| 282 | if (!mem) { | 281 | if (!mem) { |
| 283 | ret = -EBUSY; | 282 | ret = -EBUSY; |
| 284 | goto err_busy; | 283 | goto err_busy; |
| @@ -306,7 +305,7 @@ static int __devinit omap_wdt_probe(struct platform_device *pdev) | |||
| 306 | goto err_clk; | 305 | goto err_clk; |
| 307 | } | 306 | } |
| 308 | 307 | ||
| 309 | wdev->base = ioremap(res->start, res->end - res->start + 1); | 308 | wdev->base = ioremap(res->start, resource_size(res)); |
| 310 | if (!wdev->base) { | 309 | if (!wdev->base) { |
| 311 | ret = -ENOMEM; | 310 | ret = -ENOMEM; |
| 312 | goto err_ioremap; | 311 | goto err_ioremap; |
| @@ -358,7 +357,7 @@ err_clk: | |||
| 358 | kfree(wdev); | 357 | kfree(wdev); |
| 359 | 358 | ||
| 360 | err_kzalloc: | 359 | err_kzalloc: |
| 361 | release_mem_region(res->start, res->end - res->start + 1); | 360 | release_mem_region(res->start, resource_size(res)); |
| 362 | 361 | ||
| 363 | err_busy: | 362 | err_busy: |
| 364 | err_get_resource: | 363 | err_get_resource: |
| @@ -383,7 +382,7 @@ static int __devexit omap_wdt_remove(struct platform_device *pdev) | |||
| 383 | return -ENOENT; | 382 | return -ENOENT; |
| 384 | 383 | ||
| 385 | misc_deregister(&(wdev->omap_wdt_miscdev)); | 384 | misc_deregister(&(wdev->omap_wdt_miscdev)); |
| 386 | release_mem_region(res->start, res->end - res->start + 1); | 385 | release_mem_region(res->start, resource_size(res)); |
| 387 | platform_set_drvdata(pdev, NULL); | 386 | platform_set_drvdata(pdev, NULL); |
| 388 | 387 | ||
| 389 | clk_put(wdev->ick); | 388 | clk_put(wdev->ick); |
diff --git a/drivers/watchdog/pnx4008_wdt.c b/drivers/watchdog/pnx4008_wdt.c index 4d227b152001..430a5848a9a5 100644 --- a/drivers/watchdog/pnx4008_wdt.c +++ b/drivers/watchdog/pnx4008_wdt.c | |||
| @@ -264,7 +264,7 @@ static int __devinit pnx4008_wdt_probe(struct platform_device *pdev) | |||
| 264 | return -ENOENT; | 264 | return -ENOENT; |
| 265 | } | 265 | } |
| 266 | 266 | ||
| 267 | size = res->end - res->start + 1; | 267 | size = resource_size(res); |
| 268 | wdt_mem = request_mem_region(res->start, size, pdev->name); | 268 | wdt_mem = request_mem_region(res->start, size, pdev->name); |
| 269 | 269 | ||
| 270 | if (wdt_mem == NULL) { | 270 | if (wdt_mem == NULL) { |
diff --git a/drivers/watchdog/s3c2410_wdt.c b/drivers/watchdog/s3c2410_wdt.c index 85b93e15d011..8760a26ab2a3 100644 --- a/drivers/watchdog/s3c2410_wdt.c +++ b/drivers/watchdog/s3c2410_wdt.c | |||
| @@ -421,7 +421,7 @@ static int __devinit s3c2410wdt_probe(struct platform_device *pdev) | |||
| 421 | return -ENOENT; | 421 | return -ENOENT; |
| 422 | } | 422 | } |
| 423 | 423 | ||
| 424 | size = (res->end - res->start) + 1; | 424 | size = resource_size(res); |
| 425 | wdt_mem = request_mem_region(res->start, size, pdev->name); | 425 | wdt_mem = request_mem_region(res->start, size, pdev->name); |
| 426 | if (wdt_mem == NULL) { | 426 | if (wdt_mem == NULL) { |
| 427 | dev_err(dev, "failed to get memory region\n"); | 427 | dev_err(dev, "failed to get memory region\n"); |
diff --git a/drivers/watchdog/txx9wdt.c b/drivers/watchdog/txx9wdt.c index 6adab77fbbb0..d635566e9307 100644 --- a/drivers/watchdog/txx9wdt.c +++ b/drivers/watchdog/txx9wdt.c | |||
| @@ -214,12 +214,10 @@ static int __init txx9wdt_probe(struct platform_device *dev) | |||
| 214 | res = platform_get_resource(dev, IORESOURCE_MEM, 0); | 214 | res = platform_get_resource(dev, IORESOURCE_MEM, 0); |
| 215 | if (!res) | 215 | if (!res) |
| 216 | goto exit_busy; | 216 | goto exit_busy; |
| 217 | if (!devm_request_mem_region(&dev->dev, | 217 | if (!devm_request_mem_region(&dev->dev, res->start, resource_size(res), |
| 218 | res->start, res->end - res->start + 1, | ||
| 219 | "txx9wdt")) | 218 | "txx9wdt")) |
| 220 | goto exit_busy; | 219 | goto exit_busy; |
| 221 | txx9wdt_reg = devm_ioremap(&dev->dev, | 220 | txx9wdt_reg = devm_ioremap(&dev->dev, res->start, resource_size(res)); |
| 222 | res->start, res->end - res->start + 1); | ||
| 223 | if (!txx9wdt_reg) | 221 | if (!txx9wdt_reg) |
| 224 | goto exit_busy; | 222 | goto exit_busy; |
| 225 | 223 | ||
