diff mbox

[1/2] input: touchscreen: fix spelling mistake in TSC/ADC DT binding

Message ID 1382386404-6659-2-git-send-email-balbi@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Felipe Balbi Oct. 21, 2013, 8:13 p.m. UTC
There was a spelling mistake on TSC/ADC binding where
"coordinate" was spelled as "coordiante".

We can't simply fix the error due to DT being an ABI,
the approach taken was to first use correct spelling
and if that fails, fallback to miss-spelled version.

It's unfortunate that has creeped into the tree.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 .../devicetree/bindings/input/touchscreen/ti-tsc-adc.txt         | 2 +-
 arch/arm/boot/dts/am335x-evm.dts                                 | 2 +-
 drivers/input/touchscreen/ti_am335x_tsc.c                        | 9 ++++++++-
 3 files changed, 10 insertions(+), 3 deletions(-)

Comments

Sebastian Andrzej Siewior Oct. 22, 2013, 8:42 a.m. UTC | #1
On 10/21/2013 10:13 PM, Felipe Balbi wrote:
> diff --git a/drivers/input/touchscreen/ti_am335x_tsc.c b/drivers/input/touchscreen/ti_am335x_tsc.c
> index e1c5300..b61df9d 100644
> --- a/drivers/input/touchscreen/ti_am335x_tsc.c
> +++ b/drivers/input/touchscreen/ti_am335x_tsc.c
> @@ -348,9 +348,16 @@ static int titsc_parse_dt(struct platform_device *pdev,
>  	if (err < 0)
>  		return err;
>  
> -	err = of_property_read_u32(node, "ti,coordiante-readouts",
> +	/*
> +	 * try with new binding first. If it fails, still try with
> +	 * bogus, miss-spelled version.
> +	 */
> +	err = of_property_read_u32(node, "ti,coordinate-readouts",
>  			&ts_dev->coordinate_readouts);
>  	if (err < 0)
> +		err = of_property_read_u32(node, "ti,coordiante-readouts",
> +				&ts_dev->coordinate_readouts);
> +	if (err < 0)
>  		return err;

Thanks, very good. Do we keep this fallback for ever or just for a year
or two?

>  
>  	return of_property_read_u32_array(node, "ti,wire-config",

Sebastian
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Felipe Balbi Oct. 22, 2013, 12:02 p.m. UTC | #2
Hi,

On Tue, Oct 22, 2013 at 10:42:00AM +0200, Sebastian Andrzej Siewior wrote:
> On 10/21/2013 10:13 PM, Felipe Balbi wrote:
> > diff --git a/drivers/input/touchscreen/ti_am335x_tsc.c b/drivers/input/touchscreen/ti_am335x_tsc.c
> > index e1c5300..b61df9d 100644
> > --- a/drivers/input/touchscreen/ti_am335x_tsc.c
> > +++ b/drivers/input/touchscreen/ti_am335x_tsc.c
> > @@ -348,9 +348,16 @@ static int titsc_parse_dt(struct platform_device *pdev,
> >  	if (err < 0)
> >  		return err;
> >  
> > -	err = of_property_read_u32(node, "ti,coordiante-readouts",
> > +	/*
> > +	 * try with new binding first. If it fails, still try with
> > +	 * bogus, miss-spelled version.
> > +	 */
> > +	err = of_property_read_u32(node, "ti,coordinate-readouts",
> >  			&ts_dev->coordinate_readouts);
> >  	if (err < 0)
> > +		err = of_property_read_u32(node, "ti,coordiante-readouts",
> > +				&ts_dev->coordinate_readouts);
> > +	if (err < 0)
> >  		return err;
> 
> Thanks, very good. Do we keep this fallback for ever or just for a year
> or two?

That's for DT maintainers to decide but considering DT is an ABI, I
guess we need to keep for 30 years or so :-p
Mark Rutland Nov. 14, 2013, 11:19 a.m. UTC | #3
On Tue, Oct 22, 2013 at 01:02:53PM +0100, Felipe Balbi wrote:
> Hi,
> 
> On Tue, Oct 22, 2013 at 10:42:00AM +0200, Sebastian Andrzej Siewior wrote:
> > On 10/21/2013 10:13 PM, Felipe Balbi wrote:
> > > diff --git a/drivers/input/touchscreen/ti_am335x_tsc.c b/drivers/input/touchscreen/ti_am335x_tsc.c
> > > index e1c5300..b61df9d 100644
> > > --- a/drivers/input/touchscreen/ti_am335x_tsc.c
> > > +++ b/drivers/input/touchscreen/ti_am335x_tsc.c
> > > @@ -348,9 +348,16 @@ static int titsc_parse_dt(struct platform_device *pdev,
> > >  	if (err < 0)
> > >  		return err;
> > >  
> > > -	err = of_property_read_u32(node, "ti,coordiante-readouts",
> > > +	/*
> > > +	 * try with new binding first. If it fails, still try with
> > > +	 * bogus, miss-spelled version.
> > > +	 */
> > > +	err = of_property_read_u32(node, "ti,coordinate-readouts",
> > >  			&ts_dev->coordinate_readouts);
> > >  	if (err < 0)
> > > +		err = of_property_read_u32(node, "ti,coordiante-readouts",
> > > +				&ts_dev->coordinate_readouts);
> > > +	if (err < 0)
> > >  		return err;
> > 
> > Thanks, very good. Do we keep this fallback for ever or just for a year
> > or two?
> 
> That's for DT maintainers to decide but considering DT is an ABI, I
> guess we need to keep for 30 years or so :-p

We keep it as long as we have to. If no-one's relying on the typo by the
next merge window, I see no reason we'd have to keep support for the
typo beyond that. If someone's shipped a device with a dtb with the typo
hard-coded into some ROM, that's another matter...

It might be worth printing a warning in the case of the typo'd version,
suggesting correcting the DT. That will encourage anyone with a broken
dt to get a fixed one.

Mark.
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Felipe Balbi Nov. 14, 2013, 3:54 p.m. UTC | #4
HI,

On Thu, Nov 14, 2013 at 11:19:59AM +0000, Mark Rutland wrote:
> > On Tue, Oct 22, 2013 at 10:42:00AM +0200, Sebastian Andrzej Siewior wrote:
> > > On 10/21/2013 10:13 PM, Felipe Balbi wrote:
> > > > diff --git a/drivers/input/touchscreen/ti_am335x_tsc.c b/drivers/input/touchscreen/ti_am335x_tsc.c
> > > > index e1c5300..b61df9d 100644
> > > > --- a/drivers/input/touchscreen/ti_am335x_tsc.c
> > > > +++ b/drivers/input/touchscreen/ti_am335x_tsc.c
> > > > @@ -348,9 +348,16 @@ static int titsc_parse_dt(struct platform_device *pdev,
> > > >  	if (err < 0)
> > > >  		return err;
> > > >  
> > > > -	err = of_property_read_u32(node, "ti,coordiante-readouts",
> > > > +	/*
> > > > +	 * try with new binding first. If it fails, still try with
> > > > +	 * bogus, miss-spelled version.
> > > > +	 */
> > > > +	err = of_property_read_u32(node, "ti,coordinate-readouts",
> > > >  			&ts_dev->coordinate_readouts);
> > > >  	if (err < 0)
> > > > +		err = of_property_read_u32(node, "ti,coordiante-readouts",
> > > > +				&ts_dev->coordinate_readouts);
> > > > +	if (err < 0)
> > > >  		return err;
> > > 
> > > Thanks, very good. Do we keep this fallback for ever or just for a year
> > > or two?
> > 
> > That's for DT maintainers to decide but considering DT is an ABI, I
> > guess we need to keep for 30 years or so :-p
> 
> We keep it as long as we have to. If no-one's relying on the typo by the
> next merge window, I see no reason we'd have to keep support for the

and how could you know that ? considering it's an ABI, how could you
ever know that ?
Mark Rutland Nov. 15, 2013, 3:55 p.m. UTC | #5
On Thu, Nov 14, 2013 at 03:54:04PM +0000, Felipe Balbi wrote:
> HI,
> 
> On Thu, Nov 14, 2013 at 11:19:59AM +0000, Mark Rutland wrote:
> > > On Tue, Oct 22, 2013 at 10:42:00AM +0200, Sebastian Andrzej Siewior wrote:
> > > > On 10/21/2013 10:13 PM, Felipe Balbi wrote:
> > > > > diff --git a/drivers/input/touchscreen/ti_am335x_tsc.c b/drivers/input/touchscreen/ti_am335x_tsc.c
> > > > > index e1c5300..b61df9d 100644
> > > > > --- a/drivers/input/touchscreen/ti_am335x_tsc.c
> > > > > +++ b/drivers/input/touchscreen/ti_am335x_tsc.c
> > > > > @@ -348,9 +348,16 @@ static int titsc_parse_dt(struct platform_device *pdev,
> > > > >  	if (err < 0)
> > > > >  		return err;
> > > > >  
> > > > > -	err = of_property_read_u32(node, "ti,coordiante-readouts",
> > > > > +	/*
> > > > > +	 * try with new binding first. If it fails, still try with
> > > > > +	 * bogus, miss-spelled version.
> > > > > +	 */
> > > > > +	err = of_property_read_u32(node, "ti,coordinate-readouts",
> > > > >  			&ts_dev->coordinate_readouts);
> > > > >  	if (err < 0)
> > > > > +		err = of_property_read_u32(node, "ti,coordiante-readouts",
> > > > > +				&ts_dev->coordinate_readouts);
> > > > > +	if (err < 0)
> > > > >  		return err;
> > > > 
> > > > Thanks, very good. Do we keep this fallback for ever or just for a year
> > > > or two?
> > > 
> > > That's for DT maintainers to decide but considering DT is an ABI, I
> > > guess we need to keep for 30 years or so :-p
> > 
> > We keep it as long as we have to. If no-one's relying on the typo by the
> > next merge window, I see no reason we'd have to keep support for the
> 
> and how could you know that ? considering it's an ABI, how could you
> ever know that ?

If you know that the only user of a binding is a dts for a particular
product that you're in charge of, then you'd know the set of kernel +
dtb combinations out there, and can judge.

If a bug is found in a driver such that it hasn't worked for a number of
releases, and no-one's complained, the binding is clearly not in use and
thus support for it can be removed.

If maintaining compatibility becomes too hard, and all users are happy
to migrate to a newer dtb, then it's not necessary to maintain
compatiblity for the old binding.

While we can't always remove existing bindings, there are cases where
it's possible and appropriate. However, we should strive for
compatibility for as long a term as possible.

Thanks,
Mark.
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Felipe Balbi Nov. 15, 2013, 5:53 p.m. UTC | #6
Hi,

On Fri, Nov 15, 2013 at 03:55:40PM +0000, Mark Rutland wrote:
> > > > > > diff --git a/drivers/input/touchscreen/ti_am335x_tsc.c b/drivers/input/touchscreen/ti_am335x_tsc.c
> > > > > > index e1c5300..b61df9d 100644
> > > > > > --- a/drivers/input/touchscreen/ti_am335x_tsc.c
> > > > > > +++ b/drivers/input/touchscreen/ti_am335x_tsc.c
> > > > > > @@ -348,9 +348,16 @@ static int titsc_parse_dt(struct platform_device *pdev,
> > > > > >  	if (err < 0)
> > > > > >  		return err;
> > > > > >  
> > > > > > -	err = of_property_read_u32(node, "ti,coordiante-readouts",
> > > > > > +	/*
> > > > > > +	 * try with new binding first. If it fails, still try with
> > > > > > +	 * bogus, miss-spelled version.
> > > > > > +	 */
> > > > > > +	err = of_property_read_u32(node, "ti,coordinate-readouts",
> > > > > >  			&ts_dev->coordinate_readouts);
> > > > > >  	if (err < 0)
> > > > > > +		err = of_property_read_u32(node, "ti,coordiante-readouts",
> > > > > > +				&ts_dev->coordinate_readouts);
> > > > > > +	if (err < 0)
> > > > > >  		return err;
> > > > > 
> > > > > Thanks, very good. Do we keep this fallback for ever or just for a year
> > > > > or two?
> > > > 
> > > > That's for DT maintainers to decide but considering DT is an ABI, I
> > > > guess we need to keep for 30 years or so :-p
> > > 
> > > We keep it as long as we have to. If no-one's relying on the typo by the
> > > next merge window, I see no reason we'd have to keep support for the
> > 
> > and how could you know that ? considering it's an ABI, how could you
> > ever know that ?
> 
> If you know that the only user of a binding is a dts for a particular
> product that you're in charge of, then you'd know the set of kernel +
> dtb combinations out there, and can judge.

once the binding has made into mainline, it's next to impossible to
figure out who has downloaded a tarball containing that driver and made
a product out of it.

Besides keeping that check in the driver won't hurt at all in the long
run. I would give it at least until 4.0 before thinking about removing,
and that might still not be enough time.
Mark Rutland Nov. 18, 2013, 11:40 a.m. UTC | #7
On Fri, Nov 15, 2013 at 05:53:56PM +0000, Felipe Balbi wrote:
> Hi,
> 
> On Fri, Nov 15, 2013 at 03:55:40PM +0000, Mark Rutland wrote:
> > > > > > > diff --git a/drivers/input/touchscreen/ti_am335x_tsc.c b/drivers/input/touchscreen/ti_am335x_tsc.c
> > > > > > > index e1c5300..b61df9d 100644
> > > > > > > --- a/drivers/input/touchscreen/ti_am335x_tsc.c
> > > > > > > +++ b/drivers/input/touchscreen/ti_am335x_tsc.c
> > > > > > > @@ -348,9 +348,16 @@ static int titsc_parse_dt(struct platform_device *pdev,
> > > > > > >  	if (err < 0)
> > > > > > >  		return err;
> > > > > > >  
> > > > > > > -	err = of_property_read_u32(node, "ti,coordiante-readouts",
> > > > > > > +	/*
> > > > > > > +	 * try with new binding first. If it fails, still try with
> > > > > > > +	 * bogus, miss-spelled version.
> > > > > > > +	 */
> > > > > > > +	err = of_property_read_u32(node, "ti,coordinate-readouts",
> > > > > > >  			&ts_dev->coordinate_readouts);
> > > > > > >  	if (err < 0)
> > > > > > > +		err = of_property_read_u32(node, "ti,coordiante-readouts",
> > > > > > > +				&ts_dev->coordinate_readouts);
> > > > > > > +	if (err < 0)
> > > > > > >  		return err;
> > > > > > 
> > > > > > Thanks, very good. Do we keep this fallback for ever or just for a year
> > > > > > or two?
> > > > > 
> > > > > That's for DT maintainers to decide but considering DT is an ABI, I
> > > > > guess we need to keep for 30 years or so :-p
> > > > 
> > > > We keep it as long as we have to. If no-one's relying on the typo by the
> > > > next merge window, I see no reason we'd have to keep support for the
> > > 
> > > and how could you know that ? considering it's an ABI, how could you
> > > ever know that ?
> > 
> > If you know that the only user of a binding is a dts for a particular
> > product that you're in charge of, then you'd know the set of kernel +
> > dtb combinations out there, and can judge.
> 
> once the binding has made into mainline, it's next to impossible to
> figure out who has downloaded a tarball containing that driver and made
> a product out of it.
> 
> Besides keeping that check in the driver won't hurt at all in the long
> run. I would give it at least until 4.0 before thinking about removing,
> and that might still not be enough time.

That sounds sensible to me. As mentioned before I'd recommend adding a
warning for the typo now in the (possibly naïve) hope that it will
encourage people to fix up their dts early.

Thanks,
Mark.
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/input/touchscreen/ti-tsc-adc.txt b/Documentation/devicetree/bindings/input/touchscreen/ti-tsc-adc.txt
index 491c97b..878549b 100644
--- a/Documentation/devicetree/bindings/input/touchscreen/ti-tsc-adc.txt
+++ b/Documentation/devicetree/bindings/input/touchscreen/ti-tsc-adc.txt
@@ -6,7 +6,7 @@  Required properties:
 	ti,wires: Wires refer to application modes i.e. 4/5/8 wire touchscreen
 		  support on the platform.
 	ti,x-plate-resistance: X plate resistance
-	ti,coordiante-readouts: The sequencer supports a total of 16
+	ti,coordinate-readouts: The sequencer supports a total of 16
 				programmable steps each step is used to
 				read a single coordinate. A single
                                 readout is enough but multiple reads can
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index e8ec875..c5b73bc 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -509,7 +509,7 @@ 
 	tsc {
 		ti,wires = <4>;
 		ti,x-plate-resistance = <200>;
-		ti,coordiante-readouts = <5>;
+		ti,coordinate-readouts = <5>;
 		ti,wire-config = <0x00 0x11 0x22 0x33>;
 	};
 
diff --git a/drivers/input/touchscreen/ti_am335x_tsc.c b/drivers/input/touchscreen/ti_am335x_tsc.c
index e1c5300..b61df9d 100644
--- a/drivers/input/touchscreen/ti_am335x_tsc.c
+++ b/drivers/input/touchscreen/ti_am335x_tsc.c
@@ -348,9 +348,16 @@  static int titsc_parse_dt(struct platform_device *pdev,
 	if (err < 0)
 		return err;
 
-	err = of_property_read_u32(node, "ti,coordiante-readouts",
+	/*
+	 * try with new binding first. If it fails, still try with
+	 * bogus, miss-spelled version.
+	 */
+	err = of_property_read_u32(node, "ti,coordinate-readouts",
 			&ts_dev->coordinate_readouts);
 	if (err < 0)
+		err = of_property_read_u32(node, "ti,coordiante-readouts",
+				&ts_dev->coordinate_readouts);
+	if (err < 0)
 		return err;
 
 	return of_property_read_u32_array(node, "ti,wire-config",