mrb
DECLARE_2681_FIELD(mrb);
u8 d8, mrb; /* Mode register 1/2 (b) */
u8 d8, mrb; /* Mode register 1/2 (b) */
struct mrb *active_mrb_array[MAX_MRB];
static struct mrb *qla4xxx_get_new_mrb(struct scsi_qla_host *ha)
struct mrb *mrb;
mrb = kzalloc_obj(*mrb);
if (!mrb)
return mrb;
mrb->ha = ha;
return mrb;
static int qla4xxx_send_mbox_iocb(struct scsi_qla_host *ha, struct mrb *mrb,
rval = qla4xxx_get_req_pkt(ha, (struct queue_entry **) &(mrb->mbox));
mrb->iocb_cnt = 1;
ha->active_mrb_array[index] = mrb;
mrb->mbox->handle = index;
mrb->mbox->hdr.entryType = ET_MBOX_CMD;
mrb->mbox->hdr.entryCount = mrb->iocb_cnt;
memcpy(mrb->mbox->in_mbox, in_mbox, 32);
mrb->mbox_cmd = in_mbox[0];
ha->iocb_cnt += mrb->iocb_cnt;
struct mrb *mrb = NULL;
mrb = qla4xxx_get_new_mrb(ha);
if (!mrb) {
mrb->pid = pid;
rval = qla4xxx_send_mbox_iocb(ha, mrb, in_mbox);
kfree(mrb);
static struct mrb *qla4xxx_del_mrb_from_active_array(struct scsi_qla_host *ha,
struct mrb *mrb = NULL;
return mrb;
mrb = ha->active_mrb_array[index];
if (!mrb)
return mrb;
ha->iocb_cnt -= mrb->iocb_cnt;
return mrb;
struct mrb *mrb;
mrb = qla4xxx_del_mrb_from_active_array(ha,
if (mrb == NULL) {
switch (mrb->mbox_cmd) {
__func__, mrb->mbox_cmd,
qla4xxx_post_ping_evt_work(ha, status, mrb->pid, data_size,
"0x%x\n", __func__, mrb->mbox_cmd));
kfree(mrb);
u32 mrb = 0;
mrb |= MCHP_I2SMCC_MRB_CLKSEL_INT;
mrb |= MCHP_I2SMCC_MRB_CRAMODE_REGULAR;
mrb |= MCHP_I2SMCC_MRB_DMACHUNK(maxburst);
mrb |= MCHP_I2SMCC_MRB_FIFOEN;
if (mra != mra_cur || mrb != mrb_cur)
return regmap_write(dev->regmap, MCHP_I2SMCC_MRB, mrb);