Skip to content

Commit

Permalink
mei: normalize timeouts definitions
Browse files Browse the repository at this point in the history
1. The hardware book defines timeouts in seconds
 so we stick to this and define the wrapper function
 mei_secs_to_jiffies  around  msecs_to_jiffies
 to use be used instead multiplying by HZ

2. We add name space prefix MEI_ to all timer defines

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Tomas Winkler authored and Greg Kroah-Hartman committed Nov 1, 2012
1 parent b0d0cf7 commit 3870c32
Show file tree
Hide file tree
Showing 7 changed files with 29 additions and 24 deletions.
14 changes: 7 additions & 7 deletions drivers/misc/mei/hw.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,16 @@
#include <linux/uuid.h>

/*
* Timeouts
* Timeouts in Seconds
*/
#define MEI_INTEROP_TIMEOUT (HZ * 7)
#define MEI_CONNECT_TIMEOUT 3 /* at least 2 seconds */
#define MEI_INTEROP_TIMEOUT 7 /* Timeout on ready message */
#define MEI_CONNECT_TIMEOUT 3 /* HPS: at least 2 seconds */

#define CONNECT_TIMEOUT 15 /* HPS definition */
#define INIT_CLIENTS_TIMEOUT 15 /* HPS definition */
#define MEI_CL_CONNECT_TIMEOUT 15 /* HPS: Client Connect Timeout */
#define MEI_CLIENTS_INIT_TIMEOUT 15 /* HPS: Clients Enumeration Timeout */

#define IAMTHIF_STALL_TIMER 12 /* seconds */
#define IAMTHIF_READ_TIMER 10000 /* ms */
#define MEI_IAMTHIF_STALL_TIMER 12 /* HPS */
#define MEI_IAMTHIF_READ_TIMER 10 /* HPS */

/*
* Internal Clients Number
Expand Down
18 changes: 9 additions & 9 deletions drivers/misc/mei/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,8 @@ int mei_hw_init(struct mei_device *dev)
if (!dev->recvd_msg) {
mutex_unlock(&dev->device_lock);
err = wait_event_interruptible_timeout(dev->wait_recvd_msg,
dev->recvd_msg, MEI_INTEROP_TIMEOUT);
dev->recvd_msg,
mei_secs_to_jiffies(MEI_INTEROP_TIMEOUT));
mutex_lock(&dev->device_lock);
}

Expand Down Expand Up @@ -381,7 +382,7 @@ void mei_host_start_message(struct mei_device *dev)
mei_reset(dev, 1);
}
dev->init_clients_state = MEI_START_MESSAGE;
dev->init_clients_timer = INIT_CLIENTS_TIMEOUT;
dev->init_clients_timer = MEI_CLIENTS_INIT_TIMEOUT;
return ;
}

Expand Down Expand Up @@ -414,7 +415,7 @@ void mei_host_enum_clients_message(struct mei_device *dev)
mei_reset(dev, 1);
}
dev->init_clients_state = MEI_ENUM_CLIENTS_MESSAGE;
dev->init_clients_timer = INIT_CLIENTS_TIMEOUT;
dev->init_clients_timer = MEI_CLIENTS_INIT_TIMEOUT;
return;
}

Expand Down Expand Up @@ -502,7 +503,7 @@ int mei_host_client_properties(struct mei_device *dev)
return -EIO;
}

dev->init_clients_timer = INIT_CLIENTS_TIMEOUT;
dev->init_clients_timer = MEI_CLIENTS_INIT_TIMEOUT;
dev->me_client_index = b;
return 1;
}
Expand Down Expand Up @@ -621,7 +622,7 @@ void mei_host_init_iamthif(struct mei_device *dev)
dev->iamthif_cl.state = MEI_FILE_DISCONNECTED;
dev->iamthif_cl.host_client_id = 0;
} else {
dev->iamthif_cl.timer_count = CONNECT_TIMEOUT;
dev->iamthif_cl.timer_count = MEI_CONNECT_TIMEOUT;
}
}

Expand Down Expand Up @@ -658,9 +659,8 @@ struct mei_cl *mei_cl_allocate(struct mei_device *dev)
*/
int mei_disconnect_host_client(struct mei_device *dev, struct mei_cl *cl)
{
int rets, err;
long timeout = 15; /* 15 seconds */
struct mei_cl_cb *cb;
int rets, err;

if (!dev || !cl)
return -ENODEV;
Expand Down Expand Up @@ -690,8 +690,8 @@ int mei_disconnect_host_client(struct mei_device *dev, struct mei_cl *cl)
mutex_unlock(&dev->device_lock);

err = wait_event_timeout(dev->wait_recvd_msg,
(MEI_FILE_DISCONNECTED == cl->state),
timeout * HZ);
MEI_FILE_DISCONNECTED == cl->state,
mei_secs_to_jiffies(MEI_CL_CONNECT_TIMEOUT));

mutex_lock(&dev->device_lock);
if (MEI_FILE_DISCONNECTED == cl->state) {
Expand Down
4 changes: 2 additions & 2 deletions drivers/misc/mei/interrupt.c
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@ static int _mei_irq_thread_iamthif_read(struct mei_device *dev, s32 *slots)
dev->iamthif_flow_control_pending = false;
dev->iamthif_msg_buf_index = 0;
dev->iamthif_msg_buf_size = 0;
dev->iamthif_stall_timer = IAMTHIF_STALL_TIMER;
dev->iamthif_stall_timer = MEI_IAMTHIF_STALL_TIMER;
dev->mei_host_buffer_is_empty = mei_hbuf_is_empty(dev);
return 0;
}
Expand Down Expand Up @@ -1379,7 +1379,7 @@ void mei_timer(struct work_struct *work)
if (dev->iamthif_timer) {

timeout = dev->iamthif_timer +
msecs_to_jiffies(IAMTHIF_READ_TIMER);
mei_secs_to_jiffies(MEI_IAMTHIF_READ_TIMER);

dev_dbg(&dev->pdev->dev, "dev->iamthif_timer = %ld\n",
dev->iamthif_timer);
Expand Down
8 changes: 4 additions & 4 deletions drivers/misc/mei/iorw.c
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ int mei_ioctl_connect_client(struct file *file,
struct mei_cl *cl;
struct mei_cl *cl_pos = NULL;
struct mei_cl *cl_next = NULL;
long timeout = CONNECT_TIMEOUT;
long timeout = mei_secs_to_jiffies(MEI_CL_CONNECT_TIMEOUT);
int i;
int err;
int rets;
Expand Down Expand Up @@ -291,8 +291,7 @@ int mei_ioctl_connect_client(struct file *file,
mutex_unlock(&dev->device_lock);
err = wait_event_timeout(dev->wait_recvd_msg,
(MEI_FILE_CONNECTED == cl->state ||
MEI_FILE_DISCONNECTED == cl->state),
timeout * HZ);
MEI_FILE_DISCONNECTED == cl->state), timeout);

mutex_lock(&dev->device_lock);
if (MEI_FILE_CONNECTED == cl->state) {
Expand Down Expand Up @@ -415,7 +414,8 @@ int amthi_read(struct mei_device *dev, struct file *file,
dev->iamthif_timer = 0;

if (cb) {
timeout = cb->read_time + msecs_to_jiffies(IAMTHIF_READ_TIMER);
timeout = cb->read_time +
mei_secs_to_jiffies(MEI_IAMTHIF_READ_TIMER);
dev_dbg(&dev->pdev->dev, "amthi timeout = %lud\n",
timeout);

Expand Down
2 changes: 1 addition & 1 deletion drivers/misc/mei/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -567,7 +567,7 @@ static ssize_t mei_write(struct file *file, const char __user *ubuf,

if (write_cb) {
timeout = write_cb->read_time +
msecs_to_jiffies(IAMTHIF_READ_TIMER);
mei_secs_to_jiffies(MEI_IAMTHIF_READ_TIMER);

if (time_after(jiffies, timeout) ||
cl->reading_state == MEI_READ_COMPLETE) {
Expand Down
5 changes: 5 additions & 0 deletions drivers/misc/mei/mei_dev.h
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,11 @@ struct mei_device {
bool iamthif_canceled;
};

static inline unsigned long mei_secs_to_jiffies(unsigned long sec)
{
return msecs_to_jiffies(sec * MSEC_PER_SEC);
}


/*
* mei init function prototypes
Expand Down
2 changes: 1 addition & 1 deletion drivers/misc/mei/wd.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ int mei_wd_host_init(struct mei_device *dev)
dev->wd_cl.host_client_id = 0;
return -EIO;
}
dev->wd_cl.timer_count = CONNECT_TIMEOUT;
dev->wd_cl.timer_count = MEI_CONNECT_TIMEOUT;

return 0;
}
Expand Down

0 comments on commit 3870c32

Please sign in to comment.