Message ID | 1384608224-9452-12-git-send-email-javier.martinez@collabora.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
* Javier Martinez Canillas <javier.martinez@collabora.co.uk> [131116 05:25]: > On Device Tree boot the VDDS_DSI regulator is not linked to > the DPI device so omapfb driver probing fails with: > > [ 3.186035] OMAPFB: omapfb_probe > [ 3.190704] omapdss DPI error: can't get VDDS_DSI regulator > [ 3.196594] omapfb omapfb: failed to connect default display > [ 3.202667] omapfb omapfb: failed to init overlay connections > [ 3.208892] OMAPFB: free_resources > [ 3.212493] OMAPFB: free all fbmem > [ 3.216735] omapfb omapfb: failed to setup omapfb > > As a workaround try to use the VPLL2 regulator from twl4030 in > dpi_init_regulator() if getting the VDDS_DSI regulator fails. Probably makes sens to fix this in the dpi.c, but this can also be set in the .dts file. I just set up the following in the omap3-ldp.dts file: &vaux1 { /* Needed for ads7846 */ regulator-name = "vcc"; }; &vpll2 { /* Needed for DSS */ regulator-name = "vdds_dsi"; }; Regards, Tony > Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> > --- > drivers/video/omap2/dss/dpi.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/video/omap2/dss/dpi.c b/drivers/video/omap2/dss/dpi.c > index bd48cde..e328f0b 100644 > --- a/drivers/video/omap2/dss/dpi.c > +++ b/drivers/video/omap2/dss/dpi.c > @@ -550,6 +550,11 @@ static int dpi_init_regulator(void) > return 0; > > vdds_dsi = devm_regulator_get(&dpi.pdev->dev, "vdds_dsi"); > + > + /* DT HACK: try VPLL2 to make omapdss work for OMAP3 IGEPv2 */ > + if (IS_ERR(vdds_dsi)) > + vdds_dsi = devm_regulator_get(&dpi.pdev->dev, "VPLL2"); > + > if (IS_ERR(vdds_dsi)) { > DSSERR("can't get VDDS_DSI regulator\n"); > return PTR_ERR(vdds_dsi); > -- > 1.8.4.2 >
Hi Tony, On 11/16/2013 03:18 PM, Tony Lindgren wrote: > * Javier Martinez Canillas <javier.martinez@collabora.co.uk> [131116 05:25]: >> On Device Tree boot the VDDS_DSI regulator is not linked to >> the DPI device so omapfb driver probing fails with: >> >> [ 3.186035] OMAPFB: omapfb_probe >> [ 3.190704] omapdss DPI error: can't get VDDS_DSI regulator >> [ 3.196594] omapfb omapfb: failed to connect default display >> [ 3.202667] omapfb omapfb: failed to init overlay connections >> [ 3.208892] OMAPFB: free_resources >> [ 3.212493] OMAPFB: free all fbmem >> [ 3.216735] omapfb omapfb: failed to setup omapfb >> >> As a workaround try to use the VPLL2 regulator from twl4030 in >> dpi_init_regulator() if getting the VDDS_DSI regulator fails. > > Probably makes sens to fix this in the dpi.c, but this can also be set > in the .dts file. I just set up the following in the omap3-ldp.dts file: > Sorry is not clear to me if you agree that makes sense to do this fix on dpi.c or if you think this is a bad idea and prefer to do it in the DTS instead? I'm asking to know if I have to send a follow up patch or not :) > &vaux1 { > /* Needed for ads7846 */ > regulator-name = "vcc"; > }; > > &vpll2 { > /* Needed for DSS */ > regulator-name = "vdds_dsi"; > }; > > Regards, > > Tony > > >> Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> >> --- >> drivers/video/omap2/dss/dpi.c | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/drivers/video/omap2/dss/dpi.c b/drivers/video/omap2/dss/dpi.c >> index bd48cde..e328f0b 100644 >> --- a/drivers/video/omap2/dss/dpi.c >> +++ b/drivers/video/omap2/dss/dpi.c >> @@ -550,6 +550,11 @@ static int dpi_init_regulator(void) >> return 0; >> >> vdds_dsi = devm_regulator_get(&dpi.pdev->dev, "vdds_dsi"); >> + >> + /* DT HACK: try VPLL2 to make omapdss work for OMAP3 IGEPv2 */ >> + if (IS_ERR(vdds_dsi)) >> + vdds_dsi = devm_regulator_get(&dpi.pdev->dev, "VPLL2"); >> + >> if (IS_ERR(vdds_dsi)) { >> DSSERR("can't get VDDS_DSI regulator\n"); >> return PTR_ERR(vdds_dsi); >> -- >> 1.8.4.2 >> > Best regards, Javier
* Javier Martinez Canillas <javier.martinez@collabora.co.uk> [131116 07:36]: > Hi Tony, > > On 11/16/2013 03:18 PM, Tony Lindgren wrote: > > * Javier Martinez Canillas <javier.martinez@collabora.co.uk> [131116 05:25]: > >> On Device Tree boot the VDDS_DSI regulator is not linked to > >> the DPI device so omapfb driver probing fails with: > >> > >> [ 3.186035] OMAPFB: omapfb_probe > >> [ 3.190704] omapdss DPI error: can't get VDDS_DSI regulator > >> [ 3.196594] omapfb omapfb: failed to connect default display > >> [ 3.202667] omapfb omapfb: failed to init overlay connections > >> [ 3.208892] OMAPFB: free_resources > >> [ 3.212493] OMAPFB: free all fbmem > >> [ 3.216735] omapfb omapfb: failed to setup omapfb > >> > >> As a workaround try to use the VPLL2 regulator from twl4030 in > >> dpi_init_regulator() if getting the VDDS_DSI regulator fails. > > > > Probably makes sens to fix this in the dpi.c, but this can also be set > > in the .dts file. I just set up the following in the omap3-ldp.dts file: > > > > Sorry is not clear to me if you agree that makes sense to do this fix on dpi.c > or if you think this is a bad idea and prefer to do it in the DTS instead? > > I'm asking to know if I have to send a follow up patch or not :) Well let's see what Tomi prefers. > > &vaux1 { > > /* Needed for ads7846 */ > > regulator-name = "vcc"; > > }; > > > > &vpll2 { > > /* Needed for DSS */ > > regulator-name = "vdds_dsi"; > > }; In the long we'll use regulator phandles anyways in the DSS related nodes, so from that point of view fixing dpi.c makes sense. Regards, Tony
On Sat, Nov 16, 2013 at 07:45:07AM -0800, Tony Lindgren wrote: > Well let's see what Tomi prefers. > > > > &vaux1 { > > > /* Needed for ads7846 */ > > > regulator-name = "vcc"; > > > }; > > > > > > &vpll2 { > > > /* Needed for DSS */ > > > regulator-name = "vdds_dsi"; > > > }; > > In the long we'll use regulator phandles anyways in the DSS related > nodes, so from that point of view fixing dpi.c makes sense. The hack, as being sent by Javier, will result in the wrong regulator being used on the Nokia N900, which is using vaux1. It must depend on the machine. At the same time the N900 device tree file uses V28 as regulator-name for vaux1 (which is the same one as legacy boot used). Nothing depends on this, but I don't think it's a good idea to use this property. Apparently it does not work if multiple drivers need the same regulator under different names. -- Sebastian
diff --git a/drivers/video/omap2/dss/dpi.c b/drivers/video/omap2/dss/dpi.c index bd48cde..e328f0b 100644 --- a/drivers/video/omap2/dss/dpi.c +++ b/drivers/video/omap2/dss/dpi.c @@ -550,6 +550,11 @@ static int dpi_init_regulator(void) return 0; vdds_dsi = devm_regulator_get(&dpi.pdev->dev, "vdds_dsi"); + + /* DT HACK: try VPLL2 to make omapdss work for OMAP3 IGEPv2 */ + if (IS_ERR(vdds_dsi)) + vdds_dsi = devm_regulator_get(&dpi.pdev->dev, "VPLL2"); + if (IS_ERR(vdds_dsi)) { DSSERR("can't get VDDS_DSI regulator\n"); return PTR_ERR(vdds_dsi);
On Device Tree boot the VDDS_DSI regulator is not linked to the DPI device so omapfb driver probing fails with: [ 3.186035] OMAPFB: omapfb_probe [ 3.190704] omapdss DPI error: can't get VDDS_DSI regulator [ 3.196594] omapfb omapfb: failed to connect default display [ 3.202667] omapfb omapfb: failed to init overlay connections [ 3.208892] OMAPFB: free_resources [ 3.212493] OMAPFB: free all fbmem [ 3.216735] omapfb omapfb: failed to setup omapfb As a workaround try to use the VPLL2 regulator from twl4030 in dpi_init_regulator() if getting the VDDS_DSI regulator fails. Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> --- drivers/video/omap2/dss/dpi.c | 5 +++++ 1 file changed, 5 insertions(+)