All of lore.kernel.org
 help / color / mirror / Atom feed
From: Russell King - ARM Linux <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>
To: Stephen Neuendorffer
	<stephen.neuendorffer-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
	Jeremy Kerr <jeremy.kerr-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
Subject: Re: [PATCH 2/2] drivers/amba: probe via device tree
Date: Mon, 23 May 2011 16:47:41 +0100	[thread overview]
Message-ID: <20110523154741.GC15153@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <1007bcf2-7786-4f03-bff7-8d8af83939f1-+Ck8Kgl/v0+GljRhoabY2LjjLBE8jN/0@public.gmane.org>

On Mon, May 23, 2011 at 08:00:15AM -0700, Stephen Neuendorffer wrote:
> To be specific (whether this is 'to shreds' or not, you can decide).
> 
> 1. amba_bus expects the old ARM primcell ID. The one in the new A9 IP
> appears to be different. (b105900d instead of b105f00d)

Ok, so we can update to accept the A9 ID if the other IDs are compatible.
My guess is that its changed because the format of the IDs has changed,
and so it serves to distinguish the format.  At the moment I have no
information what so ever on this change of ID.

Some documentation on this would be useful.

> 2. Not only does amba_bus reference apb_pclk, but the driver directly
> references emu_src_clk. Neither of these has direct analogs on our
> hardware.

apb_pclk doesn't reference anything on most APB-using hardware either.
As I've already tried to explain, it's there for those who _do_ have
that, those being the ST Ericsson people, whose cores would lockup or
die in a kernel oops without it.

We're not having platform specific crap appearing in generic drivers,
so a _generic_ solution to the problem is to have everyone provide an
apb_pclk whether they have it or not.

emu_src_clk is there for the OMAP, and again if it's not required then
you just need to provide it with a dummy.

> 3. Implementing the workaround for 2 that you've described requires a
> dummy implementation of the 'standard' clock stuff, which is currently
> not implemented by mach-xilinx, because we simply haven't needed it. 
> Is the right solution here to add more machine-specific code?

In that case, why not just do this:

#define DEV_NAME "whatever_your_etb_device_is_called"

void clk_disable(struct clk *clk)
{
}

int clk_enable(struct clk *clk)
{
        return 0;
}

struct clk *clk_get(struct device *dev, const char *id)
{
        return dev && strcmp(dev_name(dev), DEV_NAME) == 0 ? NULL : ERR_PTR(-ENOENT);
}

void clk_put(struct clk *clk)
{
}

That results in very little actual code, and this is precisely one of the
reasons why I don't like having a huge big pile of code behind the clk API
implementing lots of useless stuff which platforms like yours just don't
want.

> 4. etm is old, we have ptm and other custom cores, but the driver
> combines the etm and etb functionality together. 

If we have hardware coming along which re-uses etb without etm, then the
driver needs to be re-worked to allow the 

> OK, some of this is trivial to fix, but some of it isn't.

Apart from (4), nothing you've said is anything but trivial.  So you
seem to be blaming the bus-level code for problems which have precisely
nothing to do with the bus-level code at all.

I really can't understand that, other than by assigning it to either
gross misunderstanding (due to not being able to separate the issues)
or maybe a religious or political agenda.

WARNING: multiple messages have this Message-ID (diff)
From: linux@arm.linux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/2] drivers/amba: probe via device tree
Date: Mon, 23 May 2011 16:47:41 +0100	[thread overview]
Message-ID: <20110523154741.GC15153@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <1007bcf2-7786-4f03-bff7-8d8af83939f1@VA3EHSMHS019.ehs.local>

On Mon, May 23, 2011 at 08:00:15AM -0700, Stephen Neuendorffer wrote:
> To be specific (whether this is 'to shreds' or not, you can decide).
> 
> 1. amba_bus expects the old ARM primcell ID. The one in the new A9 IP
> appears to be different. (b105900d instead of b105f00d)

Ok, so we can update to accept the A9 ID if the other IDs are compatible.
My guess is that its changed because the format of the IDs has changed,
and so it serves to distinguish the format.  At the moment I have no
information what so ever on this change of ID.

