Commit 3a601bfe authored by Jan Glauber's avatar Jan Glauber Committed by Martin Schwidefsky

[S390] qdio: dont convert timestamps to microseconds

Don't convert timestamps to microseconds, use timestamps returned by
get_clock() directly.
Signed-off-by: default avatarJan Glauber <jang@linux.vnet.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 5382fe11
...@@ -13,8 +13,8 @@ ...@@ -13,8 +13,8 @@
#include <asm/debug.h> #include <asm/debug.h>
#include "chsc.h" #include "chsc.h"
#define QDIO_BUSY_BIT_PATIENCE 100 /* 100 microseconds */ #define QDIO_BUSY_BIT_PATIENCE (100 << 12) /* 100 microseconds */
#define QDIO_INPUT_THRESHOLD 500 /* 500 microseconds */ #define QDIO_INPUT_THRESHOLD (500 << 12) /* 500 microseconds */
/* /*
* if an asynchronous HiperSockets queue runs full, the 10 seconds timer wait * if an asynchronous HiperSockets queue runs full, the 10 seconds timer wait
...@@ -370,11 +370,6 @@ static inline int multicast_outbound(struct qdio_q *q) ...@@ -370,11 +370,6 @@ static inline int multicast_outbound(struct qdio_q *q)
(q->nr == q->irq_ptr->nr_output_qs - 1); (q->nr == q->irq_ptr->nr_output_qs - 1);
} }
static inline unsigned long long get_usecs(void)
{
return monotonic_clock() >> 12;
}
#define pci_out_supported(q) \ #define pci_out_supported(q) \
(q->irq_ptr->qib.ac & QIB_AC_OUTBOUND_PCI_SUPPORTED) (q->irq_ptr->qib.ac & QIB_AC_OUTBOUND_PCI_SUPPORTED)
#define is_qebsm(q) (q->irq_ptr->sch_token != 0) #define is_qebsm(q) (q->irq_ptr->sch_token != 0)
......
...@@ -336,10 +336,10 @@ static int qdio_siga_output(struct qdio_q *q, unsigned int *busy_bit) ...@@ -336,10 +336,10 @@ static int qdio_siga_output(struct qdio_q *q, unsigned int *busy_bit)
WARN_ON(queue_type(q) != QDIO_IQDIO_QFMT || cc != 2); WARN_ON(queue_type(q) != QDIO_IQDIO_QFMT || cc != 2);
if (!start_time) { if (!start_time) {
start_time = get_usecs(); start_time = get_clock();
goto again; goto again;
} }
if ((get_usecs() - start_time) < QDIO_BUSY_BIT_PATIENCE) if ((get_clock() - start_time) < QDIO_BUSY_BIT_PATIENCE)
goto again; goto again;
} }
return cc; return cc;
...@@ -536,7 +536,7 @@ static int qdio_inbound_q_moved(struct qdio_q *q) ...@@ -536,7 +536,7 @@ static int qdio_inbound_q_moved(struct qdio_q *q)
if ((bufnr != q->last_move) || q->qdio_error) { if ((bufnr != q->last_move) || q->qdio_error) {
q->last_move = bufnr; q->last_move = bufnr;
if (!is_thinint_irq(q->irq_ptr) && MACHINE_IS_LPAR) if (!is_thinint_irq(q->irq_ptr) && MACHINE_IS_LPAR)
q->u.in.timestamp = get_usecs(); q->u.in.timestamp = get_clock();
return 1; return 1;
} else } else
return 0; return 0;
...@@ -567,7 +567,7 @@ static inline int qdio_inbound_q_done(struct qdio_q *q) ...@@ -567,7 +567,7 @@ static inline int qdio_inbound_q_done(struct qdio_q *q)
* At this point we know, that inbound first_to_check * At this point we know, that inbound first_to_check
* has (probably) not moved (see qdio_inbound_processing). * has (probably) not moved (see qdio_inbound_processing).
*/ */
if (get_usecs() > q->u.in.timestamp + QDIO_INPUT_THRESHOLD) { if (get_clock() > q->u.in.timestamp + QDIO_INPUT_THRESHOLD) {
DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "in done:%02x", DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "in done:%02x",
q->first_to_check); q->first_to_check);
return 1; return 1;
......
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