diff options
author | Tomas Winkler <tomas.winkler@intel.com> | 2012-11-01 15:17:14 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-11-01 15:31:19 -0400 |
commit | 3870c3206b96c900ce29c8068bd5ad46fae71f5b (patch) | |
tree | fdf26b80c5b67b758afbe7d1d4814b2f8f56b843 /drivers/misc | |
parent | b0d0cf77e72a9d233015f8f21e9dfc9d9b5d0711 (diff) |
mei: normalize timeouts definitions
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>
Diffstat (limited to 'drivers/misc')
-rw-r--r-- | drivers/misc/mei/hw.h | 14 | ||||
-rw-r--r-- | drivers/misc/mei/init.c | 18 | ||||
-rw-r--r-- | drivers/misc/mei/interrupt.c | 4 | ||||
-rw-r--r-- | drivers/misc/mei/iorw.c | 8 | ||||
-rw-r--r-- | drivers/misc/mei/main.c | 2 | ||||
-rw-r--r-- | drivers/misc/mei/mei_dev.h | 5 | ||||
-rw-r--r-- | drivers/misc/mei/wd.c | 2 |
7 files changed, 29 insertions, 24 deletions
diff --git a/drivers/misc/mei/hw.h b/drivers/misc/mei/hw.h index 9700532f02f6..f21721aa4dc1 100644 --- a/drivers/misc/mei/hw.h +++ b/drivers/misc/mei/hw.h | |||
@@ -20,16 +20,16 @@ | |||
20 | #include <linux/uuid.h> | 20 | #include <linux/uuid.h> |
21 | 21 | ||
22 | /* | 22 | /* |
23 | * Timeouts | 23 | * Timeouts in Seconds |
24 | */ | 24 | */ |
25 | #define MEI_INTEROP_TIMEOUT (HZ * 7) | 25 | #define MEI_INTEROP_TIMEOUT 7 /* Timeout on ready message */ |
26 | #define MEI_CONNECT_TIMEOUT 3 /* at least 2 seconds */ | 26 | #define MEI_CONNECT_TIMEOUT 3 /* HPS: at least 2 seconds */ |
27 | 27 | ||
28 | #define CONNECT_TIMEOUT 15 /* HPS definition */ | 28 | #define MEI_CL_CONNECT_TIMEOUT 15 /* HPS: Client Connect Timeout */ |
29 | #define INIT_CLIENTS_TIMEOUT 15 /* HPS definition */ | 29 | #define MEI_CLIENTS_INIT_TIMEOUT 15 /* HPS: Clients Enumeration Timeout */ |
30 | 30 | ||
31 | #define IAMTHIF_STALL_TIMER 12 /* seconds */ | 31 | #define MEI_IAMTHIF_STALL_TIMER 12 /* HPS */ |
32 | #define IAMTHIF_READ_TIMER 10000 /* ms */ | 32 | #define MEI_IAMTHIF_READ_TIMER 10 /* HPS */ |
33 | 33 | ||
34 | /* | 34 | /* |
35 | * Internal Clients Number | 35 | * Internal Clients Number |
diff --git a/drivers/misc/mei/init.c b/drivers/misc/mei/init.c index 1f13eb97a10a..e6951ec4840f 100644 --- a/drivers/misc/mei/init.c +++ b/drivers/misc/mei/init.c | |||
@@ -184,7 +184,8 @@ int mei_hw_init(struct mei_device *dev) | |||
184 | if (!dev->recvd_msg) { | 184 | if (!dev->recvd_msg) { |
185 | mutex_unlock(&dev->device_lock); | 185 | mutex_unlock(&dev->device_lock); |
186 | err = wait_event_interruptible_timeout(dev->wait_recvd_msg, | 186 | err = wait_event_interruptible_timeout(dev->wait_recvd_msg, |
187 | dev->recvd_msg, MEI_INTEROP_TIMEOUT); | 187 | dev->recvd_msg, |
188 | mei_secs_to_jiffies(MEI_INTEROP_TIMEOUT)); | ||
188 | mutex_lock(&dev->device_lock); | 189 | mutex_lock(&dev->device_lock); |
189 | } | 190 | } |
190 | 191 | ||
@@ -381,7 +382,7 @@ void mei_host_start_message(struct mei_device *dev) | |||
381 | mei_reset(dev, 1); | 382 | mei_reset(dev, 1); |
382 | } | 383 | } |
383 | dev->init_clients_state = MEI_START_MESSAGE; | 384 | dev->init_clients_state = MEI_START_MESSAGE; |
384 | dev->init_clients_timer = INIT_CLIENTS_TIMEOUT; | 385 | dev->init_clients_timer = MEI_CLIENTS_INIT_TIMEOUT; |
385 | return ; | 386 | return ; |
386 | } | 387 | } |
387 | 388 | ||
@@ -414,7 +415,7 @@ void mei_host_enum_clients_message(struct mei_device *dev) | |||
414 | mei_reset(dev, 1); | 415 | mei_reset(dev, 1); |
415 | } | 416 | } |
416 | dev->init_clients_state = MEI_ENUM_CLIENTS_MESSAGE; | 417 | dev->init_clients_state = MEI_ENUM_CLIENTS_MESSAGE; |
417 | dev->init_clients_timer = INIT_CLIENTS_TIMEOUT; | 418 | dev->init_clients_timer = MEI_CLIENTS_INIT_TIMEOUT; |
418 | return; | 419 | return; |
419 | } | 420 | } |
420 | 421 | ||
@@ -502,7 +503,7 @@ int mei_host_client_properties(struct mei_device *dev) | |||
502 | return -EIO; | 503 | return -EIO; |
503 | } | 504 | } |
504 | 505 | ||
505 | dev->init_clients_timer = INIT_CLIENTS_TIMEOUT; | 506 | dev->init_clients_timer = MEI_CLIENTS_INIT_TIMEOUT; |
506 | dev->me_client_index = b; | 507 | dev->me_client_index = b; |
507 | return 1; | 508 | return 1; |
508 | } | 509 | } |
@@ -621,7 +622,7 @@ void mei_host_init_iamthif(struct mei_device *dev) | |||
621 | dev->iamthif_cl.state = MEI_FILE_DISCONNECTED; | 622 | dev->iamthif_cl.state = MEI_FILE_DISCONNECTED; |
622 | dev->iamthif_cl.host_client_id = 0; | 623 | dev->iamthif_cl.host_client_id = 0; |
623 | } else { | 624 | } else { |
624 | dev->iamthif_cl.timer_count = CONNECT_TIMEOUT; | 625 | dev->iamthif_cl.timer_count = MEI_CONNECT_TIMEOUT; |
625 | } | 626 | } |
626 | } | 627 | } |
627 | 628 | ||
@@ -658,9 +659,8 @@ struct mei_cl *mei_cl_allocate(struct mei_device *dev) | |||
658 | */ | 659 | */ |
659 | int mei_disconnect_host_client(struct mei_device *dev, struct mei_cl *cl) | 660 | int mei_disconnect_host_client(struct mei_device *dev, struct mei_cl *cl) |
660 | { | 661 | { |
661 | int rets, err; | ||
662 | long timeout = 15; /* 15 seconds */ | ||
663 | struct mei_cl_cb *cb; | 662 | struct mei_cl_cb *cb; |
663 | int rets, err; | ||
664 | 664 | ||
665 | if (!dev || !cl) | 665 | if (!dev || !cl) |
666 | return -ENODEV; | 666 | return -ENODEV; |
@@ -690,8 +690,8 @@ int mei_disconnect_host_client(struct mei_device *dev, struct mei_cl *cl) | |||
690 | mutex_unlock(&dev->device_lock); | 690 | mutex_unlock(&dev->device_lock); |
691 | 691 | ||
692 | err = wait_event_timeout(dev->wait_recvd_msg, | 692 | err = wait_event_timeout(dev->wait_recvd_msg, |
693 | (MEI_FILE_DISCONNECTED == cl->state), | 693 | MEI_FILE_DISCONNECTED == cl->state, |
694 | timeout * HZ); | 694 | mei_secs_to_jiffies(MEI_CL_CONNECT_TIMEOUT)); |
695 | 695 | ||
696 | mutex_lock(&dev->device_lock); | 696 | mutex_lock(&dev->device_lock); |
697 | if (MEI_FILE_DISCONNECTED == cl->state) { | 697 | if (MEI_FILE_DISCONNECTED == cl->state) { |
diff --git a/drivers/misc/mei/interrupt.c b/drivers/misc/mei/interrupt.c index 5c65bac2fdec..248f581bde31 100644 --- a/drivers/misc/mei/interrupt.c +++ b/drivers/misc/mei/interrupt.c | |||
@@ -269,7 +269,7 @@ static int _mei_irq_thread_iamthif_read(struct mei_device *dev, s32 *slots) | |||
269 | dev->iamthif_flow_control_pending = false; | 269 | dev->iamthif_flow_control_pending = false; |
270 | dev->iamthif_msg_buf_index = 0; | 270 | dev->iamthif_msg_buf_index = 0; |
271 | dev->iamthif_msg_buf_size = 0; | 271 | dev->iamthif_msg_buf_size = 0; |
272 | dev->iamthif_stall_timer = IAMTHIF_STALL_TIMER; | 272 | dev->iamthif_stall_timer = MEI_IAMTHIF_STALL_TIMER; |
273 | dev->mei_host_buffer_is_empty = mei_hbuf_is_empty(dev); | 273 | dev->mei_host_buffer_is_empty = mei_hbuf_is_empty(dev); |
274 | return 0; | 274 | return 0; |
275 | } | 275 | } |
@@ -1379,7 +1379,7 @@ void mei_timer(struct work_struct *work) | |||
1379 | if (dev->iamthif_timer) { | 1379 | if (dev->iamthif_timer) { |
1380 | 1380 | ||
1381 | timeout = dev->iamthif_timer + | 1381 | timeout = dev->iamthif_timer + |
1382 | msecs_to_jiffies(IAMTHIF_READ_TIMER); | 1382 | mei_secs_to_jiffies(MEI_IAMTHIF_READ_TIMER); |
1383 | 1383 | ||
1384 | dev_dbg(&dev->pdev->dev, "dev->iamthif_timer = %ld\n", | 1384 | dev_dbg(&dev->pdev->dev, "dev->iamthif_timer = %ld\n", |
1385 | dev->iamthif_timer); | 1385 | dev->iamthif_timer); |
diff --git a/drivers/misc/mei/iorw.c b/drivers/misc/mei/iorw.c index 541c157f325a..8026cbf755db 100644 --- a/drivers/misc/mei/iorw.c +++ b/drivers/misc/mei/iorw.c | |||
@@ -173,7 +173,7 @@ int mei_ioctl_connect_client(struct file *file, | |||
173 | struct mei_cl *cl; | 173 | struct mei_cl *cl; |
174 | struct mei_cl *cl_pos = NULL; | 174 | struct mei_cl *cl_pos = NULL; |
175 | struct mei_cl *cl_next = NULL; | 175 | struct mei_cl *cl_next = NULL; |
176 | long timeout = CONNECT_TIMEOUT; | 176 | long timeout = mei_secs_to_jiffies(MEI_CL_CONNECT_TIMEOUT); |
177 | int i; | 177 | int i; |
178 | int err; | 178 | int err; |
179 | int rets; | 179 | int rets; |
@@ -291,8 +291,7 @@ int mei_ioctl_connect_client(struct file *file, | |||
291 | mutex_unlock(&dev->device_lock); | 291 | mutex_unlock(&dev->device_lock); |
292 | err = wait_event_timeout(dev->wait_recvd_msg, | 292 | err = wait_event_timeout(dev->wait_recvd_msg, |
293 | (MEI_FILE_CONNECTED == cl->state || | 293 | (MEI_FILE_CONNECTED == cl->state || |
294 | MEI_FILE_DISCONNECTED == cl->state), | 294 | MEI_FILE_DISCONNECTED == cl->state), timeout); |
295 | timeout * HZ); | ||
296 | 295 | ||
297 | mutex_lock(&dev->device_lock); | 296 | mutex_lock(&dev->device_lock); |
298 | if (MEI_FILE_CONNECTED == cl->state) { | 297 | if (MEI_FILE_CONNECTED == cl->state) { |
@@ -415,7 +414,8 @@ int amthi_read(struct mei_device *dev, struct file *file, | |||
415 | dev->iamthif_timer = 0; | 414 | dev->iamthif_timer = 0; |
416 | 415 | ||
417 | if (cb) { | 416 | if (cb) { |
418 | timeout = cb->read_time + msecs_to_jiffies(IAMTHIF_READ_TIMER); | 417 | timeout = cb->read_time + |
418 | mei_secs_to_jiffies(MEI_IAMTHIF_READ_TIMER); | ||
419 | dev_dbg(&dev->pdev->dev, "amthi timeout = %lud\n", | 419 | dev_dbg(&dev->pdev->dev, "amthi timeout = %lud\n", |
420 | timeout); | 420 | timeout); |
421 | 421 | ||
diff --git a/drivers/misc/mei/main.c b/drivers/misc/mei/main.c index 7a03d772fb11..659727a79012 100644 --- a/drivers/misc/mei/main.c +++ b/drivers/misc/mei/main.c | |||
@@ -567,7 +567,7 @@ static ssize_t mei_write(struct file *file, const char __user *ubuf, | |||
567 | 567 | ||
568 | if (write_cb) { | 568 | if (write_cb) { |
569 | timeout = write_cb->read_time + | 569 | timeout = write_cb->read_time + |
570 | msecs_to_jiffies(IAMTHIF_READ_TIMER); | 570 | mei_secs_to_jiffies(MEI_IAMTHIF_READ_TIMER); |
571 | 571 | ||
572 | if (time_after(jiffies, timeout) || | 572 | if (time_after(jiffies, timeout) || |
573 | cl->reading_state == MEI_READ_COMPLETE) { | 573 | cl->reading_state == MEI_READ_COMPLETE) { |
diff --git a/drivers/misc/mei/mei_dev.h b/drivers/misc/mei/mei_dev.h index 6adcb3f6621a..32c951ab1221 100644 --- a/drivers/misc/mei/mei_dev.h +++ b/drivers/misc/mei/mei_dev.h | |||
@@ -270,6 +270,11 @@ struct mei_device { | |||
270 | bool iamthif_canceled; | 270 | bool iamthif_canceled; |
271 | }; | 271 | }; |
272 | 272 | ||
273 | static inline unsigned long mei_secs_to_jiffies(unsigned long sec) | ||
274 | { | ||
275 | return msecs_to_jiffies(sec * MSEC_PER_SEC); | ||
276 | } | ||
277 | |||
273 | 278 | ||
274 | /* | 279 | /* |
275 | * mei init function prototypes | 280 | * mei init function prototypes |
diff --git a/drivers/misc/mei/wd.c b/drivers/misc/mei/wd.c index d96c537f046f..8edb054d4b36 100644 --- a/drivers/misc/mei/wd.c +++ b/drivers/misc/mei/wd.c | |||
@@ -85,7 +85,7 @@ int mei_wd_host_init(struct mei_device *dev) | |||
85 | dev->wd_cl.host_client_id = 0; | 85 | dev->wd_cl.host_client_id = 0; |
86 | return -EIO; | 86 | return -EIO; |
87 | } | 87 | } |
88 | dev->wd_cl.timer_count = CONNECT_TIMEOUT; | 88 | dev->wd_cl.timer_count = MEI_CONNECT_TIMEOUT; |
89 | 89 | ||
90 | return 0; | 90 | return 0; |
91 | } | 91 | } |