All of lore.kernel.org
 help / color / mirror / Atom feed
From: Samuel Ortiz <sameo@openedhand.com>
To: Dmitry <dbaryshkov@gmail.com>
Cc: Ben Dooks <ben-linux@fluff.org>,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.arm.linux.org.uk
Subject: Re: [patch 4/4] MFD: Change mfd platform device usage to wrapper platform_device
Date: Fri, 11 Jul 2008 23:37:08 +0200	[thread overview]
Message-ID: <20080711213707.GA2561@sortiz.org> (raw)
In-Reply-To: <bc64b4640807090456u15d12378qe25375ce4a6cd100@mail.gmail.com>

On Wed, Jul 09, 2008 at 03:56:54PM +0400, Dmitry wrote:
> >> Basically we have two choises for the subdevice driver:
> >> 1) it doesn't know about cells at all (e.g. generic-bl, IIRC). Then we are safe
> >>    to loose that "cell" information
> >> 2) If it does use cell information (to get access to hooks), we pass it
> >>     via platform_data pointer in the mfd_cell and we are ok with it.
> >
> > Erm, that is complete non-answer. The driver model and various other
> > parts of the kernel are littered with examples of embedding one
> > structure within another to gain an C++ like object inheritance.
> >
> > I've supplied an reasonable example of doing this to create an mfd_cell
> > device from an platform_device without creating an large amount of code
> > and improving the efficiency and code-lineage in the process. I do not
> > see how this isn't "correct" or in any way breaing the current linux
> > model of doing things.
> 
> It isn't breaking it. OK. I'm leaving the decision to the MFD or ARM
> maintainers.
> And BTW, nearly the same patch was sent yesterday by me[1]. Is it an independant
> work, or did you miss my sign-off?
> 
> [1]: http://permalink.gmane.org/gmane.linux.ports.arm.kernel/44142
As Russel pointed out, both patches are broken as long as we support a
modular mfd-core (and there's no reason why we shouldnt).
So, so far, Mike's patch is the best candidate, even though the idea of
wrapping the platform device into an mfd_device sounded neater at first.

And again, this is definitely post merge window material.

Cheers,
Samuel.


> >
> >>
> >> > The current driver is being inefficent in the way it creates resources
> >> > on the stack and then calls a routine that does an kalloc/memcpy on
> >> > the resources.
> >>
> >> I don't see any inefficiency ATM.
> >>
> >> >> 2) Please examine the tmio-nand driver (was here on the list and on
> >> >> linux-mtd). It uses the mfd_cell
> >> >>    to call hooks from the "host" driver (tc6393xb, more to be added soon).
> >> >
> >> > The one posted in [1] does not call these hooks at-all, can ou please
> >> > explain why these hooks are needed in addition to the ones already
> >> > available in the platform device driver?
> >> >
> >> > [1] http://lists.infradead.org/pipermail/linux-mtd/2008-June/022137.html
> >>
> >> +
> >> +static int tmio_hw_init(struct platform_device *dev, struct tmio_nand *tmio)
> >> +{
> >> +     struct mfd_cell *cell = mfd_get_cell(dev);
> >> +     const struct resource *nfcr = NULL;
> >> +     unsigned long base;
> >> +     int i;
> >> +
> >> +     for (i = 0; i < cell->num_resources; i++)
> >> +             if (!strcmp((cell->resources+i)->name, TMIO_NAND_CONTROL))
> >> +                     nfcr = &cell->resources[i];
> >> +
> >> +     if (nfcr == NULL)
> >> +             return -ENOMEM;
> >> +
> >> +     if (cell->enable) {
> >> +             int rc = cell->enable(dev);
> >> +             if (rc)
> >> +                     return rc;
> >> +     }
> >>
> >> That cell->enable() is necessary to set up the host (in the tc6393xb
> >> case to enable buffers)
> >> to enable access to the nand.
> >
> > So, the enable/disable calls might be useful, however is there any
> > reason this could not be handled by the clock framework? The suspend/resume
> > entries where not used, and I belive should not be in here.
> 
> They should be here for exactly the same reason. They are used by the drivers
> that will be submitted later. E.g. OHCI driver needs such
> suspend/resume handling.
> 
> > As noted before, mfd_get_cell() got dropped by [2]
> >
> > [2] http://lists.arm.linux.org.uk/lurker/message/20080708.153450.bb33046d.en.html
> 
> Yes, and as I said before it will need some small modifications.
> 
> -- 
> With best wishes
> Dmitry
> 
> -------------------------------------------------------------------
> List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
> FAQ:        http://www.arm.linux.org.uk/mailinglists/faq.php
> Etiquette:  http://www.arm.linux.org.uk/mailinglists/etiquette.php

  parent reply	other threads:[~2008-07-11 21:35 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-09 10:49 [patch 0/4] mfd updates and proposed changes Ben Dooks
2008-07-09 10:49 ` [patch 1/4] MFD: Use to_platform_device instead of container_of Ben Dooks
2008-07-09 11:10   ` Dmitry
2008-07-10 14:47     ` Samuel Ortiz
2008-07-29  0:06   ` Samuel Ortiz
2008-07-09 10:49 ` [patch 2/4] MFD: Coding style fixes Ben Dooks
2008-07-09 11:11   ` Dmitry
2008-07-09 11:12     ` Ben Dooks
2008-07-10 14:48       ` Samuel Ortiz
2008-07-09 11:46     ` ian
2008-07-29  0:07   ` Samuel Ortiz
2008-07-09 10:49 ` [patch 3/4] MFD: Remove unnecessary fields if mfd_cell structure Ben Dooks
2008-07-09 11:09   ` Dmitry
2008-07-09 11:12     ` Ben Dooks
2008-07-09 11:16       ` Dmitry
2008-07-09 11:38         ` Ben Dooks
2008-07-09 11:44           ` Dmitry
2008-07-09 10:49 ` [patch 4/4] MFD: Change mfd platform device usage to wrapper platform_device Ben Dooks
2008-07-09 11:15   ` Dmitry
2008-07-09 11:24     ` Ben Dooks
2008-07-09 11:31       ` Dmitry
2008-07-09 11:50         ` Ben Dooks
2008-07-09 11:56           ` Dmitry
2008-07-09 12:07             ` Ben Dooks
2008-07-09 12:31               ` Dmitry
2008-07-09 13:28               ` ian
2008-07-09 13:34                 ` pHilipp Zabel
2008-07-09 13:37                   ` ian
2008-07-11 21:37             ` Samuel Ortiz [this message]
2008-07-09 12:13           ` ian
2008-07-09 12:29             ` pHilipp Zabel
2008-07-09 11:45     ` ian
2008-07-09 11:52       ` Dmitry
2008-07-09 21:03         ` Russell King - ARM Linux
2008-07-09 21:13           ` Dmitry Baryshkov
2008-07-09 21:13           ` ian
2008-07-11 21:41           ` Samuel Ortiz
2008-07-09 20:56   ` Russell King - ARM Linux
2008-07-09 21:04     ` Ben Dooks

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=20080711213707.GA2561@sortiz.org \
    --to=sameo@openedhand.com \
    --cc=ben-linux@fluff.org \
    --cc=dbaryshkov@gmail.com \
    --cc=linux-arm-kernel@lists.arm.linux.org.uk \
    --cc=linux-kernel@vger.kernel.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.