From: marek.vasut@gmail.com (Marek Vasut)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] OMAP1: Fix non-working LCD on OMAP310
Date: Wed, 2 Feb 2011 12:13:39 +0100 [thread overview]
Message-ID: <201102021213.39785.marek.vasut@gmail.com> (raw)
In-Reply-To: <1296645144-19457-1-git-send-email-marek.vasut@gmail.com>
On Wednesday 02 February 2011 12:12:24 Marek Vasut wrote:
> This patch fixes bug introduced in revision:
>
> f8e9e98454606e43b728269de21db349f57861c7
> omap1: DMA: move LCD related code from plat-omap to mach-omap1
>
> The code introduced by this patch didn't consider any other CPUs but
> OMAP1510, which rendered OMAP310 -- which has the same LCD controller --
> non-working. Use cpu_is_omap15xx() instead of cpu_is_omap1510() to squash
> this issue.
>
> Bug found on Palm Zire 71 hardware.
>
> Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
CCing also linux-arm-kenrel, sorry for the noise, I promise to fix my bash
history ;-)
> ---
> arch/arm/mach-omap1/lcd_dma.c | 24 ++++++++++++------------
> 1 files changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/arch/arm/mach-omap1/lcd_dma.c b/arch/arm/mach-omap1/lcd_dma.c
> index c9088d8..4538093 100644
> --- a/arch/arm/mach-omap1/lcd_dma.c
> +++ b/arch/arm/mach-omap1/lcd_dma.c
> @@ -37,7 +37,7 @@ int omap_lcd_dma_running(void)
> * On OMAP1510, internal LCD controller will start the transfer
> * when it gets enabled, so assume DMA running if LCD enabled.
> */
> - if (cpu_is_omap1510())
> + if (cpu_is_omap15xx())
> if (omap_readw(OMAP_LCDC_CONTROL) & OMAP_LCDC_CTRL_LCD_EN)
> return 1;
>
> @@ -95,7 +95,7 @@ EXPORT_SYMBOL(omap_set_lcd_dma_single_transfer);
>
> void omap_set_lcd_dma_b1_rotation(int rotate)
> {
> - if (cpu_is_omap1510()) {
> + if (cpu_is_omap15xx()) {
> printk(KERN_ERR "DMA rotation is not supported in 1510 mode\n");
> BUG();
> return;
> @@ -106,7 +106,7 @@ EXPORT_SYMBOL(omap_set_lcd_dma_b1_rotation);
>
> void omap_set_lcd_dma_b1_mirror(int mirror)
> {
> - if (cpu_is_omap1510()) {
> + if (cpu_is_omap15xx()) {
> printk(KERN_ERR "DMA mirror is not supported in 1510 mode\n");
> BUG();
> }
> @@ -116,7 +116,7 @@ EXPORT_SYMBOL(omap_set_lcd_dma_b1_mirror);
>
> void omap_set_lcd_dma_b1_vxres(unsigned long vxres)
> {
> - if (cpu_is_omap1510()) {
> + if (cpu_is_omap15xx()) {
> printk(KERN_ERR "DMA virtual resulotion is not supported "
> "in 1510 mode\n");
> BUG();
> @@ -127,7 +127,7 @@ EXPORT_SYMBOL(omap_set_lcd_dma_b1_vxres);
>
> void omap_set_lcd_dma_b1_scale(unsigned int xscale, unsigned int yscale)
> {
> - if (cpu_is_omap1510()) {
> + if (cpu_is_omap15xx()) {
> printk(KERN_ERR "DMA scale is not supported in 1510 mode\n");
> BUG();
> }
> @@ -177,7 +177,7 @@ static void set_b1_regs(void)
> bottom = PIXADDR(lcd_dma.xres - 1, lcd_dma.yres - 1);
> /* 1510 DMA requires the bottom address to be 2 more
> * than the actual last memory access location. */
> - if (cpu_is_omap1510() &&
> + if (cpu_is_omap15xx() &&
> lcd_dma.data_type == OMAP_DMA_DATA_TYPE_S32)
> bottom += 2;
> ei = PIXSTEP(0, 0, 1, 0);
> @@ -241,7 +241,7 @@ static void set_b1_regs(void)
> return; /* Suppress warning about uninitialized vars */
> }
>
> - if (cpu_is_omap1510()) {
> + if (cpu_is_omap15xx()) {
> omap_writew(top >> 16, OMAP1510_DMA_LCD_TOP_F1_U);
> omap_writew(top, OMAP1510_DMA_LCD_TOP_F1_L);
> omap_writew(bottom >> 16, OMAP1510_DMA_LCD_BOT_F1_U);
> @@ -343,7 +343,7 @@ void omap_free_lcd_dma(void)
> BUG();
> return;
> }
> - if (!cpu_is_omap1510())
> + if (!cpu_is_omap15xx())
> omap_writew(omap_readw(OMAP1610_DMA_LCD_CCR) & ~1,
> OMAP1610_DMA_LCD_CCR);
> lcd_dma.reserved = 0;
> @@ -360,7 +360,7 @@ void omap_enable_lcd_dma(void)
> * connected. Otherwise the OMAP internal controller will
> * start the transfer when it gets enabled.
> */
> - if (cpu_is_omap1510() || !lcd_dma.ext_ctrl)
> + if (cpu_is_omap15xx() || !lcd_dma.ext_ctrl)
> return;
>
> w = omap_readw(OMAP1610_DMA_LCD_CTRL);
> @@ -378,14 +378,14 @@ EXPORT_SYMBOL(omap_enable_lcd_dma);
> void omap_setup_lcd_dma(void)
> {
> BUG_ON(lcd_dma.active);
> - if (!cpu_is_omap1510()) {
> + if (!cpu_is_omap15xx()) {
> /* Set some reasonable defaults */
> omap_writew(0x5440, OMAP1610_DMA_LCD_CCR);
> omap_writew(0x9102, OMAP1610_DMA_LCD_CSDP);
> omap_writew(0x0004, OMAP1610_DMA_LCD_LCH_CTRL);
> }
> set_b1_regs();
> - if (!cpu_is_omap1510()) {
> + if (!cpu_is_omap15xx()) {
> u16 w;
>
> w = omap_readw(OMAP1610_DMA_LCD_CCR);
> @@ -407,7 +407,7 @@ void omap_stop_lcd_dma(void)
> u16 w;
>
> lcd_dma.active = 0;
> - if (cpu_is_omap1510() || !lcd_dma.ext_ctrl)
> + if (cpu_is_omap15xx() || !lcd_dma.ext_ctrl)
> return;
>
> w = omap_readw(OMAP1610_DMA_LCD_CCR);
parent reply other threads:[~2011-02-02 11:13 UTC|newest]
Thread overview: expand[flat|nested] mbox.gz Atom feed
[parent not found: <1296645144-19457-1-git-send-email-marek.vasut@gmail.com>]
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=201102021213.39785.marek.vasut@gmail.com \
--to=marek.vasut@gmail.com \
--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 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.