All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tony Lindgren <tony@atomide.com>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: linux-omap@vger.kernel.org
Subject: Re: [ANNOUNCE:RFC] convert OMAP to use clkdev
Date: Sat, 24 Jan 2009 09:04:08 -0800	[thread overview]
Message-ID: <20090124170408.GA7172@atomide.com> (raw)
In-Reply-To: <20090124120317.GA20593@n2100.arm.linux.org.uk>

[-- Attachment #1: Type: text/plain, Size: 4532 bytes --]

* Russell King - ARM Linux <linux@arm.linux.org.uk> [090124 04:03]:
> All,
> 
> In a bid to clean up the clk API implementations, and more importantly
> ensure that implementations are using the clk API correctly, I've
> converted OMAP over to the generic clock lookup (clkdev) implementation.
> 
> In doing so, I've shaken out a number of OMAP quirks and OMAP1 specific
> clock code from the drivers.

To summarize, these patches solve the problem of matching clocks
with the driver where omap1 usually has one clock, and omap2 & 3 devices
have two clocks.

> The set of patches (minus two[*]) are available in my 'omap-clks2' branch.
> This is built on top of the omap-clks1 branch, which some people here
> already know about.

Russell, can you please post your omap-clks[12] patches here too for review
so people can look at them? It's ok to post a large series of patches to
this list.

> I do need to make some points:
> 
> 1. the omap-clks1 branch has been updated with various silly fixes I've
>    found along the way, so this won't be the same as the omap-clks1 branch
>    from a month ago.
> 
> 2. omap-clks2 branch follows on from the omap-clks1 branch - in other words,
>    arm:omap-clks2.diff is a superset of omap-clks1.diff.
> 
> 3. clkdev's current matching algorithm leads to false positives on OMAP,
>    so you need the clkdev fix which is in the master branch as well.
> 
> With this, I've been able to boot my LDP board (with the HS MMC driver)
> through to a shell prompt, and kernel messages look good.  I've also a
> bodgerated QEMU H2-based-on-OMAP310 environment which I've been checking
> OMAP1 on, and that looks reasonable.  Obviously, it's no subsitute for
> real hardware.

Seems to boot on overo after applying the attached hsmmc init fix.

> Reviews and comments obviously welcome, testing more preferred.  Probably
> the easiest way to apply these changes for testing is to download the
> diffs from the FTP site: arm.diff and arm:omap-clks2.diff, and apply
> them in that order to a fresh mainline tree.

Or even easier for the omap folks is to use the new clks-testing branch
I've just added to the linux-omap tree on kernel.org.

That's v2.6.26-rc2 + rmk/master + rmk/omap-clks1 + rmk/omap-clks2 +
one fix for hsmmc init (attached also).

> There's still a bit of work to be done here - I've left the original
> 'name' and 'id' members in the struct clk solely for the debugfs code.
> Obviously this is wasteful if you don't have debugfs enabled.

Is this series missing a patch to just clk_get ick and fck for
omap_hsmmc.c?

> Finally, the diffstat for the clkdev conversion for OMAP (omap-clks1
> to omap-clks2) shows a saving of 500 lines of code - definitely
> something not to be sniffed at:
> 
>  arch/arm/mach-omap1/clock.c              |  152 ++++++++--
>  arch/arm/mach-omap1/clock.h              |  171 ++--------
>  arch/arm/mach-omap1/mcbsp.c              |  133 ++------
>  arch/arm/mach-omap2/clock24xx.c          |  197 +++++++++++-
>  arch/arm/mach-omap2/clock24xx.h          |  353 ++-------------------
>  arch/arm/mach-omap2/clock34xx.c          |  268 ++++++++++++++--
>  arch/arm/mach-omap2/clock34xx.h          |  513 +++++-------------------------
>  arch/arm/mach-omap2/devices.c            |    1 +
>  arch/arm/mach-omap2/mcbsp.c              |  121 -------
>  arch/arm/plat-omap/Kconfig               |    3 +
>  arch/arm/plat-omap/clock.c               |   48 +---
>  arch/arm/plat-omap/include/mach/clkdev.h |   13 +
>  arch/arm/plat-omap/include/mach/clock.h  |   11 +-
>  arch/arm/plat-omap/include/mach/mcbsp.h  |    4 +-
>  arch/arm/plat-omap/mcbsp.c               |   66 +++--
>  drivers/i2c/busses/i2c-omap.c            |   47 ++--
>  drivers/mmc/host/omap.c                  |   24 +-
>  drivers/spi/omap2_mcspi.c                |    4 +-
>  drivers/spi/omap_uwire.c                 |    9 +-
>  drivers/w1/masters/omap_hdq.c            |    4 +-
>  drivers/watchdog/omap_wdt.c              |   94 ++-----
>  21 files changed, 868 insertions(+), 1368 deletions(-)

Shrinking the clock*-h is a good thing.

However my main concern is that this series is going to cause a massive
manual merge pain for us to get in sync with the linux-omap tree.

Regards,

Tony


> [*] - these are for the RNG and OHCI drivers, and have been left out
> for the time being because they conflict with my master branch, and
> would make the omap-clks2 patch unnecessarily difficult for people to
> try.
> 
> Note: please don't think about polluting mach/clkdev.h, thanks.

Huh?

[-- Attachment #2: hsmmc-init-fix.patch --]
[-- Type: text/x-diff, Size: 926 bytes --]

commit 418c92c9fa4e7e56cacd14f0ed24cf7cfdc3f477
Author: Tony Lindgren <tony@atomide.com>
Date:   Sat Jan 24 08:34:37 2009 -0800

    Fix hsmmc init
    
    It accidentally broke while changing the name for the driver
    to not to conflict with the other mmc driver.
    
    Signed-off-by: Tony Lindgren <tony@atomide.com>

diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c
index ac15c23..d22529c 100644
--- a/arch/arm/plat-omap/devices.c
+++ b/arch/arm/plat-omap/devices.c
@@ -205,9 +205,15 @@ int __init omap_mmc_add(int id, unsigned long base, unsigned long size,
 {
 	struct platform_device *pdev;
 	struct resource res[OMAP_MMC_NR_RES];
+	char *name;
 	int ret;
 
-	pdev = platform_device_alloc("mmci-omap", id);
+	if (cpu_class_is_omap1() || cpu_is_omap242x())
+		name = "mmci-omap";
+	else
+		name = "mmci-omap-hs";
+
+	pdev = platform_device_alloc(name, id);
 	if (!pdev)
 		return -ENOMEM;
 

  parent reply	other threads:[~2009-01-24 17:04 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-24 12:03 [ANNOUNCE:RFC] convert OMAP to use clkdev Russell King - ARM Linux
2009-01-24 16:41 ` Woodruff, Richard
2009-01-24 16:55   ` Russell King - ARM Linux
2009-01-24 17:04 ` Tony Lindgren [this message]
2009-01-24 17:38   ` Russell King - ARM Linux
2009-01-24 18:32     ` Tony Lindgren
2009-01-24 18:40       ` Russell King - ARM Linux
2009-01-24 19:01         ` Tony Lindgren
2009-01-28 10:17           ` Russell King - ARM Linux
2009-01-28 15:59             ` Tony Lindgren
2009-01-28 16:10               ` Russell King - ARM Linux
2009-01-28 17:15                 ` Tony Lindgren
2009-01-24 19:03         ` Paul Walmsley
2009-01-27  1:00 ` Paul Walmsley

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=20090124170408.GA7172@atomide.com \
    --to=tony@atomide.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    /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.