• Home
  • Raw
  • Download

Lines Matching +full:common +full:- +full:mode

1 // SPDX-License-Identifier: GPL-2.0-or-later
19 #include "ncsi-pkt.h"
44 h->mc_id = 0; in ncsi_cmd_build_header()
45 h->revision = NCSI_PKT_REVISION; in ncsi_cmd_build_header()
46 h->reserved = 0; in ncsi_cmd_build_header()
47 h->id = nca->id; in ncsi_cmd_build_header()
48 h->type = nca->type; in ncsi_cmd_build_header()
49 h->channel = NCSI_TO_CHANNEL(nca->package, in ncsi_cmd_build_header()
50 nca->channel); in ncsi_cmd_build_header()
51 h->length = htons(nca->payload); in ncsi_cmd_build_header()
52 h->reserved1[0] = 0; in ncsi_cmd_build_header()
53 h->reserved1[1] = 0; in ncsi_cmd_build_header()
57 sizeof(*h) + nca->payload); in ncsi_cmd_build_header()
59 ALIGN(nca->payload, 4)); in ncsi_cmd_build_header()
69 ncsi_cmd_build_header(&cmd->cmd.common, nca); in ncsi_cmd_handler_default()
80 cmd->hw_arbitration = nca->bytes[0]; in ncsi_cmd_handler_sp()
81 ncsi_cmd_build_header(&cmd->cmd.common, nca); in ncsi_cmd_handler_sp()
92 cmd->ald = nca->bytes[0]; in ncsi_cmd_handler_dc()
93 ncsi_cmd_build_header(&cmd->cmd.common, nca); in ncsi_cmd_handler_dc()
104 ncsi_cmd_build_header(&cmd->cmd.common, nca); in ncsi_cmd_handler_rc()
115 cmd->mc_id = nca->bytes[0]; in ncsi_cmd_handler_ae()
116 cmd->mode = htonl(nca->dwords[1]); in ncsi_cmd_handler_ae()
117 ncsi_cmd_build_header(&cmd->cmd.common, nca); in ncsi_cmd_handler_ae()
128 cmd->mode = htonl(nca->dwords[0]); in ncsi_cmd_handler_sl()
129 cmd->oem_mode = htonl(nca->dwords[1]); in ncsi_cmd_handler_sl()
130 ncsi_cmd_build_header(&cmd->cmd.common, nca); in ncsi_cmd_handler_sl()
141 cmd->vlan = htons(nca->words[1]); in ncsi_cmd_handler_svf()
142 cmd->index = nca->bytes[6]; in ncsi_cmd_handler_svf()
143 cmd->enable = nca->bytes[7]; in ncsi_cmd_handler_svf()
144 ncsi_cmd_build_header(&cmd->cmd.common, nca); in ncsi_cmd_handler_svf()
155 cmd->mode = nca->bytes[3]; in ncsi_cmd_handler_ev()
156 ncsi_cmd_build_header(&cmd->cmd.common, nca); in ncsi_cmd_handler_ev()
169 cmd->mac[i] = nca->bytes[i]; in ncsi_cmd_handler_sma()
170 cmd->index = nca->bytes[6]; in ncsi_cmd_handler_sma()
171 cmd->at_e = nca->bytes[7]; in ncsi_cmd_handler_sma()
172 ncsi_cmd_build_header(&cmd->cmd.common, nca); in ncsi_cmd_handler_sma()
183 cmd->mode = htonl(nca->dwords[0]); in ncsi_cmd_handler_ebf()
184 ncsi_cmd_build_header(&cmd->cmd.common, nca); in ncsi_cmd_handler_ebf()
195 cmd->mode = htonl(nca->dwords[0]); in ncsi_cmd_handler_egmf()
196 ncsi_cmd_build_header(&cmd->cmd.common, nca); in ncsi_cmd_handler_egmf()
207 cmd->mode = nca->bytes[0]; in ncsi_cmd_handler_snfc()
208 ncsi_cmd_build_header(&cmd->cmd.common, nca); in ncsi_cmd_handler_snfc()
219 /* NC-SI spec DSP_0222_1.2.0, section 8.2.2.2 in ncsi_cmd_handler_oem()
221 * 32-bit boundary before the checksum field. in ncsi_cmd_handler_oem()
226 payload = ALIGN(nca->payload, 4); in ncsi_cmd_handler_oem()
231 memcpy(&cmd->mfr_id, nca->data, nca->payload); in ncsi_cmd_handler_oem()
232 ncsi_cmd_build_header(&cmd->cmd.common, nca); in ncsi_cmd_handler_oem()
270 { NCSI_PKT_CMD_OEM, -1, ncsi_cmd_handler_oem },
277 struct ncsi_dev_priv *ndp = nca->ndp; in ncsi_alloc_command()
278 struct ncsi_dev *nd = &ndp->ndev; in ncsi_alloc_command()
279 struct net_device *dev = nd->dev; in ncsi_alloc_command()
281 int tlen = dev->needed_tailroom; in ncsi_alloc_command()
287 nr = ncsi_alloc_request(ndp, nca->req_flags); in ncsi_alloc_command()
291 /* NCSI command packet has 16-bytes header, payload, 4 bytes checksum. in ncsi_alloc_command()
293 * aligned to 32-bit boundary. in ncsi_alloc_command()
298 payload = ALIGN(nca->payload, 4); in ncsi_alloc_command()
308 nr->cmd = skb; in ncsi_alloc_command()
312 skb->dev = dev; in ncsi_alloc_command()
313 skb->protocol = htons(ETH_P_NCSI); in ncsi_alloc_command()
327 if (nca->req_flags == NCSI_REQ_FLAG_NETLINK_DRIVEN) in ncsi_xmit_cmd()
330 type = nca->type; in ncsi_xmit_cmd()
345 netdev_err(nca->ndp->ndev.dev, in ncsi_xmit_cmd()
346 "Cannot send packet with type 0x%02x\n", nca->type); in ncsi_xmit_cmd()
347 return -ENOENT; in ncsi_xmit_cmd()
355 if (nch->payload >= 0) in ncsi_xmit_cmd()
356 nca->payload = nch->payload; in ncsi_xmit_cmd()
359 return -ENOMEM; in ncsi_xmit_cmd()
362 if (nca->req_flags == NCSI_REQ_FLAG_NETLINK_DRIVEN) { in ncsi_xmit_cmd()
363 nr->snd_seq = nca->info->snd_seq; in ncsi_xmit_cmd()
364 nr->snd_portid = nca->info->snd_portid; in ncsi_xmit_cmd()
365 nr->nlhdr = *nca->info->nlhdr; in ncsi_xmit_cmd()
369 nca->id = nr->id; in ncsi_xmit_cmd()
370 ret = nch->handler(nr->cmd, nca); in ncsi_xmit_cmd()
377 eh = skb_push(nr->cmd, sizeof(*eh)); in ncsi_xmit_cmd()
378 eh->h_proto = htons(ETH_P_NCSI); in ncsi_xmit_cmd()
379 eth_broadcast_addr(eh->h_dest); in ncsi_xmit_cmd()
385 if (nca->ndp->gma_flag == 1) in ncsi_xmit_cmd()
386 memcpy(eh->h_source, nca->ndp->ndev.dev->dev_addr, ETH_ALEN); in ncsi_xmit_cmd()
388 eth_broadcast_addr(eh->h_source); in ncsi_xmit_cmd()
394 nr->enabled = true; in ncsi_xmit_cmd()
395 mod_timer(&nr->timer, jiffies + 1 * HZ); in ncsi_xmit_cmd()
398 skb_get(nr->cmd); in ncsi_xmit_cmd()
399 ret = dev_queue_xmit(nr->cmd); in ncsi_xmit_cmd()