There is no actual need to split type definitions and global function declarations between lots of small headers. Signed-off-by: Mike Rapoport <mike.rapoport@xxxxxxxxx> --- drivers/staging/sm750fb/sm750.c | 1 - drivers/staging/sm750fb/sm750.h | 88 +++++++++++++++++++++++++++++++++- drivers/staging/sm750fb/sm750_hw.c | 1 - drivers/staging/sm750fb/sm750_hw.h | 98 -------------------------------------- 4 files changed, 86 insertions(+), 102 deletions(-) delete mode 100644 drivers/staging/sm750fb/sm750_hw.h diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index 3801b64..6b2c4da 100644 --- a/drivers/staging/sm750fb/sm750.c +++ b/drivers/staging/sm750fb/sm750.c @@ -18,7 +18,6 @@ #include <linux/console.h> #include <asm/fb.h> #include "sm750.h" -#include "sm750_hw.h" #include "sm750_accel.h" #include "sm750_cursor.h" diff --git a/drivers/staging/sm750fb/sm750.h b/drivers/staging/sm750fb/sm750.h index fa06cb1..d50ef21 100644 --- a/drivers/staging/sm750fb/sm750.h +++ b/drivers/staging/sm750fb/sm750.h @@ -1,12 +1,61 @@ #ifndef LYNXDRV_H_ #define LYNXDRV_H_ - - #define FB_ACCEL_SMI 0xab #define MHZ(x) ((x) * 1000000) +#define DEFAULT_SM750_CHIP_CLOCK 290 +#define DEFAULT_SM750LE_CHIP_CLOCK 333 +#ifndef SM750LE_REVISION_ID +#define SM750LE_REVISION_ID ((unsigned char)0xfe) +#endif + +enum sm750_pnltype { + sm750_24TFT = 0, /* 24bit tft */ + sm750_dualTFT = 2, /* dual 18 bit tft */ + sm750_doubleTFT = 1, /* 36 bit double pixel tft */ +}; + +/* vga channel is not concerned */ +enum sm750_dataflow { + sm750_simul_pri, /* primary => all head */ + sm750_simul_sec, /* secondary => all head */ + sm750_dual_normal, /* primary => panel head and secondary => crt */ + sm750_dual_swap, /* primary => crt head and secondary => panel */ +}; + +enum sm750_channel { + sm750_primary = 0, + /* enum value equal to the register filed data */ + sm750_secondary = 1, +}; + +enum sm750_path { + sm750_panel = 1, + sm750_crt = 2, + sm750_pnc = 3, /* panel and crt */ +}; + +struct init_status { + ushort powerMode; + /* below three clocks are in unit of MHZ*/ + ushort chip_clk; + ushort mem_clk; + ushort master_clk; + ushort setAllEngOff; + ushort resetMemory; +}; + +struct sm750_state { + struct init_status initParm; + enum sm750_pnltype pnltype; + enum sm750_dataflow dataflow; + int nocrt; + int xLCD; + int yLCD; +}; + struct lynx_accel { /* base virtual address of DPR registers */ volatile unsigned char __iomem *dprBase; @@ -58,6 +107,23 @@ struct lynx_share { spinlock_t slock; }; +/* + * sm750_share stands for a presentation of two frame buffer + * that use one sm750 adaptor + */ +struct sm750_share { + struct lynx_share share; + struct sm750_state state; + + /* + * 0: no hardware cursor + * 1: primary crtc hw cursor enabled, + * 2: secondary crtc hw cursor enabled + * 3: both ctrc hw cursor enabled + */ + int hwCursor; +}; + struct lynx_cursor { /* cursor width ,height and size */ int w; @@ -133,5 +199,23 @@ static inline unsigned long ps_to_hz(unsigned int psvalue) return (unsigned long)numerator; } +int hw_sm750_map(struct lynx_share *share, struct pci_dev *pdev); +int hw_sm750_inithw(struct lynx_share*, struct pci_dev *); +void hw_sm750_initAccel(struct lynx_share *); +int hw_sm750_deWait(void); +int hw_sm750le_deWait(void); + +resource_size_t hw_sm750_getVMSize(struct lynx_share *); +int hw_sm750_output_setMode(struct lynxfb_output*, struct fb_var_screeninfo*, + struct fb_fix_screeninfo*); +int hw_sm750_crtc_checkMode(struct lynxfb_crtc*, struct fb_var_screeninfo*); +int hw_sm750_crtc_setMode(struct lynxfb_crtc*, struct fb_var_screeninfo*, + struct fb_fix_screeninfo*); +int hw_sm750_setColReg(struct lynxfb_crtc*, ushort, ushort, ushort, ushort); +int hw_sm750_setBLANK(struct lynxfb_output*, int); +int hw_sm750le_setBLANK(struct lynxfb_output*, int); +int hw_sm750_pan_display(struct lynxfb_crtc *crtc, + const struct fb_var_screeninfo *var, + const struct fb_info *info); #endif diff --git a/drivers/staging/sm750fb/sm750_hw.c b/drivers/staging/sm750fb/sm750_hw.c index 8e7daf6..d5a9f48 100644 --- a/drivers/staging/sm750fb/sm750_hw.c +++ b/drivers/staging/sm750fb/sm750_hw.c @@ -21,7 +21,6 @@ #include <linux/sizes.h> #include "sm750.h" -#include "sm750_hw.h" #include "ddk750.h" #include "sm750_accel.h" diff --git a/drivers/staging/sm750fb/sm750_hw.h b/drivers/staging/sm750fb/sm750_hw.h deleted file mode 100644 index cc8c76d..0000000 --- a/drivers/staging/sm750fb/sm750_hw.h +++ /dev/null @@ -1,98 +0,0 @@ -#ifndef LYNX_HW750_H__ -#define LYNX_HW750_H__ - - -#define DEFAULT_SM750_CHIP_CLOCK 290 -#define DEFAULT_SM750LE_CHIP_CLOCK 333 -#ifndef SM750LE_REVISION_ID -#define SM750LE_REVISION_ID (unsigned char)0xfe -#endif - - -enum sm750_pnltype { - - sm750_24TFT = 0,/* 24bit tft */ - - sm750_dualTFT = 2,/* dual 18 bit tft */ - - sm750_doubleTFT = 1,/* 36 bit double pixel tft */ -}; - -/* vga channel is not concerned */ -enum sm750_dataflow { - sm750_simul_pri,/* primary => all head */ - - sm750_simul_sec,/* secondary => all head */ - - sm750_dual_normal,/* primary => panel head and secondary => crt */ - - sm750_dual_swap,/* primary => crt head and secondary => panel */ -}; - - -enum sm750_channel { - sm750_primary = 0, - /* enum value equal to the register filed data */ - sm750_secondary = 1, -}; - -enum sm750_path { - sm750_panel = 1, - sm750_crt = 2, - sm750_pnc = 3,/* panel and crt */ -}; - -struct init_status { - ushort powerMode; - /* below three clocks are in unit of MHZ*/ - ushort chip_clk; - ushort mem_clk; - ushort master_clk; - ushort setAllEngOff; - ushort resetMemory; -}; - -struct sm750_state { - struct init_status initParm; - enum sm750_pnltype pnltype; - enum sm750_dataflow dataflow; - int nocrt; - int xLCD; - int yLCD; -}; - -/* sm750_share stands for a presentation of two frame buffer - that use one sm750 adaptor, it is similar to the super class of lynx_share - in C++ - */ - -struct sm750_share { - /* it's better to put lynx_share struct to the first place of sm750_share */ - struct lynx_share share; - struct sm750_state state; - int hwCursor; - /* 0: no hardware cursor - 1: primary crtc hw cursor enabled, - 2: secondary crtc hw cursor enabled - 3: both ctrc hw cursor enabled - */ -}; - -int hw_sm750_map(struct lynx_share *share, struct pci_dev *pdev); -int hw_sm750_inithw(struct lynx_share*, struct pci_dev *); -void hw_sm750_initAccel(struct lynx_share *); -int hw_sm750_deWait(void); -int hw_sm750le_deWait(void); - -resource_size_t hw_sm750_getVMSize(struct lynx_share *); -int hw_sm750_output_setMode(struct lynxfb_output*, struct fb_var_screeninfo*, struct fb_fix_screeninfo*); -int hw_sm750_crtc_checkMode(struct lynxfb_crtc*, struct fb_var_screeninfo*); -int hw_sm750_crtc_setMode(struct lynxfb_crtc*, struct fb_var_screeninfo*, struct fb_fix_screeninfo*); -int hw_sm750_setColReg(struct lynxfb_crtc*, ushort, ushort, ushort, ushort); -int hw_sm750_setBLANK(struct lynxfb_output*, int); -int hw_sm750le_setBLANK(struct lynxfb_output*, int); -int hw_sm750_pan_display(struct lynxfb_crtc *crtc, - const struct fb_var_screeninfo *var, - const struct fb_info *info); - -#endif -- 2.1.0 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel