Deleted Added
full compact
39a40
> /* $FreeBSD: head/sys/dev/oce/oce_mbox.c 231879 2012-02-17 13:55:17Z luigi $ */
41,43d41
< /* $FreeBSD: head/sys/dev/oce/oce_mbox.c 231437 2012-02-10 21:03:04Z luigi $ */
<
<
148d145
<
291a289,324
> * @brief Firmware will send gracious notifications during
> * attach only after sending first mcc commnad. We
> * use MCC queue only for getting async and mailbox
> * for sending cmds. So to get gracious notifications
> * atleast send one dummy command on mcc.
> */
> int
> oce_first_mcc_cmd(POCE_SOFTC sc)
> {
> struct oce_mbx *mbx;
> struct oce_mq *mq = sc->mq;
> struct mbx_get_common_fw_version *fwcmd;
> uint32_t reg_value;
>
> mbx = RING_GET_PRODUCER_ITEM_VA(mq->ring, struct oce_mbx);
> bzero(mbx, sizeof(struct oce_mbx));
>
> fwcmd = (struct mbx_get_common_fw_version *)&mbx->payload;
> mbx_common_req_hdr_init(&fwcmd->hdr, 0, 0,
> MBX_SUBSYSTEM_COMMON,
> OPCODE_COMMON_GET_FW_VERSION,
> MBX_TIMEOUT_SEC,
> sizeof(struct mbx_get_common_fw_version),
> OCE_MBX_VER_V0);
> mbx->u0.s.embedded = 1;
> mbx->payload_length = sizeof(struct mbx_get_common_fw_version);
> bus_dmamap_sync(mq->ring->dma.tag, mq->ring->dma.map,
> BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE);
> RING_PUT(mq->ring, 1);
> reg_value = (1 << 16) | mq->mq_id;
> OCE_WRITE_REG32(sc, db, PD_MQ_DB, reg_value);
>
> return 0;
> }
>
> /**
1330a1364
> rc = oce_mbox_post(sc, &mbx, NULL);