From: "Heiko Stübner" <heiko@sntech.de>
To: Brian Norris <briannorris@chromium.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
Shawn Lin <shawn.lin@rock-chips.com>,
Guenter Roeck <linux@roeck-us.net>,
Bjorn Helgaas <bhelgaas@google.com>,
Marc Zyngier <marc.zyngier@arm.com>,
linux-pci@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org,
Doug Anderson <dianders@chromium.org>,
Wenrui Li <wenrui.li@rock-chips.com>,
Rob Herring <robh+dt@kernel.org>,
devicetree@vger.kernel.org
Subject: Re: [v10,2/2] PCI: Rockchip: Add Rockchip PCIe controller support
Date: Thu, 01 Sep 2016 19:46:42 +0200 [thread overview]
Message-ID: <3757057.lFUFRYFCvk@diego> (raw)
In-Reply-To: <20160901171400.GA4093@localhost>
Am Donnerstag, 1. September 2016, 10:14:01 schrieb Brian Norris:
> On Thu, Sep 01, 2016 at 11:34:55AM -0500, Bjorn Helgaas wrote:
> > In the interest of making progress, I made most of the changes Guenter
> > suggested (thanks very much, Guenter!) and made some more of my own on
> > top of those.
>
> I'm not sure, but was this change your idea Bjorn?
>
> commit 88cb3f59d73e261a3cd1957ff392f98c9916a5d1
> Author: Bjorn Helgaas <bhelgaas@google.com>
> Date: Thu Sep 1 10:27:44 2016 -0500
>
> Simplify the confusing HIWORD_UPDATE scheme.
>
> [Which I'll summarize here; you're replacing the macro:
>
> -/*
> - * The higher 16-bit of this register is used for write protection
> - * only if BIT(x + 16) set to 1 the BIT(x) can be written.
> - */
> -#define HIWORD_UPDATE(val, mask, shift) \
> - ((val) << (shift) | (mask) << ((shift) + 16))
>
> with its expansions:
>
> +
> +/*
> + * The higher 16-bit of this register is used for write protection
> + * only if BIT(x + 16) set to 1 the BIT(x) can be written.
> + */
> +#define PCIE_CLIENT_CONF_ENABLE (0x00010000 | 0x0001)
> +#define PCIE_CLIENT_LINK_TRAIN_ENABLE (0x00020000 | 0x0002)
> +#define PCIE_CLIENT_ARI_ENABLE (0x00080000 | 0x0008)
> +#define PCIE_CLIENT_CONF_LANE_NUM(x) (0x00300000 | (((x >> 1) & 3) << 4)
> +#define PCIE_CLIENT_MODE_RC (0x00400000 | 0x0040)
> +#define PCIE_CLIENT_GEN_SEL(x) (0x00800000 | ((x & 1) << 7)
> +#define PCIE_CLIENT_GEN_SEL_0 0
> +#define PCIE_CLIENT_GEN_SEL_2 1
>
> Full change can be had by:
> git fetch git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git
> pci/host-rockchip-wip ]
>
>
> The use of HIWORD_UPDATE can indeed be a bit confusing, IMO, but this is
> really a common Rockchip-ism that, once you read several of their
> drivers, can make a little more sense. If you grep around, it's in at
> least their clock, ethernet, SDHCI, PHY, and DP/DRM drivers. I might
> defer to Heiko (upstream maintainer of Rockchip code) for a decision.
> Maybe there's some intermediate ground where we keep the HIWORK_UPDATE()
> logic (it does make sure we get the 16-bit shift right, I think) while
> still refactoring a few other bits (like PCIE_CLIENT_CONF_LANE_NUM() and
> PCIE_CLIENT_GEN_SEL() for wrapping HIWORK_UPDATE()?).
>
> Anyway, just a thought. If it really is most understandable to write it
> this way, then maybe it's fine to be different than the other 16
> rockchip files that have this pattern.
personally I find it nicer to explicitly state, this is the common HIWORD-
update mechanism we have in a lot of places and not some other register
voodoo.
Because right now, GRF and PMU syscons even contain most registers using that
mechanism, but some that don't.
But I guess I won't protest to loudly if you like it differently in your
subsystem ;-)
Heiko
WARNING: multiple messages have this Message-ID (diff)
From: "Heiko Stübner" <heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org>
To: Brian Norris <briannorris-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>,
Marc Zyngier <marc.zyngier-5wv7dgnIgG8@public.gmane.org>,
linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Shawn Lin <shawn.lin-TNX95d0MmH7DzftRWevZcw@public.gmane.org>,
Wenrui Li <wenrui.li-TNX95d0MmH7DzftRWevZcw@public.gmane.org>,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Doug Anderson <dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Bjorn Helgaas <helgaas-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Bjorn Helgaas <bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
Guenter Roeck <linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
Subject: Re: [v10,2/2] PCI: Rockchip: Add Rockchip PCIe controller support
Date: Thu, 01 Sep 2016 19:46:42 +0200 [thread overview]
Message-ID: <3757057.lFUFRYFCvk@diego> (raw)
In-Reply-To: <20160901171400.GA4093@localhost>
Am Donnerstag, 1. September 2016, 10:14:01 schrieb Brian Norris:
> On Thu, Sep 01, 2016 at 11:34:55AM -0500, Bjorn Helgaas wrote:
> > In the interest of making progress, I made most of the changes Guenter
> > suggested (thanks very much, Guenter!) and made some more of my own on
> > top of those.
>
> I'm not sure, but was this change your idea Bjorn?
>
> commit 88cb3f59d73e261a3cd1957ff392f98c9916a5d1
> Author: Bjorn Helgaas <bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
> Date: Thu Sep 1 10:27:44 2016 -0500
>
> Simplify the confusing HIWORD_UPDATE scheme.
>
> [Which I'll summarize here; you're replacing the macro:
>
> -/*
> - * The higher 16-bit of this register is used for write protection
> - * only if BIT(x + 16) set to 1 the BIT(x) can be written.
> - */
> -#define HIWORD_UPDATE(val, mask, shift) \
> - ((val) << (shift) | (mask) << ((shift) + 16))
>
> with its expansions:
>
> +
> +/*
> + * The higher 16-bit of this register is used for write protection
> + * only if BIT(x + 16) set to 1 the BIT(x) can be written.
> + */
> +#define PCIE_CLIENT_CONF_ENABLE (0x00010000 | 0x0001)
> +#define PCIE_CLIENT_LINK_TRAIN_ENABLE (0x00020000 | 0x0002)
> +#define PCIE_CLIENT_ARI_ENABLE (0x00080000 | 0x0008)
> +#define PCIE_CLIENT_CONF_LANE_NUM(x) (0x00300000 | (((x >> 1) & 3) << 4)
> +#define PCIE_CLIENT_MODE_RC (0x00400000 | 0x0040)
> +#define PCIE_CLIENT_GEN_SEL(x) (0x00800000 | ((x & 1) << 7)
> +#define PCIE_CLIENT_GEN_SEL_0 0
> +#define PCIE_CLIENT_GEN_SEL_2 1
>
> Full change can be had by:
> git fetch git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git
> pci/host-rockchip-wip ]
>
>
> The use of HIWORD_UPDATE can indeed be a bit confusing, IMO, but this is
> really a common Rockchip-ism that, once you read several of their
> drivers, can make a little more sense. If you grep around, it's in at
> least their clock, ethernet, SDHCI, PHY, and DP/DRM drivers. I might
> defer to Heiko (upstream maintainer of Rockchip code) for a decision.
> Maybe there's some intermediate ground where we keep the HIWORK_UPDATE()
> logic (it does make sure we get the 16-bit shift right, I think) while
> still refactoring a few other bits (like PCIE_CLIENT_CONF_LANE_NUM() and
> PCIE_CLIENT_GEN_SEL() for wrapping HIWORK_UPDATE()?).
>
> Anyway, just a thought. If it really is most understandable to write it
> this way, then maybe it's fine to be different than the other 16
> rockchip files that have this pattern.
personally I find it nicer to explicitly state, this is the common HIWORD-
update mechanism we have in a lot of places and not some other register
voodoo.
Because right now, GRF and PMU syscons even contain most registers using that
mechanism, but some that don't.
But I guess I won't protest to loudly if you like it differently in your
subsystem ;-)
Heiko
next prev parent reply other threads:[~2016-09-01 17:46 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-19 1:34 [PATCH v10 1/2] Documentation: bindings: add dt doc for Rockchip PCIe controller Shawn Lin
2016-08-19 1:34 ` Shawn Lin
2016-08-19 1:34 ` [PATCH v10 2/2] PCI: Rockchip: Add Rockchip PCIe controller support Shawn Lin
2016-08-19 1:34 ` Shawn Lin
2016-08-31 18:17 ` [v10,2/2] " Guenter Roeck
2016-08-31 18:17 ` Guenter Roeck
2016-09-01 3:39 ` Shawn Lin
2016-09-01 3:39 ` Shawn Lin
2016-09-01 4:14 ` Guenter Roeck
2016-09-01 16:34 ` Bjorn Helgaas
2016-09-01 16:34 ` Bjorn Helgaas
2016-09-01 16:57 ` Brian Norris
2016-09-01 16:57 ` Brian Norris
2016-09-01 17:33 ` Bjorn Helgaas
2016-09-01 17:33 ` Bjorn Helgaas
2016-09-02 17:27 ` Guenter Roeck
2016-09-01 17:14 ` Brian Norris
2016-09-01 17:14 ` Brian Norris
2016-09-01 17:46 ` Heiko Stübner [this message]
2016-09-01 17:46 ` Heiko Stübner
2016-09-01 17:48 ` Bjorn Helgaas
2016-09-01 17:48 ` Bjorn Helgaas
2016-09-02 15:44 ` Bjorn Helgaas
2016-09-02 16:18 ` Brian Norris
2016-09-02 16:28 ` Heiko Stübner
2016-09-02 16:28 ` Heiko Stübner
2016-08-19 19:33 ` [PATCH v10 1/2] Documentation: bindings: add dt doc for Rockchip PCIe controller Bjorn Helgaas
2016-08-19 19:33 ` Bjorn Helgaas
2016-08-20 2:20 ` Shawn Lin
2016-08-20 2:20 ` Shawn Lin
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=3757057.lFUFRYFCvk@diego \
--to=heiko@sntech.de \
--cc=arnd@arndb.de \
--cc=bhelgaas@google.com \
--cc=briannorris@chromium.org \
--cc=devicetree@vger.kernel.org \
--cc=dianders@chromium.org \
--cc=helgaas@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=linux@roeck-us.net \
--cc=marc.zyngier@arm.com \
--cc=robh+dt@kernel.org \
--cc=shawn.lin@rock-chips.com \
--cc=wenrui.li@rock-chips.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: 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.