HFI1: generate headers for sdma_state and sdma_engine structures
This commit is contained in:
@@ -202,17 +202,7 @@ struct sdma_set_state_action {
|
|||||||
unsigned go_s99_running_totrue:1;
|
unsigned go_s99_running_totrue:1;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct sdma_state {
|
#include <hfi1/hfi1_generated_sdma_state.h>
|
||||||
struct kref kref;
|
|
||||||
struct completion comp;
|
|
||||||
enum sdma_states current_state;
|
|
||||||
unsigned current_op;
|
|
||||||
unsigned go_s99_running;
|
|
||||||
/* debugging/development */
|
|
||||||
enum sdma_states previous_state;
|
|
||||||
unsigned previous_op;
|
|
||||||
enum sdma_events last_event;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DOC: sdma exported routines
|
* DOC: sdma exported routines
|
||||||
@@ -329,104 +319,8 @@ struct hw_sdma_desc {
|
|||||||
* since the private members are subject to change.
|
* since the private members are subject to change.
|
||||||
*/
|
*/
|
||||||
/* The original size on Linux is 1472 B */
|
/* The original size on Linux is 1472 B */
|
||||||
struct sdma_engine {
|
|
||||||
/* read mostly */
|
|
||||||
struct hfi1_devdata *dd;
|
|
||||||
struct hfi1_pportdata *ppd;
|
|
||||||
/* private: */
|
|
||||||
void __iomem *tail_csr;
|
|
||||||
u64 imask; /* clear interrupt mask */
|
|
||||||
u64 idle_mask;
|
|
||||||
u64 progress_mask;
|
|
||||||
u64 int_mask;
|
|
||||||
/* private: */
|
|
||||||
volatile __le64 *head_dma; /* DMA'ed by chip */
|
|
||||||
/* private: */
|
|
||||||
dma_addr_t head_phys;
|
|
||||||
/* private: */
|
|
||||||
struct hw_sdma_desc *descq;
|
|
||||||
/* private: */
|
|
||||||
unsigned descq_full_count;
|
|
||||||
struct sdma_txreq **tx_ring;
|
|
||||||
/* private: */
|
|
||||||
dma_addr_t descq_phys;
|
|
||||||
/* private */
|
|
||||||
u32 sdma_mask;
|
|
||||||
/* private */
|
|
||||||
struct sdma_state state;
|
|
||||||
/* private */
|
|
||||||
int cpu;
|
|
||||||
/* private: */
|
|
||||||
u8 sdma_shift;
|
|
||||||
/* private: */
|
|
||||||
u8 this_idx; /* zero relative engine */
|
|
||||||
/* protect changes to senddmactrl shadow */
|
|
||||||
spinlock_t senddmactrl_lock;
|
|
||||||
/* private: */
|
|
||||||
u64 p_senddmactrl; /* shadow per-engine SendDmaCtrl */
|
|
||||||
|
|
||||||
/* read/write using tail_lock */
|
#include <hfi1/hfi1_generated_sdma_engine.h>
|
||||||
spinlock_t tail_lock ____cacheline_aligned_in_smp;
|
|
||||||
#ifdef CONFIG_HFI1_DEBUG_SDMA_ORDER
|
|
||||||
/* private: */
|
|
||||||
u64 tail_sn;
|
|
||||||
#endif
|
|
||||||
/* private: */
|
|
||||||
u32 descq_tail;
|
|
||||||
/* private: */
|
|
||||||
unsigned long ahg_bits;
|
|
||||||
/* private: */
|
|
||||||
u16 desc_avail;
|
|
||||||
/* private: */
|
|
||||||
u16 tx_tail;
|
|
||||||
/* private: */
|
|
||||||
u16 descq_cnt;
|
|
||||||
|
|
||||||
/* read/write using head_lock */
|
|
||||||
/* private: */
|
|
||||||
seqlock_t head_lock ____cacheline_aligned_in_smp;
|
|
||||||
#ifdef CONFIG_HFI1_DEBUG_SDMA_ORDER
|
|
||||||
/* private: */
|
|
||||||
u64 head_sn;
|
|
||||||
#endif
|
|
||||||
/* private: */
|
|
||||||
u32 descq_head;
|
|
||||||
/* private: */
|
|
||||||
u16 tx_head;
|
|
||||||
/* private: */
|
|
||||||
u64 last_status;
|
|
||||||
/* private */
|
|
||||||
u64 err_cnt;
|
|
||||||
/* private */
|
|
||||||
u64 sdma_int_cnt;
|
|
||||||
u64 idle_int_cnt;
|
|
||||||
u64 progress_int_cnt;
|
|
||||||
|
|
||||||
/* private: */
|
|
||||||
struct list_head dmawait;
|
|
||||||
|
|
||||||
/* CONFIG SDMA for now, just blindly duplicate */
|
|
||||||
/* private: */
|
|
||||||
struct tasklet_struct sdma_hw_clean_up_task // size 40
|
|
||||||
____cacheline_aligned_in_smp;
|
|
||||||
|
|
||||||
/* private: */
|
|
||||||
struct tasklet_struct sdma_sw_clean_up_task
|
|
||||||
____cacheline_aligned_in_smp;
|
|
||||||
/* private: */
|
|
||||||
char err_halt_worker[32]; // struct work_struct err_halt_worker;
|
|
||||||
/* private */
|
|
||||||
char err_progress_check_timer[80]; // struct timer_list err_progress_check_timer;
|
|
||||||
u32 progress_check_head;
|
|
||||||
/* private: */
|
|
||||||
char flush_worker[32]; // struct work_struct flush_worker;
|
|
||||||
/* protect flush list */
|
|
||||||
spinlock_t flushlist_lock;
|
|
||||||
/* private: */
|
|
||||||
struct list_head flushlist;
|
|
||||||
char cpu_mask[640]; // struct cpusmask cpu_mask;
|
|
||||||
char kobj[64]; // struct kobject kobj
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifdef __HFI1_ORIG__
|
#ifdef __HFI1_ORIG__
|
||||||
|
|
||||||
|
|||||||
@@ -44,3 +44,13 @@ HFI1_KO="${1-$(modinfo -n hfi1)}" || \
|
|||||||
uctxt pq cq dd subctxt entry_to_rb tid_lock tid_used \
|
uctxt pq cq dd subctxt entry_to_rb tid_lock tid_used \
|
||||||
invalid_tids invalid_tid_idx invalid_lock \
|
invalid_tids invalid_tid_idx invalid_lock \
|
||||||
> "${HDR_PREFIX}filedata.h"
|
> "${HDR_PREFIX}filedata.h"
|
||||||
|
|
||||||
|
"$DES_BIN" "$HFI1_KO" sdma_state \
|
||||||
|
current_state go_s99_running previous_state\
|
||||||
|
> "${HDR_PREFIX}sdma_state.h"
|
||||||
|
|
||||||
|
"$DES_BIN" "$HFI1_KO" sdma_engine \
|
||||||
|
tail_lock desc_avail tail_csr flushlist flushlist_lock \
|
||||||
|
descq_head descq_tail descq_cnt state sdma_shift sdma_mask\
|
||||||
|
descq tx_ring tx_tail head_lock descq_full_count ahg_bits\
|
||||||
|
> "${HDR_PREFIX}sdma_engine.h"
|
||||||
|
|||||||
Reference in New Issue
Block a user