[RFC PATCH 2/3] mailbox: Hisilicon: add mailbox driver
Leo Yan
leo.yan at linaro.org
Tue Aug 4 01:49:30 PDT 2015
Hi Paul,
On Tue, Aug 04, 2015 at 10:30:24AM +0200, Paul Bolle wrote:
> (This RFC was part of this mornings catch of my crude mail filter. So,
> for what it's worth, what follows are a few random comments for the few
> things I'm able to spot.)
>
> On ma, 2015-08-03 at 09:13 +0800, Leo Yan wrote:
> > --- /dev/null
> > +++ b/drivers/mailbox/hisilicon/Kconfig
>
> > +config HISI_MBOX
> > + bool "Hisilicon's Mailbox"
> > + depends on ARCH_HISI || OF
>
> ARCH_HISI is available on either ARM64 or ARM. ARM64 selects OF. On ARM
> ARCH_HISI depends on ARCH_MULTIV7 which depends on ARCH_MULTIPLATFORM.
> That selects USE_OF which on its turn selects OF.
>
> So, HISI_MBOX implies OF, correct?
Exactly, will simply use "depends on ARCH_HISI".
> > + help
> > + Support for mailbox drivers on Hisilicon series of SoCs.
> > +
> > +config HI6220_MBOX
> > + tristate "Hi6220 Mailbox Controller"
> > + depends on HISI_MBOX
> > + help
> > + An implementation of the hi6220 mailbox. It is used to send message
> > + between application processors and MCU. Say Y here if you want to build
> > + the Hi6220 mailbox controller driver.
>
> > --- /dev/null
> > +++ b/drivers/mailbox/hisilicon/common.c
>
> > +int hisi_mbox_register(struct hisi_mbox_hw *mbox_hw)
> > +{
> > + [...]
> > +
> > + mbox->chan = devm_kzalloc(dev,
> > + mbox_hw->chan_num * sizeof(struct mbox_chan), GFP_KERNEL);
> > + if (!mbox)
>
> if (!mbox->chan)
Will fix.
> > + return -ENOMEM;
> > +
> > + [...]
> > +}
>
> > --- /dev/null
> > +++ b/drivers/mailbox/hisilicon/hi6220-mailbox.c
>
> > +static struct platform_driver hi6220_mbox_driver = {
> > + .driver = {
> > + [...]
> > + .of_match_table = of_match_ptr(hi6220_mbox_of_match),
>
> of_match_ptr(x) becomes NULL when CONFIG_OF is not defined. But I think
> CONFIG_OF will always be defined, see above. So of_match_ptr() isn't per
> se needed.
Will fix.
> > + },
> > + [...]
> > +};
>
> > +static int __init hi6220_mbox_init(void)
> > +{
> > + return platform_driver_register(&hi6220_mbox_driver);
> > +}
> > +module_init(hi6220_mbox_init);
> > +
> > +static void __exit hi6220_mbox_exit(void)
> > +{
> > + platform_driver_unregister(&hi6220_mbox_driver);
> > +}
> > +module_exit(hi6220_mbox_exit);
>
> This could be flattened into one line:
> module_platform_driver(hi6220_mbox_driver);
Will refine. And thanks a lot for your review.
Thanks,
Leo Yan
More information about the linux-arm-kernel
mailing list