From: Andrew Morton <akpm@linux-foundation.org>
To: York Sun <yorksun@freescale.com>
Cc: avorontsov@ru.mvista.com,
linux-fbdev-devel@lists.sourceforge.net, timur@freescale.com,
adaplas@gmail.com
Subject: Re: [PATCH] fsl_diu_fb: fix build with CONFIG_PM=y, plus fix some warnings
Date: Mon, 30 Jun 2008 12:40:24 -0700 [thread overview]
Message-ID: <20080630124024.545e4c05.akpm@linux-foundation.org> (raw)
In-Reply-To: <1212765952.4939.9.camel@tera>
On Fri, 06 Jun 2008 10:25:52 -0500
York Sun <yorksun@freescale.com> wrote:
> Anton,
>
> Thanks for spending time on this. We will verify it soon.
>
It looks fine to me. I merged it with the intention of putting it into
2.6.26.
>
> On Fri, 2008-06-06 at 18:55 +0400, Anton Vorontsov wrote:
> > This patch fixes following build error when CONFIG_PM is set.
> >
> > CC drivers/video/fsl-diu-fb.o
> > drivers/video/fsl-diu-fb.c: In function 'fsl_diu_suspend':
> > drivers/video/fsl-diu-fb.c:1327: error: 'ofdev' undeclared (first use in this function)
> > drivers/video/fsl-diu-fb.c:1327: error: (Each undeclared identifier is reported only once
> > drivers/video/fsl-diu-fb.c:1327: error: for each function it appears in.)
> > drivers/video/fsl-diu-fb.c: In function 'fsl_diu_resume':
> > drivers/video/fsl-diu-fb.c:1337: error: 'ofdev' undeclared (first use in this function)
> >
> > While I'm at it, also fix this warning:
> >
> > drivers/video/fsl-diu-fb.c: In function 'fsl_diu_alloc':
> > drivers/video/fsl-diu-fb.c:314: warning: format '%lx' expects type 'long unsigned int', but argument 3 has type 'phys_addr_t'
> >
> > And these section mismatches:
> >
> > ..from the function fsl_diu_remove() to the function .exit.text:uninstall_fb()
> > ..from the function fsl_diu_remove() to the function .exit.text:uninstall_fb()
> > ..from the function install_fb() to the variable .devinit.data:fsl_diu_mode_db
> > ..from the function install_fb() to the variable .devinit.data:fsl_diu_mode_db
> > ..from the function fsl_diu_probe() to the function .exit.text:uninstall_fb()
> > ..from the function fsl_diu_probe() to the function .exit.text:uninstall_fb()
> >
> > Also, some sparse fixes: make two functions static, and use NULL where
> > appropriate. There are still a lot of sparse warnings, mainly wrt absence
> > of __iomem annotations, but some will require ugly __force stuff. I'll leave
> > them for now, since proper fix would be not that trivial as few one-liners
> > below.
> >
> > Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
> > ---
> > drivers/video/fsl-diu-fb.c | 29 +++++++++++++++--------------
> > 1 files changed, 15 insertions(+), 14 deletions(-)
> >
> > diff --git a/drivers/video/fsl-diu-fb.c b/drivers/video/fsl-diu-fb.c
> > index b50bb03..7a78fd5 100644
> > --- a/drivers/video/fsl-diu-fb.c
> > +++ b/drivers/video/fsl-diu-fb.c
> > @@ -286,7 +286,7 @@ static struct diu_pool pool;
> > * rheap and make the furture large allocation fail.
> > */
> >
> > -void *fsl_diu_alloc(unsigned long size, phys_addr_t *phys)
> > +static void *fsl_diu_alloc(unsigned long size, phys_addr_t *phys)
> > {
> > void *virt;
> >
> > @@ -311,12 +311,12 @@ void *fsl_diu_alloc(unsigned long size, phys_addr_t *phys)
> > memset(virt, 0, size);
> > }
> >
> > - pr_debug("rh virt=%p phys=%lx\n", virt, *phys);
> > + pr_debug("rh virt=%p phys=%llx\n", virt, (unsigned long long)*phys);
> >
> > return virt;
> > }
> >
> > -void fsl_diu_free(void *p, unsigned long size)
> > +static void fsl_diu_free(void *p, unsigned long size)
> > {
> > pr_debug("p=%p size=%lu\n", p, size);
> >
> > @@ -770,7 +770,7 @@ static int map_video_memory(struct fb_info *info)
> > info->fix.smem_len = info->fix.line_length * info->var.yres_virtual;
> > pr_debug("MAP_VIDEO_MEMORY: smem_len = %d\n", info->fix.smem_len);
> > info->screen_base = fsl_diu_alloc(info->fix.smem_len, &phys);
> > - if (info->screen_base == 0) {
> > + if (info->screen_base == NULL) {
> > printk(KERN_ERR "Unable to allocate fb memory\n");
> > return -ENOMEM;
> > }
> > @@ -788,7 +788,7 @@ static int map_video_memory(struct fb_info *info)
> > static void unmap_video_memory(struct fb_info *info)
> > {
> > fsl_diu_free(info->screen_base, info->fix.smem_len);
> > - info->screen_base = 0;
> > + info->screen_base = NULL;
> > info->fix.smem_start = 0;
> > info->fix.smem_len = 0;
> > }
> > @@ -1158,7 +1158,7 @@ static int init_fbinfo(struct fb_info *info)
> > return 0;
> > }
> >
> > -static int install_fb(struct fb_info *info)
> > +static int __devinit install_fb(struct fb_info *info)
> > {
> > int rc;
> > struct mfb_info *mfbi = info->par;
> > @@ -1233,7 +1233,7 @@ static int install_fb(struct fb_info *info)
> > return 0;
> > }
> >
> > -static void __exit uninstall_fb(struct fb_info *info)
> > +static void uninstall_fb(struct fb_info *info)
> > {
> > struct mfb_info *mfbi = info->par;
> >
> > @@ -1287,7 +1287,7 @@ static int request_irq_local(int irq)
> > /* Read to clear the status */
> > status = in_be32(&hw->int_status);
> >
> > - ret = request_irq(irq, fsl_diu_isr, 0, "diu", 0);
> > + ret = request_irq(irq, fsl_diu_isr, 0, "diu", NULL);
> > if (ret)
> > pr_info("Request diu IRQ failed.\n");
> > else {
> > @@ -1312,7 +1312,7 @@ static void free_irq_local(int irq)
> > /* Disable all LCDC interrupt */
> > out_be32(&hw->int_mask, 0x1f);
> >
> > - free_irq(irq, 0);
> > + free_irq(irq, NULL);
> > }
> >
> > #ifdef CONFIG_PM
> > @@ -1324,7 +1324,7 @@ static int fsl_diu_suspend(struct of_device *dev, pm_message_t state)
> > {
> > struct fsl_diu_data *machine_data;
> >
> > - machine_data = dev_get_drvdata(&ofdev->dev);
> > + machine_data = dev_get_drvdata(&dev->dev);
> > disable_lcdc(machine_data->fsl_diu_info[0]);
> >
> > return 0;
> > @@ -1334,7 +1334,7 @@ static int fsl_diu_resume(struct of_device *dev)
> > {
> > struct fsl_diu_data *machine_data;
> >
> > - machine_data = dev_get_drvdata(&ofdev->dev);
> > + machine_data = dev_get_drvdata(&dev->dev);
> > enable_lcdc(machine_data->fsl_diu_info[0]);
> >
> > return 0;
> > @@ -1353,7 +1353,8 @@ static int allocate_buf(struct diu_addr *buf, u32 size, u32 bytes_align)
> > dma_addr_t paddr = 0;
> >
> > ssize = size + bytes_align;
> > - buf->vaddr = dma_alloc_coherent(0, ssize, &paddr, GFP_DMA | __GFP_ZERO);
> > + buf->vaddr = dma_alloc_coherent(NULL, ssize, &paddr, GFP_DMA |
> > + __GFP_ZERO);
> > if (!buf->vaddr)
> > return -ENOMEM;
> >
> > @@ -1371,7 +1372,7 @@ static int allocate_buf(struct diu_addr *buf, u32 size, u32 bytes_align)
> >
> > static void free_buf(struct diu_addr *buf, u32 size, u32 bytes_align)
> > {
> > - dma_free_coherent(0, size + bytes_align,
> > + dma_free_coherent(NULL, size + bytes_align,
> > buf->vaddr, (buf->paddr - buf->offset));
> > return;
> > }
> > @@ -1411,7 +1412,7 @@ static ssize_t show_monitor(struct device *device,
> > return diu_ops.show_monitor_port(machine_data->monitor_port, buf);
> > }
> >
> > -static int fsl_diu_probe(struct of_device *ofdev,
> > +static int __devinit fsl_diu_probe(struct of_device *ofdev,
> > const struct of_device_id *match)
> > {
> > struct device_node *np = ofdev->node;
>
>
> -------------------------------------------------------------------------
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services for
> just about anything Open Source.
> http://sourceforge.net/services/buy/index.php
> _______________________________________________
> Linux-fbdev-devel mailing list
> Linux-fbdev-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linux-fbdev-devel
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
prev parent reply other threads:[~2008-06-30 19:40 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-06 14:55 [PATCH] fsl_diu_fb: fix build with CONFIG_PM=y, plus fix some warnings Anton Vorontsov
2008-06-06 15:25 ` York Sun
2008-06-30 19:40 ` Andrew Morton [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=20080630124024.545e4c05.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=adaplas@gmail.com \
--cc=avorontsov@ru.mvista.com \
--cc=linux-fbdev-devel@lists.sourceforge.net \
--cc=timur@freescale.com \
--cc=yorksun@freescale.com \
/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.