Commit a8ac1a55 authored by Prasad Kanneganti's avatar Prasad Kanneganti Committed by David S. Miller

liquidio VF: reduce load time of module

Reduce the load time of the VF driver by decreasing the wait time between
iterations of the loop that polls for a mailbox response from the PF. Also
change the wait time units from jiffies to milliseconds.
Signed-off-by: default avatarPrasad Kanneganti <prasad.kanneganti@cavium.com>
Signed-off-by: default avatarFelix Manlunas <felix.manlunas@cavium.com>
Signed-off-by: default avatarRaghu Vatsavayi <raghu.vatsavayi@cavium.com>
Signed-off-by: default avatarDerek Chickles <derek.chickles@cavium.com>
Signed-off-by: default avatarSatanand Burla <satananda.burla@cavium.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent cb2336b5
...@@ -131,6 +131,7 @@ int octeon_mbox_write(struct octeon_device *oct, ...@@ -131,6 +131,7 @@ int octeon_mbox_write(struct octeon_device *oct,
{ {
struct octeon_mbox *mbox = oct->mbox[mbox_cmd->q_no]; struct octeon_mbox *mbox = oct->mbox[mbox_cmd->q_no];
u32 count, i, ret = OCTEON_MBOX_STATUS_SUCCESS; u32 count, i, ret = OCTEON_MBOX_STATUS_SUCCESS;
long timeout = LIO_MBOX_WRITE_WAIT_TIME;
unsigned long flags; unsigned long flags;
spin_lock_irqsave(&mbox->lock, flags); spin_lock_irqsave(&mbox->lock, flags);
...@@ -158,7 +159,7 @@ int octeon_mbox_write(struct octeon_device *oct, ...@@ -158,7 +159,7 @@ int octeon_mbox_write(struct octeon_device *oct,
count = 0; count = 0;
while (readq(mbox->mbox_write_reg) != OCTEON_PFVFSIG) { while (readq(mbox->mbox_write_reg) != OCTEON_PFVFSIG) {
schedule_timeout_uninterruptible(LIO_MBOX_WRITE_WAIT_TIME); schedule_timeout_uninterruptible(timeout);
if (count++ == LIO_MBOX_WRITE_WAIT_CNT) { if (count++ == LIO_MBOX_WRITE_WAIT_CNT) {
ret = OCTEON_MBOX_STATUS_FAILED; ret = OCTEON_MBOX_STATUS_FAILED;
break; break;
...@@ -171,7 +172,7 @@ int octeon_mbox_write(struct octeon_device *oct, ...@@ -171,7 +172,7 @@ int octeon_mbox_write(struct octeon_device *oct,
count = 0; count = 0;
while (readq(mbox->mbox_write_reg) != while (readq(mbox->mbox_write_reg) !=
OCTEON_PFVFACK) { OCTEON_PFVFACK) {
schedule_timeout_uninterruptible(10); schedule_timeout_uninterruptible(timeout);
if (count++ == LIO_MBOX_WRITE_WAIT_CNT) { if (count++ == LIO_MBOX_WRITE_WAIT_CNT) {
ret = OCTEON_MBOX_STATUS_FAILED; ret = OCTEON_MBOX_STATUS_FAILED;
break; break;
......
...@@ -31,8 +31,8 @@ ...@@ -31,8 +31,8 @@
#define OCTEON_PFVFSIG 0x1122334455667788 #define OCTEON_PFVFSIG 0x1122334455667788
#define OCTEON_PFVFERR 0xDEADDEADDEADDEAD #define OCTEON_PFVFERR 0xDEADDEADDEADDEAD
#define LIO_MBOX_WRITE_WAIT_CNT 1000 #define LIO_MBOX_WRITE_WAIT_CNT 1000
#define LIO_MBOX_WRITE_WAIT_TIME 10 #define LIO_MBOX_WRITE_WAIT_TIME msecs_to_jiffies(1)
enum octeon_mbox_cmd_status { enum octeon_mbox_cmd_status {
OCTEON_MBOX_STATUS_SUCCESS = 0, OCTEON_MBOX_STATUS_SUCCESS = 0,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment