Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1475847 > unrolled thread
| Started by | Stefan Agner <stefan@agner.ch> |
|---|---|
| First post | 2016-09-04 06:40 +0200 |
| Last post | 2016-09-07 09:30 +0200 |
| Articles | 5 — 3 participants |
Back to article view | Back to linux.kernel
[PATCH] video: mxsfb: get supply regulator optionally Stefan Agner <stefan@agner.ch> - 2016-09-04 06:40 +0200
Re: [PATCH] video: mxsfb: get supply regulator optionally Tomi Valkeinen <tomi.valkeinen@ti.com> - 2016-09-06 10:30 +0200
Re: [PATCH] video: mxsfb: get supply regulator optionally Stefan Agner <stefan@agner.ch> - 2016-09-06 20:30 +0200
Re: [PATCH] video: mxsfb: get supply regulator optionally Mark Brown <broonie@kernel.org> - 2016-09-07 00:30 +0200
Re: [PATCH] video: mxsfb: get supply regulator optionally Tomi Valkeinen <tomi.valkeinen@ti.com> - 2016-09-07 09:30 +0200
| From | Stefan Agner <stefan@agner.ch> |
|---|---|
| Date | 2016-09-04 06:40 +0200 |
| Subject | [PATCH] video: mxsfb: get supply regulator optionally |
| Message-ID | <sdxnP-6fv-9@gated-at.bofh.it> |
The lcd-supply is meant to be optional, there are several device- trees not specifying it and the code handles error values silently. Therefor, avoid creating a dummy regulator (and the associated warning) by using devm_regulator_get_optional. While at it, document that fact also in the device-tree bindings. Signed-off-by: Stefan Agner <stefan@agner.ch> --- Documentation/devicetree/bindings/display/mxsfb.txt | 3 +++ drivers/video/fbdev/mxsfb.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/display/mxsfb.txt b/Documentation/devicetree/bindings/display/mxsfb.txt index 96ec517..0bc530f 100644 --- a/Documentation/devicetree/bindings/display/mxsfb.txt +++ b/Documentation/devicetree/bindings/display/mxsfb.txt @@ -7,6 +7,9 @@ Required properties: - interrupts: Should contain lcdif interrupts - display : phandle to display node (see below for details) +Optional properties: +- lcd-supply: Regulator for LCD supply voltage. + * display node Required properties: diff --git a/drivers/video/fbdev/mxsfb.c b/drivers/video/fbdev/mxsfb.c index 4e6608c..4f7570f 100644 --- a/drivers/video/fbdev/mxsfb.c +++ b/drivers/video/fbdev/mxsfb.c @@ -920,7 +920,7 @@ static int mxsfb_probe(struct platform_device *pdev) if (IS_ERR(host->clk_disp_axi)) host->clk_disp_axi = NULL; - host->reg_lcd = devm_regulator_get(&pdev->dev, "lcd"); + host->reg_lcd = devm_regulator_get_optional(&pdev->dev, "lcd"); if (IS_ERR(host->reg_lcd)) host->reg_lcd = NULL; -- 2.9.0
[toc] | [next] | [standalone]
| From | Tomi Valkeinen <tomi.valkeinen@ti.com> |
|---|---|
| Date | 2016-09-06 10:30 +0200 |
| Message-ID | <sejVv-7Vd-19@gated-at.bofh.it> |
| In reply to | #1475847 |
[Multipart message — attachments visible in raw view] — view raw
Hi, On 04/09/16 07:26, Stefan Agner wrote: > The lcd-supply is meant to be optional, there are several device- > trees not specifying it and the code handles error values silently. > Therefor, avoid creating a dummy regulator (and the associated > warning) by using devm_regulator_get_optional. > > While at it, document that fact also in the device-tree bindings. The binding change looks correct, but using devm_regulator_get_optional() does not sound correct. devm_regulator_get_optional() is to be used when the device in question truly can function without the power supply. But if the supply is there, it's just not controlled by the SW, devm_regulator_get() is to be used. At least this is my understanding. Tomi
[toc] | [prev] | [next] | [standalone]
| From | Stefan Agner <stefan@agner.ch> |
|---|---|
| Date | 2016-09-06 20:30 +0200 |
| Message-ID | <seti9-5zu-9@gated-at.bofh.it> |
| In reply to | #1477154 |
On 2016-09-06 01:21, Tomi Valkeinen wrote: > Hi, > > On 04/09/16 07:26, Stefan Agner wrote: >> The lcd-supply is meant to be optional, there are several device- >> trees not specifying it and the code handles error values silently. >> Therefor, avoid creating a dummy regulator (and the associated >> warning) by using devm_regulator_get_optional. >> >> While at it, document that fact also in the device-tree bindings. > > The binding change looks correct, but using > devm_regulator_get_optional() does not sound correct. > > devm_regulator_get_optional() is to be used when the device in question > truly can function without the power supply. But if the supply is there, > it's just not controlled by the SW, devm_regulator_get() is to be used. The framebuffer device can even function without a display, no problem there.. Probably not really useful... devm_regulator_get creates a dummy regulator and a warning. Afaik, the dummy regulator was meant to be as an aid during development, but not as a permanent solution. This is what the initial commit of the dummy regulator says: > In order to ease transitions with drivers are boards start using regulators > provide an option to cause all regulator_get() calls to succeed, with a > dummy always on regulator being supplied where one has not been configured. > A warning is printed whenever the dummy regulator is used to aid system > development. I think we should either make the property mandatory and fix the device trees or we should fix the driver to support an optional regulator. The code already supports the reg_lcd being NULL, which is probably mostly pointless right now as devm_regulator_get always returns a dummy regulator. -- Stefan
[toc] | [prev] | [next] | [standalone]
| From | Mark Brown <broonie@kernel.org> |
|---|---|
| Date | 2016-09-07 00:30 +0200 |
| Message-ID | <sex2q-88Q-39@gated-at.bofh.it> |
| In reply to | #1477735 |
[Multipart message — attachments visible in raw view] — view raw
On Tue, Sep 06, 2016 at 11:23:31AM -0700, Stefan Agner wrote: > On 2016-09-06 01:21, Tomi Valkeinen wrote: > > In order to ease transitions with drivers are boards start using regulators > > provide an option to cause all regulator_get() calls to succeed, with a > > dummy always on regulator being supplied where one has not been configured. > > A warning is printed whenever the dummy regulator is used to aid system > > development. > I think we should either make the property mandatory and fix the device > trees or we should fix the driver to support an optional regulator. The > code already supports the reg_lcd being NULL, which is probably mostly > pointless right now as devm_regulator_get always returns a dummy > regulator. I think you're agreeing with each other here (and me).
[toc] | [prev] | [next] | [standalone]
| From | Tomi Valkeinen <tomi.valkeinen@ti.com> |
|---|---|
| Date | 2016-09-07 09:30 +0200 |
| Message-ID | <seFsZ-56C-3@gated-at.bofh.it> |
| In reply to | #1477735 |
[Multipart message — attachments visible in raw view] — view raw
On 06/09/16 21:23, Stefan Agner wrote: > On 2016-09-06 01:21, Tomi Valkeinen wrote: >> Hi, >> >> On 04/09/16 07:26, Stefan Agner wrote: >>> The lcd-supply is meant to be optional, there are several device- >>> trees not specifying it and the code handles error values silently. >>> Therefor, avoid creating a dummy regulator (and the associated >>> warning) by using devm_regulator_get_optional. >>> >>> While at it, document that fact also in the device-tree bindings. >> >> The binding change looks correct, but using >> devm_regulator_get_optional() does not sound correct. >> >> devm_regulator_get_optional() is to be used when the device in question >> truly can function without the power supply. But if the supply is there, >> it's just not controlled by the SW, devm_regulator_get() is to be used. > > The framebuffer device can even function without a display, no problem > there.. Probably not really useful... Yes. Of course, the question then becomes, why is the fb driver even dealing with the LCD's regulator. But yes, I know the answer: because that's how it has been done =). > devm_regulator_get creates a dummy regulator and a warning. Afaik, the > dummy regulator was meant to be as an aid during development, but not as > a permanent solution. This is what the initial commit of the dummy > regulator says: Yep, the fixed regulator is afaik the correct solution to represent non-controllable regulators. >> In order to ease transitions with drivers are boards start using regulators >> provide an option to cause all regulator_get() calls to succeed, with a >> dummy always on regulator being supplied where one has not been configured. >> A warning is printed whenever the dummy regulator is used to aid system >> development. > > I think we should either make the property mandatory and fix the device > trees or we should fix the driver to support an optional regulator. The > code already supports the reg_lcd being NULL, which is probably mostly > pointless right now as devm_regulator_get always returns a dummy > regulator. To really clean this up, the LCD driver should be separated from the fb driver. But that's pointless work on a framework that should be deprecated (is there a DRM driver for this in the works? =). I'm fine with the _optional version, that's the easiest cleanup here. And, I guess, it could be even argued that it's correct in some cases, as the fb output could go outside the board, to some externally powered display. I'm fine with doing more cleanups too, if it eases the maintenance burden in the future. But I don't see what the cleanups for the device trees would really give us here. Mark, what do you say? Tomi
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web