diff options
| author | raghuram <none@none> | 2006-05-30 14:25:16 -0700 |
|---|---|---|
| committer | raghuram <none@none> | 2006-05-30 14:25:16 -0700 |
| commit | b16ac5e3f1746a8181f8128aae20bb62b347f8d8 (patch) | |
| tree | 3982e83d0315875e22ed1680851d0a94193e1a9f /usr/src | |
| parent | dc4c1217e39177d051fb3b14236ddb405fcc609a (diff) | |
| download | illumos-joyent-b16ac5e3f1746a8181f8128aae20bb62b347f8d8.tar.gz | |
6409297 SCF driver adds the XSCF versioning function
6420272 DSCP connection not recovering on s10
Diffstat (limited to 'usr/src')
| -rw-r--r-- | usr/src/uts/sun4u/opl/io/scfd/scfconf.c | 4 | ||||
| -rw-r--r-- | usr/src/uts/sun4u/opl/io/scfd/scfdscp.c | 94 | ||||
| -rw-r--r-- | usr/src/uts/sun4u/opl/io/scfd/scfhandler.c | 68 | ||||
| -rw-r--r-- | usr/src/uts/sun4u/opl/io/scfd/scfops.c | 11 | ||||
| -rw-r--r-- | usr/src/uts/sun4u/opl/io/scfd/scfparam.c | 10 | ||||
| -rw-r--r-- | usr/src/uts/sun4u/opl/io/scfd/scftimer.c | 14 | ||||
| -rw-r--r-- | usr/src/uts/sun4u/opl/sys/scfd/scfdscp.h | 2 | ||||
| -rw-r--r-- | usr/src/uts/sun4u/opl/sys/scfd/scfparam.h | 10 | ||||
| -rw-r--r-- | usr/src/uts/sun4u/opl/sys/scfd/scfsys.h | 7 | ||||
| -rw-r--r-- | usr/src/uts/sun4u/opl/sys/scfd/scftimer.h | 1 |
10 files changed, 165 insertions, 56 deletions
diff --git a/usr/src/uts/sun4u/opl/io/scfd/scfconf.c b/usr/src/uts/sun4u/opl/io/scfd/scfconf.c index c6e9e11646..4e68327421 100644 --- a/usr/src/uts/sun4u/opl/io/scfd/scfconf.c +++ b/usr/src/uts/sun4u/opl/io/scfd/scfconf.c @@ -71,9 +71,6 @@ extern int scf_dscp_ack_wait_time; extern int scf_dscp_end_wait_time; extern int scf_dscp_txbusy_time; extern int scf_dscp_callback_time; -extern int scf_shutdown_wait_time; -extern int scf_poff_wait_time; -extern int scf_halt_wait_time; /* @@ -355,6 +352,7 @@ scf_attach(dev_info_t *dip, ddi_attach_cmd_t cmd) } scf_chg_scf(statep, PATH_STAT_ACTIVE); scf_comtbl.scf_pchg_event_sub = EVENT_SUB_PCHG_WAIT; + scf_comtbl.scf_domain_event_sub = EVENT_SUB_DOMAIN_WAIT; scf_next_cmd_check(statep); } else { /* exists execute scf device */ diff --git a/usr/src/uts/sun4u/opl/io/scfd/scfdscp.c b/usr/src/uts/sun4u/opl/io/scfd/scfdscp.c index f52372f40b..c25d658402 100644 --- a/usr/src/uts/sun4u/opl/io/scfd/scfdscp.c +++ b/usr/src/uts/sun4u/opl/io/scfd/scfdscp.c @@ -63,7 +63,7 @@ void scf_dscp_end_tout(void); void scf_dscp_busy_tout(void); void scf_dscp_callback_tout(void); void scf_dscp_callback(void); -void scf_dscp_init_tout(void); +void scf_dscp_init_tout(uint8_t id); /* * Interrupt function : from scf_dscp_intr() @@ -385,6 +385,9 @@ scf_mb_fini(target_id_t target_id, mkey_t mkey) /* Change main status (D0) */ SCF_SET_STATUS(mainp, SCF_ST_CLOSE_TXEND_RECV_WAIT); + /* INIT_REQ retry timer stop */ + scf_timer_stop(mainp->timer_code); + /* TxEND(FINI) receive wait */ SC_DBG_DRV_TRACE(TC_W_SIG, __LINE__, &mainp->fini_cv, sizeof (kcondvar_t)); @@ -1447,6 +1450,13 @@ scf_dscp_init(void) mainp->rd_last = (uint16_t)(mainp->rd_maxcount - 1); mainp->rd_put = 0; mainp->rd_get = 0; + + /* Set DSCP INIT_REQ retry timer code */ + if (mainp->id == MBIF_DSCP) { + mainp->timer_code = SCF_TIMERCD_DSCP_INIT; + } else { + mainp->timer_code = SCF_TIMERCD_DKMD_INIT; + } } /* Initialize success flag ON */ @@ -1516,6 +1526,7 @@ scf_dscp_fini(void) scf_timer_stop(SCF_TIMERCD_DSCP_CALLBACK); scf_timer_stop(SCF_TIMERCD_DSCP_BUSY); scf_timer_stop(SCF_TIMERCD_DSCP_INIT); + scf_timer_stop(SCF_TIMERCD_DKMD_INIT); /* All DSC buffer release */ scf_dscp_dscbuff_free_all(); @@ -1763,7 +1774,6 @@ scf_dscp_stop(uint32_t factor) scf_timer_stop(SCF_TIMERCD_DSCP_ACK); scf_timer_stop(SCF_TIMERCD_DSCP_END); scf_timer_stop(SCF_TIMERCD_DSCP_BUSY); - scf_timer_stop(SCF_TIMERCD_DSCP_INIT); SCFDBGMSG(SCF_DBGFLAG_DSCP, SCF_FUNC_NAME ": end"); } @@ -2184,46 +2194,50 @@ scf_dscp_callback_tout(void) /* * scf_dscp_init_tout() * - * Description: INIT_REQ retray timeout performs TxREQ transmission again. + * Description: INIT_REQ retry timeout performs TxREQ transmission again. * */ void -scf_dscp_init_tout(void) +scf_dscp_init_tout(uint8_t id) { #undef SCF_FUNC_NAME #define SCF_FUNC_NAME "scf_dscp_init_tout() " + scf_dscp_main_t *mainp; /* Main table address */ scf_dscp_dsc_t *dsc_p; /* TxDSC address */ ASSERT(MUTEX_HELD(&scf_comtbl.all_mutex)); SCFDBGMSG(SCF_DBGFLAG_DSCP, SCF_FUNC_NAME ": start"); - /* Check pending send TxDSC or local control TxDSC */ - if ((scf_dscp_comtbl.tx_dsc_count == 0) && - (scf_dscp_comtbl.tx_local_use_flag == FLAG_OFF)) { - goto END_dscp_init_tout; - } + /* Get main table address */ + mainp = scf_dscp_id2mainp(id); - /* Check local control data flag */ - if (scf_dscp_comtbl.tx_local_use_flag == FLAG_OFF) { - /* Get TxDSC address */ - dsc_p = &scf_dscp_comtbl.tx_dscp[scf_dscp_comtbl.tx_get]; + /* Get TxDSC address */ + dsc_p = &scf_dscp_comtbl.tx_dscp[scf_dscp_comtbl.tx_put]; + + /* Make Tx descriptor : INIT_REQ */ + dsc_p->dinfo.base.c_flag = DSC_FLAG_DEFAULT; + dsc_p->dinfo.base.offset = DSC_OFFSET_NOTHING; + dsc_p->dinfo.base.length = 0; + dsc_p->dinfo.base.dscp_datap = NULL; + dsc_p->dinfo.bdcr.id = mainp->id & DSC_CNTL_MASK_ID; + dsc_p->dinfo.bdcr.code = DSC_CNTL_INIT_REQ; + + /* Update Tx descriptor offset */ + if (scf_dscp_comtbl.tx_put == scf_dscp_comtbl.tx_last) { + scf_dscp_comtbl.tx_put = scf_dscp_comtbl.tx_first; } else { - /* Get local data TxDSC address */ - dsc_p = &scf_dscp_comtbl.tx_dscp[scf_dscp_comtbl.tx_local]; + scf_dscp_comtbl.tx_put++; } - /* Check TxDSC status */ - if (dsc_p->status == SCF_TX_ST_TXREQ_SEND_WAIT) { - /* TxDSC status (SB2) */ - /* Call send matrix */ - scf_dscp_send_matrix(); - } + /* Update Tx descriptor count */ + scf_dscp_comtbl.tx_dsc_count++; -/* - * END_dscp_init_tout - */ -END_dscp_init_tout: + /* Change TxDSC status (SB2) */ + SCF_SET_DSC_STATUS(dsc_p, SCF_TX_ST_TXREQ_SEND_WAIT); + + /* Call send matrix */ + scf_dscp_send_matrix(); SCFDBGMSG(SCF_DBGFLAG_DSCP, SCF_FUNC_NAME ": end"); } @@ -2519,15 +2533,8 @@ scf_dscp_txend_recv(scf_state_t *statep) /* Check main status */ if (mainp->status == SCF_ST_EST_TXEND_RECV_WAIT) { - /* TxREQ busy timer start */ - scf_timer_start(SCF_TIMERCD_DSCP_INIT); - - /* Change TxDSC status (SB2) */ - SCF_SET_DSC_STATUS(dsc_p, - SCF_TX_ST_TXREQ_SEND_WAIT); - - /* TxDSC not release */ - norel_txdsc = FLAG_ON; + /* INIT_REQ retry timer start */ + scf_timer_start(mainp->timer_code); } break; } @@ -2618,15 +2625,8 @@ scf_dscp_txend_recv(scf_state_t *statep) /* Check main status */ if (mainp->status == SCF_ST_EST_TXEND_RECV_WAIT) { - /* TxREQ busy timer start */ - scf_timer_start(SCF_TIMERCD_DSCP_INIT); - - /* Change TxDSC status (SB2) */ - SCF_SET_DSC_STATUS(dsc_p, - SCF_TX_ST_TXREQ_SEND_WAIT); - - /* TxDSC not release */ - norel_txdsc = FLAG_ON; + /* INIT_REQ retry timer start */ + scf_timer_start(mainp->timer_code); } break; } @@ -3577,11 +3577,6 @@ scf_dscp_send_matrix(void) if (timer_ret == SCF_TIMER_EXEC) { break; } - timer_ret = scf_timer_check(SCF_TIMERCD_DSCP_INIT); - /* Check INIT_REQ retry timer exec */ - if (timer_ret == SCF_TIMER_EXEC) { - break; - } /* Check SCF path status */ if (path_ret != SCF_PATH_ONLINE) { break; @@ -4310,6 +4305,9 @@ scf_dscp_event_queue(scf_dscp_main_t *mainp, scf_event_t mevent) /* Check DISC ERROR event */ if (mevent == SCF_MB_DISC_ERROR) { + /* INIT_REQ retry timer stop */ + scf_timer_stop(mainp->timer_code); + /* TxDSC buffer release */ scf_dscp_txdscbuff_free(mainp); diff --git a/usr/src/uts/sun4u/opl/io/scfd/scfhandler.c b/usr/src/uts/sun4u/opl/io/scfd/scfhandler.c index e926481551..7d7fbb3df8 100644 --- a/usr/src/uts/sun4u/opl/io/scfd/scfhandler.c +++ b/usr/src/uts/sun4u/opl/io/scfd/scfhandler.c @@ -1275,6 +1275,40 @@ scf_intr_cmdcmp_driver(scf_state_t *statep, struct scf_cmd *scfcmdp) break; } break; + + case CMD_DOMAIN_INFO: /* Domain info command */ + /* Check command return value */ + if (scfcmdp->stat0 != NORMAL_END) { + switch (scfcmdp->stat0) { + case BUF_FUL: + case RCI_BUSY: + case E_NOT_SUPPORT: + case E_PARAM: + case E_RCI_ACCESS: + case RCI_NS: + scf_comtbl.scf_domain_event_sub = + EVENT_SUB_NONE; + break; + + default: + /* INTERFACE */ + /* E_SCFC_NOPATH */ + /* Rx DATA SUM ERROR */ + scf_comtbl.scf_domain_event_sub = + EVENT_SUB_DOMAIN_WAIT; + + /* Set command retry send flag */ + scf_comtbl.scf_cmd_resend_req |= RESEND_DOMAIN; + break; + } + break; + } + + /* Set XSCF version */ + scf_xscf_comif_version = (ushort_t)(statep->reg_rdata[3] >> 8); + + scf_comtbl.scf_domain_event_sub = EVENT_SUB_NONE; + break; } SCFDBGMSG(SCF_DBGFLAG_SYS, SCF_FUNC_NAME ": end"); @@ -1692,6 +1726,8 @@ scf_status_change(scf_state_t *statep) scf_comtbl.scf_cmd_exec_flag = 0; } + scf_comtbl.scf_domain_event_sub = EVENT_SUB_DOMAIN_WAIT; + /* Check Alive check exec */ if (scf_comtbl.alive_running == SCF_ALIVE_START) { scf_comtbl.scf_alive_event_sub = @@ -1940,6 +1976,28 @@ scf_next_cmd_check(scf_state_t *statep) } } + if ((scf_comtbl.scf_cmd_exec_flag == 0) && + (scf_comtbl.scf_domain_event_sub == EVENT_SUB_DOMAIN_WAIT)) { + /* Send Option disp command */ + scfcmdp->cmd = CMD_DOMAIN_INFO; + scfcmdp->subcmd = SUB_OPTION_DISP; + bzero((void *)&scf_comtbl.scf_sbuf[0], SCF_S_CNT_16); + scf_comtbl.scf_sbuf[13] = + (uchar_t)(scf_scfd_comif_version >> 8); + scf_comtbl.scf_sbuf[14] = (uchar_t)scf_scfd_comif_version; + scfcmdp->sbuf = &scf_comtbl.scf_sbuf[0]; + scfcmdp->scount = SCF_S_CNT_15; + scfcmdp->rbuf = &scf_comtbl.scf_rbuf[0]; + scfcmdp->rcount = SCF_S_CNT_15; + scfcmdp->flag = SCF_USE_SSBUF; + if ((scf_comtbl.scf_cmd_resend_req & RESEND_DOMAIN) != 0) { + scf_comtbl.scf_cmd_resend_flag = 1; + scf_comtbl.scf_cmd_resend_req &= ~RESEND_DOMAIN; + } + scf_i_send_cmd(scfcmdp, statep); + scf_comtbl.scf_domain_event_sub = EVENT_SUB_DOMAIN_EXEC; + } + if (scf_comtbl.scf_cmd_exec_flag == 0) { /* Check alive check request */ if (scf_comtbl.scf_alive_event_sub == EVENT_SUB_ALST_WAIT) { @@ -2223,6 +2281,8 @@ scf_online_wait_tout(void) scf_comtbl.scf_cmd_exec_flag = 0; } + scf_comtbl.scf_domain_event_sub = EVENT_SUB_DOMAIN_WAIT; + /* Next command send check */ scf_next_cmd_check(statep); @@ -3447,6 +3507,14 @@ scf_cmdwait_status_set(void) break; } + /* Set command wait status */ + if (scf_comtbl.scf_domain_event_sub == EVENT_SUB_DOMAIN_EXEC) { + scf_comtbl.scf_domain_event_sub = EVENT_SUB_DOMAIN_WAIT; + + /* Set command retry send flag */ + scf_comtbl.scf_cmd_resend_req |= RESEND_DOMAIN; + } + if (scf_comtbl.scf_cmd_exec_flag) { if (scf_comtbl.cmd_end_wait) { /* Set command retry send flag */ diff --git a/usr/src/uts/sun4u/opl/io/scfd/scfops.c b/usr/src/uts/sun4u/opl/io/scfd/scfops.c index f671679beb..dd07f4dd3e 100644 --- a/usr/src/uts/sun4u/opl/io/scfd/scfops.c +++ b/usr/src/uts/sun4u/opl/io/scfd/scfops.c @@ -888,15 +888,19 @@ scf_ioc_optiondisp(intptr_t arg, int mode, int *rval_p, int u_mode) int ret = 0; struct scf_cmd scf_cmd; scfoption_t scfoption; + scf_short_buffer_t sbuf; SCFDBGMSG(SCF_DBGFLAG_IOCTL, SCF_FUNC_NAME ": start"); bzero((void *)&scfoption, sizeof (scfoption_t)); + bzero((void *)&sbuf.b[0], SCF_S_CNT_16); scf_cmd.cmd = CMD_DOMAIN_INFO; scf_cmd.subcmd = SUB_OPTION_DISP; - scf_cmd.sbuf = 0; - scf_cmd.scount = 0; + sbuf.b[13] = (uchar_t)(scf_scfd_comif_version >> 8); + sbuf.b[14] = (uchar_t)scf_scfd_comif_version; + scf_cmd.sbuf = &sbuf.b[0]; + scf_cmd.scount = SCF_S_CNT_15; scf_cmd.rbuf = &scfoption.rbuf[0]; scf_cmd.rcount = SCF_S_CNT_15; scf_cmd.flag = SCF_USE_SSBUF; @@ -908,6 +912,9 @@ scf_ioc_optiondisp(intptr_t arg, int mode, int *rval_p, int u_mode) mutex_exit(&scf_comtbl.all_mutex); if (ret == 0) { + /* Set XSCF version */ + bcopy((void *)&scfoption.rbuf[13], + (void *)&scf_xscf_comif_version, 2); if (ddi_copyout((void *)&scfoption, (void *)arg, sizeof (scfoption_t), mode) != 0) { diff --git a/usr/src/uts/sun4u/opl/io/scfd/scfparam.c b/usr/src/uts/sun4u/opl/io/scfd/scfparam.c index d1cadc0598..474d49837a 100644 --- a/usr/src/uts/sun4u/opl/io/scfd/scfparam.c +++ b/usr/src/uts/sun4u/opl/io/scfd/scfparam.c @@ -113,6 +113,16 @@ caddr_t scf_avail_cmd_reg_vaddr = 0; /* SCF Command register address */ int scf_dm_secure_mode = 0; /* secure mode */ /* + * SCF driver version interface + */ +ushort_t scf_scfd_comif_version = 0x0000; /* SCF driver version */ + +/* + * XSCF version interface + */ +ushort_t scf_xscf_comif_version = 0xffff; /* XSCF version */ + +/* * ioctl control value and flag */ int scf_save_hac_flag = 0; /* Host address disp flag */ diff --git a/usr/src/uts/sun4u/opl/io/scfd/scftimer.c b/usr/src/uts/sun4u/opl/io/scfd/scftimer.c index 3a20c808d4..b9224a5cd1 100644 --- a/usr/src/uts/sun4u/opl/io/scfd/scftimer.c +++ b/usr/src/uts/sun4u/opl/io/scfd/scftimer.c @@ -34,6 +34,7 @@ #include <sys/sunddi.h> #include <sys/scfd/scfparam.h> +#include <sys/scfd/scfdscp.h> /* * Timer control table and control flag @@ -88,7 +89,7 @@ extern void scf_dscp_end_tout(void); extern void scf_dscp_busy_tout(void); extern void scf_dscp_callback_tout(void); extern void scf_report_send_wait_tout(void); -extern void scf_dscp_init_tout(void); +extern void scf_dscp_init_tout(uint8_t id); /* * scf_timer_init() @@ -152,6 +153,10 @@ scf_timer_init(void) scf_timer[SCF_TIMERCD_DSCP_INIT].tbl[0].code = SCF_TIMERCD_DSCP_INIT; scf_timer[SCF_TIMERCD_DSCP_INIT].tbl[1].code = SCF_TIMERCD_DSCP_INIT; + scf_timer[SCF_TIMERCD_DKMD_INIT].value = scf_dscp_init_time; + scf_timer[SCF_TIMERCD_DKMD_INIT].tbl[0].code = SCF_TIMERCD_DKMD_INIT; + scf_timer[SCF_TIMERCD_DKMD_INIT].tbl[1].code = SCF_TIMERCD_DKMD_INIT; + SCFDBGMSG(SCF_DBGFLAG_TIMER, SCF_FUNC_NAME ": end"); } @@ -446,7 +451,12 @@ scf_tout(void *arg) case SCF_TIMERCD_DSCP_INIT: /* DSCP INIT_REQ retry timeout */ - scf_dscp_init_tout(); + scf_dscp_init_tout(MBIF_DSCP); + break; + + case SCF_TIMERCD_DKMD_INIT: + /* DKMD INIT_REQ retry timeout */ + scf_dscp_init_tout(MBIF_DKMD); break; default: diff --git a/usr/src/uts/sun4u/opl/sys/scfd/scfdscp.h b/usr/src/uts/sun4u/opl/sys/scfd/scfdscp.h index 1d8c8cc740..15347392b8 100644 --- a/usr/src/uts/sun4u/opl/sys/scfd/scfdscp.h +++ b/usr/src/uts/sun4u/opl/sys/scfd/scfdscp.h @@ -162,6 +162,8 @@ typedef struct scf_dscp_main { uint16_t rd_last; /* Recv data last */ uint16_t rd_put; /* Recv data put */ uint16_t rd_get; /* Recv data get */ + + uint_t timer_code; /* DSCP INIT_REQ timer code */ } scf_dscp_main_t; /* diff --git a/usr/src/uts/sun4u/opl/sys/scfd/scfparam.h b/usr/src/uts/sun4u/opl/sys/scfd/scfparam.h index b5f1dd7bdd..457cc5cda8 100644 --- a/usr/src/uts/sun4u/opl/sys/scfd/scfparam.h +++ b/usr/src/uts/sun4u/opl/sys/scfd/scfparam.h @@ -116,6 +116,16 @@ extern caddr_t scf_avail_cmd_reg_vaddr; /* SCF Command register address */ extern int scf_dm_secure_mode; /* secure mode */ /* + * SCF driver version interface + */ +extern ushort_t scf_scfd_comif_version; /* SCF driver version */ + +/* + * XSCF version interface + */ +extern ushort_t scf_xscf_comif_version; /* XSCF version */ + +/* * ioctl control value and flag */ extern int scf_save_hac_flag; /* Host address disp flag */ diff --git a/usr/src/uts/sun4u/opl/sys/scfd/scfsys.h b/usr/src/uts/sun4u/opl/sys/scfd/scfsys.h index df943a6826..3e4e4742a4 100644 --- a/usr/src/uts/sun4u/opl/sys/scfd/scfsys.h +++ b/usr/src/uts/sun4u/opl/sys/scfd/scfsys.h @@ -48,7 +48,7 @@ extern "C" { #define FLAG_ON (1) #define FLAG_OFF (0) -#define SCF_DRIVER_VERSION "SCF driver 1.6" +#define SCF_DRIVER_VERSION "SCF driver 1.7" #define SCF_DRIVER_NAME "scfd" #define SCF_DEVICE_NAME "scfc" @@ -732,6 +732,7 @@ typedef struct scf_comtbl { uint_t scf_shut_event_sub; /* SHUTDOWN event status */ uint_t scf_alive_event_sub; /* ALIVE event status */ uint_t scf_report_event_sub; /* REPORT processing status */ + uint_t scf_domain_event_sub; /* Domain processing status */ /* SCF command control */ scf_cmd_t *scf_cmdp; /* SCF command table address */ @@ -839,6 +840,9 @@ typedef struct scf_comtbl { #define EVENT_SUB_REPORT_RUN_EXEC 2 /* Report (runnning) send exec */ #define EVENT_SUB_REPORT_SHUT_WAIT 3 /* Report (shutdown) send wait */ #define EVENT_SUB_REPORT_SHOT_EXEC 4 /* Report (shutdown) send exec */ +/* (scf_domain_event_sub) Domain processing status */ +#define EVENT_SUB_DOMAIN_WAIT 1 /* Domain info command wait */ +#define EVENT_SUB_DOMAIN_EXEC 2 /* Domain info command exec */ /* (scf_last_report) define */ #define NOT_SEND_REPORT 0xffffffff /* Not report send */ @@ -852,6 +856,7 @@ typedef struct scf_comtbl { #define RESEND_ALSP (1 << 5) /* Alive check command (stop) */ #define RESEND_REPORT_RUN (1 << 6) /* Report command (system running) */ #define RESEND_REPORT_SHUT (1 << 7) /* Report command (shutdown start) */ +#define RESEND_DOMAIN (1 << 8) /* Domain info command */ #ifdef __cplusplus } diff --git a/usr/src/uts/sun4u/opl/sys/scfd/scftimer.h b/usr/src/uts/sun4u/opl/sys/scfd/scftimer.h index 1314deb5c9..6869860d93 100644 --- a/usr/src/uts/sun4u/opl/sys/scfd/scftimer.h +++ b/usr/src/uts/sun4u/opl/sys/scfd/scftimer.h @@ -46,6 +46,7 @@ typedef enum { SCF_TIMERCD_BUF_FUL, /* SCF command BUF_FUL retry timer */ SCF_TIMERCD_RCI_BUSY, /* SCF command RCI_BUSY retry timer */ SCF_TIMERCD_DSCP_INIT, /* DSCP INIT_REQ retry timer */ + SCF_TIMERCD_DKMD_INIT, /* DKMD INIT_REQ retry timer */ SCF_TIMERCD_MAX /* Max timer code */ } scf_tm_code_t; |
