Lines Matching refs:vnicc
1148 QETH_CARD_HEX(card, 2, &card->options.vnicc.sup_chars,
1149 sizeof(card->options.vnicc.sup_chars));
1910 struct qeth_ipacmd_vnicc *rep = &cmd->data.vnicc;
1911 u32 sub_cmd = cmd->data.vnicc.hdr.sub_command;
1917 card->options.vnicc.sup_chars = rep->vnicc_cmds.supported;
1918 card->options.vnicc.cur_chars = rep->vnicc_cmds.enabled;
1941 hdr = &__ipa_cmd(iob)->data.vnicc.hdr;
1972 __ipa_cmd(iob)->data.vnicc.data.query_cmds.vnic_char = vnic_char;
1988 __ipa_cmd(iob)->data.vnicc.data.set_char.vnic_char = vnic_char;
1994 static int qeth_l2_vnicc_getset_timeout(struct qeth_card *card, u32 vnicc,
2006 getset_timeout = &__ipa_cmd(iob)->data.vnicc.data.getset_timeout;
2007 getset_timeout->vnic_char = vnicc;
2016 static bool qeth_l2_vnicc_recover_timeout(struct qeth_card *card, u32 vnicc,
2019 if (card->options.vnicc.sup_chars & vnicc &&
2020 card->options.vnicc.getset_timeout_sup & vnicc &&
2021 !qeth_l2_vnicc_getset_timeout(card, vnicc, IPA_VNICC_SET_TIMEOUT,
2029 int qeth_l2_vnicc_set_state(struct qeth_card *card, u32 vnicc, bool state)
2037 if (!(card->options.vnicc.sup_chars & vnicc) ||
2038 !(card->options.vnicc.set_char_sup & vnicc))
2047 card->options.vnicc.wanted_chars |= vnicc;
2050 card->options.vnicc.wanted_chars &= ~vnicc;
2054 if (card->options.vnicc.cur_chars == card->options.vnicc.wanted_chars)
2060 card->options.vnicc.cur_chars |= vnicc;
2062 card->options.vnicc.cur_chars &= ~vnicc;
2066 rc = qeth_l2_vnicc_set_char(card, vnicc, cmd);
2068 card->options.vnicc.wanted_chars =
2069 card->options.vnicc.cur_chars;
2072 if (state && vnicc == QETH_VNICC_RX_BCAST)
2073 card->options.vnicc.rx_bcast_enabled = true;
2074 if (!state && vnicc == QETH_VNICC_LEARNING)
2075 qeth_l2_vnicc_recover_timeout(card, vnicc,
2076 &card->options.vnicc.learning_timeout);
2083 int qeth_l2_vnicc_get_state(struct qeth_card *card, u32 vnicc, bool *state)
2090 if (!(card->options.vnicc.sup_chars & vnicc))
2100 *state = (card->options.vnicc.cur_chars & vnicc) ? true : false;
2114 if (!(card->options.vnicc.sup_chars & QETH_VNICC_LEARNING) ||
2115 !(card->options.vnicc.getset_timeout_sup & QETH_VNICC_LEARNING))
2122 if (card->options.vnicc.learning_timeout == timeout)
2127 card->options.vnicc.learning_timeout = timeout;
2135 card->options.vnicc.learning_timeout = timeout;
2150 if (!(card->options.vnicc.sup_chars & QETH_VNICC_LEARNING) ||
2151 !(card->options.vnicc.getset_timeout_sup & QETH_VNICC_LEARNING))
2158 *timeout = card->options.vnicc.learning_timeout;
2170 if (!card->options.vnicc.sup_chars)
2175 if (card->options.vnicc.cur_chars == QETH_VNICC_DEFAULT) {
2176 if (!card->options.vnicc.rx_bcast_enabled ||
2199 static bool qeth_l2_vnicc_recover_char(struct qeth_card *card, u32 vnicc,
2204 if (card->options.vnicc.sup_chars & vnicc &&
2205 card->options.vnicc.set_char_sup & vnicc &&
2206 !qeth_l2_vnicc_set_char(card, vnicc, cmd))
2208 card->options.vnicc.wanted_chars &= ~vnicc;
2209 card->options.vnicc.wanted_chars |= QETH_VNICC_DEFAULT & vnicc;
2216 u32 *timeout = &card->options.vnicc.learning_timeout;
2220 u32 sup_cmds, vnicc;
2224 card->options.vnicc.rx_bcast_enabled = 0;
2227 if (card->options.vnicc.wanted_chars != QETH_VNICC_DEFAULT ||
2231 card->options.vnicc.sup_chars = 0;
2232 card->options.vnicc.cur_chars = 0;
2233 card->options.vnicc.wanted_chars = QETH_VNICC_DEFAULT;
2237 chars_tmp = card->options.vnicc.sup_chars;
2238 chars_len = sizeof(card->options.vnicc.sup_chars) * BITS_PER_BYTE;
2240 vnicc = BIT(i);
2241 if (qeth_l2_vnicc_query_cmds(card, vnicc, &sup_cmds)) {
2247 card->options.vnicc.getset_timeout_sup |= vnicc;
2249 card->options.vnicc.getset_timeout_sup &= ~vnicc;
2252 card->options.vnicc.set_char_sup |= vnicc;
2254 card->options.vnicc.set_char_sup &= ~vnicc;
2260 chars_tmp = card->options.vnicc.wanted_chars ^
2261 card->options.vnicc.cur_chars;
2262 chars_len = sizeof(card->options.vnicc.wanted_chars) * BITS_PER_BYTE;
2264 vnicc = BIT(i);
2265 enable = card->options.vnicc.wanted_chars & vnicc;
2266 error |= qeth_l2_vnicc_recover_char(card, vnicc, enable);
2276 card->options.vnicc.sup_chars = QETH_VNICC_ALL;
2277 card->options.vnicc.cur_chars = QETH_VNICC_DEFAULT;
2278 card->options.vnicc.learning_timeout = QETH_VNICC_DEFAULT_TIMEOUT;
2280 card->options.vnicc.set_char_sup = QETH_VNICC_ALL;
2281 card->options.vnicc.getset_timeout_sup = QETH_VNICC_LEARNING;
2283 card->options.vnicc.wanted_chars = QETH_VNICC_DEFAULT;