diff options
Diffstat (limited to 'drivers/scsi/bfa/bfa_port_priv.h')
-rw-r--r-- | drivers/scsi/bfa/bfa_port_priv.h | 57 |
1 files changed, 29 insertions, 28 deletions
diff --git a/drivers/scsi/bfa/bfa_port_priv.h b/drivers/scsi/bfa/bfa_port_priv.h index 51f698a06b6..40e256ec67f 100644 --- a/drivers/scsi/bfa/bfa_port_priv.h +++ b/drivers/scsi/bfa/bfa_port_priv.h | |||
@@ -23,9 +23,19 @@ | |||
23 | #include "bfa_intr_priv.h" | 23 | #include "bfa_intr_priv.h" |
24 | 24 | ||
25 | /** | 25 | /** |
26 | * BFA physical port data structure | 26 | * Link notification data structure |
27 | */ | 27 | */ |
28 | struct bfa_pport_s { | 28 | struct bfa_fcport_ln_s { |
29 | struct bfa_fcport_s *fcport; | ||
30 | bfa_sm_t sm; | ||
31 | struct bfa_cb_qe_s ln_qe; /* BFA callback queue elem for ln */ | ||
32 | enum bfa_pport_linkstate ln_event; /* ln event for callback */ | ||
33 | }; | ||
34 | |||
35 | /** | ||
36 | * BFA FC port data structure | ||
37 | */ | ||
38 | struct bfa_fcport_s { | ||
29 | struct bfa_s *bfa; /* parent BFA instance */ | 39 | struct bfa_s *bfa; /* parent BFA instance */ |
30 | bfa_sm_t sm; /* port state machine */ | 40 | bfa_sm_t sm; /* port state machine */ |
31 | wwn_t nwwn; /* node wwn of physical port */ | 41 | wwn_t nwwn; /* node wwn of physical port */ |
@@ -36,6 +46,8 @@ struct bfa_pport_s { | |||
36 | enum bfa_pport_topology topology; /* current topology */ | 46 | enum bfa_pport_topology topology; /* current topology */ |
37 | u8 myalpa; /* my ALPA in LOOP topology */ | 47 | u8 myalpa; /* my ALPA in LOOP topology */ |
38 | u8 rsvd[3]; | 48 | u8 rsvd[3]; |
49 | u32 mypid:24; | ||
50 | u32 rsvd_b:8; | ||
39 | struct bfa_pport_cfg_s cfg; /* current port configuration */ | 51 | struct bfa_pport_cfg_s cfg; /* current port configuration */ |
40 | struct bfa_qos_attr_s qos_attr; /* QoS Attributes */ | 52 | struct bfa_qos_attr_s qos_attr; /* QoS Attributes */ |
41 | struct bfa_qos_vc_attr_s qos_vc_attr; /* VC info from ELP */ | 53 | struct bfa_qos_vc_attr_s qos_vc_attr; /* VC info from ELP */ |
@@ -49,42 +61,31 @@ struct bfa_pport_s { | |||
49 | void (*event_cbfn) (void *cbarg, | 61 | void (*event_cbfn) (void *cbarg, |
50 | bfa_pport_event_t event); | 62 | bfa_pport_event_t event); |
51 | union { | 63 | union { |
52 | union bfi_pport_i2h_msg_u i2hmsg; | 64 | union bfi_fcport_i2h_msg_u i2hmsg; |
53 | } event_arg; | 65 | } event_arg; |
54 | void *bfad; /* BFA driver handle */ | 66 | void *bfad; /* BFA driver handle */ |
67 | struct bfa_fcport_ln_s ln; /* Link Notification */ | ||
55 | struct bfa_cb_qe_s hcb_qe; /* BFA callback queue elem */ | 68 | struct bfa_cb_qe_s hcb_qe; /* BFA callback queue elem */ |
56 | enum bfa_pport_linkstate hcb_event; | 69 | struct bfa_timer_s timer; /* timer */ |
57 | /* link event for callback */ | ||
58 | u32 msgtag; /* fimrware msg tag for reply */ | 70 | u32 msgtag; /* fimrware msg tag for reply */ |
59 | u8 *stats_kva; | 71 | u8 *stats_kva; |
60 | u64 stats_pa; | 72 | u64 stats_pa; |
61 | union bfa_pport_stats_u *stats; /* pport stats */ | 73 | union bfa_fcport_stats_u *stats; |
62 | u32 mypid:24; | 74 | union bfa_fcport_stats_u *stats_ret; /* driver stats location */ |
63 | u32 rsvd_b:8; | 75 | bfa_status_t stats_status; /* stats/statsclr status */ |
64 | struct bfa_timer_s timer; /* timer */ | 76 | bfa_boolean_t stats_busy; /* outstanding stats/statsclr */ |
65 | union bfa_pport_stats_u *stats_ret; | 77 | bfa_boolean_t stats_qfull; |
66 | /* driver stats location */ | 78 | bfa_cb_pport_t stats_cbfn; /* driver callback function */ |
67 | bfa_status_t stats_status; | 79 | void *stats_cbarg; /* *!< user callback arg */ |
68 | /* stats/statsclr status */ | 80 | bfa_boolean_t diag_busy; /* diag busy status */ |
69 | bfa_boolean_t stats_busy; | 81 | bfa_boolean_t beacon; /* port beacon status */ |
70 | /* outstanding stats/statsclr */ | 82 | bfa_boolean_t link_e2e_beacon; /* link beacon status */ |
71 | bfa_boolean_t stats_qfull; | ||
72 | bfa_boolean_t diag_busy; | ||
73 | /* diag busy status */ | ||
74 | bfa_boolean_t beacon; | ||
75 | /* port beacon status */ | ||
76 | bfa_boolean_t link_e2e_beacon; | ||
77 | /* link beacon status */ | ||
78 | bfa_cb_pport_t stats_cbfn; | ||
79 | /* driver callback function */ | ||
80 | void *stats_cbarg; | ||
81 | /* *!< user callback arg */ | ||
82 | }; | 83 | }; |
83 | 84 | ||
84 | #define BFA_PORT_MOD(__bfa) (&(__bfa)->modules.pport) | 85 | #define BFA_FCPORT_MOD(__bfa) (&(__bfa)->modules.fcport) |
85 | 86 | ||
86 | /* | 87 | /* |
87 | * public functions | 88 | * public functions |
88 | */ | 89 | */ |
89 | void bfa_pport_isr(struct bfa_s *bfa, struct bfi_msg_s *msg); | 90 | void bfa_fcport_isr(struct bfa_s *bfa, struct bfi_msg_s *msg); |
90 | #endif /* __BFA_PORT_PRIV_H__ */ | 91 | #endif /* __BFA_PORT_PRIV_H__ */ |