Howto consolidate xgifb (staging) with sisfb

Greg KH greg at
Mon Mar 19 23:26:00 UTC 2012

On Tue, Mar 20, 2012 at 12:02:39AM +0100, Peter Hüwe wrote:
> Hi,
> I'm currently trying to improve the xgifb driver from staging a bit and my 
> final goal is to probably merge this driver with the sis driver (as both card 
> families seem to have a lot in common).
> However I'm a little bit unsure how to proceed here.
> e.g. the sis and the xgifb driver have some nearly duplicated functions in 
> common, e.g.
> static void XGIfb_bpp_to_var(struct xgifb_video_info *xgifb_info, 			     
> struct fb_var_screeninfo *var)
> and 
> static void sisfb_bpp_to_var(struct sis_video_info *ivideo, struct 
> fb_var_screeninfo *var)
> have the same semantics. (the only difference is the _video_info struct).
> -> Is there a way the xgifb driver can call the function from sis?  (I know 
> it's static and not EXPORT_SYMBOL'ed)

Declare it not static and EXPORT_SYMBOL it :)

> Or how would you prepare the consolidation here ? 
> (e.g. make the functions identical? and when the merge get's done sometime 
> simply remove the duplicate?)

How about moving things to a "library" module that both modules call
with these functions, pulling them from one of the drivers.

> And how would you proceed with functions that are nearly identical (but each 
> function is missing some bits from the other card)
> e.g. 
> static int sisfb_get_fix(struct fb_fix_screeninfo *fix, int con, struct 
> fb_info *info)
> and 
> static int XGIfb_get_fix(struct fb_fix_screeninfo *fix, int con,  struct 
> fb_info *info)
> could be easily merged, but in which direction? Add the new code to directly 
> to sis or 'backport' sis stuff to xgifb? or both (i.e. make them identical 
> like in the first case?)

Whatever you feel is best to do here.

greg k-h

More information about the devel mailing list