mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-06 02:50:43 +00:00
staging/mei: add watchdog device registration wrappers
add mei_watchdog_register/unregister wrappers for cleaner encapsulation Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
f3bc9d24cb
commit
70cd533763
5 changed files with 41 additions and 24 deletions
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue