Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 17633
b: refs/heads/master
c: a807f61
h: refs/heads/master
i:
  17631: 7cfa14b
v: v3
  • Loading branch information
Antonino A. Daplas authored and Linus Torvalds committed Jan 10, 2006
1 parent 9cfc2ca commit 56ac1d9
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 70 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 6772a2ee9d5992a712b46990f39249c500e0221f
refs/heads/master: a807f618b62594467a52b488912bd77606af0572
57 changes: 31 additions & 26 deletions trunk/drivers/video/tdfxfb.c
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ static inline void banshee_make_room(struct tdfx_par *par, int size)

static int banshee_wait_idle(struct fb_info *info)
{
struct tdfx_par *par = (struct tdfx_par *) info->par;
struct tdfx_par *par = info->par;
int i = 0;

banshee_make_room(par, 1);
Expand Down Expand Up @@ -364,7 +364,7 @@ static u32 do_calc_pll(int freq, int* freq_out)

static void do_write_regs(struct fb_info *info, struct banshee_reg* reg)
{
struct tdfx_par *par = (struct tdfx_par *) info->par;
struct tdfx_par *par = info->par;
int i;

banshee_wait_idle(info);
Expand Down Expand Up @@ -469,7 +469,7 @@ static unsigned long do_lfb_size(struct tdfx_par *par, unsigned short dev_id)

static int tdfxfb_check_var(struct fb_var_screeninfo *var,struct fb_info *info)
{
struct tdfx_par *par = (struct tdfx_par *) info->par;
struct tdfx_par *par = info->par;
u32 lpitch;

if (var->bits_per_pixel != 8 && var->bits_per_pixel != 16 &&
Expand Down Expand Up @@ -558,7 +558,7 @@ static int tdfxfb_check_var(struct fb_var_screeninfo *var,struct fb_info *info)

static int tdfxfb_set_par(struct fb_info *info)
{
struct tdfx_par *par = (struct tdfx_par *) info->par;
struct tdfx_par *par = info->par;
u32 hdispend, hsyncsta, hsyncend, htotal;
u32 hd, hs, he, ht, hbs, hbe;
u32 vd, vs, ve, vt, vbs, vbe;
Expand Down Expand Up @@ -780,7 +780,7 @@ static int tdfxfb_set_par(struct fb_info *info)
static int tdfxfb_setcolreg(unsigned regno, unsigned red, unsigned green,
unsigned blue,unsigned transp,struct fb_info *info)
{
struct tdfx_par *par = (struct tdfx_par *) info->par;
struct tdfx_par *par = info->par;
u32 rgbcol;

if (regno >= info->cmap.len || regno > 255) return 1;
Expand All @@ -794,11 +794,15 @@ static int tdfxfb_setcolreg(unsigned regno, unsigned red, unsigned green,
break;
/* Truecolor has no hardware color palettes. */
case FB_VISUAL_TRUECOLOR:
rgbcol = (CNVT_TOHW( red, info->var.red.length) << info->var.red.offset) |
(CNVT_TOHW( green, info->var.green.length) << info->var.green.offset) |
(CNVT_TOHW( blue, info->var.blue.length) << info->var.blue.offset) |
(CNVT_TOHW( transp, info->var.transp.length) << info->var.transp.offset);
((u32*)(info->pseudo_palette))[regno] = rgbcol;
rgbcol = (CNVT_TOHW( red, info->var.red.length) <<
info->var.red.offset) |
(CNVT_TOHW( green, info->var.green.length) <<
info->var.green.offset) |
(CNVT_TOHW( blue, info->var.blue.length) <<
info->var.blue.offset) |
(CNVT_TOHW( transp, info->var.transp.length) <<
info->var.transp.offset);
par->palette[regno] = rgbcol;
break;
default:
DPRINTK("bad depth %u\n", info->var.bits_per_pixel);
Expand All @@ -810,7 +814,7 @@ static int tdfxfb_setcolreg(unsigned regno, unsigned red, unsigned green,
/* 0 unblank, 1 blank, 2 no vsync, 3 no hsync, 4 off */
static int tdfxfb_blank(int blank, struct fb_info *info)
{
struct tdfx_par *par = (struct tdfx_par *) info->par;
struct tdfx_par *par = info->par;
u32 dacmode, state = 0, vgablank = 0;

dacmode = tdfx_inl(par, DACMODE);
Expand Down Expand Up @@ -855,7 +859,7 @@ static int tdfxfb_blank(int blank, struct fb_info *info)
static int tdfxfb_pan_display(struct fb_var_screeninfo *var,
struct fb_info *info)
{
struct tdfx_par *par = (struct tdfx_par *) info->par;
struct tdfx_par *par = info->par;
u32 addr;

if (nopan || var->xoffset || (var->yoffset > var->yres_virtual))
Expand All @@ -878,7 +882,7 @@ static int tdfxfb_pan_display(struct fb_var_screeninfo *var,
*/
static void tdfxfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
{
struct tdfx_par *par = (struct tdfx_par *) info->par;
struct tdfx_par *par = info->par;
u32 bpp = info->var.bits_per_pixel;
u32 stride = info->fix.line_length;
u32 fmt= stride | ((bpp+((bpp==8) ? 0 : 8)) << 13);
Expand All @@ -894,7 +898,7 @@ static void tdfxfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect
if (info->fix.visual == FB_VISUAL_PSEUDOCOLOR) {
tdfx_outl(par, COLORFORE, rect->color);
} else { /* FB_VISUAL_TRUECOLOR */
tdfx_outl(par, COLORFORE, ((u32*)(info->pseudo_palette))[rect->color]);
tdfx_outl(par, COLORFORE, par->palette[rect->color]);
}
tdfx_outl(par, COMMAND_2D, COMMAND_2D_FILLRECT | (tdfx_rop << 24));
tdfx_outl(par, DSTSIZE, rect->width | (rect->height << 16));
Expand All @@ -906,7 +910,7 @@ static void tdfxfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect
*/
static void tdfxfb_copyarea(struct fb_info *info, const struct fb_copyarea *area)
{
struct tdfx_par *par = (struct tdfx_par *) info->par;
struct tdfx_par *par = info->par;
u32 sx = area->sx, sy = area->sy, dx = area->dx, dy = area->dy;
u32 bpp = info->var.bits_per_pixel;
u32 stride = info->fix.line_length;
Expand Down Expand Up @@ -938,7 +942,7 @@ static void tdfxfb_copyarea(struct fb_info *info, const struct fb_copyarea *area

static void tdfxfb_imageblit(struct fb_info *info, const struct fb_image *image)
{
struct tdfx_par *par = (struct tdfx_par *) info->par;
struct tdfx_par *par = info->par;
int size = image->height * ((image->width * image->depth + 7)>>3);
int fifo_free;
int i, stride = info->fix.line_length;
Expand All @@ -961,8 +965,10 @@ static void tdfxfb_imageblit(struct fb_info *info, const struct fb_image *image)
break;
case FB_VISUAL_TRUECOLOR:
default:
tdfx_outl(par, COLORFORE, ((u32*)(info->pseudo_palette))[image->fg_color]);
tdfx_outl(par, COLORBACK, ((u32*)(info->pseudo_palette))[image->bg_color]);
tdfx_outl(par, COLORFORE,
par->palette[image->fg_color]);
tdfx_outl(par, COLORBACK,
par->palette[image->bg_color]);
}
#ifdef __BIG_ENDIAN
srcfmt = 0x400000 | BIT(20);
Expand Down Expand Up @@ -1007,7 +1013,7 @@ static void tdfxfb_imageblit(struct fb_info *info, const struct fb_image *image)
#ifdef TDFX_HARDWARE_CURSOR
static int tdfxfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
{
struct tdfx_par *par = (struct tdfx_par *) info->par;
struct tdfx_par *par = info->par;
unsigned long flags;

/*
Expand Down Expand Up @@ -1157,18 +1163,17 @@ static int __devinit tdfxfb_probe(struct pci_dev *pdev,
{
struct tdfx_par *default_par;
struct fb_info *info;
int size, err, lpitch;
int err, lpitch;

if ((err = pci_enable_device(pdev))) {
printk(KERN_WARNING "tdfxfb: Can't enable pdev: %d\n", err);
return err;
}

size = sizeof(struct tdfx_par)+256*sizeof(u32);
info = framebuffer_alloc(sizeof(struct tdfx_par), &pdev->dev);

info = framebuffer_alloc(size, &pdev->dev);

if (!info) return -ENOMEM;
if (!info)
return -ENOMEM;

default_par = info->par;

Expand Down Expand Up @@ -1248,7 +1253,7 @@ static int __devinit tdfxfb_probe(struct pci_dev *pdev,

info->fbops = &tdfxfb_ops;
info->fix = tdfx_fix;
info->pseudo_palette = (void *)(default_par + 1);
info->pseudo_palette = default_par->palette;
info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN;
#ifdef CONFIG_FB_3DFX_ACCEL
info->flags |= FBINFO_HWACCEL_FILLRECT |
Expand Down Expand Up @@ -1340,7 +1345,7 @@ void tdfxfb_setup(char *options)
static void __devexit tdfxfb_remove(struct pci_dev *pdev)
{
struct fb_info *info = pci_get_drvdata(pdev);
struct tdfx_par *par = (struct tdfx_par *) info->par;
struct tdfx_par *par = info->par;

unregister_framebuffer(info);
iounmap(par->regbase_virt);
Expand Down
86 changes: 43 additions & 43 deletions trunk/include/video/tdfx.h
Original file line number Diff line number Diff line change
Expand Up @@ -140,52 +140,52 @@
#ifdef __KERNEL__

struct banshee_reg {
/* VGA rubbish */
unsigned char att[21];
unsigned char crt[25];
unsigned char gra[ 9];
unsigned char misc[1];
unsigned char seq[ 5];

/* Banshee extensions */
unsigned char ext[2];
unsigned long vidcfg;
unsigned long vidpll;
unsigned long mempll;
unsigned long gfxpll;
unsigned long dacmode;
unsigned long vgainit0;
unsigned long vgainit1;
unsigned long screensize;
unsigned long stride;
unsigned long cursloc;
unsigned long curspataddr;
unsigned long cursc0;
unsigned long cursc1;
unsigned long startaddr;
unsigned long clip0min;
unsigned long clip0max;
unsigned long clip1min;
unsigned long clip1max;
unsigned long srcbase;
unsigned long dstbase;
unsigned long miscinit0;
/* VGA rubbish */
unsigned char att[21];
unsigned char crt[25];
unsigned char gra[ 9];
unsigned char misc[1];
unsigned char seq[ 5];

/* Banshee extensions */
unsigned char ext[2];
unsigned long vidcfg;
unsigned long vidpll;
unsigned long mempll;
unsigned long gfxpll;
unsigned long dacmode;
unsigned long vgainit0;
unsigned long vgainit1;
unsigned long screensize;
unsigned long stride;
unsigned long cursloc;
unsigned long curspataddr;
unsigned long cursc0;
unsigned long cursc1;
unsigned long startaddr;
unsigned long clip0min;
unsigned long clip0max;
unsigned long clip1min;
unsigned long clip1max;
unsigned long srcbase;
unsigned long dstbase;
unsigned long miscinit0;
};

struct tdfx_par {
u32 max_pixclock;

void __iomem *regbase_virt;
unsigned long iobase;
u32 baseline;

struct {
int w,u,d;
unsigned long enable,disable;
struct timer_list timer;
} hwcursor;

spinlock_t DAClock;
u32 max_pixclock;
u32 palette[16];
void __iomem *regbase_virt;
unsigned long iobase;
u32 baseline;

struct {
int w,u,d;
unsigned long enable,disable;
struct timer_list timer;
} hwcursor;

spinlock_t DAClock;
};

#endif /* __KERNEL__ */
Expand Down

0 comments on commit 56ac1d9

Please sign in to comment.