3004 * anticipation of a PLOGI via the driver from the upper layers.
3005 * Upon reciept of said PLOGI the driver issues an ELS PLOGI
3006 * pass-through command and the firmware assumes the s_id
3007 * and the N_Port assumes the d_id and Bob's your uncle.
3008 */
3009
3010 /*
3011 * In N port 2 N port topology the FW provides a port database entry at
3012 * loop_id 0x7fe which allows us to acquire the Ports WWPN.
3013 */
3014 tq->d_id.b.al_pa = 0;
3015 tq->d_id.b.area = 0;
3016 tq->d_id.b.domain = 0;
3017 tq->loop_id = 0x7fe;
3018
3019 rval = ql_get_port_database(ha, tq, PDF_NONE);
3020 if (rval == QL_SUCCESS || rval == QL_NOT_LOGGED_IN) {
3021 ql_dev_id_list_t *list;
3022 uint32_t list_size;
3023 ql_mbx_data_t mr;
3024 port_id_t d_id = {0, 0, 0, 0};
3025 uint16_t loop_id = 0;
3026
3027 cb_port_name = (uint8_t *)(CFG_IST(ha, CFG_CTRL_24258081) ?
3028 &ha->init_ctrl_blk.cb24.port_name[0] :
3029 &ha->init_ctrl_blk.cb.port_name[0]);
3030
3031 if ((ql_wwn_cmp(ha, (la_wwn_t *)&tq->port_name[0],
3032 (la_wwn_t *)cb_port_name) == 1)) {
3033 EL(ha, "target port has N_Port login initiative\n");
3034 } else {
3035 EL(ha, "host port has N_Port login initiative\n");
3036 }
3037
3038 /* Capture the N Ports WWPN */
3039
3040 bcopy((void *)&tq->port_name[0],
3041 (void *)&ha->n_port->port_name[0], 8);
3042 bcopy((void *)&tq->node_name[0],
3043 (void *)&ha->n_port->node_name[0], 8);
3044
|
3004 * anticipation of a PLOGI via the driver from the upper layers.
3005 * Upon reciept of said PLOGI the driver issues an ELS PLOGI
3006 * pass-through command and the firmware assumes the s_id
3007 * and the N_Port assumes the d_id and Bob's your uncle.
3008 */
3009
3010 /*
3011 * In N port 2 N port topology the FW provides a port database entry at
3012 * loop_id 0x7fe which allows us to acquire the Ports WWPN.
3013 */
3014 tq->d_id.b.al_pa = 0;
3015 tq->d_id.b.area = 0;
3016 tq->d_id.b.domain = 0;
3017 tq->loop_id = 0x7fe;
3018
3019 rval = ql_get_port_database(ha, tq, PDF_NONE);
3020 if (rval == QL_SUCCESS || rval == QL_NOT_LOGGED_IN) {
3021 ql_dev_id_list_t *list;
3022 uint32_t list_size;
3023 ql_mbx_data_t mr;
3024 port_id_t d_id = {{{0, 0, 0}, 0}};
3025 uint16_t loop_id = 0;
3026
3027 cb_port_name = (uint8_t *)(CFG_IST(ha, CFG_CTRL_24258081) ?
3028 &ha->init_ctrl_blk.cb24.port_name[0] :
3029 &ha->init_ctrl_blk.cb.port_name[0]);
3030
3031 if ((ql_wwn_cmp(ha, (la_wwn_t *)&tq->port_name[0],
3032 (la_wwn_t *)cb_port_name) == 1)) {
3033 EL(ha, "target port has N_Port login initiative\n");
3034 } else {
3035 EL(ha, "host port has N_Port login initiative\n");
3036 }
3037
3038 /* Capture the N Ports WWPN */
3039
3040 bcopy((void *)&tq->port_name[0],
3041 (void *)&ha->n_port->port_name[0], 8);
3042 bcopy((void *)&tq->node_name[0],
3043 (void *)&ha->n_port->node_name[0], 8);
3044
|