Lines Matching defs:workaround
295 if (hw->workaround.disable_dump_loc) {
401 * be changes later by the adjust and workaround functions.
423 if (hw->workaround.override_fcfi) {
427 /* Must be done after the workaround setup */
443 if (hw->workaround.use_dif_sec_xri) {
821 if (hw->workaround.override_fcfi) {
1216 /* Free unregistered RPI if workaround is in force */
1217 if (hw->workaround.use_unregistered_rpi) {
1218 sli_resource_free(&hw->sli, SLI_RSRC_FCOE_RPI, hw->workaround.unregistered_rid);
1705 *value = hw->workaround.disable_ar_tgt_dif;
1717 *value = sli_get_is_sgl_chaining_capable(&hw->sli) || hw->workaround.sglc_misreported;
1726 if ((sli_get_is_sgl_chaining_capable(&hw->sli) || hw->workaround.sglc_misreported) &&
1732 if ((sli_get_is_sgl_chaining_capable(&hw->sli) || hw->workaround.sglc_misreported) &&
1741 *value = ((sli_get_is_sgl_chaining_capable(&hw->sli) || hw->workaround.sglc_misreported) &&
1745 if (hw->workaround.ignore_send_frame) {
2662 if (hw->workaround.fw_version_too_low) {
3348 * use_dif_sec_xri workaround is being used.
3456 /* BZ 161832 workaround */
3457 if (hw->workaround.use_dif_sec_xri) {
3709 * @brief Check to see if there are any BZ 161832 workaround waiting IOs
4073 if (hw->workaround.use_unregistered_rpi && (rpi == UINT32_MAX)) {
4074 rpi = hw->workaround.unregistered_rid;
4094 * If use_dif_quarantine workaround is in effect, and dif_separates then mark the
4097 if (hw->workaround.use_dif_quarantine && (hw->config.dif_mode == OCS_HW_DIF_MODE_SEPARATE) &&
4162 * If use_dif_quarantine workaround is in effect, and this is a DIF enabled IO
4165 if (hw->workaround.use_dif_quarantine && (hw->config.dif_mode == OCS_HW_DIF_MODE_SEPARATE) &&
4172 * Check for use_dif_sec_xri workaround. Note, even though the first dataphase
4178 if (hw->workaround.use_dif_sec_xri && (iparam->fcp_tgt.dif_oper != OCS_HW_DIF_OPER_DISABLED)) {
4261 } else if (hw->workaround.retain_tsend_io_length) {
6528 if (hw->workaround.disable_dump_loc) {
8247 if (hw->workaround.override_fcfi) {
8302 if (hw->workaround.override_fcfi) {
8661 if (hw->workaround.retain_tsend_io_length && !len && !status) {
12390 * This contains all hw runtime workaround code. Based on the asic type,
12391 * asic revision, and range of fw revisions, a particular workaround may be enabled.
12393 * A workaround may consist of overriding a particular HW/SLI4 value that was initialized
12399 * would have the driver look like: "if (hw->workaround.enable_xxx) then ...", rather than
12433 * @brief Internal workaround structure instance
12442 hw_workaround_e workaround;
12452 * workaround for all asic types
12511 /* BZ 181208/183914, enable this workaround for ALL revisions */
12559 * @brief Test for a workaround match
12564 * @param w Pointer to a workaround structure entry
12574 (w->fwrev_low <= hw->workaround.fwrev) &&
12575 ((w->fwrev_high == HW_FWREV_MAX) || (hw->workaround.fwrev < w->fwrev_high)));
12596 /* Initialize the workaround settings */
12597 ocs_memset(&hw->workaround, 0, sizeof(hw->workaround));
12604 hw->workaround.fwrev = parse_fw_version(hw->hw_war_version);
12606 hw->workaround.fwrev = parse_fw_version((char*) sli4->config.fw_name[0]);
12609 /* Walk the workaround list, if a match is found, then handle it */
12612 switch(w->workaround) {
12620 hw->workaround.retain_tsend_io_length = 1;
12655 hw->workaround.use_unregistered_rpi = TRUE;
12660 if (sli_resource_alloc(&hw->sli, SLI_RSRC_FCOE_RPI, &hw->workaround.unregistered_rid,
12661 &hw->workaround.unregistered_index)) {
12663 hw->workaround.use_unregistered_rpi = FALSE;
12668 hw->workaround.disable_ar_tgt_dif = TRUE;
12672 hw->workaround.disable_dump_loc = TRUE;
12676 hw->workaround.use_dif_quarantine = TRUE;
12680 hw->workaround.use_dif_sec_xri = TRUE;
12684 hw->workaround.override_fcfi = TRUE;
12689 hw->workaround.fw_version_too_low = TRUE;
12693 hw->workaround.sglc_misreported = TRUE;
12697 hw->workaround.ignore_send_frame = TRUE;
12699 } /* switch(w->workaround) */