Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 281429
b: refs/heads/master
c: 70cd533
h: refs/heads/master
i:
  281427: e25aa2c
v: v3
  • Loading branch information
Tomas Winkler authored and Greg Kroah-Hartman committed Dec 22, 2011
1 parent 396e635 commit 960ef7b
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 25 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: f3bc9d24cb4a221bd3530c445fa08e33775e7707
refs/heads/master: 70cd533763aa9804bc99a9e6cb79720fa1717770
11 changes: 11 additions & 0 deletions trunk/drivers/staging/mei/interface.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,17 @@ int mei_wd_send(struct mei_device *dev);
int mei_wd_stop(struct mei_device *dev, bool preserve);
bool mei_wd_host_init(struct mei_device *dev);
void mei_wd_set_start_timeout(struct mei_device *dev, u16 timeout);
/*
* mei_watchdog_register - Registering watchdog interface
* once we got connection to the WD Client
* @dev - mei device
*/
void mei_watchdog_register(struct mei_device *dev);
/*
* mei_watchdog_unregister - Uegistering watchdog interface
* @dev - mei device
*/
void mei_watchdog_unregister(struct mei_device *dev);

int mei_flow_ctrl_reduce(struct mei_device *dev, struct mei_cl *cl);

Expand Down
18 changes: 2 additions & 16 deletions trunk/drivers/staging/mei/interrupt.c
Original file line number Diff line number Diff line change
Expand Up @@ -386,24 +386,10 @@ static void mei_client_connect_response(struct mei_device *dev,
/* if WD or iamthif client treat specially */

if (is_treat_specially_client(&(dev->wd_cl), rs)) {
dev_dbg(&dev->pdev->dev, "dev->wd_timeout =%d.\n",
dev->wd_timeout);

dev->wd_due_counter = (dev->wd_timeout) ? 1 : 0;

dev_dbg(&dev->pdev->dev, "successfully connected to WD client.\n");
mei_watchdog_register(dev);

/* Registering watchdog interface device once we got connection
to the WD Client
*/
if (watchdog_register_device(&amt_wd_dev)) {
printk(KERN_ERR "mei: unable to register watchdog device.\n");
dev->wd_interface_reg = false;
} else {
dev_dbg(&dev->pdev->dev, "successfully register watchdog interface.\n");
dev->wd_interface_reg = true;
}

/* next step in the state maching */
mei_host_init_iamthif(dev);
return;
}
Expand Down
3 changes: 1 addition & 2 deletions trunk/drivers/staging/mei/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1082,8 +1082,7 @@ static void __devexit mei_remove(struct pci_dev *pdev)
}

/* Unregistering watchdog device */
if (dev->wd_interface_reg)
watchdog_unregister_device(&amt_wd_dev);
mei_watchdog_unregister(dev);

/* remove entry if already in list */
dev_dbg(&pdev->dev, "list del iamthif and wd file list.\n");
Expand Down
5 changes: 0 additions & 5 deletions trunk/drivers/staging/mei/mei_dev.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,6 @@
*/
extern struct pci_dev *mei_device;

/*
* AMT Watchdog Device
*/
#define INTEL_AMT_WATCHDOG_ID "INTCAMT"
extern struct watchdog_device amt_wd_dev;

/*
* AMTHI Client UUID
Expand Down
28 changes: 27 additions & 1 deletion trunk/drivers/staging/mei/wd.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,16 @@ const u8 mei_wd_state_independence_msg[3][4] = {
{0x07, 0x02, 0x01, 0x10}
};

/*
* AMT Watchdog Device
*/
#define INTEL_AMT_WATCHDOG_ID "INTCAMT"

/* UUIDs for AMT F/W clients */
const uuid_le mei_wd_guid = UUID_LE(0x05B79A6F, 0x4628, 0x4D7F, 0x89,
0x9D, 0xA9, 0x15, 0x14, 0xCB,
0x32, 0xAB);


void mei_wd_set_start_timeout(struct mei_device *dev, u16 timeout)
{
dev_dbg(&dev->pdev->dev, "timeout=%d.\n", timeout);
Expand Down Expand Up @@ -352,3 +356,25 @@ struct watchdog_device amt_wd_dev = {
};


void mei_watchdog_register(struct mei_device *dev)
{
dev_dbg(&dev->pdev->dev, "dev->wd_timeout =%d.\n", dev->wd_timeout);

dev->wd_due_counter = !!dev->wd_timeout;

if (watchdog_register_device(&amt_wd_dev)) {
dev_err(&dev->pdev->dev, "unable to register watchdog device.\n");
dev->wd_interface_reg = false;
} else {
dev_dbg(&dev->pdev->dev, "successfully register watchdog interface.\n");
dev->wd_interface_reg = true;
}
}

void mei_watchdog_unregister(struct mei_device *dev)
{
if (dev->wd_interface_reg)
watchdog_unregister_device(&amt_wd_dev);
dev->wd_interface_reg = false;
}

0 comments on commit 960ef7b

Please sign in to comment.