Lines Matching defs:mbox

42  * @mbox:	Representation of a communication channel controller
55 struct mbox_controller *mbox;
97 struct mbox_chan *sti_mbox_to_channel(struct mbox_controller *mbox,
104 for (i = 0; i < mbox->num_chans; i++) {
105 chan_info = mbox->chans[i].con_priv;
109 return &mbox->chans[i];
112 dev_err(mbox->dev,
163 struct mbox_controller *mbox = mdev->mbox;
179 chan = sti_mbox_to_channel(mbox, instance, channel);
181 dev_dbg(mbox->dev,
303 struct mbox_controller *mbox = chan_info->mdev->mbox;
306 for (i = 0; i < mbox->num_chans; i++)
307 if (chan == &mbox->chans[i])
310 if (mbox->num_chans == i) {
311 dev_warn(mbox->dev, "Request to free non-existent channel\n");
321 static struct mbox_chan *sti_mbox_xlate(struct mbox_controller *mbox,
324 struct sti_mbox_device *mdev = dev_get_drvdata(mbox->dev);
334 dev_err(mbox->dev,
340 for (i = 0; i < mbox->num_chans; i++) {
341 chan_info = mbox->chans[i].con_priv;
345 mbox->dev == chan_info->mdev->dev &&
349 dev_err(mbox->dev, "Channel in use\n");
358 chan = &mbox->chans[i];
362 dev_err(mbox->dev, "No free channels left\n");
366 chan_info = devm_kzalloc(mbox->dev, sizeof(*chan_info), GFP_KERNEL);
376 dev_info(mbox->dev,
406 struct mbox_controller *mbox;
429 ret = of_property_read_string(np, "mbox-name", &mdev->name);
433 mbox = devm_kzalloc(&pdev->dev, sizeof(*mbox), GFP_KERNEL);
434 if (!mbox)
443 mdev->mbox = mbox;
448 mbox->txdone_irq = false;
449 mbox->txdone_poll = true;
450 mbox->txpoll_period = 100;
451 mbox->ops = &sti_mbox_ops;
452 mbox->dev = mdev->dev;
453 mbox->of_xlate = sti_mbox_xlate;
454 mbox->chans = chans;
455 mbox->num_chans = STI_MBOX_CHAN_MAX;
457 ret = devm_mbox_controller_register(&pdev->dev, mbox);