diff options
author | Antonino A. Daplas <adaplas@gmail.com> | 2006-01-09 23:53:11 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-10 11:01:46 -0500 |
commit | a807f618b62594467a52b488912bd77606af0572 (patch) | |
tree | c91985182777dadd852ef6d08346b0b1fc42250a | |
parent | 6772a2ee9d5992a712b46990f39249c500e0221f (diff) |
[PATCH] fbdev: tdfxfb: Driver cleanups
- remove unneeded casts
- move memory for pseudo_palette inside struct tdfxfb_par
- whitespace changes
Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | drivers/video/tdfxfb.c | 57 | ||||
-rw-r--r-- | include/video/tdfx.h | 86 |
2 files changed, 74 insertions, 69 deletions
diff --git a/drivers/video/tdfxfb.c b/drivers/video/tdfxfb.c index 9d53387e6a66..c88b5348c4ee 100644 --- a/drivers/video/tdfxfb.c +++ b/drivers/video/tdfxfb.c | |||
@@ -291,7 +291,7 @@ static inline void banshee_make_room(struct tdfx_par *par, int size) | |||
291 | 291 | ||
292 | static int banshee_wait_idle(struct fb_info *info) | 292 | static int banshee_wait_idle(struct fb_info *info) |
293 | { | 293 | { |
294 | struct tdfx_par *par = (struct tdfx_par *) info->par; | 294 | struct tdfx_par *par = info->par; |
295 | int i = 0; | 295 | int i = 0; |
296 | 296 | ||
297 | banshee_make_room(par, 1); | 297 | banshee_make_room(par, 1); |
@@ -364,7 +364,7 @@ static u32 do_calc_pll(int freq, int* freq_out) | |||
364 | 364 | ||
365 | static void do_write_regs(struct fb_info *info, struct banshee_reg* reg) | 365 | static void do_write_regs(struct fb_info *info, struct banshee_reg* reg) |
366 | { | 366 | { |
367 | struct tdfx_par *par = (struct tdfx_par *) info->par; | 367 | struct tdfx_par *par = info->par; |
368 | int i; | 368 | int i; |
369 | 369 | ||
370 | banshee_wait_idle(info); | 370 | banshee_wait_idle(info); |
@@ -469,7 +469,7 @@ static unsigned long do_lfb_size(struct tdfx_par *par, unsigned short dev_id) | |||
469 | 469 | ||
470 | static int tdfxfb_check_var(struct fb_var_screeninfo *var,struct fb_info *info) | 470 | static int tdfxfb_check_var(struct fb_var_screeninfo *var,struct fb_info *info) |
471 | { | 471 | { |
472 | struct tdfx_par *par = (struct tdfx_par *) info->par; | 472 | struct tdfx_par *par = info->par; |
473 | u32 lpitch; | 473 | u32 lpitch; |
474 | 474 | ||
475 | if (var->bits_per_pixel != 8 && var->bits_per_pixel != 16 && | 475 | if (var->bits_per_pixel != 8 && var->bits_per_pixel != 16 && |
@@ -558,7 +558,7 @@ static int tdfxfb_check_var(struct fb_var_screeninfo *var,struct fb_info *info) | |||
558 | 558 | ||
559 | static int tdfxfb_set_par(struct fb_info *info) | 559 | static int tdfxfb_set_par(struct fb_info *info) |
560 | { | 560 | { |
561 | struct tdfx_par *par = (struct tdfx_par *) info->par; | 561 | struct tdfx_par *par = info->par; |
562 | u32 hdispend, hsyncsta, hsyncend, htotal; | 562 | u32 hdispend, hsyncsta, hsyncend, htotal; |
563 | u32 hd, hs, he, ht, hbs, hbe; | 563 | u32 hd, hs, he, ht, hbs, hbe; |
564 | u32 vd, vs, ve, vt, vbs, vbe; | 564 | u32 vd, vs, ve, vt, vbs, vbe; |
@@ -780,7 +780,7 @@ static int tdfxfb_set_par(struct fb_info *info) | |||
780 | static int tdfxfb_setcolreg(unsigned regno, unsigned red, unsigned green, | 780 | static int tdfxfb_setcolreg(unsigned regno, unsigned red, unsigned green, |
781 | unsigned blue,unsigned transp,struct fb_info *info) | 781 | unsigned blue,unsigned transp,struct fb_info *info) |
782 | { | 782 | { |
783 | struct tdfx_par *par = (struct tdfx_par *) info->par; | 783 | struct tdfx_par *par = info->par; |
784 | u32 rgbcol; | 784 | u32 rgbcol; |
785 | 785 | ||
786 | if (regno >= info->cmap.len || regno > 255) return 1; | 786 | if (regno >= info->cmap.len || regno > 255) return 1; |
@@ -794,11 +794,15 @@ static int tdfxfb_setcolreg(unsigned regno, unsigned red, unsigned green, | |||
794 | break; | 794 | break; |
795 | /* Truecolor has no hardware color palettes. */ | 795 | /* Truecolor has no hardware color palettes. */ |
796 | case FB_VISUAL_TRUECOLOR: | 796 | case FB_VISUAL_TRUECOLOR: |
797 | rgbcol = (CNVT_TOHW( red, info->var.red.length) << info->var.red.offset) | | 797 | rgbcol = (CNVT_TOHW( red, info->var.red.length) << |
798 | (CNVT_TOHW( green, info->var.green.length) << info->var.green.offset) | | 798 | info->var.red.offset) | |
799 | (CNVT_TOHW( blue, info->var.blue.length) << info->var.blue.offset) | | 799 | (CNVT_TOHW( green, info->var.green.length) << |
800 | (CNVT_TOHW( transp, info->var.transp.length) << info->var.transp.offset); | 800 | info->var.green.offset) | |
801 | ((u32*)(info->pseudo_palette))[regno] = rgbcol; | 801 | (CNVT_TOHW( blue, info->var.blue.length) << |
802 | info->var.blue.offset) | | ||
803 | (CNVT_TOHW( transp, info->var.transp.length) << | ||
804 | info->var.transp.offset); | ||
805 | par->palette[regno] = rgbcol; | ||
802 | break; | 806 | break; |
803 | default: | 807 | default: |
804 | DPRINTK("bad depth %u\n", info->var.bits_per_pixel); | 808 | DPRINTK("bad depth %u\n", info->var.bits_per_pixel); |
@@ -810,7 +814,7 @@ static int tdfxfb_setcolreg(unsigned regno, unsigned red, unsigned green, | |||
810 | /* 0 unblank, 1 blank, 2 no vsync, 3 no hsync, 4 off */ | 814 | /* 0 unblank, 1 blank, 2 no vsync, 3 no hsync, 4 off */ |
811 | static int tdfxfb_blank(int blank, struct fb_info *info) | 815 | static int tdfxfb_blank(int blank, struct fb_info *info) |
812 | { | 816 | { |
813 | struct tdfx_par *par = (struct tdfx_par *) info->par; | 817 | struct tdfx_par *par = info->par; |
814 | u32 dacmode, state = 0, vgablank = 0; | 818 | u32 dacmode, state = 0, vgablank = 0; |
815 | 819 | ||
816 | dacmode = tdfx_inl(par, DACMODE); | 820 | dacmode = tdfx_inl(par, DACMODE); |
@@ -855,7 +859,7 @@ static int tdfxfb_blank(int blank, struct fb_info *info) | |||
855 | static int tdfxfb_pan_display(struct fb_var_screeninfo *var, | 859 | static int tdfxfb_pan_display(struct fb_var_screeninfo *var, |
856 | struct fb_info *info) | 860 | struct fb_info *info) |
857 | { | 861 | { |
858 | struct tdfx_par *par = (struct tdfx_par *) info->par; | 862 | struct tdfx_par *par = info->par; |
859 | u32 addr; | 863 | u32 addr; |
860 | 864 | ||
861 | if (nopan || var->xoffset || (var->yoffset > var->yres_virtual)) | 865 | if (nopan || var->xoffset || (var->yoffset > var->yres_virtual)) |
@@ -878,7 +882,7 @@ static int tdfxfb_pan_display(struct fb_var_screeninfo *var, | |||
878 | */ | 882 | */ |
879 | static void tdfxfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect) | 883 | static void tdfxfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect) |
880 | { | 884 | { |
881 | struct tdfx_par *par = (struct tdfx_par *) info->par; | 885 | struct tdfx_par *par = info->par; |
882 | u32 bpp = info->var.bits_per_pixel; | 886 | u32 bpp = info->var.bits_per_pixel; |
883 | u32 stride = info->fix.line_length; | 887 | u32 stride = info->fix.line_length; |
884 | u32 fmt= stride | ((bpp+((bpp==8) ? 0 : 8)) << 13); | 888 | u32 fmt= stride | ((bpp+((bpp==8) ? 0 : 8)) << 13); |
@@ -894,7 +898,7 @@ static void tdfxfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect | |||
894 | if (info->fix.visual == FB_VISUAL_PSEUDOCOLOR) { | 898 | if (info->fix.visual == FB_VISUAL_PSEUDOCOLOR) { |
895 | tdfx_outl(par, COLORFORE, rect->color); | 899 | tdfx_outl(par, COLORFORE, rect->color); |
896 | } else { /* FB_VISUAL_TRUECOLOR */ | 900 | } else { /* FB_VISUAL_TRUECOLOR */ |
897 | tdfx_outl(par, COLORFORE, ((u32*)(info->pseudo_palette))[rect->color]); | 901 | tdfx_outl(par, COLORFORE, par->palette[rect->color]); |
898 | } | 902 | } |
899 | tdfx_outl(par, COMMAND_2D, COMMAND_2D_FILLRECT | (tdfx_rop << 24)); | 903 | tdfx_outl(par, COMMAND_2D, COMMAND_2D_FILLRECT | (tdfx_rop << 24)); |
900 | tdfx_outl(par, DSTSIZE, rect->width | (rect->height << 16)); | 904 | tdfx_outl(par, DSTSIZE, rect->width | (rect->height << 16)); |
@@ -906,7 +910,7 @@ static void tdfxfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect | |||
906 | */ | 910 | */ |
907 | static void tdfxfb_copyarea(struct fb_info *info, const struct fb_copyarea *area) | 911 | static void tdfxfb_copyarea(struct fb_info *info, const struct fb_copyarea *area) |
908 | { | 912 | { |
909 | struct tdfx_par *par = (struct tdfx_par *) info->par; | 913 | struct tdfx_par *par = info->par; |
910 | u32 sx = area->sx, sy = area->sy, dx = area->dx, dy = area->dy; | 914 | u32 sx = area->sx, sy = area->sy, dx = area->dx, dy = area->dy; |
911 | u32 bpp = info->var.bits_per_pixel; | 915 | u32 bpp = info->var.bits_per_pixel; |
912 | u32 stride = info->fix.line_length; | 916 | u32 stride = info->fix.line_length; |
@@ -938,7 +942,7 @@ static void tdfxfb_copyarea(struct fb_info *info, const struct fb_copyarea *area | |||
938 | 942 | ||
939 | static void tdfxfb_imageblit(struct fb_info *info, const struct fb_image *image) | 943 | static void tdfxfb_imageblit(struct fb_info *info, const struct fb_image *image) |
940 | { | 944 | { |
941 | struct tdfx_par *par = (struct tdfx_par *) info->par; | 945 | struct tdfx_par *par = info->par; |
942 | int size = image->height * ((image->width * image->depth + 7)>>3); | 946 | int size = image->height * ((image->width * image->depth + 7)>>3); |
943 | int fifo_free; | 947 | int fifo_free; |
944 | int i, stride = info->fix.line_length; | 948 | int i, stride = info->fix.line_length; |
@@ -961,8 +965,10 @@ static void tdfxfb_imageblit(struct fb_info *info, const struct fb_image *image) | |||
961 | break; | 965 | break; |
962 | case FB_VISUAL_TRUECOLOR: | 966 | case FB_VISUAL_TRUECOLOR: |
963 | default: | 967 | default: |
964 | tdfx_outl(par, COLORFORE, ((u32*)(info->pseudo_palette))[image->fg_color]); | 968 | tdfx_outl(par, COLORFORE, |
965 | tdfx_outl(par, COLORBACK, ((u32*)(info->pseudo_palette))[image->bg_color]); | 969 | par->palette[image->fg_color]); |
970 | tdfx_outl(par, COLORBACK, | ||
971 | par->palette[image->bg_color]); | ||
966 | } | 972 | } |
967 | #ifdef __BIG_ENDIAN | 973 | #ifdef __BIG_ENDIAN |
968 | srcfmt = 0x400000 | BIT(20); | 974 | srcfmt = 0x400000 | BIT(20); |
@@ -1007,7 +1013,7 @@ static void tdfxfb_imageblit(struct fb_info *info, const struct fb_image *image) | |||
1007 | #ifdef TDFX_HARDWARE_CURSOR | 1013 | #ifdef TDFX_HARDWARE_CURSOR |
1008 | static int tdfxfb_cursor(struct fb_info *info, struct fb_cursor *cursor) | 1014 | static int tdfxfb_cursor(struct fb_info *info, struct fb_cursor *cursor) |
1009 | { | 1015 | { |
1010 | struct tdfx_par *par = (struct tdfx_par *) info->par; | 1016 | struct tdfx_par *par = info->par; |
1011 | unsigned long flags; | 1017 | unsigned long flags; |
1012 | 1018 | ||
1013 | /* | 1019 | /* |
@@ -1157,18 +1163,17 @@ static int __devinit tdfxfb_probe(struct pci_dev *pdev, | |||
1157 | { | 1163 | { |
1158 | struct tdfx_par *default_par; | 1164 | struct tdfx_par *default_par; |
1159 | struct fb_info *info; | 1165 | struct fb_info *info; |
1160 | int size, err, lpitch; | 1166 | int err, lpitch; |
1161 | 1167 | ||
1162 | if ((err = pci_enable_device(pdev))) { | 1168 | if ((err = pci_enable_device(pdev))) { |
1163 | printk(KERN_WARNING "tdfxfb: Can't enable pdev: %d\n", err); | 1169 | printk(KERN_WARNING "tdfxfb: Can't enable pdev: %d\n", err); |
1164 | return err; | 1170 | return err; |
1165 | } | 1171 | } |
1166 | 1172 | ||
1167 | size = sizeof(struct tdfx_par)+256*sizeof(u32); | 1173 | info = framebuffer_alloc(sizeof(struct tdfx_par), &pdev->dev); |
1168 | 1174 | ||
1169 | info = framebuffer_alloc(size, &pdev->dev); | 1175 | if (!info) |
1170 | 1176 | return -ENOMEM; | |
1171 | if (!info) return -ENOMEM; | ||
1172 | 1177 | ||
1173 | default_par = info->par; | 1178 | default_par = info->par; |
1174 | 1179 | ||
@@ -1248,7 +1253,7 @@ static int __devinit tdfxfb_probe(struct pci_dev *pdev, | |||
1248 | 1253 | ||
1249 | info->fbops = &tdfxfb_ops; | 1254 | info->fbops = &tdfxfb_ops; |
1250 | info->fix = tdfx_fix; | 1255 | info->fix = tdfx_fix; |
1251 | info->pseudo_palette = (void *)(default_par + 1); | 1256 | info->pseudo_palette = default_par->palette; |
1252 | info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN; | 1257 | info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN; |
1253 | #ifdef CONFIG_FB_3DFX_ACCEL | 1258 | #ifdef CONFIG_FB_3DFX_ACCEL |
1254 | info->flags |= FBINFO_HWACCEL_FILLRECT | | 1259 | info->flags |= FBINFO_HWACCEL_FILLRECT | |
@@ -1340,7 +1345,7 @@ void tdfxfb_setup(char *options) | |||
1340 | static void __devexit tdfxfb_remove(struct pci_dev *pdev) | 1345 | static void __devexit tdfxfb_remove(struct pci_dev *pdev) |
1341 | { | 1346 | { |
1342 | struct fb_info *info = pci_get_drvdata(pdev); | 1347 | struct fb_info *info = pci_get_drvdata(pdev); |
1343 | struct tdfx_par *par = (struct tdfx_par *) info->par; | 1348 | struct tdfx_par *par = info->par; |
1344 | 1349 | ||
1345 | unregister_framebuffer(info); | 1350 | unregister_framebuffer(info); |
1346 | iounmap(par->regbase_virt); | 1351 | iounmap(par->regbase_virt); |
diff --git a/include/video/tdfx.h b/include/video/tdfx.h index 04237676b17c..c1cc94ba3fdd 100644 --- a/include/video/tdfx.h +++ b/include/video/tdfx.h | |||
@@ -140,52 +140,52 @@ | |||
140 | #ifdef __KERNEL__ | 140 | #ifdef __KERNEL__ |
141 | 141 | ||
142 | struct banshee_reg { | 142 | struct banshee_reg { |
143 | /* VGA rubbish */ | 143 | /* VGA rubbish */ |
144 | unsigned char att[21]; | 144 | unsigned char att[21]; |
145 | unsigned char crt[25]; | 145 | unsigned char crt[25]; |
146 | unsigned char gra[ 9]; | 146 | unsigned char gra[ 9]; |
147 | unsigned char misc[1]; | 147 | unsigned char misc[1]; |
148 | unsigned char seq[ 5]; | 148 | unsigned char seq[ 5]; |
149 | 149 | ||
150 | /* Banshee extensions */ | 150 | /* Banshee extensions */ |
151 | unsigned char ext[2]; | 151 | unsigned char ext[2]; |
152 | unsigned long vidcfg; | 152 | unsigned long vidcfg; |
153 | unsigned long vidpll; | 153 | unsigned long vidpll; |
154 | unsigned long mempll; | 154 | unsigned long mempll; |
155 | unsigned long gfxpll; | 155 | unsigned long gfxpll; |
156 | unsigned long dacmode; | 156 | unsigned long dacmode; |
157 | unsigned long vgainit0; | 157 | unsigned long vgainit0; |
158 | unsigned long vgainit1; | 158 | unsigned long vgainit1; |
159 | unsigned long screensize; | 159 | unsigned long screensize; |
160 | unsigned long stride; | 160 | unsigned long stride; |
161 | unsigned long cursloc; | 161 | unsigned long cursloc; |
162 | unsigned long curspataddr; | 162 | unsigned long curspataddr; |
163 | unsigned long cursc0; | 163 | unsigned long cursc0; |
164 | unsigned long cursc1; | 164 | unsigned long cursc1; |
165 | unsigned long startaddr; | 165 | unsigned long startaddr; |
166 | unsigned long clip0min; | 166 | unsigned long clip0min; |
167 | unsigned long clip0max; | 167 | unsigned long clip0max; |
168 | unsigned long clip1min; | 168 | unsigned long clip1min; |
169 | unsigned long clip1max; | 169 | unsigned long clip1max; |
170 | unsigned long srcbase; | 170 | unsigned long srcbase; |
171 | unsigned long dstbase; | 171 | unsigned long dstbase; |
172 | unsigned long miscinit0; | 172 | unsigned long miscinit0; |
173 | }; | 173 | }; |
174 | 174 | ||
175 | struct tdfx_par { | 175 | struct tdfx_par { |
176 | u32 max_pixclock; | 176 | u32 max_pixclock; |
177 | 177 | u32 palette[16]; | |
178 | void __iomem *regbase_virt; | 178 | void __iomem *regbase_virt; |
179 | unsigned long iobase; | 179 | unsigned long iobase; |
180 | u32 baseline; | 180 | u32 baseline; |
181 | 181 | ||
182 | struct { | 182 | struct { |
183 | int w,u,d; | 183 | int w,u,d; |
184 | unsigned long enable,disable; | 184 | unsigned long enable,disable; |
185 | struct timer_list timer; | 185 | struct timer_list timer; |
186 | } hwcursor; | 186 | } hwcursor; |
187 | 187 | ||
188 | spinlock_t DAClock; | 188 | spinlock_t DAClock; |
189 | }; | 189 | }; |
190 | 190 | ||
191 | #endif /* __KERNEL__ */ | 191 | #endif /* __KERNEL__ */ |