From: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
To: linux-fbdev@vger.kernel.org
Subject: Re: [PATCH 9/9] drivers/video: fsl-diu-fb: merge diu_pool into fsl_diu_data
Date: Wed, 05 Oct 2011 01:28:47 +0000 [thread overview]
Message-ID: <4E8BB2CF.6030301@gmx.de> (raw)
In-Reply-To: <1317244795-24671-9-git-send-email-timur@freescale.com>
On 10/05/2011 12:36 AM, Timur Tabi wrote:
> The diu_pool structure contains diu_addr objects for various objects
> allocated in DMA space that are used by the DIU, but the only instance
> of this structure is a global variable, 'pool'. Eliminate 'pool' by
> merging its fields into the fsl_diu_data structure, which is instantiated
> on the heap for each DIU controller found.
>
> Signed-off-by: Timur Tabi <timur@freescale.com>
> ---
> drivers/video/fsl-diu-fb.c | 73 +++++++++++++++++++++----------------------
> 1 files changed, 36 insertions(+), 37 deletions(-)
>
> diff --git a/drivers/video/fsl-diu-fb.c b/drivers/video/fsl-diu-fb.c
> index f9a95ab..3a5f547 100644
> --- a/drivers/video/fsl-diu-fb.c
> +++ b/drivers/video/fsl-diu-fb.c
> @@ -55,13 +55,6 @@ struct diu_addr {
> __u32 offset;
> };
>
> -struct diu_pool {
> - struct diu_addr ad;
> - struct diu_addr gamma;
> - struct diu_addr pallete;
> - struct diu_addr cursor;
> -};
> -
> /*
> * List of supported video modes
> *
> @@ -348,6 +341,11 @@ struct fsl_diu_data {
> enum fsl_diu_monitor_port monitor_port;
> struct diu __iomem *diu_reg;
> spinlock_t reg_lock;
> + unsigned int mode; /* DIU operation mode */
And here you are introducing mode again....I think that you did not want to do
this, so I only took the v2 of this series and combined them with the other
patches of your old series (with the addition to the commit message in 4/9 as
you wanted). Please verify that the result in
git://github.com/schandinat/linux-2.6.git fbdev-next
is what you want to have there.
Best regards,
Florian Tobias Schandinat
> + struct diu_addr ad;
> + struct diu_addr gamma;
> + struct diu_addr pallete;
> + struct diu_addr cursor;
> };
>
> enum mfb_index {
> @@ -421,8 +419,6 @@ static struct mfb_info mfb_template[] = {
> },
> };
>
> -static struct diu_pool pool;
> -
> /**
> * fsl_diu_name_to_port - convert a port name to a monitor port enum
> *
> @@ -824,22 +820,23 @@ static void update_lcdc(struct fb_info *info)
> hw = machine_data->diu_reg;
>
> diu_ops.set_monitor_port(machine_data->monitor_port);
> - gamma_table_base = pool.gamma.vaddr;
> - cursor_base = pool.cursor.vaddr;
> + gamma_table_base = machine_data->gamma.vaddr;
> + cursor_base = machine_data->cursor.vaddr;
> /* Prep for DIU init - gamma table, cursor table */
>
> for (i = 0; i <= 2; i++)
> for (j = 0; j <= 255; j++)
> *gamma_table_base++ = j;
>
> - diu_ops.set_gamma_table(machine_data->monitor_port, pool.gamma.vaddr);
> + diu_ops.set_gamma_table(machine_data->monitor_port,
> + machine_data->gamma.vaddr);
>
> disable_lcdc(info);
>
> /* Program DIU registers */
>
> - out_be32(&hw->gamma, pool.gamma.paddr);
> - out_be32(&hw->cursor, pool.cursor.paddr);
> + out_be32(&hw->gamma, machine_data->gamma.paddr);
> + out_be32(&hw->cursor, machine_data->cursor.paddr);
>
> out_be32(&hw->bgnd, 0x007F7F7F); /* BGND */
> out_be32(&hw->bgnd_wb, 0); /* BGND_WB */
> @@ -1560,27 +1557,27 @@ static int __devinit fsl_diu_probe(struct platform_device *pdev)
> machine_data->monitor_port = monitor_port;
>
> /* Area descriptor memory pool aligns to 64-bit boundary */
> - if (allocate_buf(&pdev->dev, &pool.ad,
> + if (allocate_buf(&pdev->dev, &machine_data->ad,
> sizeof(struct diu_ad) * FSL_AOI_NUM, 8))
> return -ENOMEM;
>
> /* Get memory for Gamma Table - 32-byte aligned memory */
> - if (allocate_buf(&pdev->dev, &pool.gamma, 768, 32)) {
> + if (allocate_buf(&pdev->dev, &machine_data->gamma, 768, 32)) {
> ret = -ENOMEM;
> goto error;
> }
>
> /* For performance, cursor bitmap buffer aligns to 32-byte boundary */
> - if (allocate_buf(&pdev->dev, &pool.cursor, MAX_CURS * MAX_CURS * 2,
> - 32)) {
> + if (allocate_buf(&pdev->dev, &machine_data->cursor,
> + MAX_CURS * MAX_CURS * 2, 32)) {
> ret = -ENOMEM;
> goto error;
> }
>
> i = ARRAY_SIZE(machine_data->fsl_diu_info);
> - machine_data->dummy_ad = (struct diu_ad *)
> - ((u32)pool.ad.vaddr + pool.ad.offset) + i;
> - machine_data->dummy_ad->paddr = pool.ad.paddr +
> + machine_data->dummy_ad = (struct diu_ad *)((u32)machine_data->ad.vaddr +
> + machine_data->ad.offset) + i;
> + machine_data->dummy_ad->paddr = machine_data->ad.paddr +
> i * sizeof(struct diu_ad);
> machine_data->dummy_aoi_virt = fsl_diu_alloc(64, &dummy_ad_addr);
> if (!machine_data->dummy_aoi_virt) {
> @@ -1609,9 +1606,10 @@ static int __devinit fsl_diu_probe(struct platform_device *pdev)
> for (i = 0; i < ARRAY_SIZE(machine_data->fsl_diu_info); i++) {
> machine_data->fsl_diu_info[i]->fix.smem_start = 0;
> mfbi = machine_data->fsl_diu_info[i]->par;
> - mfbi->ad = (struct diu_ad *)((u32)pool.ad.vaddr
> - + pool.ad.offset) + i;
> - mfbi->ad->paddr = pool.ad.paddr + i * sizeof(struct diu_ad);
> + mfbi->ad = (struct diu_ad *)((u32)machine_data->ad.vaddr
> + + machine_data->ad.offset) + i;
> + mfbi->ad->paddr > + machine_data->ad.paddr + i * sizeof(struct diu_ad);
> ret = install_fb(machine_data->fsl_diu_info[i]);
> if (ret) {
> dev_err(&pdev->dev, "could not register fb %d\n", i);
> @@ -1643,14 +1641,14 @@ error:
> for (i = 0; i < ARRAY_SIZE(machine_data->fsl_diu_info); i++)
> uninstall_fb(machine_data->fsl_diu_info[i]);
>
> - if (pool.ad.vaddr)
> - free_buf(&pdev->dev, &pool.ad,
> + if (machine_data->ad.vaddr)
> + free_buf(&pdev->dev, &machine_data->ad,
> sizeof(struct diu_ad) * FSL_AOI_NUM, 8);
> - if (pool.gamma.vaddr)
> - free_buf(&pdev->dev, &pool.gamma, 768, 32);
> - if (pool.cursor.vaddr)
> - free_buf(&pdev->dev, &pool.cursor, MAX_CURS * MAX_CURS * 2,
> - 32);
> + if (machine_data->gamma.vaddr)
> + free_buf(&pdev->dev, &machine_data->gamma, 768, 32);
> + if (machine_data->cursor.vaddr)
> + free_buf(&pdev->dev, &machine_data->cursor,
> + MAX_CURS * MAX_CURS * 2, 32);
> if (machine_data->dummy_aoi_virt)
> fsl_diu_free(machine_data->dummy_aoi_virt, 64);
> iounmap(machine_data->diu_reg);
> @@ -1674,13 +1672,14 @@ static int fsl_diu_remove(struct platform_device *pdev)
> free_irq_local(machine_data);
> for (i = 0; i < ARRAY_SIZE(machine_data->fsl_diu_info); i++)
> uninstall_fb(machine_data->fsl_diu_info[i]);
> - if (pool.ad.vaddr)
> - free_buf(&pdev->dev, &pool.ad,
> + if (machine_data->ad.vaddr)
> + free_buf(&pdev->dev, &machine_data->ad,
> sizeof(struct diu_ad) * FSL_AOI_NUM, 8);
> - if (pool.gamma.vaddr)
> - free_buf(&pdev->dev, &pool.gamma, 768, 32);
> - if (pool.cursor.vaddr)
> - free_buf(&pdev->dev, &pool.cursor, MAX_CURS * MAX_CURS * 2, 32);
> + if (machine_data->gamma.vaddr)
> + free_buf(&pdev->dev, &machine_data->gamma, 768, 32);
> + if (machine_data->cursor.vaddr)
> + free_buf(&pdev->dev, &machine_data->cursor,
> + MAX_CURS * MAX_CURS * 2, 32);
> if (machine_data->dummy_aoi_virt)
> fsl_diu_free(machine_data->dummy_aoi_virt, 64);
> iounmap(machine_data->diu_reg);
next prev parent reply other threads:[~2011-10-05 1:28 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-28 21:19 [PATCH 9/9] drivers/video: fsl-diu-fb: merge diu_pool into fsl_diu_data Timur Tabi
2011-10-05 0:36 ` Timur Tabi
2011-10-05 1:28 ` Florian Tobias Schandinat [this message]
2011-10-05 3:26 ` [PATCH 9/9] drivers/video: fsl-diu-fb: merge diu_pool into Tabi Timur-B04825
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=4E8BB2CF.6030301@gmx.de \
--to=florianschandinat@gmx.de \
--cc=linux-fbdev@vger.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.