Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 121369
b: refs/heads/master
c: 50f769d
h: refs/heads/master
i:
  121367: e6321bc
v: v3
  • Loading branch information
Jan Glauber authored and Martin Schwidefsky committed Dec 25, 2008
1 parent d8652c5 commit 0c224f8
Show file tree
Hide file tree
Showing 8 changed files with 140 additions and 75 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 22f9934767f49012ffbae753b28b8055bd28348f
refs/heads/master: 50f769df1c4bea766c4eb927eae35728fb93e305
19 changes: 12 additions & 7 deletions trunk/drivers/s390/cio/qdio.h
Original file line number Diff line number Diff line change
Expand Up @@ -112,12 +112,12 @@ static inline int do_sqbs(u64 token, unsigned char state, int queue,
}

static inline int do_eqbs(u64 token, unsigned char *state, int queue,
int *start, int *count)
int *start, int *count, int ack)
{
register unsigned long _ccq asm ("0") = *count;
register unsigned long _token asm ("1") = token;
unsigned long _queuestart = ((unsigned long)queue << 32) | *start;
unsigned long _state = 0;
unsigned long _state = (unsigned long)ack << 63;

asm volatile(
" .insn rrf,0xB99c0000,%1,%2,0,0"
Expand All @@ -134,7 +134,7 @@ static inline int do_eqbs(u64 token, unsigned char *state, int queue,
static inline int do_sqbs(u64 token, unsigned char state, int queue,
int *start, int *count) { return 0; }
static inline int do_eqbs(u64 token, unsigned char *state, int queue,
int *start, int *count) { return 0; }
int *start, int *count, int ack) { return 0; }
#endif /* CONFIG_64BIT */

struct qdio_irq;
Expand Down Expand Up @@ -187,11 +187,11 @@ struct qdio_input_q {
/* input buffer acknowledgement flag */
int polling;

/* how much sbals are acknowledged with qebsm */
int ack_count;

/* last time of noticing incoming data */
u64 timestamp;

/* lock for clearing the acknowledgement */
spinlock_t lock;
};

struct qdio_output_q {
Expand Down Expand Up @@ -351,10 +351,13 @@ static inline unsigned long long get_usecs(void)
((bufnr + 1) & QDIO_MAX_BUFFERS_MASK)
#define add_buf(bufnr, inc) \
((bufnr + inc) & QDIO_MAX_BUFFERS_MASK)
#define sub_buf(bufnr, dec) \
((bufnr - dec) & QDIO_MAX_BUFFERS_MASK)

/* prototypes for thin interrupt */
void qdio_sync_after_thinint(struct qdio_q *q);
int get_buf_state(struct qdio_q *q, unsigned int bufnr, unsigned char *state);
int get_buf_state(struct qdio_q *q, unsigned int bufnr, unsigned char *state,
int auto_ack);
void qdio_check_outbound_after_thinint(struct qdio_q *q);
int qdio_inbound_q_moved(struct qdio_q *q);
void qdio_kick_inbound_handler(struct qdio_q *q);
Expand Down Expand Up @@ -388,6 +391,8 @@ int qdio_setup_irq(struct qdio_initialize *init_data);
void qdio_print_subchannel_info(struct qdio_irq *irq_ptr,
struct ccw_device *cdev);
void qdio_release_memory(struct qdio_irq *irq_ptr);
int qdio_setup_create_sysfs(struct ccw_device *cdev);
void qdio_setup_destroy_sysfs(struct ccw_device *cdev);
int qdio_setup_init(void);
void qdio_setup_exit(void);

Expand Down
7 changes: 5 additions & 2 deletions trunk/drivers/s390/cio/qdio_debug.c
Original file line number Diff line number Diff line change
Expand Up @@ -60,16 +60,18 @@ static int qstat_show(struct seq_file *m, void *v)
if (!q)
return 0;

seq_printf(m, "device state indicator: %d\n", *q->irq_ptr->dsci);
seq_printf(m, "device state indicator: %d\n", *(u32 *)q->irq_ptr->dsci);
seq_printf(m, "nr_used: %d\n", atomic_read(&q->nr_buf_used));
seq_printf(m, "ftc: %d\n", q->first_to_check);
seq_printf(m, "last_move_ftc: %d\n", q->last_move_ftc);
seq_printf(m, "polling: %d\n", q->u.in.polling);
seq_printf(m, "ack count: %d\n", q->u.in.ack_count);
seq_printf(m, "slsb buffer states:\n");
seq_printf(m, "|0 |8 |16 |24 |32 |40 |48 |56 63|\n");

qdio_siga_sync_q(q);
for (i = 0; i < QDIO_MAX_BUFFERS_PER_Q; i++) {
get_buf_state(q, i, &state);
get_buf_state(q, i, &state, 0);
switch (state) {
case SLSB_P_INPUT_NOT_INIT:
case SLSB_P_OUTPUT_NOT_INIT:
Expand Down Expand Up @@ -101,6 +103,7 @@ static int qstat_show(struct seq_file *m, void *v)
seq_printf(m, "\n");
}
seq_printf(m, "\n");
seq_printf(m, "|64 |72 |80 |88 |96 |104 |112 | 127|\n");
return 0;
}

Expand Down
Loading

0 comments on commit 0c224f8

Please sign in to comment.