All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Thierry Reding <thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Jonathan Hunter
	<jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
	iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Dmitry Osipenko <digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Robin Murphy <robin.murphy-5wv7dgnIgG8@public.gmane.org>
Subject: Re: [PATCH v4 06/20] dt-bindings: memory: tegra: Squash tegra20-gart into tegra20-mc
Date: Thu, 27 Sep 2018 13:41:21 -0500	[thread overview]
Message-ID: <20180927184121.GA2459@bogus> (raw)
In-Reply-To: <20180924095530.GA21032@ulmo>

On Mon, Sep 24, 2018 at 11:55:30AM +0200, Thierry Reding wrote:
> On Mon, Sep 24, 2018 at 03:41:39AM +0300, Dmitry Osipenko wrote:
> > Splitting GART and Memory Controller wasn't a good decision that was made
> > back in the day. Given that the GART driver wasn't ever been used by
> > anything in the kernel, we decided that it will be better to correct the
> > mistakes of the past and merge two bindings into a single one. As a result
> > there is a DT ABI change for the Memory Controller that allows not to
> > break newer kernels using older DT and not to break older kernels using
> > newer DT, that is done by changing the 'compatible' of the node to
> > 'tegra20-mc-gart' and adding a new-required clock property. The new clock
> > property also puts the tegra20-mc binding in line with the bindings of the
> > later Tegra generations.
> > 
> > Signed-off-by: Dmitry Osipenko <digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> > ---
> >  .../bindings/iommu/nvidia,tegra20-gart.txt    | 14 ----------
> >  .../memory-controllers/nvidia,tegra20-mc.txt  | 27 +++++++++++++------
> >  2 files changed, 19 insertions(+), 22 deletions(-)
> >  delete mode 100644 Documentation/devicetree/bindings/iommu/nvidia,tegra20-gart.txt
> > 
> > diff --git a/Documentation/devicetree/bindings/iommu/nvidia,tegra20-gart.txt b/Documentation/devicetree/bindings/iommu/nvidia,tegra20-gart.txt
> > deleted file mode 100644
> > index 099d9362ebc1..000000000000
> > --- a/Documentation/devicetree/bindings/iommu/nvidia,tegra20-gart.txt
> > +++ /dev/null
> > @@ -1,14 +0,0 @@
> > -NVIDIA Tegra 20 GART
> > -
> > -Required properties:
> > -- compatible: "nvidia,tegra20-gart"
> > -- reg: Two pairs of cells specifying the physical address and size of
> > -  the memory controller registers and the GART aperture respectively.
> > -
> > -Example:
> > -
> > -	gart {
> > -		compatible = "nvidia,tegra20-gart";
> > -		reg = <0x7000f024 0x00000018	/* controller registers */
> > -		       0x58000000 0x02000000>;	/* GART aperture */
> > -	};
> > diff --git a/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra20-mc.txt b/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra20-mc.txt
> > index 7d60a50a4fa1..e55328237df4 100644
> > --- a/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra20-mc.txt
> > +++ b/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra20-mc.txt
> > @@ -1,26 +1,37 @@
> >  NVIDIA Tegra20 MC(Memory Controller)
> >  
> >  Required properties:
> > -- compatible : "nvidia,tegra20-mc"
> > -- reg : Should contain 2 register ranges(address and length); see the
> > -  example below. Note that the MC registers are interleaved with the
> > -  GART registers, and hence must be represented as multiple ranges.
> > +- compatible : "nvidia,tegra20-mc-gart"
> > +- reg : Should contain 2 register ranges: physical base address and length of
> > +  the controller's registers and the GART aperture respectively.
> 
> Couldn't we have achieved the same thing by adding a reg-names property
> instead of using a different compatible string? After all we only change
> what information the DT provides, but the device is still a "tegra20-mc"
> device.

Yes, if we were adding a reg field, but we're changing what the 2 reg 
fields contain, so I think a new compatible is best.

Rob

WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: Dmitry Osipenko <digetx@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Joerg Roedel <joro@8bytes.org>,
	Robin Murphy <robin.murphy@arm.com>,
	iommu@lists.linux-foundation.org, devicetree@vger.kernel.org,
	linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 06/20] dt-bindings: memory: tegra: Squash tegra20-gart into tegra20-mc
Date: Thu, 27 Sep 2018 13:41:21 -0500	[thread overview]
Message-ID: <20180927184121.GA2459@bogus> (raw)
In-Reply-To: <20180924095530.GA21032@ulmo>

On Mon, Sep 24, 2018 at 11:55:30AM +0200, Thierry Reding wrote:
> On Mon, Sep 24, 2018 at 03:41:39AM +0300, Dmitry Osipenko wrote:
> > Splitting GART and Memory Controller wasn't a good decision that was made
> > back in the day. Given that the GART driver wasn't ever been used by
> > anything in the kernel, we decided that it will be better to correct the
> > mistakes of the past and merge two bindings into a single one. As a result
> > there is a DT ABI change for the Memory Controller that allows not to
> > break newer kernels using older DT and not to break older kernels using
> > newer DT, that is done by changing the 'compatible' of the node to
> > 'tegra20-mc-gart' and adding a new-required clock property. The new clock
> > property also puts the tegra20-mc binding in line with the bindings of the
> > later Tegra generations.
> > 
> > Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> > ---
> >  .../bindings/iommu/nvidia,tegra20-gart.txt    | 14 ----------
> >  .../memory-controllers/nvidia,tegra20-mc.txt  | 27 +++++++++++++------
> >  2 files changed, 19 insertions(+), 22 deletions(-)
> >  delete mode 100644 Documentation/devicetree/bindings/iommu/nvidia,tegra20-gart.txt
> > 
> > diff --git a/Documentation/devicetree/bindings/iommu/nvidia,tegra20-gart.txt b/Documentation/devicetree/bindings/iommu/nvidia,tegra20-gart.txt
> > deleted file mode 100644
> > index 099d9362ebc1..000000000000
> > --- a/Documentation/devicetree/bindings/iommu/nvidia,tegra20-gart.txt
> > +++ /dev/null
> > @@ -1,14 +0,0 @@
> > -NVIDIA Tegra 20 GART
> > -
> > -Required properties:
> > -- compatible: "nvidia,tegra20-gart"
> > -- reg: Two pairs of cells specifying the physical address and size of
> > -  the memory controller registers and the GART aperture respectively.
> > -
> > -Example:
> > -
> > -	gart {
> > -		compatible = "nvidia,tegra20-gart";
> > -		reg = <0x7000f024 0x00000018	/* controller registers */
> > -		       0x58000000 0x02000000>;	/* GART aperture */
> > -	};
> > diff --git a/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra20-mc.txt b/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra20-mc.txt
> > index 7d60a50a4fa1..e55328237df4 100644
> > --- a/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra20-mc.txt
> > +++ b/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra20-mc.txt
> > @@ -1,26 +1,37 @@
> >  NVIDIA Tegra20 MC(Memory Controller)
> >  
> >  Required properties:
> > -- compatible : "nvidia,tegra20-mc"
> > -- reg : Should contain 2 register ranges(address and length); see the
> > -  example below. Note that the MC registers are interleaved with the
> > -  GART registers, and hence must be represented as multiple ranges.
> > +- compatible : "nvidia,tegra20-mc-gart"
> > +- reg : Should contain 2 register ranges: physical base address and length of
> > +  the controller's registers and the GART aperture respectively.
> 
> Couldn't we have achieved the same thing by adding a reg-names property
> instead of using a different compatible string? After all we only change
> what information the DT provides, but the device is still a "tegra20-mc"
> device.

Yes, if we were adding a reg field, but we're changing what the 2 reg 
fields contain, so I think a new compatible is best.

