Hi Anatolij,

<snip>

>> Use CONFIG_VIDEO_SM501NEW to enable the driver.
> 
> not sure if CONFIG_VIDEO_SM501NEW is a good chose here. Maybe
> we should use s.th. like CONFIG_VIDEO_SM50x. This applies to
> the file names too: sm50x.h, sm50x.c, etc. Even better would
> be a merge with the existing driver.

The CONFIG_VIDEO_SM501 driver is completely differently configured
(boards supply tables with register settings). This will be very
hard to merge. SM50x might be a better name, but is it good style
to mix lowercase and uppercase letters in macro name?

<snip>

>> +#define SM501FB_FLAG_USE_INIT_MODE  (1<<0)
>> +#define SM501FB_FLAG_DISABLE_AT_EXIT        (1<<1)
>> +#define SM501FB_FLAG_USE_HWCURSOR   (1<<2)
>> +#define SM501FB_FLAG_USE_HWACCEL    (1<<3)
>> +
>> +struct sm501_platdata_fbsub {
>> +    struct fb_videomode     *def_mode;
>> +    unsigned int             def_bpp;
>> +    unsigned long            max_mem;
>> +    unsigned int             flags;
>> +};
>> +
>> +enum sm501_fb_routing {
>> +    SM501_FB_OWN            = 0,    /* CRT=>CRT, Panel=>Panel */
>> +    SM501_FB_CRT_PANEL      = 1,    /* Panel=>CRT, Panel=>Panel */
>> +};
>> +
>> +/* sm501_platdata_fb flag field bit definitions */
>> +
>> +#define SM501_FBPD_SWAP_FB_ENDIAN   (1<<0)  /* need to endian swap */
>> +
>> +/* sm501_platdata_fb
>> + *
>> + * configuration data for the framebuffer driver
>> +*/
>> +
>> +struct sm501_platdata_fb {
>> +    enum sm501_fb_routing            fb_route;
>> +    unsigned int                     flags;
>> +    struct sm501_platdata_fbsub     *fb_crt;
>> +    struct sm501_platdata_fbsub     *fb_pnl;
>> +};
>> +
>> +/* gpio i2c */
>> +
>> +struct sm501_platdata_gpio_i2c {
>> +    unsigned int            pin_sda;
>> +    unsigned int            pin_scl;
>> +};
> 
> all this stuff above starting from
> "#define SM501FB_FLAG_USE_INIT_MODE"
> can be removed if you remove "init_gpiop", "fb", "gpio_i2c" and
> "gpio_i2c_nr" from the "struct sm501_platdata" definition below.
> Also remove ".fb = &sm501_fb_pdata" from "sm501_pci_platdata"
> declaration in drivers/video/sm501new.c. These structure members
> aren't referenced in this U-Boot driver, so they aren't needed
> (unused and nearly dead code and data).
> 
> <snip>
>> +#define SM501_USE_USB_HOST  (1<<0)
>> +#define SM501_USE_USB_SLAVE (1<<1)
>> +#define SM501_USE_SSP0              (1<<2)
>> +#define SM501_USE_SSP1              (1<<3)
>> +#define SM501_USE_UART0             (1<<4)
>> +#define SM501_USE_UART1             (1<<5)
>> +#define SM501_USE_FBACCEL   (1<<6)
>> +#define SM501_USE_AC97              (1<<7)
>> +#define SM501_USE_I2S               (1<<8)
> 
> These macros aren't used, remove them too.
> 
>> +
>> +#define SM501_USE_ALL               (0xffffffff)
>> +
>> +struct sm501_initdata {
>> +    struct sm501_reg_init   gpio_low;
>> +    struct sm501_reg_init   gpio_high;
>> +    struct sm501_reg_init   misc_timing;
>> +    struct sm501_reg_init   misc_control;
>> +
>> +    unsigned long           devices;
> 
> "devices" member is only initialized in "sm501_pci_initdata"
> declaration and isn't referenced anywhere in the code, so
> another candidate to remove.
> 
>> +/* sm501_platdata
>> + *
>> + * This is passed with the platform device to allow the board
>> + * to control the behaviour of the SM501 driver(s) which attach
>> + * to the device.
>> + *
>> +*/
>> +
>> +struct sm501_platdata {
>> +    struct sm501_initdata           *init;
>> +    struct sm501_init_gpio          *init_gpiop;
>> +    struct sm501_platdata_fb        *fb;
>> +
>> +    struct sm501_platdata_gpio_i2c  *gpio_i2c;
>> +    unsigned int                     gpio_i2c_nr;
> 
> see above suggestion to remove init_gpiop, fb, gpio_i2c and
> gpio_i2c_nr.
> 
> 
>> diff -uprN u-boot-orig//drivers/video/sm501new-regs.h 
>> u-boot/drivers/video/sm501new-regs.h
>> --- u-boot-orig//drivers/video/sm501new-regs.h       1970-01-01 
>> 01:00:00.000000000 +0100
>> +++ u-boot/drivers/video/sm501new-regs.h     2008-12-02 18:28:42.000000000 
>> +0100
>> @@ -0,0 +1,365 @@
>> +/* sm501-regs.h
>> + *
>> + * Copyright 2006 Simtec Electronics
>> + *
>> + * This program is free software; you can redistribute it and/or modify
>> + * it under the terms of the GNU General Public License version 2 as
>> + * published by the Free Software Foundation.
>> + *
>> + * Silicon Motion SM501 register definitions
>> +*/
> 
> please, fix multi-line comment style.
> 
> Also check all below defined macros in this file. If some
> macro isn't used in the driver code, then remove it.
> 
>> +/* System Configuration area */
>> +/* System config base */
>> +#define SM501_SYS_CONFIG            (0x000000)
>> +
>> +/* config 1 */
>> +#define SM501_SYSTEM_CONTROL                (0x000000)
>> +#define SM501_MISC_CONTROL          (0x000004)
>> +
>> +#define SM501_MISC_BUS_SH           (0x0)
>> +#define SM501_MISC_BUS_PCI          (0x1)
>> +#define SM501_MISC_BUS_XSCALE               (0x2)
>> +#define SM501_MISC_BUS_NEC          (0x6)
>> +#define SM501_MISC_BUS_MASK         (0x7)
> <snip>

I agree in removing dead code and structure components that will
never make sense in u-boot environment. However, should I really
delete definitions form -regs.h? This is well developed (linux)
and things might be needed for future development. I did not
touch this file compared to kernel source.

- Stefan


_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to