linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: marex@denx.de (Marek Vasut)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 7/7] ARM i.MX51 babbage: Add display support
Date: Tue, 8 Jan 2013 18:29:06 +0100	[thread overview]
Message-ID: <201301081829.06441.marex@denx.de> (raw)
In-Reply-To: <1357665800.2527.17.camel@pizza.hi.pengutronix.de>

Dear Philipp Zabel,

> Am Dienstag, den 08.01.2013, 18:09 +0100 schrieb Marek Vasut:
> > Dear Fabio Estevam,
> > 
> > > On Tue, Jan 8, 2013 at 2:41 PM, Fabio Estevam <festevam@gmail.com> wrote:
> > > > Hi Sascha,
> > > > 
> > > > On Mon, Nov 12, 2012 at 1:23 PM, Sascha Hauer
> > > > <s.hauer@pengutronix.de>
> > 
> > wrote:
> > > >> The babbage board has a DVI-I output which allows to output analog
> > > >> and digital signals simultaneously. This patch adds support for it
> > > >> to the devicetree. The DDC signals are not wired up on the board, so
> > > >> DRM will fall back on default VESA modes.
> > > >> 
> > > >> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> > > > 
> > > > I am running linux-next 20130108, which has this patch applied and I
> > > 
> > > > get the following on my mx51babbage:
> > > Ok, good news. I see a nice penguin on my monitor now.
> > > 
> > > Discussed with Marek and he proposed a quick workaround:
> > > 
> > > --- a/drivers/staging/imx-drm/ipuv3-crtc.c
> > > +++ b/drivers/staging/imx-drm/ipuv3-crtc.c
> > > @@ -343,6 +343,11 @@ static irqreturn_t ipu_irq_handler(int irq, void
> > > *dev_id) {
> > > 
> > >         struct ipu_crtc *ipu_crtc = dev_id;
> > > 
> > > +       if (!ipu_crtc->imx_crtc) {
> > > +               pr_err("Spurious IPU IRQ\n");
> > > +               return IRQ_HANDLED;
> > > +       }
> > > +
> > > 
> > >         imx_drm_handle_vblank(ipu_crtc->imx_crtc);
> > >         
> > >         if (ipu_crtc->newfb) {
> > > 
> > > It seems that this issue happened because bootloader leaves the IPU
> > > turned on.
> > 
> > To elaborate more on this stuff:
> > 
> > 491         ipu_crtc->irq = ipu_idmac_channel_irq(ipu, ipu_crtc->ipu_ch,
> > 492                         IPU_IRQ_EOF);
> > 493         ret = devm_request_irq(ipu_crtc->dev, ipu_crtc->irq,
> > ipu_irq_handler, 0,
> > 494                         "imx_drm", ipu_crtc);
> > 495         if (ret < 0) {
> > 496                 dev_err(ipu_crtc->dev, "irq request failed with
> > %d.\n", ret);
> > 497                 goto err_out;
> > 498         }
> > 499
> > 500         disable_irq(ipu_crtc->irq);
> > 
> > This code in drivers/staging/imx-drm/ipuv3-crtc.c is broken. If the IPU
> > is on, it produces an interrupt before the driver is fully set up. I
> > didn't produce a patch yet, I think I might offload this to someone
> > else. Volunteers?
> 
> Reordering the ipu_get_resources and imx_drm_add_crtc calls should resolve
> this:
> 
> From: Philipp Zabel <p.zabel@pengutronix.de>
> Subject: [PATCH] staging: imx/drm: add crtc before registering interrupt
>  handler
> 
> If the bootloader already enabled the display, the interrupt handler
> will be called as soon as it is registered. If the CRTC is not already
> added at this time, the call to imx_drm_handle_vblank will result in
> a NULL pointer dereference.

I ain't no IPU expert, but isn't adding the component before having it fully 
inited even worse?

  reply	other threads:[~2013-01-08 17:29 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-12 15:23 [PATCH] i.MX IPU SoC support Sascha Hauer
2012-11-12 15:23 ` [PATCH 1/7] ARM i.MX51: setup MIPI during startup Sascha Hauer
2012-11-12 15:23 ` [PATCH 2/7] ARM i.MX6: fix ldb_di_sel mux Sascha Hauer
2012-11-12 15:23 ` [PATCH 3/7] ARM i.MX5: switch IPU clk support to devicetree bindings Sascha Hauer
2012-12-11  5:57   ` Shawn Guo
2012-12-11  9:14     ` Sascha Hauer
2012-12-11 13:13       ` Shawn Guo
2012-11-12 15:23 ` [PATCH 4/7] ARM i.MX53: Add IPU support Sascha Hauer
2012-11-12 15:23 ` [PATCH 5/7] ARM i.MX51: " Sascha Hauer
2012-11-12 15:23 ` [PATCH 6/7] ARM i.MX6: " Sascha Hauer
2012-11-12 15:23 ` [PATCH 7/7] ARM i.MX51 babbage: Add display support Sascha Hauer
2012-11-12 21:40   ` Martin Fuzzey
2012-11-12 21:53     ` Fabio Estevam
2013-01-08 16:41   ` Fabio Estevam
2013-01-08 17:04     ` Fabio Estevam
2013-01-08 17:09       ` Marek Vasut
2013-01-08 17:23         ` Philipp Zabel
2013-01-08 17:29           ` Marek Vasut [this message]
2013-01-09  9:04             ` Philipp Zabel
2013-01-09  9:26               ` Marek Vasut
2013-01-09  9:46                 ` Philipp Zabel
2013-01-09 10:25                   ` Marek Vasut
2013-01-08 17:31           ` Fabio Estevam
2012-11-13  2:52 ` [PATCH] i.MX IPU SoC support Shawn Guo

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=201301081829.06441.marex@denx.de \
    --to=marex@denx.de \
    --cc=linux-arm-kernel@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).