Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 5736
b: refs/heads/master
c: 3501466
h: refs/heads/master
v: v3
  • Loading branch information
David S. Miller committed Aug 9, 2005
1 parent fed9795 commit c4aa528
Show file tree
Hide file tree
Showing 10 changed files with 603 additions and 206 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: db29e85a7ece62de1899917c1ec0ffe55cf1d3a0
refs/heads/master: 3501466941347f0e1992b2672affb3feb92925fd
41 changes: 13 additions & 28 deletions trunk/drivers/char/watchdog/i8xx_tco.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* i8xx_tco: TCO timer driver for i8xx chipsets
* i8xx_tco 0.07: TCO timer driver for i8xx chipsets
*
* (c) Copyright 2000 kernel concepts <nils@kernelconcepts.de>, All Rights Reserved.
* http://www.kernelconcepts.de
Expand Down Expand Up @@ -63,9 +63,6 @@
* 20050128 Wim Van Sebroeck <wim@iguana.be>
* 0.07 Added support for the ICH4-M, ICH6, ICH6R, ICH6-M, ICH6W and ICH6RW
* chipsets. Also added support for the "undocumented" ICH7 chipset.
* 20050807 Wim Van Sebroeck <wim@iguana.be>
* 0.08 Make sure that the watchdog is only "armed" when started.
* (Kernel Bug 4251)
*/

/*
Expand All @@ -90,7 +87,7 @@
#include "i8xx_tco.h"

/* Module and version information */
#define TCO_VERSION "0.08"
#define TCO_VERSION "0.07"
#define TCO_MODULE_NAME "i8xx TCO timer"
#define TCO_DRIVER_NAME TCO_MODULE_NAME ", v" TCO_VERSION
#define PFX TCO_MODULE_NAME ": "
Expand Down Expand Up @@ -128,18 +125,10 @@ static int tco_timer_start (void)
unsigned char val;

spin_lock(&tco_lock);

/* disable chipset's NO_REBOOT bit */
pci_read_config_byte (i8xx_tco_pci, 0xd4, &val);
val &= 0xfd;
pci_write_config_byte (i8xx_tco_pci, 0xd4, val);

/* Bit 11: TCO Timer Halt -> 0 = The TCO timer is enabled to count */
val = inb (TCO1_CNT + 1);
val &= 0xf7;
outb (val, TCO1_CNT + 1);
val = inb (TCO1_CNT + 1);

spin_unlock(&tco_lock);

if (val & 0x08)
Expand All @@ -149,20 +138,13 @@ static int tco_timer_start (void)

static int tco_timer_stop (void)
{
unsigned char val, val1;
unsigned char val;

spin_lock(&tco_lock);
/* Bit 11: TCO Timer Halt -> 1 = The TCO timer is disabled */
val = inb (TCO1_CNT + 1);
val |= 0x08;
outb (val, TCO1_CNT + 1);
val = inb (TCO1_CNT + 1);

/* Set the NO_REBOOT bit to prevent later reboots, just for sure */
pci_read_config_byte (i8xx_tco_pci, 0xd4, &val1);
val1 |= 0x02;
pci_write_config_byte (i8xx_tco_pci, 0xd4, val1);

spin_unlock(&tco_lock);

if ((val & 0x08) == 0)
Expand All @@ -173,7 +155,6 @@ static int tco_timer_stop (void)
static int tco_timer_keepalive (void)
{
spin_lock(&tco_lock);
/* Reload the timer by writing to the TCO Timer Reload register */
outb (0x01, TCO1_RLD);
spin_unlock(&tco_lock);
return 0;
Expand Down Expand Up @@ -436,8 +417,9 @@ static unsigned char __init i8xx_tco_getdevice (void)
printk (KERN_ERR PFX "failed to get TCOBASE address\n");
return 0;
}

/* Check chipset's NO_REBOOT bit */
/*
* Check chipset's NO_REBOOT bit
*/
pci_read_config_byte (i8xx_tco_pci, 0xd4, &val1);
if (val1 & 0x02) {
val1 &= 0xfd;
Expand All @@ -448,10 +430,6 @@ static unsigned char __init i8xx_tco_getdevice (void)
return 0; /* Cannot reset NO_REBOOT bit */
}
}
/* Disable reboots untill the watchdog starts */
val1 |= 0x02;
pci_write_config_byte (i8xx_tco_pci, 0xd4, val1);

/* Set the TCO_EN bit in SMI_EN register */
if (!request_region (SMI_EN + 1, 1, "i8xx TCO")) {
printk (KERN_ERR PFX "I/O address 0x%04x already in use\n",
Expand Down Expand Up @@ -527,10 +505,17 @@ static int __init watchdog_init (void)

static void __exit watchdog_cleanup (void)
{
u8 val;

/* Stop the timer before we leave */
if (!nowayout)
tco_timer_stop ();

/* Set the NO_REBOOT bit to prevent later reboots, just for sure */
pci_read_config_byte (i8xx_tco_pci, 0xd4, &val);
val |= 0x02;
pci_write_config_byte (i8xx_tco_pci, 0xd4, val);

/* Deregister */
misc_deregister (&i8xx_tco_miscdev);
unregister_reboot_notifier(&i8xx_tco_notifier);
Expand Down
4 changes: 2 additions & 2 deletions trunk/drivers/i2c/busses/i2c-sibyte.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
#include <asm/sibyte/sb1250_smbus.h>

static struct i2c_algo_sibyte_data sibyte_board_data[2] = {
{ NULL, 0, (void *) (CKSEG1+A_SMB_BASE(0)) },
{ NULL, 1, (void *) (CKSEG1+A_SMB_BASE(1)) }
{ NULL, 0, (void *) (KSEG1+A_SMB_BASE(0)) },
{ NULL, 1, (void *) (KSEG1+A_SMB_BASE(1)) }
};

static struct i2c_adapter sibyte_board_adapter[2] = {
Expand Down
3 changes: 0 additions & 3 deletions trunk/drivers/message/i2o/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,6 @@ config I2O_CONFIG
To compile this support as a module, choose M here: the
module will be called i2o_config.

Note: If you want to use the new API you have to download the
i2o_config patch from http://i2o.shadowconnect.com/

config I2O_CONFIG_OLD_IOCTL
bool "Enable ioctls (OBSOLETE)"
depends on I2O_CONFIG
Expand Down
Loading

0 comments on commit c4aa528

Please sign in to comment.