diff mbox series

[2/2] gpio: sprd: Change to use SoC compatible string

Message ID 0438b78c7f9f9bc3f0e7bcbcef3873fd2dd7e259.1550061925.git.baolin.wang@linaro.org
State Superseded
Headers show
Series None | expand

Commit Message

(Exiting) Baolin Wang Feb. 13, 2019, 12:48 p.m. UTC
Change to use SoC compatible string instead of wildcard string.

Signed-off-by: Baolin Wang <baolin.wang@linaro.org>

---
 drivers/gpio/gpio-pmic-eic-sprd.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
1.7.9.5

Comments

Bartosz Golaszewski Feb. 13, 2019, 12:59 p.m. UTC | #1
śr., 13 lut 2019 o 13:49 Baolin Wang <baolin.wang@linaro.org> napisał(a):
>

> Change to use SoC compatible string instead of wildcard string.

>

> Signed-off-by: Baolin Wang <baolin.wang@linaro.org>

> ---

>  drivers/gpio/gpio-pmic-eic-sprd.c |    2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

>

> diff --git a/drivers/gpio/gpio-pmic-eic-sprd.c b/drivers/gpio/gpio-pmic-eic-sprd.c

> index ac573da..24228cf 100644

> --- a/drivers/gpio/gpio-pmic-eic-sprd.c

> +++ b/drivers/gpio/gpio-pmic-eic-sprd.c

> @@ -364,7 +364,7 @@ static int sprd_pmic_eic_probe(struct platform_device *pdev)

>  }

>

>  static const struct of_device_id sprd_pmic_eic_of_match[] = {

> -       { .compatible = "sprd,sc27xx-eic", },

> +       { .compatible = "sprd,sc2731-eic", },

>         { /* end of list */ }

>  };

>  MODULE_DEVICE_TABLE(of, sprd_pmic_eic_of_match);

> --

> 1.7.9.5

>


We guarantee to make older device-trees to work with new kernel so you
can add the new compatible, but you can't remove the old one.

Bart
Linus Walleij Feb. 14, 2019, 7:56 a.m. UTC | #2
On Wed, Feb 13, 2019 at 5:10 PM Bartosz Golaszewski
<bgolaszewski@baylibre.com> wrote:
> śr., 13 lut 2019 o 14:15 Baolin Wang <baolin.wang@linaro.org> napisał(a):

> >

> > On Wed, 13 Feb 2019 at 20:59, Bartosz Golaszewski

> > <bgolaszewski@baylibre.com> wrote:

> > >

> > > śr., 13 lut 2019 o 13:49 Baolin Wang <baolin.wang@linaro.org> napisał(a):

> > > >

> > > > Change to use SoC compatible string instead of wildcard string.

> > > >

> > > > Signed-off-by: Baolin Wang <baolin.wang@linaro.org>

> > > > ---

> > > >  drivers/gpio/gpio-pmic-eic-sprd.c |    2 +-

> > > >  1 file changed, 1 insertion(+), 1 deletion(-)

> > > >

> > > > diff --git a/drivers/gpio/gpio-pmic-eic-sprd.c b/drivers/gpio/gpio-pmic-eic-sprd.c

> > > > index ac573da..24228cf 100644

> > > > --- a/drivers/gpio/gpio-pmic-eic-sprd.c

> > > > +++ b/drivers/gpio/gpio-pmic-eic-sprd.c

> > > > @@ -364,7 +364,7 @@ static int sprd_pmic_eic_probe(struct platform_device *pdev)

> > > >  }

> > > >

> > > >  static const struct of_device_id sprd_pmic_eic_of_match[] = {

> > > > -       { .compatible = "sprd,sc27xx-eic", },

> > > > +       { .compatible = "sprd,sc2731-eic", },

> > > >         { /* end of list */ }

> > > >  };

> > > >  MODULE_DEVICE_TABLE(of, sprd_pmic_eic_of_match);

> > > > --

> > > > 1.7.9.5

> > > >

> > >

> > > We guarantee to make older device-trees to work with new kernel so you

> > > can add the new compatible, but you can't remove the old one.

> >

> > But the old one is incorrect, and we still keep it?

> >

>

> Well in theory the device-tree is supposed to be a stable ABI so once

> it's released, it should work with any following kernel version.

>

> In practice changes are sometimes allowed and there are also bugs in DT files.

>

> Linus: what do you think?


In this specific case I'd keep both strings, it doesn't hurt does it?

You could add a comment to the wildcard string saying it is only there
for compatibility with elder device trees.

In general as long as there are not (a lot of) products shipped with
a certain device tree, I don't care much whether we change the bindings
or contents.

The hard rule to keep the device trees backward-compatible comes
from SPARC SunOS where the DTB was burned into a BIOS ROM
that was hard or impossible to update, Linux just had to handle
whatever was in there. If the situation with the device tree we change
is not similiar, we should not care either.

In practice there are companies and developers that always
recompile and ship their device trees at the same time as they
compile and ship their kernel, and in that case we need not care
about backward compatibility.

While the device tree enablement on ARM started out with the
former (strict) assumption, the practice of using DTs has shown
that it is an unrealistic and inappropriate stance to have for all
device trees. (IMO!) So I don't mind if you break compatibility here.

Yours,
Linus Walleij
diff mbox series

Patch

diff --git a/drivers/gpio/gpio-pmic-eic-sprd.c b/drivers/gpio/gpio-pmic-eic-sprd.c
index ac573da..24228cf 100644
--- a/drivers/gpio/gpio-pmic-eic-sprd.c
+++ b/drivers/gpio/gpio-pmic-eic-sprd.c
@@ -364,7 +364,7 @@  static int sprd_pmic_eic_probe(struct platform_device *pdev)
 }
 
 static const struct of_device_id sprd_pmic_eic_of_match[] = {
-	{ .compatible = "sprd,sc27xx-eic", },
+	{ .compatible = "sprd,sc2731-eic", },
 	{ /* end of list */ }
 };
 MODULE_DEVICE_TABLE(of, sprd_pmic_eic_of_match);