
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