[Linux-fbdev-devel] [PATCH] fbdev: Add PLB support and cleanup DCR in xilinxfb driver.

Krzysztof Helt krzysztof.h1 at poczta.fm
Sun May 17 18:06:43 EST 2009


Hi Grant and John,

On Fri, 15 May 2009 12:19:17 -0600
Grant Likely <grant.likely at secretlab.ca> wrote:

> Antonino,
> 

Antonino is gone for quite a long time. I have reviewed your patch.
I have two comments only. Both are of small caliber.

> If you prefer, I'm willing to merge it via my powerpc tree.
> 

As you prefer. If you want to send it here, CC it top Andrew Morton.

>  drivers/video/xilinxfb.c |  290 ++++++++++++++++++++++++----------------------
>  1 files changed, 151 insertions(+), 139 deletions(-)
> 
> 
> diff --git a/drivers/video/xilinxfb.c b/drivers/video/xilinxfb.c
> index 40a3a2a..7a868bd 100644
> --- a/drivers/video/xilinxfb.c
> +++ b/drivers/video/xilinxfb.c

(...)

> @@ -107,17 +111,28 @@ static struct fb_var_screeninfo xilinx_fb_var = {
>  	.activate =	FB_ACTIVATE_NOW
>  };
>  
> +
> +#define PLB_ACCESS_FLAG	0x1		/* 1 = PLB, 0 = DCR */
> +
>  struct xilinxfb_drvdata {
>  
>  	struct fb_info	info;		/* FB driver info record */
>  
> -	u32		regs_phys;	/* phys. address of the control registers */
> -	u32 __iomem	*regs;		/* virt. address of the control registers */
> +	phys_addr_t	regs_phys;	/* phys. address of the control
> +						registers */

There are fields fb_info.fix.mmio_start and fb_info.fix.mmio_len for
physical IO range used by framebuffer. There is no field for
virtual IO address so the "regs" below must stay.

> +	void __iomem	*regs;		/* virt. address of the control
> +						registers */
> +
> +	dcr_host_t      dcr_host;
> +	unsigned int    dcr_start;
> +	unsigned int    dcr_len;
>  
>  	void		*fb_virt;	/* virt. address of the frame buffer */
>  	dma_addr_t	fb_phys;	/* phys. address of the frame buffer */
>  	int		fb_alloced;	/* Flag, was the fb memory alloced? */
>  
> +	u8 		flags;		/* features of the driver */
> +
>  	u32		reg_ctrl_default;
>  
>  	u32		pseudo_palette[PALETTE_ENTRIES_NO];

(...)

> @@ -247,7 +266,10 @@ static int xilinxfb_assign(struct device *dev, unsigned long physaddr,
>  	if (!drvdata->fb_virt) {
>  		dev_err(dev, "Could not allocate frame buffer memory\n");
>  		rc = -ENOMEM;
> -		goto err_fbmem;
> +		if (drvdata->flags & PLB_ACCESS_FLAG)
> +			goto err_fbmem;
> +		else
> +			goto err_region;
>  	}
>  

The code after labels err_fbmem and err_region is also
modified so there is no need for the if clause here (just
do "goto err_fbmem").

>  	/* Clear (turn to black) the framebuffer */


The rest of the patch is ok for me.

Regards,
Krzysztof

----------------------------------------------------------------------
Fantastyczne nagrody do zgarniecia!
Zagraj >> http://link.interia.pl/f2177 





More information about the Linuxppc-dev mailing list