From: Tony Lindgren <tony@atomide.com> To: Tero Kristo <t-kristo@ti.com> Cc: linux-omap@vger.kernel.org, paul@pwsan.com, sakari.ailus@iki.fi, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCHv5 11/35] ARM: OMAP2+: clock: move clock provider infrastructure to clock driver Date: Wed, 25 Mar 2015 16:17:00 -0700 [thread overview] Message-ID: <20150325231659.GD31346@atomide.com> (raw) In-Reply-To: <5512D069.4080906@ti.com> * Tero Kristo <t-kristo@ti.com> [150325 08:12]: > > Splits the clock provider init out of the PRM driver and moves it to > clock driver. This is needed so that once the PRCM drivers are separated, > they can logically just access the clock driver not needing to go through > common PRM code. This would be wrong in the case of control module for > example. ... > --- a/arch/arm/mach-omap2/clock.c > +++ b/arch/arm/mach-omap2/clock.c ... > -u32 omap2_clk_readl(struct clk_hw_omap *clk, void __iomem *reg) > +u32 omap2_clk_memmap_readl(void __iomem *reg) > { > - u32 val; > + struct clk_omap_reg *r = (struct clk_omap_reg *)® > > - if (clk->flags & MEMMAP_ADDRESSING) { > - struct clk_omap_reg *r = (struct clk_omap_reg *)® > - val = readl_relaxed(clk_memmaps[r->index] + r->offset); > - } else { > - val = readl_relaxed(reg); > - } > + return readl_relaxed(clk_memmaps[r->index] + r->offset); > +} The cast from void __iomem *reg to struct clk_omap_reg *r looks still nasty.. Why don't you add the IO address into struct clk_omap_reg: struct clk_omap_reg { u16 offset; u16 index; struct regmap *regmap; void __iomem *addr; }; ... Then populate it during init and then have the clock code use it directly if available? Then it seems you would not need the static struct clk_iomap *clk_memmaps[CLK_MAX_MEMMAPS] at all? Regards, Tony
WARNING: multiple messages have this Message-ID (diff)
From: tony@atomide.com (Tony Lindgren) To: linux-arm-kernel@lists.infradead.org Subject: [PATCHv5 11/35] ARM: OMAP2+: clock: move clock provider infrastructure to clock driver Date: Wed, 25 Mar 2015 16:17:00 -0700 [thread overview] Message-ID: <20150325231659.GD31346@atomide.com> (raw) In-Reply-To: <5512D069.4080906@ti.com> * Tero Kristo <t-kristo@ti.com> [150325 08:12]: > > Splits the clock provider init out of the PRM driver and moves it to > clock driver. This is needed so that once the PRCM drivers are separated, > they can logically just access the clock driver not needing to go through > common PRM code. This would be wrong in the case of control module for > example. ... > --- a/arch/arm/mach-omap2/clock.c > +++ b/arch/arm/mach-omap2/clock.c ... > -u32 omap2_clk_readl(struct clk_hw_omap *clk, void __iomem *reg) > +u32 omap2_clk_memmap_readl(void __iomem *reg) > { > - u32 val; > + struct clk_omap_reg *r = (struct clk_omap_reg *)® > > - if (clk->flags & MEMMAP_ADDRESSING) { > - struct clk_omap_reg *r = (struct clk_omap_reg *)® > - val = readl_relaxed(clk_memmaps[r->index] + r->offset); > - } else { > - val = readl_relaxed(reg); > - } > + return readl_relaxed(clk_memmaps[r->index] + r->offset); > +} The cast from void __iomem *reg to struct clk_omap_reg *r looks still nasty.. Why don't you add the IO address into struct clk_omap_reg: struct clk_omap_reg { u16 offset; u16 index; struct regmap *regmap; void __iomem *addr; }; ... Then populate it during init and then have the clock code use it directly if available? Then it seems you would not need the static struct clk_iomap *clk_memmaps[CLK_MAX_MEMMAPS] at all? Regards, Tony
next prev parent reply other threads:[~2015-03-25 23:21 UTC|newest] Thread overview: 122+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-03-20 18:44 [PATCHv5 00/35] ARM: OMAP2+: PRCM/SCM cleanups against 4.0-rc Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 01/35] clk: ti: fix ti_clk_get_reg_addr error handling Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-24 18:51 ` Tero Kristo 2015-03-24 18:51 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 02/35] ARM: OMAP2+: PRCM: rename of_prcm_init to omap_prcm_init Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 03/35] ARM: OMAP3: PRM: invert the wkst_mask for the prm_clear_mod_irqs Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 04/35] ARM: OMAP2+: PRM: add generic API for clear_mod_irqs Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 05/35] ARM: OMAP3+: PRM: add common APIs for prm_vp_check/clear_txdone Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 06/35] ARM: OMAP4+: PRM: move omap_prm_base_init under OMAP4 PRM driver Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 07/35] ARM: OMAP4+: CM: move omap_cm_base_init under OMAP4 CM driver Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 08/35] ARM: OMAP4: PRM: move omap4xxx_prm_init earlier in init order Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 09/35] Documentation: DT: document PRCM compatible strings for dm81x SoCs Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 10/35] ARM: OMAP2+: PRCM: add support for static clock memmap indices Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 11/35] ARM: OMAP2+: clock: move clock provider infrastructure to clock driver Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-25 15:12 ` Tero Kristo 2015-03-25 15:12 ` Tero Kristo 2015-03-25 23:17 ` Tony Lindgren [this message] 2015-03-25 23:17 ` Tony Lindgren 2015-03-26 7:24 ` Tero Kristo 2015-03-26 7:24 ` Tero Kristo 2015-03-26 10:55 ` Tero Kristo 2015-03-26 10:55 ` Tero Kristo 2015-03-26 17:30 ` Tony Lindgren 2015-03-26 17:30 ` Tony Lindgren 2015-03-26 18:49 ` Tero Kristo 2015-03-26 18:49 ` Tero Kristo 2015-03-27 13:06 ` Tero Kristo 2015-03-27 13:06 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 12/35] ARM: OMAP2+: PRCM: split PRCM module init to their own driver files Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 13/35] ARM: OMAP2+: CM: determine CM base address from device tree Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 14/35] ARM: OMAP2+: PRM: determine PRM " Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 15/35] ARM: OMAP2+: control: determine control module base address from DT Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 16/35] ARM: OMAP2+: PRM: move SoC specific init calls within a generic API Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 17/35] ARM: OMAP4+: PRM: determine prm_device_inst based on DT compatibility Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 18/35] ARM: OMAP2+: CM: move SoC specific init calls within a generic API Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 19/35] ARM: OMAP4+: PRM: setup prm_features from the PRM init time flags Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 20/35] ARM: OMAP4+: PRM: get rid of cpu_is_omap44xx calls from interrupt init Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 21/35] ARM: OMAP2+: clock: add low-level support for regmap Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 22/35] ARM: OMAP2+: control: remove API for getting control module base address Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 23/35] ARM: OMAP2+: id: cache omap_type value Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 24/35] ARM: OMAP2+: control: add syscon support for register accesses Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 25/35] ARM: dts: omap24xx: add minimal l4 bus layout with control module support Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 26/35] ARM: dts: omap3: " Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-30 22:56 ` Tony Lindgren 2015-03-30 22:56 ` Tony Lindgren 2015-03-31 14:57 ` Tero Kristo 2015-03-31 14:57 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 27/35] ARM: dts: am33xx: " Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 21:43 ` Suman Anna 2015-03-20 21:43 ` Suman Anna 2015-03-20 22:35 ` Tony Lindgren 2015-03-20 22:35 ` Tony Lindgren 2015-03-20 23:23 ` Suman Anna 2015-03-20 23:23 ` Suman Anna 2015-03-20 23:30 ` Tony Lindgren 2015-03-20 23:30 ` Tony Lindgren 2015-03-23 6:35 ` Tero Kristo 2015-03-23 6:35 ` Tero Kristo 2015-03-25 15:02 ` Tero Kristo 2015-03-25 15:02 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 28/35] ARM: dts: am43xx-epos-evm: fix pinmux node layout Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 29/35] ARM: dts: am4372: add minimal l4 bus layout with control module support Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-24 20:10 ` Suman Anna 2015-03-24 20:10 ` Suman Anna 2015-03-25 9:10 ` Tero Kristo 2015-03-25 9:10 ` Tero Kristo 2015-03-25 15:03 ` Tero Kristo 2015-03-25 15:03 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 30/35] ARM: dts: omap4: " Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-30 23:01 ` Tony Lindgren 2015-03-30 23:01 ` Tony Lindgren 2015-03-31 14:58 ` Tero Kristo 2015-03-31 14:58 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 31/35] ARM: OMAP4: display: convert display to use syscon for dsi muxing Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 32/35] ARM: OMAP4+: control: remove support for legacy pad read/write Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 33/35] ARM: dts: omap5: add minimal l4 bus layout with control module support Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 34/35] ARM: dts: dra7: " Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-20 18:44 ` [PATCHv5 35/35] ARM: OMAP4+: control: add support for initializing control module via DT Tero Kristo 2015-03-20 18:44 ` Tero Kristo 2015-03-31 0:10 ` [PATCHv5 00/35] ARM: OMAP2+: PRCM/SCM cleanups against 4.0-rc Tony Lindgren 2015-03-31 0:10 ` Tony Lindgren 2015-03-31 1:25 ` Tony Lindgren 2015-03-31 1:25 ` Tony Lindgren 2015-03-31 18:28 ` Tero Kristo 2015-03-31 18:28 ` Tero Kristo 2015-03-31 14:59 ` Tero Kristo 2015-03-31 14:59 ` Tero Kristo
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=20150325231659.GD31346@atomide.com \ --to=tony@atomide.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-omap@vger.kernel.org \ --cc=paul@pwsan.com \ --cc=sakari.ailus@iki.fi \ --cc=t-kristo@ti.com \ /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: linkBe 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.