From: Arnd Bergmann <arnd@arndb.de>
To: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: viresh kumar <viresh.kumar@linaro.org>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Vinod Koul <vinod.koul@intel.com>,
linux-kernel@vger.kernel.org,
Heikki Krogerus <heikki.krogerus@linux.intel.com>,
"spear-devel" <spear-devel@list.st.com>
Subject: Re: [PATCHv2 2/4] dmaengine: dw_dmac: Add PCI part of the driver
Date: Wed, 26 Sep 2012 19:41:11 +0000 [thread overview]
Message-ID: <201209261941.11944.arnd@arndb.de> (raw)
In-Reply-To: <CAHp75VcGQ9jCpGb2jhCEX4NsbUsR0aytwd1AMkt4GpTXYVPnwQ@mail.gmail.com>
On Wednesday 26 September 2012, Andy Shevchenko wrote:
> On Wed, Sep 26, 2012 at 5:33 PM, viresh kumar <viresh.kumar@linaro.org> wrote:
> > On Wed, Sep 26, 2012 at 6:10 PM, Andy Shevchenko
> > <andriy.shevchenko@linux.intel.com> wrote:
> >> diff --git a/drivers/dma/dw_dmac_pci.c b/drivers/dma/dw_dmac_pci.c
> >> +#include <linux/module.h>
> >> +#include <linux/pci.h>
> >> +#include <linux/platform_device.h>
> >> +#include <linux/dw_dmac.h>
> >> +
> >> +#define DRIVER(_is_private, _chan_order, _chan_pri) \
> >> + ((kernel_ulong_t)&(struct dw_dma_platform_data) { \
> >> + .is_private = (_is_private), \
> >> + .chan_allocation_order = (_chan_order), \
> >> + .chan_priority = (_chan_pri), \
> >
> > I believe you don't need these braces around input variables on right side
> > of "=". Even if there is something complex passed.
> Hmm... Have no idea if anyone will use robust stuff as a parameter to
> that macro. I could remove them.
IMHO It's better to leave them in as general practice in case of a macro.
However, I would prefer not having this macro at all and just open-code
the contents. If you use traditional struct initializers, the amount of
code is almost exactly the same.
>
> >> + pd = platform_device_alloc("dw_dmac", instance);
> >> + if (!pd) {
> >> + dev_err(&pdev->dev, "can't allocate dw_dmac platform device\n");
> >> + ret = -ENOMEM;
> >> + goto err0;
> >> + }
> >
> > Is this the correct approach? I doubt... We are creating a platform
> > device from a
> > pci driver... Don't know if it can lead to some issues within kernel.
> >
> > Lets call the specialist for his comments :)
> > @Arnd: Can you please help us here?
> This approach is used among different drivers in kernel. As first
> example that comes to my mind you could consider chipidea USB driver
> (drivers/usb/chipidea).
Yes, this is fine for a PCI device with multiple logical devices. You could
also use the MFD framework if that results in smaller code. For a driver
that can be either a platform device or a pci device with no other sub-devices,
I would however recommend having a common initialization function for stuff
that can be called from either bus_type but with no extra level of indirection.
Arnd
next prev parent reply other threads:[~2012-09-26 19:41 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-25 12:13 [PATCHv1 0/6] dw_dmac: split the driver and introduce PCI part Andy Shevchenko
2012-09-25 12:13 ` [PATCHv1 1/6] dmaengine: dw_dmac: Remove clk API dependency Andy Shevchenko
2012-09-26 3:42 ` viresh kumar
2012-09-26 12:33 ` Andy Shevchenko
2012-09-25 12:13 ` [PATCHv1 2/6] dmaengine: dw_dmac: add driver for Atmel AT32 Andy Shevchenko
2012-09-26 3:50 ` viresh kumar
2012-09-26 6:47 ` Andy Shevchenko
2012-09-26 6:51 ` viresh kumar
2012-09-26 6:56 ` Andy Shevchenko
2012-09-26 3:52 ` viresh kumar
2012-09-25 12:13 ` [PATCHv1 3/6] dmaengine: dw_dmac: Add PCI part of the driver Andy Shevchenko
2012-09-26 4:00 ` viresh kumar
2012-09-26 7:48 ` Andy Shevchenko
2012-09-25 12:13 ` [PATCHv1 4/6] avr32: at32ap700x: rename DMA controller Andy Shevchenko
2012-09-25 12:13 ` [PATCHv1 5/6] MAINTAINERS: fix indentation for Viresh Kumar Andy Shevchenko
2012-09-26 3:36 ` viresh kumar
2012-09-26 7:10 ` Andy Shevchenko
2012-09-25 12:13 ` [PATCHv1 6/6] MAINTAINERS: add recently created files to dw_dmac section Andy Shevchenko
2012-09-25 13:19 ` Joe Perches
2012-09-25 13:37 ` Andy Shevchenko
2012-09-25 15:33 ` Vinod Koul
2012-09-25 16:57 ` Joe Perches
2012-09-26 6:44 ` Andy Shevchenko
2012-09-26 3:39 ` viresh kumar
2012-09-26 12:40 ` [PATCHv2 0/4] dw_dmac: split the driver and introduce PCI part Andy Shevchenko
2012-09-26 12:40 ` [PATCHv2 1/4] dmaengine: dw_dmac: convert to platform driver Andy Shevchenko
2012-09-26 14:13 ` viresh kumar
2012-09-26 18:00 ` Andy Shevchenko
2012-09-27 3:47 ` viresh kumar
2012-09-26 12:40 ` [PATCHv2 2/4] dmaengine: dw_dmac: Add PCI part of the driver Andy Shevchenko
2012-09-26 14:33 ` viresh kumar
2012-09-26 17:55 ` Andy Shevchenko
2012-09-26 19:41 ` Arnd Bergmann [this message]
2012-09-27 3:53 ` viresh kumar
2012-09-27 7:41 ` Arnd Bergmann
2012-09-27 14:22 ` Vinod Koul
2012-09-27 14:42 ` Arnd Bergmann
2012-09-26 12:40 ` [PATCHv2 3/4] dma: move dw_dmac driver to an own directory Andy Shevchenko
2012-09-26 14:53 ` viresh kumar
2012-09-26 17:50 ` Andy Shevchenko
2012-09-26 12:40 ` [PATCHv2 4/4] MAINTAINERS: add recently created files to dw_dmac section Andy Shevchenko
2012-09-26 14:45 ` viresh kumar
2012-09-26 14:48 ` viresh kumar
2012-09-26 17:49 ` Andy Shevchenko
2012-09-27 6:38 ` Andy Shevchenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201209261941.11944.arnd@arndb.de \
--to=arnd@arndb.de \
--cc=andriy.shevchenko@linux.intel.com \
--cc=andy.shevchenko@gmail.com \
--cc=heikki.krogerus@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=spear-devel@list.st.com \
--cc=vinod.koul@intel.com \
--cc=viresh.kumar@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.