Rob

  reply	other threads:[~2018-09-27 18:41 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-24  0:41 [PATCH v4 00/20] IOMMU: Tegra GART driver clean up and optimization Dmitry Osipenko
2018-09-24  0:41 ` Dmitry Osipenko
2018-09-24  0:41 ` [PATCH v4 07/20] ARM: dts: tegra20: Update Memory Controller node to the new binding Dmitry Osipenko
2018-09-24  0:41 ` [PATCH v4 13/20] iommu/tegra: gart: Fix spinlock recursion Dmitry Osipenko
2018-09-24 10:49   ` Thierry Reding
2018-09-24  0:41 ` [PATCH v4 15/20] iommu/tegra: gart: Allow only one active domain at a time Dmitry Osipenko
     [not found]   ` <20180924004153.8232-16-digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-09-24 10:50     ` Thierry Reding
2018-09-24 10:50       ` Thierry Reding
     [not found] ` <20180924004153.8232-1-digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-09-24  0:41   ` [PATCH v4 01/20] iommu/tegra: gart: Remove pr_fmt and clean up includes Dmitry Osipenko
2018-09-24  0:41     ` Dmitry Osipenko
     [not found]     ` <20180924004153.8232-2-digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-09-24 10:02       ` Thierry Reding
2018-09-24 10:02         ` Thierry Reding
2018-09-24  0:41   ` [PATCH v4 02/20] iommu/tegra: gart: Clean up driver probe errors handling Dmitry Osipenko
2018-09-24  0:41     ` Dmitry Osipenko
     [not found]     ` <20180924004153.8232-3-digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-09-24 10:02       ` Thierry Reding
2018-09-24 10:02         ` Thierry Reding
2018-09-24  0:41   ` [PATCH v4 03/20] iommu/tegra: gart: Ignore devices without IOMMU phandle in DT Dmitry Osipenko
2018-09-24  0:41     ` Dmitry Osipenko
2018-09-24 10:05     ` Thierry Reding
2018-09-24 18:41       ` Dmitry Osipenko
2018-09-24 18:41         ` Dmitry Osipenko
2018-09-24  0:41   ` [PATCH v4 04/20] iommu: Introduce iotlb_sync_map callback Dmitry Osipenko
2018-09-24  0:41     ` Dmitry Osipenko
2018-09-24 10:06     ` Thierry Reding
2018-09-24  0:41   ` [PATCH v4 05/20] iommu/tegra: gart: Optimize mapping / unmapping performance Dmitry Osipenko
2018-09-24  0:41     ` Dmitry Osipenko
     [not found]     ` <20180924004153.8232-6-digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-09-24 10:07       ` Thierry Reding
2018-09-24 10:07         ` Thierry Reding
2018-09-24  0:41   ` [PATCH v4 06/20] dt-bindings: memory: tegra: Squash tegra20-gart into tegra20-mc Dmitry Osipenko
2018-09-24  0:41     ` Dmitry Osipenko
     [not found]     ` <20180924004153.8232-7-digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-09-24  9:55       ` Thierry Reding
2018-09-24  9:55         ` Thierry Reding
2018-09-27 18:41         ` Rob Herring [this message]
2018-09-27 18:41           ` Rob Herring
2018-09-27 18:41     ` Rob Herring
2018-09-24  0:41   ` [PATCH v4 08/20] memory: tegra: Don't invoke Tegra30+ specific memory timing setup on Tegra20 Dmitry Osipenko
2018-09-24  0:41     ` Dmitry Osipenko
2018-09-24  0:41   ` [PATCH v4 09/20] memory: tegra: Adapt to Tegra20 device-tree binding changes Dmitry Osipenko
2018-09-24  0:41     ` Dmitry Osipenko
     [not found]     ` <20180924004153.8232-10-digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-09-24 10:02       ` Thierry Reding
2018-09-24 10:02         ` Thierry Reding
2018-09-24 13:22         ` Dmitry Osipenko
2018-09-25 12:16           ` Dmitry Osipenko
2018-09-24  0:41   ` [PATCH v4 10/20] memory: tegra: Read client ID on GART page fault Dmitry Osipenko
2018-09-24  0:41     ` Dmitry Osipenko
2018-09-24  0:41   ` [PATCH v4 11/20] memory: tegra: Use of_device_get_match_data() Dmitry Osipenko
2018-09-24  0:41     ` Dmitry Osipenko
2018-09-24 10:13     ` Thierry Reding
2018-09-24 18:39       ` Dmitry Osipenko
2018-09-24 18:39         ` Dmitry Osipenko
2018-09-25 10:00         ` Thierry Reding
2018-09-25 13:53           ` Dmitry Osipenko
2018-09-24  0:41   ` [PATCH v4 12/20] iommu/tegra: gart: Integrate with Memory Controller driver Dmitry Osipenko
2018-09-24  0:41     ` Dmitry Osipenko
     [not found]     ` <20180924004153.8232-13-digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-09-24 10:23       ` Thierry Reding
2018-09-24 10:23         ` Thierry Reding
2018-09-24 18:22         ` Dmitry Osipenko
2018-09-25 10:02           ` Thierry Reding
2018-09-24  0:41   ` [PATCH v4 14/20] iommu/tegra: gart: Fix NULL pointer dereference Dmitry Osipenko
2018-09-24  0:41     ` Dmitry Osipenko
2018-09-24 10:49     ` Thierry Reding
2018-09-24  0:41   ` [PATCH v4 16/20] iommu/tegra: gart: Don't use managed resources Dmitry Osipenko
2018-09-24  0:41     ` Dmitry Osipenko
2018-09-24 10:52     ` Thierry Reding
2018-09-24 18:57       ` Dmitry Osipenko
2018-09-24 18:57         ` Dmitry Osipenko
     [not found]         ` <a9e2943b-1139-8838-5440-bd6cf55e9a55-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-09-25 10:03           ` Thierry Reding
2018-09-25 10:03             ` Thierry Reding
2018-09-25 13:41             ` Dmitry Osipenko
2018-09-24  0:41   ` [PATCH v4 17/20] iommu/tegra: gart: Prepend error/debug messages with "GART:" Dmitry Osipenko
2018-09-24  0:41     ` Dmitry Osipenko
     [not found]     ` <20180924004153.8232-18-digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-09-24 10:57       ` Thierry Reding
2018-09-24 10:57         ` Thierry Reding
2018-09-24 18:09         ` Dmitry Osipenko
2018-09-24 18:09           ` Dmitry Osipenko
2018-09-24  0:41   ` [PATCH v4 18/20] iommu/tegra: gart: Don't detach devices from inactive domains Dmitry Osipenko
2018-09-24  0:41     ` Dmitry Osipenko
     [not found]     ` <20180924004153.8232-19-digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-09-24 11:00       ` Thierry Reding
2018-09-24 11:00         ` Thierry Reding
2018-09-24 18:05         ` Dmitry Osipenko
     [not found]           ` <8be80297-3b13-ece6-a5bf-873cc7877989-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-09-25 10:04             ` Thierry Reding
2018-09-25 10:04               ` Thierry Reding
2018-09-25 13:41               ` Dmitry Osipenko
2018-09-25 13:41                 ` Dmitry Osipenko
2018-09-24  0:41 ` [PATCH v4 19/20] iommu/tegra: gart: Simplify clients-tracking code Dmitry Osipenko
     [not found]   ` <20180924004153.8232-20-digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-09-24 11:10     ` Thierry Reding
2018-09-24 11:10       ` Thierry Reding
2018-09-24 17:50       ` Dmitry Osipenko
     [not found]         ` <aefb6b78-4923-0259-0f3a-2ce3b95ca456-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-09-25 10:09           ` Thierry Reding
2018-09-25 10:09             ` Thierry Reding
2018-09-25 13:47             ` Dmitry Osipenko
2018-09-24  0:41 ` [PATCH v4 20/20] iommu/tegra: gart: Perform code refactoring Dmitry Osipenko
     [not found]   ` <20180924004153.8232-21-digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-09-24 11:34     ` Thierry Reding
2018-09-24 11:34       ` Thierry Reding
2018-09-24 17:11       ` Dmitry Osipenko

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=20180927184121.GA2459@bogus \
    --to=robh-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=robin.murphy-5wv7dgnIgG8@public.gmane.org \
    --cc=thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@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.