Some documentation on this would be useful.

> 2. Not only does amba_bus reference apb_pclk, but the driver directly
> references emu_src_clk. Neither of these has direct analogs on our
> hardware.

apb_pclk doesn't reference anything on most APB-using hardware either.
As I've already tried to explain, it's there for those who _do_ have
that, those being the ST Ericsson people, whose cores would lockup or
die in a kernel oops without it.

We're not having platform specific crap appearing in generic drivers,
so a _generic_ solution to the problem is to have everyone provide an
apb_pclk whether they have it or not.

emu_src_clk is there for the OMAP, and again if it's not required then
you just need to provide it with a dummy.

> 3. Implementing the workaround for 2 that you've described requires a
> dummy implementation of the 'standard' clock stuff, which is currently
> not implemented by mach-xilinx, because we simply haven't needed it. 
> Is the right solution here to add more machine-specific code?

In that case, why not just do this:

#define DEV_NAME "whatever_your_etb_device_is_called"

void clk_disable(struct clk *clk)
{
}

int clk_enable(struct clk *clk)
{
        return 0;
}

struct clk *clk_get(struct device *dev, const char *id)
{
        return dev && strcmp(dev_name(dev), DEV_NAME) == 0 ? NULL : ERR_PTR(-ENOENT);
}

void clk_put(struct clk *clk)
{
}

That results in very little actual code, and this is precisely one of the
reasons why I don't like having a huge big pile of code behind the clk API
implementing lots of useless stuff which platforms like yours just don't
want.

> 4. etm is old, we have ptm and other custom cores, but the driver
> combines the etm and etb functionality together. 

If we have hardware coming along which re-uses etb without etm, then the
driver needs to be re-worked to allow the 

> OK, some of this is trivial to fix, but some of it isn't.

Apart from (4), nothing you've said is anything but trivial.  So you
seem to be blaming the bus-level code for problems which have precisely
nothing to do with the bus-level code at all.

