Message ID | 1382386404-6659-2-git-send-email-balbi@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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
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
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
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 ?
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
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.
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 --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",
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(-)