On Tue, Feb 03, 2015 at 05:29:23PM +0800, Vincent Yang wrote:
> +static int mhu_send_data(struct mbox_chan *chan, void *data)
> +{
> +     struct mhu_link *mlink = chan->con_priv;
> +
> +     pr_debug("%s:%d\n", __func__, __LINE__);
> +     if (!mhu_last_tx_done(chan)) {
> +             dev_err(chan->mbox->dev, "Last TX(%d) pending!\n", mlink->irq);
> +             return -EBUSY;
> +     }
> +
> +     writel_relaxed((u32)data, mlink->tx_reg + INTR_SET_OFS);

Doesn't that cause a GCC warning?

> +static int mhu_probe(struct amba_device *adev, const struct amba_id *id)
> +{
> +     int i, err;
> +     struct arm_mhu *mhu;
> +     struct device *dev = &adev->dev;
> +     int mhu_reg[3] = {0x0, 0x20, 0x200};
> +
> +     err = amba_request_regions(adev, NULL);
> +     if (err)
> +             return err;
> +
> +     /* Allocate memory for device */
> +     mhu = devm_kzalloc(dev, sizeof(*mhu), GFP_KERNEL);
> +     if (!mhu)
> +             return -ENOMEM;
> +
> +     mhu->base = devm_ioremap(dev, adev->res.start,
> +                              resource_size(&adev->res));
> +     if (!mhu->base) {
> +             dev_err(dev, "ioremap failed\n");
> +             return -ENXIO;

        mhu->base = devm_ioremap_resource(dev, &adev->res);
        if (IS_ERR(mhu->base)) {
                dev_err(dev, "ioremap failed\n");
                return PTR_ERR(mhu->base);

> +     }
> +
> +     for (i = 0; i < 3; i++) {
> +             mhu->chan[i].con_priv = &mhu->mlink[i];
> +             mhu->mlink[i].irq = adev->irq[i];
> +             mhu->mlink[i].rx_reg = mhu->base + mhu_reg[i];
> +             mhu->mlink[i].tx_reg = mhu->mlink[i].rx_reg + 0x100;
> +     }
> +
> +     mhu->mbox.dev = dev;
> +     mhu->mbox.chans = &mhu->chan[0];
> +     mhu->mbox.num_chans = 3;
> +     mhu->mbox.ops = &mhu_ops;
> +     mhu->mbox.txdone_irq = false;
> +     mhu->mbox.txdone_poll = true;
> +     mhu->mbox.txpoll_period = 10;
> +
> +     amba_set_drvdata(adev, mhu);
> +
> +     err = mbox_controller_register(&mhu->mbox);
> +     if (err) {
> +             dev_err(dev, "Failed to register mailboxes %d\n", err);
> +             return err;
> +     }
> +
> +     dev_err(dev, "ARM MHU Mailbox registered\n");

Why is this an error?

-- 
FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
according to speedtest.net.
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to