I really can't understand that, other than by assigning it to either
gross misunderstanding (due to not being able to separate the issues)
or maybe a religious or political agenda.

  parent reply	other threads:[~2011-05-23 15:47 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-19 18:28 [PATCH v2 0/2] amba bus device tree probing Rob Herring
2011-05-19 18:28 ` Rob Herring
     [not found] ` <1305829704-11774-1-git-send-email-robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-05-19 18:28   ` [PATCH 1/2] dt: check for devices already created fron DT scan Rob Herring
2011-05-19 18:28     ` Rob Herring
     [not found]     ` <1305829704-11774-2-git-send-email-robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-05-19 19:54       ` Grant Likely
2011-05-19 19:54         ` Grant Likely
2011-05-19 18:28   ` [PATCH 2/2] drivers/amba: probe via device tree Rob Herring
2011-05-19 18:28     ` Rob Herring
     [not found]     ` <1305829704-11774-3-git-send-email-robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-05-19 20:01       ` Grant Likely
2011-05-19 20:01         ` Grant Likely
     [not found]         ` <20110519200158.GW5109-e0URQFbLeQY2iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2011-05-19 23:30           ` Rob Herring
2011-05-19 23:30             ` Rob Herring
2011-05-19 23:39             ` Grant Likely
2011-05-19 23:39               ` Grant Likely
     [not found]               ` <20110519233958.GB18181-e0URQFbLeQY2iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2011-05-20 13:24                 ` Rob Herring
2011-05-20 13:24                   ` Rob Herring
     [not found]                   ` <4DD66B8A.5040404-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-05-20 14:21                     ` Arnd Bergmann
2011-05-20 14:21                       ` Arnd Bergmann
     [not found]                       ` <201105201621.03801.arnd-r2nGTMty4D4@public.gmane.org>
2011-05-20 15:17                         ` Rob Herring
2011-05-20 15:17                           ` Rob Herring
     [not found]                           ` <4DD68614.6090209-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-05-20 16:08                             ` Stephen Neuendorffer
2011-05-20 16:08                               ` Stephen Neuendorffer
2011-05-21 17:42                               ` Grant Likely
2011-05-21 17:42                                 ` Grant Likely
2011-05-21 23:47                                 ` Russell King - ARM Linux
2011-05-21 23:47                                   ` Russell King - ARM Linux
2011-05-21 23:47                                   ` Russell King - ARM Linux
2011-05-22 10:00                                   ` Rafael J. Wysocki
2011-05-22 10:00                                     ` Rafael J. Wysocki
2011-05-22 10:00                                     ` Rafael J. Wysocki
2011-05-22 15:46                                   ` Rob Herring
2011-05-22 15:46                                     ` Rob Herring
2011-05-22 15:46                                     ` Rob Herring
2011-05-23 15:23                                   ` Grant Likely
2011-05-23 15:23                                     ` Grant Likely
2011-05-22 10:03                                 ` Arnd Bergmann
2011-05-22 10:03                                   ` Arnd Bergmann
2011-05-22 10:03                                   ` Arnd Bergmann
2011-05-25  9:03                                   ` Linus Walleij
2011-05-25  9:03                                     ` Linus Walleij
2011-05-23  9:37                                 ` Kristoffer Glembo
2011-05-23  9:37                                   ` Kristoffer Glembo
2011-05-23  9:37                                   ` Kristoffer Glembo
2011-05-23  9:58                                   ` Russell King - ARM Linux
2011-05-23  9:58                                     ` Russell King - ARM Linux
2011-05-23 15:09                                     ` Grant Likely
2011-05-23 15:09                                       ` Grant Likely
2011-05-23 15:09                                       ` Grant Likely
2011-05-24 15:03                                       ` Rob Herring
2011-05-24 15:03                                         ` Rob Herring
2011-05-24 15:03                                         ` Rob Herring
2011-05-25  3:02                                         ` Shawn Guo
2011-05-25  3:02                                           ` Shawn Guo
2011-05-25  3:02                                           ` Shawn Guo
2011-05-25  9:07                                         ` Linus Walleij
2011-05-25  9:07                                           ` Linus Walleij
     [not found]                               ` <a42f0c27-2811-4b68-bedf-7dfaa7bff6ff-+Ck8Kgl/v0/6UOWq+LNw4LjjLBE8jN/0@public.gmane.org>
2011-05-21 23:35                                 ` Russell King - ARM Linux
2011-05-21 23:35                                   ` Russell King - ARM Linux
     [not found]                                   ` <20110521233558.GA17672-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2011-05-23 15:00                                     ` Stephen Neuendorffer
2011-05-23 15:00                                       ` Stephen Neuendorffer
     [not found]                                       ` <1007bcf2-7786-4f03-bff7-8d8af83939f1-+Ck8Kgl/v0+GljRhoabY2LjjLBE8jN/0@public.gmane.org>
2011-05-23 15:47                                         ` Russell King - ARM Linux [this message]
2011-05-23 15:47                                           ` Russell King - ARM Linux
2011-05-21  4:00                             ` Segher Boessenkool
2011-05-21  4:00                               ` Segher Boessenkool
     [not found]                               ` <80f20ac921a33e9f0bf3e249f539a8ef-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>
2011-05-21 14:55                                 ` Rob Herring
2011-05-21 14:55                                   ` Rob Herring
     [not found]                                   ` <4DD7D24D.2070604-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-05-21 15:18                                     ` Segher Boessenkool
2011-05-21 15:18                                       ` Segher Boessenkool
     [not found]                                       ` <ad5605c2a3d4b36f63f36f52afe89cfd-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>
2011-05-21 17:43                                         ` Grant Likely
2011-05-21 17:43                                           ` Grant Likely

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=20110523154741.GC15153@n2100.arm.linux.org.uk \
    --to=linux-lfz/pmaqli7xmaaqvzeohq@public.gmane.org \
    --cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
    --cc=jeremy.kerr-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=stephen.neuendorffer-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.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.