Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge git://www.linux-watchdog.org/linux-watchdog

Watchdog updates from Wim Van Sebroeck:

* git://www.linux-watchdog.org/linux-watchdog:
watchdog: fix GETTIMEOUT ioctl in booke_wdt
watchdog: update maintainers git entry
watchdog: Fix typo in pnx4008_wdt.c
watchdog: Fix typo in Kconfig
watchdog: fix error in probe() of s3c2410_wdt (reset at booting)
watchdog: hpwdt: clean up set_memory_x call for 32 bit

+42 -32
+1 -1
MAINTAINERS
··· 7271 7271 M: Wim Van Sebroeck <wim@iguana.be> 7272 7272 L: linux-watchdog@vger.kernel.org 7273 7273 W: http://www.linux-watchdog.org/ 7274 - T: git git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git 7274 + T: git git://www.linux-watchdog.org/linux-watchdog.git 7275 7275 S: Maintained 7276 7276 F: Documentation/watchdog/ 7277 7277 F: drivers/watchdog/
+1 -1
drivers/watchdog/Kconfig
··· 1098 1098 For Freescale Book-E processors, this is a number between 0 and 63. 1099 1099 For other Book-E processors, this is a number between 0 and 3. 1100 1100 1101 - The value can be overidden by the wdt_period command-line parameter. 1101 + The value can be overridden by the wdt_period command-line parameter. 1102 1102 1103 1103 # PPC64 Architecture 1104 1104
+5 -1
drivers/watchdog/booke_wdt.c
··· 198 198 booke_wdt_period = tmp; 199 199 #endif 200 200 booke_wdt_set(); 201 - return 0; 201 + /* Fall */ 202 202 case WDIOC_GETTIMEOUT: 203 + #ifdef CONFIG_FSL_BOOKE 204 + return put_user(period_to_sec(booke_wdt_period), p); 205 + #else 203 206 return put_user(booke_wdt_period, p); 207 + #endif 204 208 default: 205 209 return -ENOTTY; 206 210 }
+3 -2
drivers/watchdog/hpwdt.c
··· 231 231 232 232 cmn_regs.u1.reax = CRU_BIOS_SIGNATURE_VALUE; 233 233 234 - set_memory_x((unsigned long)bios32_entrypoint, (2 * PAGE_SIZE)); 234 + set_memory_x((unsigned long)bios32_map, 2); 235 235 asminline_call(&cmn_regs, bios32_entrypoint); 236 236 237 237 if (cmn_regs.u1.ral != 0) { ··· 250 250 cru_rom_addr = 251 251 ioremap(cru_physical_address, cru_length); 252 252 if (cru_rom_addr) { 253 - set_memory_x((unsigned long)cru_rom_addr, cru_length); 253 + set_memory_x((unsigned long)cru_rom_addr & PAGE_MASK, 254 + (cru_length + PAGE_SIZE - 1) >> PAGE_SHIFT); 254 255 retval = 0; 255 256 } 256 257 }
+1 -1
drivers/watchdog/pnx4008_wdt.c
··· 264 264 wdt_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); 265 265 if (wdt_mem == NULL) { 266 266 printk(KERN_INFO MODULE_NAME 267 - "failed to get memory region resouce\n"); 267 + "failed to get memory region resource\n"); 268 268 return -ENOENT; 269 269 } 270 270
+31 -26
drivers/watchdog/s3c2410_wdt.c
··· 312 312 dev = &pdev->dev; 313 313 wdt_dev = &pdev->dev; 314 314 315 - /* get the memory region for the watchdog timer */ 316 - 317 315 wdt_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); 318 316 if (wdt_mem == NULL) { 319 317 dev_err(dev, "no memory resource specified\n"); 320 318 return -ENOENT; 321 319 } 322 320 321 + wdt_irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 322 + if (wdt_irq == NULL) { 323 + dev_err(dev, "no irq resource specified\n"); 324 + ret = -ENOENT; 325 + goto err; 326 + } 327 + 328 + /* get the memory region for the watchdog timer */ 329 + 323 330 size = resource_size(wdt_mem); 324 331 if (!request_mem_region(wdt_mem->start, size, pdev->name)) { 325 332 dev_err(dev, "failed to get memory region\n"); 326 - return -EBUSY; 333 + ret = -EBUSY; 334 + goto err; 327 335 } 328 336 329 337 wdt_base = ioremap(wdt_mem->start, size); ··· 343 335 344 336 DBG("probe: mapped wdt_base=%p\n", wdt_base); 345 337 346 - wdt_irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 347 - if (wdt_irq == NULL) { 348 - dev_err(dev, "no irq resource specified\n"); 349 - ret = -ENOENT; 350 - goto err_map; 351 - } 352 - 353 - ret = request_irq(wdt_irq->start, s3c2410wdt_irq, 0, pdev->name, pdev); 354 - if (ret != 0) { 355 - dev_err(dev, "failed to install irq (%d)\n", ret); 356 - goto err_map; 357 - } 358 - 359 338 wdt_clock = clk_get(&pdev->dev, "watchdog"); 360 339 if (IS_ERR(wdt_clock)) { 361 340 dev_err(dev, "failed to find watchdog clock source\n"); 362 341 ret = PTR_ERR(wdt_clock); 363 - goto err_irq; 342 + goto err_map; 364 343 } 365 344 366 345 clk_enable(wdt_clock); 367 346 368 - if (s3c2410wdt_cpufreq_register() < 0) { 347 + ret = s3c2410wdt_cpufreq_register(); 348 + if (ret < 0) { 369 349 printk(KERN_ERR PFX "failed to register cpufreq\n"); 370 350 goto err_clk; 371 351 } ··· 374 378 "cannot start\n"); 375 379 } 376 380 381 + ret = request_irq(wdt_irq->start, s3c2410wdt_irq, 0, pdev->name, pdev); 382 + if (ret != 0) { 383 + dev_err(dev, "failed to install irq (%d)\n", ret); 384 + goto err_cpufreq; 385 + } 386 + 377 387 watchdog_set_nowayout(&s3c2410_wdd, nowayout); 378 388 379 389 ret = watchdog_register_device(&s3c2410_wdd); 380 390 if (ret) { 381 391 dev_err(dev, "cannot register watchdog (%d)\n", ret); 382 - goto err_cpufreq; 392 + goto err_irq; 383 393 } 384 394 385 395 if (tmr_atboot && started == 0) { ··· 410 408 411 409 return 0; 412 410 411 + err_irq: 412 + free_irq(wdt_irq->start, pdev); 413 + 413 414 err_cpufreq: 414 415 s3c2410wdt_cpufreq_deregister(); 415 416 416 417 err_clk: 417 418 clk_disable(wdt_clock); 418 419 clk_put(wdt_clock); 419 - 420 - err_irq: 421 - free_irq(wdt_irq->start, pdev); 420 + wdt_clock = NULL; 422 421 423 422 err_map: 424 423 iounmap(wdt_base); 425 424 426 425 err_req: 427 426 release_mem_region(wdt_mem->start, size); 428 - wdt_mem = NULL; 429 427 428 + err: 429 + wdt_irq = NULL; 430 + wdt_mem = NULL; 430 431 return ret; 431 432 } 432 433 ··· 437 432 { 438 433 watchdog_unregister_device(&s3c2410_wdd); 439 434 435 + free_irq(wdt_irq->start, dev); 436 + 440 437 s3c2410wdt_cpufreq_deregister(); 441 438 442 439 clk_disable(wdt_clock); 443 440 clk_put(wdt_clock); 444 441 wdt_clock = NULL; 445 442 446 - free_irq(wdt_irq->start, dev); 447 - wdt_irq = NULL; 448 - 449 443 iounmap(wdt_base); 450 444 451 445 release_mem_region(wdt_mem->start, resource_size(wdt_mem)); 446 + wdt_irq = NULL; 452 447 wdt_mem = NULL; 453 448 return 0; 454 449 }