[v2] i.MX51 Framebuffer support
mbox series

Message ID 1292842127-21406-1-git-send-email-s.hauer@pengutronix.de
State New, archived
Headers show
Series
  • [v2] i.MX51 Framebuffer support
Related show

Pull-request

git://git.pengutronix.de/git/imx/linux-2.6.git ipuv3

Message

Sascha Hauer Dec. 20, 2010, 10:48 a.m. UTC
The following series adds i.MX51 framebuffer support based on the IPUv3. It
is not perfect but I decided it is good enough to open it for a wider audience
and collect first reviews. I tested this on a babbage board using both outputs
(VGA/DVI) with different resolutions up to 1680x1050 and different colour depths.
I also tested it on one custom board using a fixed display setting.

Changes since v1:

- added full overlay support for i.MX51
- more data structures protection
- IPU clock now gets disabled when unused
- many minor cleanups due to comments received from the first round.


The following changes since commit 28a4f908acb342350b9ecbfcdf0a999cb83e05aa:

  ARM: mx5: check for error in ioremap (2010-12-14 09:55:53 +0100)

are available in the git repository at:
  git://git.pengutronix.de/git/imx/linux-2.6.git ipuv3

Sascha Hauer (9):
      ARM i.MX51: Add ipu clock support
      ARM i.MX51: rename IPU irqs
      Add a mfd IPUv3 driver
      fb: export fb mode db table
      Add i.MX5 framebuffer driver
      ARM i.MX51: Add IPU device support
      ARM i.MX5: Allow to increase max zone order
      ARM i.MX5: increase dma consistent size for IPU support
      ARM i.MX51 babbage: Add framebuffer support

 arch/arm/Kconfig                                |    4 +-
 arch/arm/mach-mx5/Kconfig                       |    1 +
 arch/arm/mach-mx5/board-mx51_babbage.c          |   74 ++
 arch/arm/mach-mx5/clock-mx51-mx53.c             |  140 ++++
 arch/arm/mach-mx5/devices-imx51.h               |    4 +
 arch/arm/plat-mxc/devices/Kconfig               |    4 +
 arch/arm/plat-mxc/devices/Makefile              |    1 +
 arch/arm/plat-mxc/devices/platform-imx_ipuv3.c  |   47 ++
 arch/arm/plat-mxc/include/mach/devices-common.h |   10 +
 arch/arm/plat-mxc/include/mach/ipu-v3.h         |   49 ++
 arch/arm/plat-mxc/include/mach/memory.h         |    3 +-
 arch/arm/plat-mxc/include/mach/mx51.h           |    4 +-
 drivers/mfd/Kconfig                             |    7 +
 drivers/mfd/Makefile                            |    1 +
 drivers/mfd/imx-ipu-v3/Makefile                 |    3 +
 drivers/mfd/imx-ipu-v3/ipu-common.c             |  708 +++++++++++++++++
 drivers/mfd/imx-ipu-v3/ipu-cpmem.c              |  612 +++++++++++++++
 drivers/mfd/imx-ipu-v3/ipu-dc.c                 |  364 +++++++++
 drivers/mfd/imx-ipu-v3/ipu-di.c                 |  550 +++++++++++++
 drivers/mfd/imx-ipu-v3/ipu-dmfc.c               |  355 +++++++++
 drivers/mfd/imx-ipu-v3/ipu-dp.c                 |  476 ++++++++++++
 drivers/mfd/imx-ipu-v3/ipu-prv.h                |  216 ++++++
 drivers/video/Kconfig                           |   11 +
 drivers/video/Makefile                          |    1 +
 drivers/video/modedb.c                          |    7 +-
 drivers/video/mx5fb.c                           |  934 +++++++++++++++++++++++
 include/linux/fb.h                              |    3 +
 include/linux/mfd/imx-ipu-v3.h                  |  219 ++++++
 28 files changed, 4802 insertions(+), 6 deletions(-)
 create mode 100644 arch/arm/plat-mxc/devices/platform-imx_ipuv3.c
 create mode 100644 arch/arm/plat-mxc/include/mach/ipu-v3.h
 create mode 100644 drivers/mfd/imx-ipu-v3/Makefile
 create mode 100644 drivers/mfd/imx-ipu-v3/ipu-common.c
 create mode 100644 drivers/mfd/imx-ipu-v3/ipu-cpmem.c
 create mode 100644 drivers/mfd/imx-ipu-v3/ipu-dc.c
 create mode 100644 drivers/mfd/imx-ipu-v3/ipu-di.c
 create mode 100644 drivers/mfd/imx-ipu-v3/ipu-dmfc.c
 create mode 100644 drivers/mfd/imx-ipu-v3/ipu-dp.c
 create mode 100644 drivers/mfd/imx-ipu-v3/ipu-prv.h
 create mode 100644 drivers/video/mx5fb.c
 create mode 100644 include/linux/mfd/imx-ipu-v3.h

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Comments

