All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Agner <stefan@agner.ch>
To: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Cc: sboyd@kernel.org, mturquette@baylibre.com,
	Alison Wang <alison.wang@nxp.com>,
	David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] drm: fsl-dcu: enable PIXCLK on LS1021A
Date: Tue, 05 Oct 2021 15:45:36 +0200	[thread overview]
Message-ID: <b718fb759c07aaac8f397e4bf7632141@agner.ch> (raw)
In-Reply-To: <8e6830c43fbd97bbca59702896b0dd320f83e940.camel@ew.tq-group.com>

On 2021-10-05 14:35, Matthias Schiffer wrote:
> On Thu, 2021-09-16 at 14:50 +0200, Matthias Schiffer wrote:
>> On Fri, 2020-08-21 at 15:41 +0200, Stefan Agner wrote:
>> > Hi Matthias,
>> >
>> > On 2020-08-20 12:58, Matthias Schiffer wrote:
>> > > The PIXCLK needs to be enabled in SCFG before accessing the DCU on LS1021A,
>> > > or the access will hang.
>> >
>> > Hm, this seems a rather ad-hoc access to SCFG from the DCU. We do
>> > support a pixel clock in the device tree bindings of fsl-dcu, so ideally
>> > we should enable the pixel clock through the clock framework.
>> >
>> > On the other hand, I guess that would mean adding a clock driver to flip
>> > a single bit, which seems a bit excessive too.
>> >
>> > I'd like a second opinion on that. Adding clk framework maintainers.
>>
>> It's been a while, and nobody else has given their opinion. How should
>> we proceed with this patch?
>>
>> Matthias
> 
> This patch is still blocked on a maintainer decision. Should I send a
> rebased version of the current solution, or do we want to have a proper
> clk driver to flip this bit?
> 

The clock maintainers haven't stated an opinion. I've seen similar hacks
for reset and other bits in other places, so I guess it's fine.

Can you also drop the np argument from fsl_dcu_scfg_config_ls1021a(), it
seems unnecessary.

--
Stefan

> 
>>
>>
>> >
>> > --
>> > Stefan
>> >
>> > >
>> > > Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
>> > > ---
>> > >  drivers/gpu/drm/fsl-dcu/Kconfig           |  1 +
>> > >  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 25 +++++++++++++++++++++++
>> > >  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h |  3 +++
>> > >  3 files changed, 29 insertions(+)
>> > >
>> > > diff --git a/drivers/gpu/drm/fsl-dcu/Kconfig b/drivers/gpu/drm/fsl-dcu/Kconfig
>> > > index d7dd8ba90e3a..9e5a35e7c00c 100644
>> > > --- a/drivers/gpu/drm/fsl-dcu/Kconfig
>> > > +++ b/drivers/gpu/drm/fsl-dcu/Kconfig
>> > > @@ -8,6 +8,7 @@ config DRM_FSL_DCU
>> > >  	select DRM_PANEL
>> > >  	select REGMAP_MMIO
>> > >  	select VIDEOMODE_HELPERS
>> > > +	select MFD_SYSCON if SOC_LS1021A
>> > >  	help
>> > >  	  Choose this option if you have an Freescale DCU chipset.
>> > >  	  If M is selected the module will be called fsl-dcu-drm.
>> > > diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
>> > > b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
>> > > index abbc1ddbf27f..8a7556655581 100644
>> > > --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
>> > > +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
>> > > @@ -51,6 +51,23 @@ static const struct regmap_config fsl_dcu_regmap_config = {
>> > >  	.volatile_reg = fsl_dcu_drm_is_volatile_reg,
>> > >  };
>> > >
>> > > +static int fsl_dcu_scfg_config_ls1021a(struct device_node *np)
>> > > +{
>> > > +	struct regmap *scfg;
>> > > +
>> > > +	scfg = syscon_regmap_lookup_by_compatible("fsl,ls1021a-scfg");
>> > > +	if (IS_ERR(scfg))
>> > > +		return PTR_ERR(scfg);
>> > > +
>> > > +	/*
>> > > +	 * For simplicity, enable the PIXCLK unconditionally. It might
>> > > +	 * be possible to disable the clock in PM or on unload as a future
>> > > +	 * improvement.
>> > > +	 */
>> > > +	return regmap_update_bits(scfg, SCFG_PIXCLKCR, SCFG_PIXCLKCR_PXCEN,
>> > > +				  SCFG_PIXCLKCR_PXCEN);
>> > > +}
>> > > +
>> > >  static void fsl_dcu_irq_uninstall(struct drm_device *dev)
>> > >  {
>> > >  	struct fsl_dcu_drm_device *fsl_dev = dev->dev_private;
>> > > @@ -70,6 +87,14 @@ static int fsl_dcu_load(struct drm_device *dev,
>> > > unsigned long flags)
>> > >  		return ret;
>> > >  	}
>> > >
>> > > +	if (of_device_is_compatible(fsl_dev->np, "fsl,ls1021a-dcu")) {
>> > > +		ret = fsl_dcu_scfg_config_ls1021a(fsl_dev->np);
>> > > +		if (ret < 0) {
>> > > +			dev_err(dev->dev, "failed to enable pixclk\n");
>> > > +			goto done;
>> > > +		}
>> > > +	}
>> > > +
>> > >  	ret = drm_vblank_init(dev, dev->mode_config.num_crtc);
>> > >  	if (ret < 0) {
>> > >  		dev_err(dev->dev, "failed to initialize vblank\n");
>> > > diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
>> > > b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
>> > > index e2049a0e8a92..566396013c04 100644
>> > > --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
>> > > +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
>> > > @@ -160,6 +160,9 @@
>> > >  #define FSL_DCU_ARGB4444		12
>> > >  #define FSL_DCU_YUV422			14
>> > >
>> > > +#define SCFG_PIXCLKCR			0x28
>> > > +#define SCFG_PIXCLKCR_PXCEN		BIT(31)
>> > > +
>> > >  #define VF610_LAYER_REG_NUM		9
>> > >  #define LS1021A_LAYER_REG_NUM		10

      reply	other threads:[~2021-10-05 13:45 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-20 10:58 [PATCH] drm: fsl-dcu: enable PIXCLK on LS1021A Matthias Schiffer
2020-08-20 10:58 ` Matthias Schiffer
2020-08-21 13:41 ` Stefan Agner
2020-08-21 13:41   ` Stefan Agner
2020-09-18  8:06   ` Matthias Schiffer
2020-09-18  8:06     ` Matthias Schiffer
2021-09-16 12:50   ` Matthias Schiffer
2021-09-16 12:50     ` Matthias Schiffer
2021-10-05 12:35     ` Matthias Schiffer
2021-10-05 13:45       ` Stefan Agner [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b718fb759c07aaac8f397e4bf7632141@agner.ch \
    --to=stefan@agner.ch \
    --cc=airlied@linux.ie \
    --cc=alison.wang@nxp.com \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matthias.schiffer@ew.tq-group.com \
    --cc=mturquette@baylibre.com \
    --cc=sboyd@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.