@@ -110,6 +110,10 @@ struct qeth_perf_stats {
110
110
111
111
unsigned int sc_dp_p ;
112
112
unsigned int sc_p_dp ;
113
+ /* qdio_cq_handler: number of times called, time spent in */
114
+ __u64 cq_start_time ;
115
+ unsigned int cq_cnt ;
116
+ unsigned int cq_time ;
113
117
/* qdio_input_handler: number of times called, time spent in */
114
118
__u64 inbound_start_time ;
115
119
unsigned int inbound_cnt ;
@@ -376,6 +380,11 @@ enum qeth_qdio_buffer_states {
376
380
* outbound: filled by driver; owned by hardware in order to be sent
377
381
*/
378
382
QETH_QDIO_BUF_PRIMED ,
383
+ /*
384
+ * inbound: not applicable
385
+ * outbound: handled via transfer pending / completion queue
386
+ */
387
+ QETH_QDIO_BUF_HANDLED_DELAYED ,
379
388
};
380
389
381
390
enum qeth_qdio_info_states {
@@ -413,8 +422,11 @@ struct qeth_qdio_out_buffer {
413
422
atomic_t state ;
414
423
int next_element_to_fill ;
415
424
struct sk_buff_head skb_list ;
416
- struct list_head ctx_list ;
417
425
int is_header [16 ];
426
+
427
+ struct qaob * aob ;
428
+ struct qeth_qdio_out_q * q ;
429
+ struct qeth_qdio_out_buffer * next_pending ;
418
430
};
419
431
420
432
struct qeth_card ;
@@ -427,7 +439,8 @@ enum qeth_out_q_states {
427
439
428
440
struct qeth_qdio_out_q {
429
441
struct qdio_buffer qdio_bufs [QDIO_MAX_BUFFERS_PER_Q ];
430
- struct qeth_qdio_out_buffer bufs [QDIO_MAX_BUFFERS_PER_Q ];
442
+ struct qeth_qdio_out_buffer * bufs [QDIO_MAX_BUFFERS_PER_Q ];
443
+ struct qdio_outbuf_state * bufstates ; /* convenience pointer */
431
444
int queue_no ;
432
445
struct qeth_card * card ;
433
446
atomic_t state ;
@@ -448,14 +461,17 @@ struct qeth_qdio_out_q {
448
461
struct qeth_qdio_info {
449
462
atomic_t state ;
450
463
/* input */
464
+ int no_in_queues ;
451
465
struct qeth_qdio_q * in_q ;
466
+ struct qeth_qdio_q * c_q ;
452
467
struct qeth_qdio_buffer_pool in_buf_pool ;
453
468
struct qeth_qdio_buffer_pool init_pool ;
454
469
int in_buf_size ;
455
470
456
471
/* output */
457
472
int no_out_queues ;
458
473
struct qeth_qdio_out_q * * out_qs ;
474
+ struct qdio_outbuf_state * out_bufstates ;
459
475
460
476
/* priority queueing */
461
477
int do_prio_queueing ;
@@ -527,6 +543,12 @@ enum qeth_cmd_buffer_state {
527
543
BUF_STATE_PROCESSED ,
528
544
};
529
545
546
+ enum qeth_cq {
547
+ QETH_CQ_DISABLED = 0 ,
548
+ QETH_CQ_ENABLED = 1 ,
549
+ QETH_CQ_NOTAVAILABLE = 2 ,
550
+ };
551
+
530
552
struct qeth_ipato {
531
553
int enabled ;
532
554
int invert4 ;
@@ -651,6 +673,7 @@ struct qeth_card_options {
651
673
int rx_sg_cb ;
652
674
enum qeth_ipa_isolation_modes isolation ;
653
675
int sniffer ;
676
+ enum qeth_cq cq ;
654
677
};
655
678
656
679
/*
@@ -888,6 +911,7 @@ void qeth_dbf_longtext(debug_info_t *id, int level, char *text, ...);
888
911
int qeth_core_ethtool_get_settings (struct net_device * , struct ethtool_cmd * );
889
912
int qeth_set_access_ctrl_online (struct qeth_card * card );
890
913
int qeth_hdr_chk_and_bounce (struct sk_buff * , int );
914
+ int qeth_configure_cq (struct qeth_card * , enum qeth_cq );
891
915
int qeth_hw_trap (struct qeth_card * , enum qeth_diags_trap_action );
892
916
int qeth_query_ipassists (struct qeth_card * , enum qeth_prot_versions prot );
893
917
0 commit comments