Arnaud Patard (Rtp) Dec. 22, 2010, 7:56 a.m. UTC | #1
Sascha Hauer <s.hauer@pengutronix.de> writes:

Hi,

> The following series adds i.MX51 framebuffer support based on the IPUv3. It
> is not perfect but I decided it is good enough to open it for a wider audience
> and collect first reviews. I tested this on a babbage board using both outputs
> (VGA/DVI) with different resolutions up to 1680x1050 and different colour depths.
> I also tested it on one custom board using a fixed display setting.

After adding code to my efika sb machine file and your patchset, I've
seen the light. Err, no. It was a penguin and a login prompt.  I guess
it means your patchset is working here.

btw, would be nice to add some comments/docs about :
- the meaning of the fields of the imx_ipuv3_platform_data struct. it's
not clear
- same for .display field of the ipuv3_fb_platform_data

Arnaud
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
Peter Korsgaard Dec. 22, 2010, 10:17 a.m. UTC | #2
>>>>> "Arnaud" == Arnaud Patard (Rtp) <arnaud.patard@rtp-net.org> writes:

 Arnaud> Sascha Hauer <s.hauer@pengutronix.de> writes:
 Arnaud> Hi,

 >> The following series adds i.MX51 framebuffer support based on the
 >> IPUv3. It is not perfect but I decided it is good enough to open it
 >> for a wider audience and collect first reviews. I tested this on a
 >> babbage board using both outputs (VGA/DVI) with different
 >> resolutions up to 1680x1050 and different colour depths.  I also
 >> tested it on one custom board using a fixed display setting.

 Arnaud> After adding code to my efika sb machine file and your patchset, I've
 Arnaud> seen the light. Err, no. It was a penguin and a login prompt.  I guess
 Arnaud> it means your patchset is working here.

Cool. Care to submit that machine file support?
Arnaud Patard (Rtp) Dec. 23, 2010, 8:45 p.m. UTC | #3
Peter Korsgaard <jacmet@sunsite.dk> writes:
Hi,

>>>>>> "Arnaud" == Arnaud Patard (Rtp) <arnaud.patard@rtp-net.org> writes:
>
>  Arnaud> Sascha Hauer <s.hauer@pengutronix.de> writes:
>  Arnaud> Hi,
>
>  >> The following series adds i.MX51 framebuffer support based on the
>  >> IPUv3. It is not perfect but I decided it is good enough to open it
>  >> for a wider audience and collect first reviews. I tested this on a
>  >> babbage board using both outputs (VGA/DVI) with different
>  >> resolutions up to 1680x1050 and different colour depths.  I also
>  >> tested it on one custom board using a fixed display setting.
>
>  Arnaud> After adding code to my efika sb machine file and your patchset, I've
>  Arnaud> seen the light. Err, no. It was a penguin and a login prompt.  I guess
>  Arnaud> it means your patchset is working here.
>
> Cool. Care to submit that machine file support?

Yes, I will (of course) but ... I'd like to see the usb issues I found
fixed because they're the only way to get usb on the sb and without usb,
you have no network, no keyboard, no way to connect any external device,
which makes the sb pretty useless. In the mean time, you can use my
patchset once I've added the fb support in it.

Arnaud
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
Julien Boibessot Jan. 5, 2011, 1:04 p.m. UTC | #4
Hello,

