Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6: (140 commits) MAINTAINERS: de-orphan fbdev. MAINTAINERS: Add file pattern for fb dt bindings. video: Move sm501fb devicetree binding documentation to a better place. fbcon: fix situation where fbcon gets deinitialised and can't reinit. video, sm501: add OF binding to support SM501 video, sm501: add edid and commandline support video, sm501: add I/O functions for use on powerpc video: Fix EDID macros H_SYNC_WIDTH and H_SYNC_OFFSET fbcon: Bugfix soft cursor detection in Tile Blitting video: add missing framebuffer_release in error path video: metronomefb: add __devexit_p around reference to metronomefb_remove video: hecubafb: add __devexit_p around reference to hecubafb_remove drivers:video:aty:radeon_base Fix typo occationally to occasionally atmel_lcdfb: add fb_blank function atmel_lcdfb: implement inverted contrast pwm video: s3c-fb: return proper error if clk_get fails uvesafb,vesafb: create WC or WB PAT-entries video: ffb: fix ffb_probe error path radeonfb: Let hwmon driver probe the "monid" I2C bus fbdev: sh_mobile_lcdc: checking NULL instead of IS_ERR() ...
This commit is contained in:
@@ -172,3 +172,11 @@ struct sm501_platdata {
|
||||
struct sm501_platdata_gpio_i2c *gpio_i2c;
|
||||
unsigned int gpio_i2c_nr;
|
||||
};
|
||||
|
||||
#if defined(CONFIG_PPC32)
|
||||
#define smc501_readl(addr) ioread32be((addr))
|
||||
#define smc501_writel(val, addr) iowrite32be((val), (addr))
|
||||
#else
|
||||
#define smc501_readl(addr) readl(addr)
|
||||
#define smc501_writel(val, addr) writel(val, addr)
|
||||
#endif
|
||||
|
@@ -67,25 +67,25 @@ struct svga_pll {
|
||||
|
||||
/* Write a value to the attribute register */
|
||||
|
||||
static inline void svga_wattr(u8 index, u8 data)
|
||||
static inline void svga_wattr(void __iomem *regbase, u8 index, u8 data)
|
||||
{
|
||||
inb(0x3DA);
|
||||
outb(index, 0x3C0);
|
||||
outb(data, 0x3C0);
|
||||
vga_r(regbase, VGA_IS1_RC);
|
||||
vga_w(regbase, VGA_ATT_IW, index);
|
||||
vga_w(regbase, VGA_ATT_W, data);
|
||||
}
|
||||
|
||||
/* Write a value to a sequence register with a mask */
|
||||
|
||||
static inline void svga_wseq_mask(u8 index, u8 data, u8 mask)
|
||||
static inline void svga_wseq_mask(void __iomem *regbase, u8 index, u8 data, u8 mask)
|
||||
{
|
||||
vga_wseq(NULL, index, (data & mask) | (vga_rseq(NULL, index) & ~mask));
|
||||
vga_wseq(regbase, index, (data & mask) | (vga_rseq(regbase, index) & ~mask));
|
||||
}
|
||||
|
||||
/* Write a value to a CRT register with a mask */
|
||||
|
||||
static inline void svga_wcrt_mask(u8 index, u8 data, u8 mask)
|
||||
static inline void svga_wcrt_mask(void __iomem *regbase, u8 index, u8 data, u8 mask)
|
||||
{
|
||||
vga_wcrt(NULL, index, (data & mask) | (vga_rcrt(NULL, index) & ~mask));
|
||||
vga_wcrt(regbase, index, (data & mask) | (vga_rcrt(regbase, index) & ~mask));
|
||||
}
|
||||
|
||||
static inline int svga_primary_device(struct pci_dev *dev)
|
||||
@@ -96,27 +96,27 @@ static inline int svga_primary_device(struct pci_dev *dev)
|
||||
}
|
||||
|
||||
|
||||
void svga_wcrt_multi(const struct vga_regset *regset, u32 value);
|
||||
void svga_wseq_multi(const struct vga_regset *regset, u32 value);
|
||||
void svga_wcrt_multi(void __iomem *regbase, const struct vga_regset *regset, u32 value);
|
||||
void svga_wseq_multi(void __iomem *regbase, const struct vga_regset *regset, u32 value);
|
||||
|
||||
void svga_set_default_gfx_regs(void);
|
||||
void svga_set_default_atc_regs(void);
|
||||
void svga_set_default_seq_regs(void);
|
||||
void svga_set_default_crt_regs(void);
|
||||
void svga_set_textmode_vga_regs(void);
|
||||
void svga_set_default_gfx_regs(void __iomem *regbase);
|
||||
void svga_set_default_atc_regs(void __iomem *regbase);
|
||||
void svga_set_default_seq_regs(void __iomem *regbase);
|
||||
void svga_set_default_crt_regs(void __iomem *regbase);
|
||||
void svga_set_textmode_vga_regs(void __iomem *regbase);
|
||||
|
||||
void svga_settile(struct fb_info *info, struct fb_tilemap *map);
|
||||
void svga_tilecopy(struct fb_info *info, struct fb_tilearea *area);
|
||||
void svga_tilefill(struct fb_info *info, struct fb_tilerect *rect);
|
||||
void svga_tileblit(struct fb_info *info, struct fb_tileblit *blit);
|
||||
void svga_tilecursor(struct fb_info *info, struct fb_tilecursor *cursor);
|
||||
void svga_tilecursor(void __iomem *regbase, struct fb_info *info, struct fb_tilecursor *cursor);
|
||||
int svga_get_tilemax(struct fb_info *info);
|
||||
void svga_get_caps(struct fb_info *info, struct fb_blit_caps *caps,
|
||||
struct fb_var_screeninfo *var);
|
||||
|
||||
int svga_compute_pll(const struct svga_pll *pll, u32 f_wanted, u16 *m, u16 *n, u16 *r, int node);
|
||||
int svga_check_timings(const struct svga_timing_regs *tm, struct fb_var_screeninfo *var, int node);
|
||||
void svga_set_timings(const struct svga_timing_regs *tm, struct fb_var_screeninfo *var, u32 hmul, u32 hdiv, u32 vmul, u32 vdiv, u32 hborder, int node);
|
||||
void svga_set_timings(void __iomem *regbase, const struct svga_timing_regs *tm, struct fb_var_screeninfo *var, u32 hmul, u32 hdiv, u32 vmul, u32 vdiv, u32 hborder, int node);
|
||||
|
||||
int svga_match_format(const struct svga_fb_format *frm, struct fb_var_screeninfo *var, struct fb_fix_screeninfo *fix);
|
||||
|
||||
|
Reference in New Issue
Block a user