Sascha Hauer a écrit :
> The following series adds i.MX51 framebuffer support based on the IPUv3. It
> is not perfect but I decided it is good enough to open it for a wider audience
> and collect first reviews. I tested this on a babbage board using both outputs
> (VGA/DVI) with different resolutions up to 1680x1050 and different colour depths.
> I also tested it on one custom board using a fixed display setting.
>   
This driver is also working fine for me on a custom i.MX51 board with a
800x480 18 bits TFT LCD (16bpp mode).

The only strange thing I noticed was a kind of uggly sprite/artefact
(32x32, I would say) appearing at the same time as the Linux console. I
think it may be related to a hardware cursor badly (?) initialised, but
I didn't find a fix yet.
It disappears when I launch a graphical application (Qt or SDL).

Regards,
Julien
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
Russell King - ARM Linux Jan. 6, 2011, 9:42 a.m. UTC | #5
On Wed, Jan 05, 2011 at 02:04:20PM +0100, Julien Boibessot wrote:
> Hello,
> 
> Sascha Hauer a écrit :
> > The following series adds i.MX51 framebuffer support based on the IPUv3. It
> > is not perfect but I decided it is good enough to open it for a wider audience
> > and collect first reviews. I tested this on a babbage board using both outputs
> > (VGA/DVI) with different resolutions up to 1680x1050 and different colour depths.
> > I also tested it on one custom board using a fixed display setting.
> >   
> This driver is also working fine for me on a custom i.MX51 board with a
> 800x480 18 bits TFT LCD (16bpp mode).
> 
> The only strange thing I noticed was a kind of uggly sprite/artefact
> (32x32, I would say) appearing at the same time as the Linux console. I
> think it may be related to a hardware cursor badly (?) initialised, but
> I didn't find a fix yet.
> It disappears when I launch a graphical application (Qt or SDL).

In the top left corner?  That'll be the linux penguin logo, and if it's
not coming out correctly, your framebuffer driver is badly broken.
Maybe your RGB bitfield information or visual is wrong?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
Sascha Hauer Jan. 6, 2011, 10:23 a.m. UTC | #6
On Wed, Jan 05, 2011 at 02:04:20PM +0100, Julien Boibessot wrote:
> Hello,
> 
> Sascha Hauer a écrit :
> > The following series adds i.MX51 framebuffer support based on the IPUv3. It
> > is not perfect but I decided it is good enough to open it for a wider audience
> > and collect first reviews. I tested this on a babbage board using both outputs
> > (VGA/DVI) with different resolutions up to 1680x1050 and different colour depths.
> > I also tested it on one custom board using a fixed display setting.
> >   
> This driver is also working fine for me on a custom i.MX51 board with a
> 800x480 18 bits TFT LCD (16bpp mode).
> 
> The only strange thing I noticed was a kind of uggly sprite/artefact
> (32x32, I would say) appearing at the same time as the Linux console. I
> think it may be related to a hardware cursor badly (?) initialised, but
> I didn't find a fix yet.
> It disappears when I launch a graphical application (Qt or SDL).

It may be the penguin, but I remember a similar report also talkling
about hardware cursors. I can't reproduce this. You could search for
cursor in the IPU section of the manual and play with the corresponding
registers.

Sascha
Julien Boibessot Jan. 14, 2011, 9:17 a.m. UTC | #7
Russell King - ARM Linux a écrit :
> On Wed, Jan 05, 2011 at 02:04:20PM +0100, Julien Boibessot wrote:
>   
>> The only strange thing I noticed was a kind of uggly sprite/artefact
>> (32x32, I would say) appearing at the same time as the Linux console. I
>> think it may be related to a hardware cursor badly (?) initialised, but
>> I didn't find a fix yet.
>> It disappears when I launch a graphical application (Qt or SDL).
>>     
>
> In the top left corner?  That'll be the linux penguin logo, and if it's
> not coming out correctly, your framebuffer driver is badly broken.
> Maybe your RGB bitfield information or visual is wrong?
>   
Sorry for my late answer...
Penguin logo is OK, the artefact is just under the penguin and is
looking like a blinking cursor until login message is displayed. At that
time it becomes a kind of uggly rectangular black and white lines mix,
overlapping logging message.
I will follow Sascha's advise and try to play with i.MX51 hardware cursor.

Regards,
Julien
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/