Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
e73ea16d
Commit
e73ea16d
authored
Apr 30, 2002
by
James Simmons
Browse files
Options
Browse Files
Download
Plain Diff
Merge
http://linus.bkbits.net:8080/linux-2.5
into hostme.bitkeeper.com:/ua/repos/f/fbdev/fbdev-2.5
parents
afae6f7c
ba4cb9e1
Changes
23
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
215 additions
and
223 deletions
+215
-223
drivers/video/Makefile
drivers/video/Makefile
+8
-8
drivers/video/aty/atyfb_base.c
drivers/video/aty/atyfb_base.c
+1
-1
drivers/video/fbcon-accel.h
drivers/video/fbcon-accel.h
+1
-1
drivers/video/fbcon-cfb16.c
drivers/video/fbcon-cfb16.c
+12
-12
drivers/video/fbcon-cfb2.c
drivers/video/fbcon-cfb2.c
+10
-12
drivers/video/fbcon-cfb24.c
drivers/video/fbcon-cfb24.c
+12
-12
drivers/video/fbcon-cfb32.c
drivers/video/fbcon-cfb32.c
+12
-12
drivers/video/fbcon-cfb4.c
drivers/video/fbcon-cfb4.c
+11
-13
drivers/video/fbcon-cfb8.c
drivers/video/fbcon-cfb8.c
+12
-13
drivers/video/fbcon-hga.c
drivers/video/fbcon-hga.c
+3
-3
drivers/video/fbcon-ilbm.c
drivers/video/fbcon-ilbm.c
+10
-10
drivers/video/fbcon-iplan2p2.c
drivers/video/fbcon-iplan2p2.c
+21
-22
drivers/video/fbcon-iplan2p4.c
drivers/video/fbcon-iplan2p4.c
+21
-21
drivers/video/fbcon-iplan2p8.c
drivers/video/fbcon-iplan2p8.c
+21
-21
drivers/video/fbcon-mac.c
drivers/video/fbcon-mac.c
+15
-15
drivers/video/fbcon-mfb.c
drivers/video/fbcon-mfb.c
+11
-11
drivers/video/fbcon-sti.c
drivers/video/fbcon-sti.c
+12
-12
drivers/video/fbcon-vga-planes.c
drivers/video/fbcon-vga-planes.c
+10
-10
drivers/video/fbcon-vga.c
drivers/video/fbcon-vga.c
+10
-10
drivers/video/fm2fb.c
drivers/video/fm2fb.c
+1
-1
drivers/video/neofb.c
drivers/video/neofb.c
+0
-1
drivers/video/retz3fb.c
drivers/video/retz3fb.c
+0
-1
drivers/video/sis/sis_main.c
drivers/video/sis/sis_main.c
+1
-1
No files found.
drivers/video/Makefile
View file @
e73ea16d
...
...
@@ -10,7 +10,7 @@ mod-subdirs := matrox
# This list comes from 'grep -l EXPORT_SYMBOL *.[hc]'.
export-objs
:=
fbmem.o fbcmap.o fbcon.o fbmon.o modedb.o
\
fbcon-afb.o fbcon-ilbm.o
\
fbcon-afb.o fbcon-ilbm.o
fbgen.o
\
fbcon-vga.o fbcon-iplan2p2.o fbcon-iplan2p4.o
\
fbcon-iplan2p8.o fbcon-vga-planes.o fbcon-cfb16.o
\
fbcon-cfb2.o fbcon-cfb24.o fbcon-cfb32.o fbcon-cfb4.o
\
...
...
@@ -35,7 +35,7 @@ obj-$(CONFIG_FONT_PEARL_8x8) += font_pearl_8x8.o
obj-$(CONFIG_FONT_ACORN_8x8)
+=
font_acorn_8x8.o
# Add fbmon.o back into obj-$(CONFIG_FB) in 2.5.x
obj-$(CONFIG_FB)
+=
fbmem.o fbcmap.o modedb.o fbcon.o fonts.o
obj-$(CONFIG_FB)
+=
fbmem.o fbcmap.o modedb.o fbcon.o fonts.o
fbgen.o
# Only include macmodes.o if we have FB support and are PPC
ifeq
($(CONFIG_FB),y)
obj-$(CONFIG_PPC)
+=
macmodes.o
...
...
@@ -43,7 +43,7 @@ endif
obj-$(CONFIG_FB_ACORN)
+=
acornfb.o
obj-$(CONFIG_FB_AMIGA)
+=
amifb.o
obj-$(CONFIG_FB_PM2)
+=
pm2fb.o
fbgen.o
obj-$(CONFIG_FB_PM2)
+=
pm2fb.o
obj-$(CONFIG_FB_APOLLO)
+=
dnfb.o
obj-$(CONFIG_FB_Q40)
+=
q40fb.o
obj-$(CONFIG_FB_ATARI)
+=
atafb.o
...
...
@@ -66,9 +66,9 @@ obj-$(CONFIG_FB_HP300) += hpfb.o
obj-$(CONFIG_FB_OF)
+=
offb.o
obj-$(CONFIG_FB_IMSTT)
+=
imsttfb.o
obj-$(CONFIG_FB_RETINAZ3)
+=
retz3fb.o
obj-$(CONFIG_FB_CLGEN)
+=
clgenfb.o
fbgen.o
obj-$(CONFIG_FB_CLGEN)
+=
clgenfb.o
obj-$(CONFIG_FB_S3TRIO)
+=
S3triofb.o
obj-$(CONFIG_FB_TGA)
+=
tgafb.o
fbgen.o
obj-$(CONFIG_FB_TGA)
+=
tgafb.o
obj-$(CONFIG_FB_VESA)
+=
vesafb.o
obj-$(CONFIG_FB_VGA16)
+=
vga16fb.o fbcon-vga-planes.o
obj-$(CONFIG_FB_VIRGE)
+=
virgefb.o
...
...
@@ -82,7 +82,7 @@ obj-$(CONFIG_FB_TCX) += tcxfb.o sbusfb.o
obj-$(CONFIG_FB_CGFOURTEEN)
+=
cgfourteenfb.o sbusfb.o
obj-$(CONFIG_FB_P9100)
+=
p9100fb.o sbusfb.o
obj-$(CONFIG_FB_LEO)
+=
leofb.o sbusfb.o
obj-$(CONFIG_FB_STI)
+=
stifb.o sticore.o
fbgen.o
obj-$(CONFIG_FB_STI)
+=
stifb.o sticore.o
obj-$(CONFIG_FB_PMAG_BA)
+=
pmag-ba-fb.o
obj-$(CONFIG_FB_PMAGB_B)
+=
pmagb-b-fb.o
obj-$(CONFIG_FB_MAXINE)
+=
maxinefb.o
...
...
@@ -114,8 +114,8 @@ obj-$(CONFIG_FB_BWTWO) += bwtwofb.o
obj-$(CONFIG_FB_HGA)
+=
hgafb.o
obj-$(CONFIG_FB_SA1100)
+=
sa1100fb.o
obj-$(CONFIG_FB_VIRTUAL)
+=
vfb.o
obj-$(CONFIG_FB_HIT)
+=
hitfb.o
fbgen.o
obj-$(CONFIG_FB_E1355)
+=
epson1355fb.o
fbgen.o
obj-$(CONFIG_FB_HIT)
+=
hitfb.o
obj-$(CONFIG_FB_E1355)
+=
epson1355fb.o
obj-$(CONFIG_FB_PVR2)
+=
pvr2fb.o
obj-$(CONFIG_FB_VOODOO1)
+=
sstfb.o
...
...
drivers/video/aty/atyfb_base.c
View file @
e73ea16d
...
...
@@ -2625,7 +2625,7 @@ static int atyfbcon_switch(int con, struct fb_info *fb)
#ifdef CONFIG_FB_ATY_CT
/* Erase HW Cursor */
if
(
info
->
cursor
)
if
(
info
->
cursor
&&
(
fb
->
currcon
>=
0
)
)
atyfb_cursor
(
&
fb_display
[
fb
->
currcon
],
CM_ERASE
,
info
->
cursor
->
pos
.
x
,
info
->
cursor
->
pos
.
y
);
#endif
/* CONFIG_FB_ATY_CT */
...
...
drivers/video/fbcon-accel.h
View file @
e73ea16d
/*
* FBcon low-level driver
for 32 bpp packed pixel (cfb32)
* FBcon low-level driver
that is a wrapper for the accel engine.
*/
#ifndef _VIDEO_FBCON_ACCEL_H
...
...
drivers/video/fbcon-cfb16.c
View file @
e73ea16d
...
...
@@ -47,8 +47,8 @@ void fbcon_cfb16_bmove(struct display *p, int sy, int sx, int dy, int dx,
u8
*
src
,
*
dst
;
if
(
sx
==
0
&&
dx
==
0
&&
width
*
fontwidth
(
p
)
*
2
==
bytes
)
{
fb_memmove
(
p
->
screen_base
+
dy
*
linesize
,
p
->
screen_base
+
sy
*
linesize
,
fb_memmove
(
p
->
fb_info
->
screen_base
+
dy
*
linesize
,
p
->
fb_info
->
screen_base
+
sy
*
linesize
,
height
*
linesize
);
return
;
}
...
...
@@ -62,16 +62,16 @@ void fbcon_cfb16_bmove(struct display *p, int sy, int sx, int dy, int dx,
width
*=
fontwidth
(
p
)
*
2
;
}
if
(
dy
<
sy
||
(
dy
==
sy
&&
dx
<
sx
))
{
src
=
p
->
screen_base
+
sy
*
linesize
+
sx
;
dst
=
p
->
screen_base
+
dy
*
linesize
+
dx
;
src
=
p
->
fb_info
->
screen_base
+
sy
*
linesize
+
sx
;
dst
=
p
->
fb_info
->
screen_base
+
dy
*
linesize
+
dx
;
for
(
rows
=
height
*
fontheight
(
p
);
rows
--
;)
{
fb_memmove
(
dst
,
src
,
width
);
src
+=
bytes
;
dst
+=
bytes
;
}
}
else
{
src
=
p
->
screen_base
+
(
sy
+
height
)
*
linesize
+
sx
-
bytes
;
dst
=
p
->
screen_base
+
(
dy
+
height
)
*
linesize
+
dx
-
bytes
;
src
=
p
->
fb_info
->
screen_base
+
(
sy
+
height
)
*
linesize
+
sx
-
bytes
;
dst
=
p
->
fb_info
->
screen_base
+
(
dy
+
height
)
*
linesize
+
dx
-
bytes
;
for
(
rows
=
height
*
fontheight
(
p
);
rows
--
;)
{
fb_memmove
(
dst
,
src
,
width
);
src
-=
bytes
;
...
...
@@ -108,7 +108,7 @@ void fbcon_cfb16_clear(struct vc_data *conp, struct display *p, int sy, int sx,
int
bytes
=
p
->
next_line
,
lines
=
height
*
fontheight
(
p
);
u32
bgx
;
dest
=
p
->
screen_base
+
sy
*
fontheight
(
p
)
*
bytes
+
sx
*
fontwidth
(
p
)
*
2
;
dest
=
p
->
fb_info
->
screen_base
+
sy
*
fontheight
(
p
)
*
bytes
+
sx
*
fontwidth
(
p
)
*
2
;
bgx
=
((
u16
*
)
p
->
dispsw_data
)[
attr_bgcol_ec
(
p
,
conp
)];
...
...
@@ -126,7 +126,7 @@ void fbcon_cfb16_putc(struct vc_data *conp, struct display *p, int c, int yy,
int
bytes
=
p
->
next_line
,
rows
;
u32
eorx
,
fgx
,
bgx
;
dest
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
)
*
2
;
dest
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
)
*
2
;
fgx
=
((
u16
*
)
p
->
dispsw_data
)[
attr_fgcol
(
p
,
c
)];
bgx
=
((
u16
*
)
p
->
dispsw_data
)[
attr_bgcol
(
p
,
c
)];
...
...
@@ -177,7 +177,7 @@ void fbcon_cfb16_putcs(struct vc_data *conp, struct display *p,
int
rows
,
bytes
=
p
->
next_line
;
u32
eorx
,
fgx
,
bgx
;
dest0
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
)
*
2
;
dest0
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
)
*
2
;
c
=
scr_readw
(
s
);
fgx
=
((
u16
*
)
p
->
dispsw_data
)[
attr_fgcol
(
p
,
c
)];
bgx
=
((
u16
*
)
p
->
dispsw_data
)[
attr_bgcol
(
p
,
c
)];
...
...
@@ -233,7 +233,7 @@ void fbcon_cfb16_revc(struct display *p, int xx, int yy)
u8
*
dest
;
int
bytes
=
p
->
next_line
,
rows
;
dest
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
)
*
2
;
dest
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
)
*
2
;
for
(
rows
=
fontheight
(
p
);
rows
--
;
dest
+=
bytes
)
{
switch
(
fontwidth
(
p
))
{
case
16
:
...
...
@@ -268,10 +268,10 @@ void fbcon_cfb16_clear_margins(struct vc_data *conp, struct display *p,
bgx
=
((
u16
*
)
p
->
dispsw_data
)[
attr_bgcol_ec
(
p
,
conp
)];
if
(
!
bottom_only
&&
(
right_width
=
p
->
var
.
xres
-
right_start
))
rectfill
(
p
->
screen_base
+
right_start
*
2
,
right_width
,
rectfill
(
p
->
fb_info
->
screen_base
+
right_start
*
2
,
right_width
,
p
->
var
.
yres_virtual
,
bgx
,
bytes
);
if
((
bottom_width
=
p
->
var
.
yres
-
bottom_start
))
rectfill
(
p
->
screen_base
+
(
p
->
var
.
yoffset
+
bottom_start
)
*
bytes
,
rectfill
(
p
->
fb_info
->
screen_base
+
(
p
->
var
.
yoffset
+
bottom_start
)
*
bytes
,
right_start
,
bottom_width
,
bgx
,
bytes
);
}
...
...
drivers/video/fbcon-cfb2.c
View file @
e73ea16d
...
...
@@ -61,14 +61,14 @@ void fbcon_cfb2_bmove(struct display *p, int sy, int sx, int dy, int dx,
u8
*
src
,
*
dst
;
if
(
sx
==
0
&&
dx
==
0
&&
width
*
2
==
bytes
)
{
fb_memmove
(
p
->
screen_base
+
dy
*
linesize
,
p
->
screen_base
+
sy
*
linesize
,
fb_memmove
(
p
->
fb_info
->
screen_base
+
dy
*
linesize
,
p
->
fb_info
->
screen_base
+
sy
*
linesize
,
height
*
linesize
);
}
else
{
if
(
dy
<
sy
||
(
dy
==
sy
&&
dx
<
sx
))
{
src
=
p
->
screen_base
+
sy
*
linesize
+
sx
*
2
;
dst
=
p
->
screen_base
+
dy
*
linesize
+
dx
*
2
;
src
=
p
->
fb_info
->
screen_base
+
sy
*
linesize
+
sx
*
2
;
dst
=
p
->
fb_info
->
screen_base
+
dy
*
linesize
+
dx
*
2
;
for
(
rows
=
height
*
fontheight
(
p
)
;
rows
--
;)
{
fb_memmove
(
dst
,
src
,
width
*
2
);
src
+=
bytes
;
...
...
@@ -76,10 +76,8 @@ void fbcon_cfb2_bmove(struct display *p, int sy, int sx, int dy, int dx,
}
}
else
{
src
=
p
->
screen_base
+
(
sy
+
height
)
*
linesize
+
sx
*
2
-
bytes
;
dst
=
p
->
screen_base
+
(
dy
+
height
)
*
linesize
+
dx
*
2
-
bytes
;
src
=
p
->
fb_info
->
screen_base
+
(
sy
+
height
)
*
linesize
+
sx
*
2
-
bytes
;
dst
=
p
->
fb_info
->
screen_base
+
(
dy
+
height
)
*
linesize
+
dx
*
2
-
bytes
;
for
(
rows
=
height
*
fontheight
(
p
)
;
rows
--
;)
{
fb_memmove
(
dst
,
src
,
width
*
2
);
src
-=
bytes
;
...
...
@@ -96,7 +94,7 @@ void fbcon_cfb2_clear(struct vc_data *conp, struct display *p, int sy, int sx,
int
bytes
=
p
->
next_line
,
lines
=
height
*
fontheight
(
p
),
rows
,
i
;
u32
bgx
;
dest
=
p
->
screen_base
+
sy
*
fontheight
(
p
)
*
bytes
+
sx
*
2
;
dest
=
p
->
fb_info
->
screen_base
+
sy
*
fontheight
(
p
)
*
bytes
+
sx
*
2
;
bgx
=
attr_bgcol_ec
(
p
,
conp
);
bgx
|=
(
bgx
<<
2
);
/* expand the colour to 16 bits */
...
...
@@ -128,7 +126,7 @@ void fbcon_cfb2_putc(struct vc_data *conp, struct display *p, int c, int yy,
int
bytes
=
p
->
next_line
,
rows
;
u32
eorx
,
fgx
,
bgx
;
dest
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
2
;
dest
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
2
;
cdat
=
p
->
fontdata
+
(
c
&
p
->
charmask
)
*
fontheight
(
p
);
fgx
=
3
;
/*attr_fgcol(p,c);*/
...
...
@@ -153,7 +151,7 @@ void fbcon_cfb2_putcs(struct vc_data *conp, struct display *p, const unsigned sh
int
rows
,
bytes
=
p
->
next_line
;
u32
eorx
,
fgx
,
bgx
;
dest0
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
2
;
dest0
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
2
;
c
=
scr_readw
(
s
);
fgx
=
3
/*attr_fgcol(p, c)*/
;
bgx
=
attr_bgcol
(
p
,
c
);
...
...
@@ -179,7 +177,7 @@ void fbcon_cfb2_revc(struct display *p, int xx, int yy)
u8
*
dest
;
int
bytes
=
p
->
next_line
,
rows
;
dest
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
2
;
dest
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
2
;
for
(
rows
=
fontheight
(
p
)
;
rows
--
;
dest
+=
bytes
)
{
fb_writew
(
fb_readw
(
dest
)
^
0xffff
,
dest
);
}
...
...
drivers/video/fbcon-cfb24.c
View file @
e73ea16d
...
...
@@ -36,8 +36,8 @@ void fbcon_cfb24_bmove(struct display *p, int sy, int sx, int dy, int dx,
u8
*
src
,
*
dst
;
if
(
sx
==
0
&&
dx
==
0
&&
width
*
fontwidth
(
p
)
*
3
==
bytes
)
{
fb_memmove
(
p
->
screen_base
+
dy
*
linesize
,
p
->
screen_base
+
sy
*
linesize
,
fb_memmove
(
p
->
fb_info
->
screen_base
+
dy
*
linesize
,
p
->
fb_info
->
screen_base
+
sy
*
linesize
,
height
*
linesize
);
return
;
}
...
...
@@ -52,16 +52,16 @@ void fbcon_cfb24_bmove(struct display *p, int sy, int sx, int dy, int dx,
}
sx
*=
3
;
dx
*=
3
;
width
*=
3
;
if
(
dy
<
sy
||
(
dy
==
sy
&&
dx
<
sx
))
{
src
=
p
->
screen_base
+
sy
*
linesize
+
sx
;
dst
=
p
->
screen_base
+
dy
*
linesize
+
dx
;
src
=
p
->
fb_info
->
screen_base
+
sy
*
linesize
+
sx
;
dst
=
p
->
fb_info
->
screen_base
+
dy
*
linesize
+
dx
;
for
(
rows
=
height
*
fontheight
(
p
);
rows
--
;)
{
fb_memmove
(
dst
,
src
,
width
);
src
+=
bytes
;
dst
+=
bytes
;
}
}
else
{
src
=
p
->
screen_base
+
(
sy
+
height
)
*
linesize
+
sx
-
bytes
;
dst
=
p
->
screen_base
+
(
dy
+
height
)
*
linesize
+
dx
-
bytes
;
src
=
p
->
fb_info
->
screen_base
+
(
sy
+
height
)
*
linesize
+
sx
-
bytes
;
dst
=
p
->
fb_info
->
screen_base
+
(
dy
+
height
)
*
linesize
+
dx
-
bytes
;
for
(
rows
=
height
*
fontheight
(
p
);
rows
--
;)
{
fb_memmove
(
dst
,
src
,
width
);
src
-=
bytes
;
...
...
@@ -122,7 +122,7 @@ void fbcon_cfb24_clear(struct vc_data *conp, struct display *p, int sy, int sx,
int
bytes
=
p
->
next_line
,
lines
=
height
*
fontheight
(
p
);
u32
bgx
;
dest
=
p
->
screen_base
+
sy
*
fontheight
(
p
)
*
bytes
+
sx
*
fontwidth
(
p
)
*
3
;
dest
=
p
->
fb_info
->
screen_base
+
sy
*
fontheight
(
p
)
*
bytes
+
sx
*
fontwidth
(
p
)
*
3
;
bgx
=
((
u32
*
)
p
->
dispsw_data
)[
attr_bgcol_ec
(
p
,
conp
)];
...
...
@@ -140,7 +140,7 @@ void fbcon_cfb24_putc(struct vc_data *conp, struct display *p, int c, int yy,
int
bytes
=
p
->
next_line
,
rows
;
u32
eorx
,
fgx
,
bgx
,
d1
,
d2
,
d3
,
d4
;
dest
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
)
*
3
;
dest
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
)
*
3
;
if
(
fontwidth
(
p
)
<=
8
)
cdat
=
p
->
fontdata
+
(
c
&
p
->
charmask
)
*
fontheight
(
p
);
else
...
...
@@ -190,7 +190,7 @@ void fbcon_cfb24_putcs(struct vc_data *conp, struct display *p,
int
rows
,
bytes
=
p
->
next_line
;
u32
eorx
,
fgx
,
bgx
,
d1
,
d2
,
d3
,
d4
;
dest0
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
)
*
3
;
dest0
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
)
*
3
;
c
=
scr_readw
(
s
);
fgx
=
((
u32
*
)
p
->
dispsw_data
)[
attr_fgcol
(
p
,
c
)];
bgx
=
((
u32
*
)
p
->
dispsw_data
)[
attr_bgcol
(
p
,
c
)];
...
...
@@ -241,7 +241,7 @@ void fbcon_cfb24_revc(struct display *p, int xx, int yy)
u8
*
dest
;
int
bytes
=
p
->
next_line
,
rows
;
dest
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
)
*
3
;
dest
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
)
*
3
;
for
(
rows
=
fontheight
(
p
);
rows
--
;
dest
+=
bytes
)
{
switch
(
fontwidth
(
p
))
{
case
16
:
...
...
@@ -280,10 +280,10 @@ void fbcon_cfb24_clear_margins(struct vc_data *conp, struct display *p,
bgx
=
((
u32
*
)
p
->
dispsw_data
)[
attr_bgcol_ec
(
p
,
conp
)];
if
(
!
bottom_only
&&
(
right_width
=
p
->
var
.
xres
-
right_start
))
rectfill
(
p
->
screen_base
+
right_start
*
3
,
right_width
,
rectfill
(
p
->
fb_info
->
screen_base
+
right_start
*
3
,
right_width
,
p
->
var
.
yres_virtual
,
bgx
,
bytes
);
if
((
bottom_width
=
p
->
var
.
yres
-
bottom_start
))
rectfill
(
p
->
screen_base
+
(
p
->
var
.
yoffset
+
bottom_start
)
*
bytes
,
rectfill
(
p
->
fb_info
->
screen_base
+
(
p
->
var
.
yoffset
+
bottom_start
)
*
bytes
,
right_start
,
bottom_width
,
bgx
,
bytes
);
}
...
...
drivers/video/fbcon-cfb32.c
View file @
e73ea16d
...
...
@@ -36,8 +36,8 @@ void fbcon_cfb32_bmove(struct display *p, int sy, int sx, int dy, int dx,
u8
*
src
,
*
dst
;
if
(
sx
==
0
&&
dx
==
0
&&
width
*
fontwidth
(
p
)
*
4
==
bytes
)
{
fb_memmove
(
p
->
screen_base
+
dy
*
linesize
,
p
->
screen_base
+
sy
*
linesize
,
fb_memmove
(
p
->
fb_info
->
screen_base
+
dy
*
linesize
,
p
->
fb_info
->
screen_base
+
sy
*
linesize
,
height
*
linesize
);
return
;
}
...
...
@@ -51,16 +51,16 @@ void fbcon_cfb32_bmove(struct display *p, int sy, int sx, int dy, int dx,
width
*=
fontwidth
(
p
)
*
4
;
}
if
(
dy
<
sy
||
(
dy
==
sy
&&
dx
<
sx
))
{
src
=
p
->
screen_base
+
sy
*
linesize
+
sx
;
dst
=
p
->
screen_base
+
dy
*
linesize
+
dx
;
src
=
p
->
fb_info
->
screen_base
+
sy
*
linesize
+
sx
;
dst
=
p
->
fb_info
->
screen_base
+
dy
*
linesize
+
dx
;
for
(
rows
=
height
*
fontheight
(
p
);
rows
--
;)
{
fb_memmove
(
dst
,
src
,
width
);
src
+=
bytes
;
dst
+=
bytes
;
}
}
else
{
src
=
p
->
screen_base
+
(
sy
+
height
)
*
linesize
+
sx
-
bytes
;
dst
=
p
->
screen_base
+
(
dy
+
height
)
*
linesize
+
dx
-
bytes
;
src
=
p
->
fb_info
->
screen_base
+
(
sy
+
height
)
*
linesize
+
sx
-
bytes
;
dst
=
p
->
fb_info
->
screen_base
+
(
dy
+
height
)
*
linesize
+
dx
-
bytes
;
for
(
rows
=
height
*
fontheight
(
p
);
rows
--
;)
{
fb_memmove
(
dst
,
src
,
width
);
src
-=
bytes
;
...
...
@@ -99,7 +99,7 @@ void fbcon_cfb32_clear(struct vc_data *conp, struct display *p, int sy, int sx,
int
bytes
=
p
->
next_line
,
lines
=
height
*
fontheight
(
p
);
u32
bgx
;
dest
=
p
->
screen_base
+
sy
*
fontheight
(
p
)
*
bytes
+
sx
*
fontwidth
(
p
)
*
4
;
dest
=
p
->
fb_info
->
screen_base
+
sy
*
fontheight
(
p
)
*
bytes
+
sx
*
fontwidth
(
p
)
*
4
;
bgx
=
((
u32
*
)
p
->
dispsw_data
)[
attr_bgcol_ec
(
p
,
conp
)];
...
...
@@ -117,7 +117,7 @@ void fbcon_cfb32_putc(struct vc_data *conp, struct display *p, int c, int yy,
int
bytes
=
p
->
next_line
,
rows
;
u32
eorx
,
fgx
,
bgx
,
*
pt
;
dest
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
)
*
4
;
dest
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
)
*
4
;
if
(
fontwidth
(
p
)
<=
8
)
cdat
=
p
->
fontdata
+
(
c
&
p
->
charmask
)
*
fontheight
(
p
);
else
...
...
@@ -163,7 +163,7 @@ void fbcon_cfb32_putcs(struct vc_data *conp, struct display *p,
int
rows
,
bytes
=
p
->
next_line
;
u32
eorx
,
fgx
,
bgx
,
*
pt
;
dest0
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
)
*
4
;
dest0
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
)
*
4
;
c
=
scr_readw
(
s
);
fgx
=
((
u32
*
)
p
->
dispsw_data
)[
attr_fgcol
(
p
,
c
)];
bgx
=
((
u32
*
)
p
->
dispsw_data
)[
attr_bgcol
(
p
,
c
)];
...
...
@@ -210,7 +210,7 @@ void fbcon_cfb32_revc(struct display *p, int xx, int yy)
u8
*
dest
;
int
bytes
=
p
->
next_line
,
rows
;
dest
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
)
*
4
;
dest
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
)
*
4
;
for
(
rows
=
fontheight
(
p
);
rows
--
;
dest
+=
bytes
)
{
switch
(
fontwidth
(
p
))
{
case
16
:
...
...
@@ -254,10 +254,10 @@ void fbcon_cfb32_clear_margins(struct vc_data *conp, struct display *p,
bgx
=
((
u32
*
)
p
->
dispsw_data
)[
attr_bgcol_ec
(
p
,
conp
)];
if
(
!
bottom_only
&&
(
right_width
=
p
->
var
.
xres
-
right_start
))
rectfill
(
p
->
screen_base
+
right_start
*
4
,
right_width
,
rectfill
(
p
->
fb_info
->
screen_base
+
right_start
*
4
,
right_width
,
p
->
var
.
yres_virtual
,
bgx
,
bytes
);
if
((
bottom_width
=
p
->
var
.
yres
-
bottom_start
))
rectfill
(
p
->
screen_base
+
(
p
->
var
.
yoffset
+
bottom_start
)
*
bytes
,
rectfill
(
p
->
fb_info
->
screen_base
+
(
p
->
var
.
yoffset
+
bottom_start
)
*
bytes
,
right_start
,
bottom_width
,
bgx
,
bytes
);
}
...
...
drivers/video/fbcon-cfb4.c
View file @
e73ea16d
...
...
@@ -61,14 +61,14 @@ void fbcon_cfb4_bmove(struct display *p, int sy, int sx, int dy, int dx,
u8
*
src
,
*
dst
;
if
(
sx
==
0
&&
dx
==
0
&&
width
*
4
==
bytes
)
{
fb_memmove
(
p
->
screen_base
+
dy
*
linesize
,
p
->
screen_base
+
sy
*
linesize
,
fb_memmove
(
p
->
fb_info
->
screen_base
+
dy
*
linesize
,
p
->
fb_info
->
screen_base
+
sy
*
linesize
,
height
*
linesize
);
}
else
{
if
(
dy
<
sy
||
(
dy
==
sy
&&
dx
<
sx
))
{
src
=
p
->
screen_base
+
sy
*
linesize
+
sx
*
4
;
dst
=
p
->
screen_base
+
dy
*
linesize
+
dx
*
4
;
src
=
p
->
fb_info
->
screen_base
+
sy
*
linesize
+
sx
*
4
;
dst
=
p
->
fb_info
->
screen_base
+
dy
*
linesize
+
dx
*
4
;
for
(
rows
=
height
*
fontheight
(
p
)
;
rows
--
;)
{
fb_memmove
(
dst
,
src
,
width
*
4
);
src
+=
bytes
;
...
...
@@ -76,10 +76,8 @@ void fbcon_cfb4_bmove(struct display *p, int sy, int sx, int dy, int dx,
}
}
else
{
src
=
p
->
screen_base
+
(
sy
+
height
)
*
linesize
+
sx
*
4
-
bytes
;
dst
=
p
->
screen_base
+
(
dy
+
height
)
*
linesize
+
dx
*
4
-
bytes
;
src
=
p
->
fb_info
->
screen_base
+
(
sy
+
height
)
*
linesize
+
sx
*
4
-
bytes
;
dst
=
p
->
fb_info
->
screen_base
+
(
dy
+
height
)
*
linesize
+
dx
*
4
-
bytes
;
for
(
rows
=
height
*
fontheight
(
p
)
;
rows
--
;)
{
fb_memmove
(
dst
,
src
,
width
*
4
);
src
-=
bytes
;
...
...
@@ -96,9 +94,9 @@ void fbcon_cfb4_clear(struct vc_data *conp, struct display *p, int sy, int sx,
int
bytes
=
p
->
next_line
,
lines
=
height
*
fontheight
(
p
),
rows
,
i
;
u32
bgx
;
/* if(p->screen_base!=0xFDD00020)
/* if(p->
fb_info->
screen_base!=0xFDD00020)
mac_boom(1);*/
dest
=
p
->
screen_base
+
sy
*
fontheight
(
p
)
*
bytes
+
sx
*
4
;
dest
=
p
->
fb_info
->
screen_base
+
sy
*
fontheight
(
p
)
*
bytes
+
sx
*
4
;
bgx
=
attr_bgcol_ec
(
p
,
conp
);
bgx
|=
(
bgx
<<
4
);
/* expand the colour to 32bits */
...
...
@@ -130,7 +128,7 @@ void fbcon_cfb4_putc(struct vc_data *conp, struct display *p, int c, int yy,
int
bytes
=
p
->
next_line
,
rows
;
u32
eorx
,
fgx
,
bgx
;
dest
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
4
;
dest
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
4
;
cdat
=
p
->
fontdata
+
(
c
&
p
->
charmask
)
*
fontheight
(
p
);
fgx
=
attr_fgcol
(
p
,
c
);
...
...
@@ -155,7 +153,7 @@ void fbcon_cfb4_putcs(struct vc_data *conp, struct display *p,
int
rows
,
bytes
=
p
->
next_line
;
u32
eorx
,
fgx
,
bgx
;
dest0
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
4
;
dest0
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
4
;
c
=
scr_readw
(
s
);
fgx
=
attr_fgcol
(
p
,
c
);
bgx
=
attr_bgcol
(
p
,
c
);
...
...
@@ -183,7 +181,7 @@ void fbcon_cfb4_revc(struct display *p, int xx, int yy)
u8
*
dest
;
int
bytes
=
p
->
next_line
,
rows
;
dest
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
4
;
dest
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
4
;
for
(
rows
=
fontheight
(
p
)
;
rows
--
;
dest
+=
bytes
)
{
fb_writel
(
fb_readl
(
dest
+
0
)
^
0xffffffff
,
dest
+
0
);
}
...
...
drivers/video/fbcon-cfb8.c
View file @
e73ea16d
...
...
@@ -52,8 +52,8 @@ void fbcon_cfb8_bmove(struct display *p, int sy, int sx, int dy, int dx,
u8
*
src
,
*
dst
;
if
(
sx
==
0
&&
dx
==
0
&&
width
*
fontwidth
(
p
)
==
bytes
)
{
fb_memmove
(
p
->
screen_base
+
dy
*
linesize
,
p
->
screen_base
+
sy
*
linesize
,
fb_memmove
(
p
->
fb_info
->
screen_base
+
dy
*
linesize
,
p
->
fb_info
->
screen_base
+
sy
*
linesize
,
height
*
linesize
);
return
;
}
...
...
@@ -63,16 +63,16 @@ void fbcon_cfb8_bmove(struct display *p, int sy, int sx, int dy, int dx,
sx
*=
fontwidth
(
p
);
dx
*=
fontwidth
(
p
);
width
*=
fontwidth
(
p
);
}
if
(
dy
<
sy
||
(
dy
==
sy
&&
dx
<
sx
))
{
src
=
p
->
screen_base
+
sy
*
linesize
+
sx
;
dst
=
p
->
screen_base
+
dy
*
linesize
+
dx
;
src
=
p
->
fb_info
->
screen_base
+
sy
*
linesize
+
sx
;
dst
=
p
->
fb_info
->
screen_base
+
dy
*
linesize
+
dx
;
for
(
rows
=
height
*
fontheight
(
p
)
;
rows
--
;)
{
fb_memmove
(
dst
,
src
,
width
);
src
+=
bytes
;
dst
+=
bytes
;
}
}
else
{
src
=
p
->
screen_base
+
(
sy
+
height
)
*
linesize
+
sx
-
bytes
;
dst
=
p
->
screen_base
+
(
dy
+
height
)
*
linesize
+
dx
-
bytes
;
src
=
p
->
fb_info
->
screen_base
+
(
sy
+
height
)
*
linesize
+
sx
-
bytes
;
dst
=
p
->
fb_info
->
screen_base
+
(
dy
+
height
)
*
linesize
+
dx
-
bytes
;
for
(
rows
=
height
*
fontheight
(
p
)
;
rows
--
;)
{
fb_memmove
(
dst
,
src
,
width
);
src
-=
bytes
;
...
...
@@ -97,7 +97,7 @@ void fbcon_cfb8_clear(struct vc_data *conp, struct display *p, int sy, int sx,
int
bytes
=
p
->
next_line
,
lines
=
height
*
fontheight
(
p
);
u8
bgx
;
dest
=
p
->
screen_base
+
sy
*
fontheight
(
p
)
*
bytes
+
sx
*
fontwidth
(
p
);
dest
=
p
->
fb_info
->
screen_base
+
sy
*
fontheight
(
p
)
*
bytes
+
sx
*
fontwidth
(
p
);
bgx
=
attr_bgcol_ec
(
p
,
conp
);
...
...
@@ -115,7 +115,7 @@ void fbcon_cfb8_putc(struct vc_data *conp, struct display *p, int c, int yy,
int
bytes
=
p
->
next_line
,
rows
;
u32
eorx
,
fgx
,
bgx
;
dest
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
);
dest
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
);
if
(
fontwidth
(
p
)
<=
8
)
cdat
=
p
->
fontdata
+
(
c
&
p
->
charmask
)
*
fontheight
(
p
);
else
...
...
@@ -162,7 +162,7 @@ void fbcon_cfb8_putcs(struct vc_data *conp, struct display *p,
int
rows
,
bytes
=
p
->
next_line
;
u32
eorx
,
fgx
,
bgx
;
dest0
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
);
dest0
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
);
c
=
scr_readw
(
s
);
fgx
=
attr_fgcol
(
p
,
c
);
bgx
=
attr_bgcol
(
p
,
c
);
...
...
@@ -219,7 +219,7 @@ void fbcon_cfb8_revc(struct display *p, int xx, int yy)
u8
*
dest
;
int
bytes
=
p
->
next_line
,
rows
;
dest
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
);
dest
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
bytes
+
xx
*
fontwidth
(
p
);
for
(
rows
=
fontheight
(
p
)
;
rows
--
;
dest
+=
bytes
)
{
switch
(
fontwidth
(
p
))
{
case
16
:
fb_writel
(
fb_readl
(
dest
+
12
)
^
0x0f0f0f0f
,
dest
+
12
);
/* fall thru */
...
...
@@ -244,10 +244,9 @@ void fbcon_cfb8_clear_margins(struct vc_data *conp, struct display *p,
bgx
=
attr_bgcol_ec
(
p
,
conp
);
if
(
!
bottom_only
&&
(
right_width
=
p
->
var
.
xres
-
right_start
))
rectfill
(
p
->
screen_base
+
right_start
,
right_width
,
p
->
var
.
yres_virtual
,
bgx
,
bytes
);
rectfill
(
p
->
fb_info
->
screen_base
+
right_start
,
right_width
,
p
->
var
.
yres_virtual
,
bgx
,
bytes
);
if
((
bottom_width
=
p
->
var
.
yres
-
bottom_start
))
rectfill
(
p
->
screen_base
+
(
p
->
var
.
yoffset
+
bottom_start
)
*
bytes
,
rectfill
(
p
->
fb_info
->
screen_base
+
(
p
->
var
.
yoffset
+
bottom_start
)
*
bytes
,
right_start
,
bottom_width
,
bgx
,
bytes
);
}
...
...
drivers/video/fbcon-hga.c
View file @
e73ea16d
...
...
@@ -38,7 +38,7 @@
static
inline
u8
*
rowaddr
(
struct
display
*
p
,
u_int
row
)
{
return
p
->
screen_base
+
HGA_ROWADDR
(
row
);
return
p
->
fb_info
->
screen_base
+
HGA_ROWADDR
(
row
);
}
void
fbcon_hga_setup
(
struct
display
*
p
)
...
...
@@ -57,8 +57,8 @@ void fbcon_hga_bmove(struct display *p, int sy, int sx, int dy, int dx,
#if 0
if (sx == 0 && dx == 0 && width == p->next_line) {
src = p->screen_base+sy*fontheight(p)*width;
dest = p->screen_base+dy*fontheight(p)*width;
src = p->
fb_info->
screen_base+sy*fontheight(p)*width;
dest = p->
fb_info->
screen_base+dy*fontheight(p)*width;
fb_memmove(dest, src, height*fontheight(p)*width);
} else
#endif
...
...
drivers/video/fbcon-ilbm.c
View file @
e73ea16d
...
...
@@ -45,24 +45,24 @@ void fbcon_ilbm_bmove(struct display *p, int sy, int sx, int dy, int dx,
int
height
,
int
width
)
{
if
(
sx
==
0
&&
dx
==
0
&&
width
==
p
->
next_plane
)
fb_memmove
(
p
->
screen_base
+
dy
*
fontheight
(
p
)
*
p
->
next_line
,
p
->
screen_base
+
sy
*
fontheight
(
p
)
*
p
->
next_line
,
fb_memmove
(
p
->
fb_info
->
screen_base
+
dy
*
fontheight
(
p
)
*
p
->
next_line
,
p
->
fb_info
->
screen_base
+
sy
*
fontheight
(
p
)
*
p
->
next_line
,
height
*
fontheight
(
p
)
*
p
->
next_line
);
else
{
u8
*
src
,
*
dest
;
u_int
i
;
if
(
dy
<=
sy
)
{
src
=
p
->
screen_base
+
sy
*
fontheight
(
p
)
*
p
->
next_line
+
sx
;
dest
=
p
->
screen_base
+
dy
*
fontheight
(
p
)
*
p
->
next_line
+
dx
;
src
=
p
->
fb_info
->
screen_base
+
sy
*
fontheight
(
p
)
*
p
->
next_line
+
sx
;
dest
=
p
->
fb_info
->
screen_base
+
dy
*
fontheight
(
p
)
*
p
->
next_line
+
dx
;
for
(
i
=
p
->
var
.
bits_per_pixel
*
height
*
fontheight
(
p
);
i
--
;)
{
fb_memmove
(
dest
,
src
,
width
);
src
+=
p
->
next_plane
;
dest
+=
p
->
next_plane
;
}
}
else
{
src
=
p
->
screen_base
+
(
sy
+
height
)
*
fontheight
(
p
)
*
p
->
next_line
+
sx
;
dest
=
p
->
screen_base
+
(
dy
+
height
)
*
fontheight
(
p
)
*
p
->
next_line
+
dx
;
src
=
p
->
fb_info
->
screen_base
+
(
sy
+
height
)
*
fontheight
(
p
)
*
p
->
next_line
+
sx
;
dest
=
p
->
fb_info
->
screen_base
+
(
dy
+
height
)
*
fontheight
(
p
)
*
p
->
next_line
+
dx
;
for
(
i
=
p
->
var
.
bits_per_pixel
*
height
*
fontheight
(
p
);
i
--
;)
{
src
-=
p
->
next_plane
;
dest
-=
p
->
next_plane
;
...
...
@@ -79,7 +79,7 @@ void fbcon_ilbm_clear(struct vc_data *conp, struct display *p, int sy, int sx,
u_int
i
,
rows
;
int
bg
,
bg0
;
dest
=
p
->
screen_base
+
sy
*
fontheight
(
p
)
*
p
->
next_line
+
sx
;
dest
=
p
->
fb_info
->
screen_base
+
sy
*
fontheight
(
p
)
*
p
->
next_line
+
sx
;
bg0
=
attr_bgcol_ec
(
p
,
conp
);
for
(
rows
=
height
*
fontheight
(
p
);
rows
--
;)
{
...
...
@@ -102,7 +102,7 @@ void fbcon_ilbm_putc(struct vc_data *conp, struct display *p, int c, int yy,
u8
d
;
int
fg0
,
bg0
,
fg
,
bg
;
dest
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
p
->
next_line
+
xx
;
dest
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
p
->
next_line
+
xx
;
cdat
=
p
->
fontdata
+
(
c
&
p
->
charmask
)
*
fontheight
(
p
);
fg0
=
attr_fgcol
(
p
,
c
);
bg0
=
attr_bgcol
(
p
,
c
);
...
...
@@ -153,7 +153,7 @@ void fbcon_ilbm_putcs(struct vc_data *conp, struct display *p,
u32
d
;
int
fg0
,
bg0
,
fg
,
bg
;
dest0
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
p
->
next_line
+
xx
;
dest0
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
p
->
next_line
+
xx
;
c1
=
scr_readw
(
s
);
fg0
=
attr_fgcol
(
p
,
c1
);
bg0
=
attr_bgcol
(
p
,
c1
);
...
...
@@ -235,7 +235,7 @@ void fbcon_ilbm_revc(struct display *p, int xx, int yy)
u_int
rows
,
i
;
int
mask
;
dest0
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
p
->
next_line
+
xx
;
dest0
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
p
->
next_line
+
xx
;
mask
=
p
->
fgcol
^
p
->
bgcol
;
/*
...
...
drivers/video/fbcon-iplan2p2.c
View file @
e73ea16d
...
...
@@ -172,8 +172,8 @@ void fbcon_iplan2p2_bmove(struct display *p, int sy, int sx, int dy, int dx,
/* Special (but often used) case: Moving whole lines can be
* done with memmove()
*/
fb_memmove
(
p
->
screen_base
+
dy
*
p
->
next_line
*
fontheight
(
p
),
p
->
screen_base
+
sy
*
p
->
next_line
*
fontheight
(
p
),
fb_memmove
(
p
->
fb_info
->
screen_base
+
dy
*
p
->
next_line
*
fontheight
(
p
),
p
->
fb_info
->
screen_base
+
sy
*
p
->
next_line
*
fontheight
(
p
),
p
->
next_line
*
height
*
fontheight
(
p
));
}
else
{
int
rows
,
cols
;
...
...
@@ -194,8 +194,8 @@ void fbcon_iplan2p2_bmove(struct display *p, int sy, int sx, int dy, int dx,
if
((
sx
&
1
)
==
(
dx
&
1
))
{
/* odd->odd or even->even */
if
(
upwards
)
{
src
=
p
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
4
+
(
sx
&
1
);
dst
=
p
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
4
+
(
dx
&
1
);
src
=
p
->
fb_info
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
4
+
(
sx
&
1
);
dst
=
p
->
fb_info
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
4
+
(
dx
&
1
);
if
(
sx
&
1
)
{
memmove_2p_col
(
dst
,
src
,
colsize
,
bytes
);
src
+=
3
;
...
...
@@ -217,13 +217,13 @@ void fbcon_iplan2p2_bmove(struct display *p, int sy, int sx, int dy, int dx,
}
}
else
{
if
(
!
((
sx
+
width
-
1
)
&
1
))
{
src
=
p
->
screen_base
+
sy
*
linesize
+
((
sx
+
width
-
1
)
>>
1
)
*
4
;
dst
=
p
->
screen_base
+
dy
*
linesize
+
((
dx
+
width
-
1
)
>>
1
)
*
4
;
src
=
p
->
fb_info
->
screen_base
+
sy
*
linesize
+
((
sx
+
width
-
1
)
>>
1
)
*
4
;
dst
=
p
->
fb_info
->
screen_base
+
dy
*
linesize
+
((
dx
+
width
-
1
)
>>
1
)
*
4
;
memmove_2p_col
(
dst
,
src
,
colsize
,
bytes
);
--
width
;
}
src
=
p
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
4
+
(
sx
&
1
);
dst
=
p
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
4
+
(
dx
&
1
);
src
=
p
->
fb_info
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
4
+
(
sx
&
1
);
dst
=
p
->
fb_info
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
4
+
(
dx
&
1
);
if
(
width
>
1
)
{
src
+=
colsize
*
bytes
+
(
sx
&
1
)
*
3
;
dst
+=
colsize
*
bytes
+
(
sx
&
1
)
*
3
;
...
...
@@ -239,8 +239,8 @@ void fbcon_iplan2p2_bmove(struct display *p, int sy, int sx, int dy, int dx,
}
else
{
/* odd->even or even->odd */
if
(
upwards
)
{
src
=
p
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
4
+
(
sx
&
1
);
dst
=
p
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
4
+
(
dx
&
1
);
src
=
p
->
fb_info
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
4
+
(
sx
&
1
);
dst
=
p
->
fb_info
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
4
+
(
dx
&
1
);
for
(
cols
=
width
;
cols
>
0
;
--
cols
)
{
memmove_2p_col
(
dst
,
src
,
colsize
,
bytes
);
INC_2P
(
src
);
...
...
@@ -249,8 +249,8 @@ void fbcon_iplan2p2_bmove(struct display *p, int sy, int sx, int dy, int dx,
}
else
{
sx
+=
width
-
1
;
dx
+=
width
-
1
;
src
=
p
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
4
+
(
sx
&
1
);
dst
=
p
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
4
+
(
dx
&
1
);
src
=
p
->
fb_info
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
4
+
(
sx
&
1
);
dst
=
p
->
fb_info
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
4
+
(
dx
&
1
);
for
(
cols
=
width
;
cols
>
0
;
--
cols
)
{
memmove_2p_col
(
dst
,
src
,
colsize
,
bytes
);
DEC_2P
(
src
);
...
...
@@ -286,13 +286,13 @@ void fbcon_iplan2p2_clear(struct vc_data *conp, struct display *p, int sy,
else
offset
=
sy
*
bytes
*
fontheight
(
p
);
size
=
lines
*
bytes
;
memset_even_2p
(
p
->
screen_base
+
offset
,
size
,
cval
);
memset_even_2p
(
p
->
fb_info
->
screen_base
+
offset
,
size
,
cval
);
}
else
{
if
(
fontheightlog
(
p
))
offset
=
((
sy
*
bytes
)
<<
fontheightlog
(
p
))
+
(
sx
>>
1
)
*
4
+
(
sx
&
1
);
else
offset
=
sy
*
bytes
*
fontheight
(
p
)
+
(
sx
>>
1
)
*
4
+
(
sx
&
1
);
start
=
p
->
screen_base
+
offset
;
start
=
p
->
fb_info
->
screen_base
+
offset
;
pcval
=
expand2w
(
COLOR_2P
(
attr_bgcol_ec
(
p
,
conp
)));
/* Clears are split if the region starts at an odd column or
...
...
@@ -328,11 +328,11 @@ void fbcon_iplan2p2_putc(struct vc_data *conp, struct display *p, int c,
u16
eorx
,
fgx
,
bgx
,
fdx
;
if
(
fontheightlog
(
p
))
{
dest
=
(
p
->
screen_base
+
((
yy
*
bytes
)
<<
fontheightlog
(
p
))
+
dest
=
(
p
->
fb_info
->
screen_base
+
((
yy
*
bytes
)
<<
fontheightlog
(
p
))
+
(
xx
>>
1
)
*
4
+
(
xx
&
1
));
cdat
=
p
->
fontdata
+
((
c
&
p
->
charmask
)
<<
fontheightlog
(
p
));
}
else
{
dest
=
(
p
->
screen_base
+
yy
*
bytes
*
fontheight
(
p
)
+
dest
=
(
p
->
fb_info
->
screen_base
+
yy
*
bytes
*
fontheight
(
p
)
+
(
xx
>>
1
)
*
4
+
(
xx
&
1
));
cdat
=
p
->
fontdata
+
(
c
&
p
->
charmask
)
*
fontheight
(
p
);
}
...
...
@@ -359,10 +359,10 @@ void fbcon_iplan2p2_putcs(struct vc_data *conp, struct display *p,
bytes
=
p
->
next_line
;
if
(
fontheightlog
(
p
))
dest0
=
(
p
->
screen_base
+
((
yy
*
bytes
)
<<
fontheightlog
(
p
))
+
dest0
=
(
p
->
fb_info
->
screen_base
+
((
yy
*
bytes
)
<<
fontheightlog
(
p
))
+
(
xx
>>
1
)
*
4
+
(
xx
&
1
));
else
dest0
=
(
p
->
screen_base
+
yy
*
bytes
*
fontheight
(
p
)
+
dest0
=
(
p
->
fb_info
->
screen_base
+
yy
*
bytes
*
fontheight
(
p
)
+
(
xx
>>
1
)
*
4
+
(
xx
&
1
));
c
=
scr_readw
(
s
);
fgx
=
expand2w
(
COLOR_2P
(
attr_fgcol
(
p
,
c
)));
...
...
@@ -391,10 +391,9 @@ void fbcon_iplan2p2_revc(struct display *p, int xx, int yy)
int
bytes
;
if
(
fontheightlog
(
p
))
dest
=
(
p
->
screen_base
+
((
yy
*
p
->
next_line
)
<<
fontheightlog
(
p
))
+
(
xx
>>
1
)
*
4
+
(
xx
&
1
));
dest
=
(
p
->
fb_info
->
screen_base
+
((
yy
*
p
->
next_line
)
<<
fontheightlog
(
p
))
+
(
xx
>>
1
)
*
4
+
(
xx
&
1
));
else
dest
=
(
p
->
screen_base
+
yy
*
p
->
next_line
*
fontheight
(
p
)
+
dest
=
(
p
->
fb_info
->
screen_base
+
yy
*
p
->
next_line
*
fontheight
(
p
)
+
(
xx
>>
1
)
*
4
+
(
xx
&
1
));
j
=
fontheight
(
p
);
bytes
=
p
->
next_line
;
...
...
@@ -429,7 +428,7 @@ void fbcon_iplan2p2_clear_margins(struct vc_data *conp, struct display *p,
}
if
(
lines
)
{
cval
=
expand2l
(
COLOR_2P
(
attr_bgcol_ec
(
p
,
conp
)));
memset_even_2p
(
p
->
screen_base
+
offset
,
lines
*
bytes
,
cval
);
memset_even_2p
(
p
->
fb_info
->
screen_base
+
offset
,
lines
*
bytes
,
cval
);
}
}
...
...
drivers/video/fbcon-iplan2p4.c
View file @
e73ea16d
...
...
@@ -180,8 +180,8 @@ void fbcon_iplan2p4_bmove(struct display *p, int sy, int sx, int dy, int dx,
/* Special (but often used) case: Moving whole lines can be
*done with memmove()
*/
fb_memmove
(
p
->
screen_base
+
dy
*
p
->
next_line
*
fontheight
(
p
),
p
->
screen_base
+
sy
*
p
->
next_line
*
fontheight
(
p
),
fb_memmove
(
p
->
fb_info
->
screen_base
+
dy
*
p
->
next_line
*
fontheight
(
p
),
p
->
fb_info
->
screen_base
+
sy
*
p
->
next_line
*
fontheight
(
p
),
p
->
next_line
*
height
*
fontheight
(
p
));
}
else
{
int
rows
,
cols
;
...
...
@@ -203,8 +203,8 @@ void fbcon_iplan2p4_bmove(struct display *p, int sy, int sx, int dy, int dx,
/* odd->odd or even->even */
if
(
upwards
)
{
src
=
p
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
8
+
(
sx
&
1
);
dst
=
p
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
8
+
(
dx
&
1
);
src
=
p
->
fb_info
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
8
+
(
sx
&
1
);
dst
=
p
->
fb_info
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
8
+
(
dx
&
1
);
if
(
sx
&
1
)
{
memmove_4p_col
(
dst
,
src
,
colsize
,
bytes
);
src
+=
7
;
...
...
@@ -226,13 +226,13 @@ void fbcon_iplan2p4_bmove(struct display *p, int sy, int sx, int dy, int dx,
}
}
else
{
if
(
!
((
sx
+
width
-
1
)
&
1
))
{
src
=
p
->
screen_base
+
sy
*
linesize
+
((
sx
+
width
-
1
)
>>
1
)
*
8
;
dst
=
p
->
screen_base
+
dy
*
linesize
+
((
dx
+
width
-
1
)
>>
1
)
*
8
;
src
=
p
->
fb_info
->
screen_base
+
sy
*
linesize
+
((
sx
+
width
-
1
)
>>
1
)
*
8
;
dst
=
p
->
fb_info
->
screen_base
+
dy
*
linesize
+
((
dx
+
width
-
1
)
>>
1
)
*
8
;
memmove_4p_col
(
dst
,
src
,
colsize
,
bytes
);
--
width
;
}
src
=
p
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
8
+
(
sx
&
1
);
dst
=
p
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
8
+
(
dx
&
1
);
src
=
p
->
fb_info
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
8
+
(
sx
&
1
);
dst
=
p
->
fb_info
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
8
+
(
dx
&
1
);
if
(
width
>
1
)
{
src
+=
colsize
*
bytes
+
(
sx
&
1
)
*
7
;
dst
+=
colsize
*
bytes
+
(
sx
&
1
)
*
7
;
...
...
@@ -250,8 +250,8 @@ void fbcon_iplan2p4_bmove(struct display *p, int sy, int sx, int dy, int dx,
/* odd->even or even->odd */
if
(
upwards
)
{
src
=
p
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
8
+
(
sx
&
1
);
dst
=
p
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
8
+
(
dx
&
1
);
src
=
p
->
fb_info
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
8
+
(
sx
&
1
);
dst
=
p
->
fb_info
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
8
+
(
dx
&
1
);
for
(
cols
=
width
;
cols
>
0
;
--
cols
)
{
memmove_4p_col
(
dst
,
src
,
colsize
,
bytes
);
INC_4P
(
src
);
...
...
@@ -260,8 +260,8 @@ void fbcon_iplan2p4_bmove(struct display *p, int sy, int sx, int dy, int dx,
}
else
{
sx
+=
width
-
1
;
dx
+=
width
-
1
;
src
=
p
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
8
+
(
sx
&
1
);
dst
=
p
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
8
+
(
dx
&
1
);
src
=
p
->
fb_info
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
8
+
(
sx
&
1
);
dst
=
p
->
fb_info
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
8
+
(
dx
&
1
);
for
(
cols
=
width
;
cols
>
0
;
--
cols
)
{
memmove_4p_col
(
dst
,
src
,
colsize
,
bytes
);
DEC_4P
(
src
);
...
...
@@ -296,13 +296,13 @@ void fbcon_iplan2p4_clear(struct vc_data *conp, struct display *p, int sy,
else
offset
=
sy
*
bytes
*
fontheight
(
p
);
size
=
lines
*
bytes
;
memset_even_4p
(
p
->
screen_base
+
offset
,
size
,
cval1
,
cval2
);
memset_even_4p
(
p
->
fb_info
->
screen_base
+
offset
,
size
,
cval1
,
cval2
);
}
else
{
if
(
fontheightlog
(
p
))
offset
=
((
sy
*
bytes
)
<<
fontheightlog
(
p
))
+
(
sx
>>
1
)
*
8
+
(
sx
&
1
);
else
offset
=
sy
*
bytes
*
fontheight
(
p
)
+
(
sx
>>
1
)
*
8
+
(
sx
&
1
);
start
=
p
->
screen_base
+
offset
;
start
=
p
->
fb_info
->
screen_base
+
offset
;
pcval
=
expand4l
(
attr_bgcol_ec
(
p
,
conp
));
/* Clears are split if the region starts at an odd column or
...
...
@@ -338,11 +338,11 @@ void fbcon_iplan2p4_putc(struct vc_data *conp, struct display *p, int c,
u32
eorx
,
fgx
,
bgx
,
fdx
;
if
(
fontheightlog
(
p
))
{
dest
=
(
p
->
screen_base
+
((
yy
*
bytes
)
<<
fontheightlog
(
p
))
+
dest
=
(
p
->
fb_info
->
screen_base
+
((
yy
*
bytes
)
<<
fontheightlog
(
p
))
+
(
xx
>>
1
)
*
8
+
(
xx
&
1
));
cdat
=
p
->
fontdata
+
((
c
&
p
->
charmask
)
<<
fontheightlog
(
p
));
}
else
{
dest
=
(
p
->
screen_base
+
yy
*
bytes
*
fontheight
(
p
)
+
dest
=
(
p
->
fb_info
->
screen_base
+
yy
*
bytes
*
fontheight
(
p
)
+
(
xx
>>
1
)
*
8
+
(
xx
&
1
));
cdat
=
p
->
fontdata
+
(
c
&
p
->
charmask
)
*
fontheight
(
p
);
}
...
...
@@ -369,10 +369,10 @@ void fbcon_iplan2p4_putcs(struct vc_data *conp, struct display *p,
bytes
=
p
->
next_line
;
if
(
fontheightlog
(
p
))
dest0
=
(
p
->
screen_base
+
((
yy
*
bytes
)
<<
fontheightlog
(
p
))
+
dest0
=
(
p
->
fb_info
->
screen_base
+
((
yy
*
bytes
)
<<
fontheightlog
(
p
))
+
(
xx
>>
1
)
*
8
+
(
xx
&
1
));
else
dest0
=
(
p
->
screen_base
+
yy
*
bytes
*
fontheight
(
p
)
+
dest0
=
(
p
->
fb_info
->
screen_base
+
yy
*
bytes
*
fontheight
(
p
)
+
(
xx
>>
1
)
*
8
+
(
xx
&
1
));
c
=
scr_readw
(
s
);
fgx
=
expand4l
(
attr_fgcol
(
p
,
c
));
...
...
@@ -408,10 +408,10 @@ void fbcon_iplan2p4_revc(struct display *p, int xx, int yy)
int
bytes
;
if
(
fontheightlog
(
p
))
dest
=
(
p
->
screen_base
+
((
yy
*
p
->
next_line
)
<<
fontheightlog
(
p
))
+
dest
=
(
p
->
fb_info
->
screen_base
+
((
yy
*
p
->
next_line
)
<<
fontheightlog
(
p
))
+
(
xx
>>
1
)
*
8
+
(
xx
&
1
));
else
dest
=
(
p
->
screen_base
+
yy
*
p
->
next_line
*
fontheight
(
p
)
+
dest
=
(
p
->
fb_info
->
screen_base
+
yy
*
p
->
next_line
*
fontheight
(
p
)
+
(
xx
>>
1
)
*
8
+
(
xx
&
1
));
j
=
fontheight
(
p
);
bytes
=
p
->
next_line
;
...
...
@@ -449,7 +449,7 @@ void fbcon_iplan2p4_clear_margins(struct vc_data *conp, struct display *p,
}
if
(
lines
)
{
expand4dl
(
attr_bgcol_ec
(
p
,
conp
),
&
cval1
,
&
cval2
);
memset_even_4p
(
p
->
screen_base
+
offset
,
lines
*
bytes
,
cval1
,
cval2
);
memset_even_4p
(
p
->
fb_info
->
screen_base
+
offset
,
lines
*
bytes
,
cval1
,
cval2
);
}
}
...
...
drivers/video/fbcon-iplan2p8.c
View file @
e73ea16d
...
...
@@ -212,8 +212,8 @@ void fbcon_iplan2p8_bmove(struct display *p, int sy, int sx, int dy, int dx,
/* Special (but often used) case: Moving whole lines can be
* done with memmove()
*/
fast_memmove
(
p
->
screen_base
+
dy
*
p
->
next_line
*
fontheight
(
p
),
p
->
screen_base
+
sy
*
p
->
next_line
*
fontheight
(
p
),
fast_memmove
(
p
->
fb_info
->
screen_base
+
dy
*
p
->
next_line
*
fontheight
(
p
),
p
->
fb_info
->
screen_base
+
sy
*
p
->
next_line
*
fontheight
(
p
),
p
->
next_line
*
height
*
fontheight
(
p
));
}
else
{
int
rows
,
cols
;
...
...
@@ -235,8 +235,8 @@ void fbcon_iplan2p8_bmove(struct display *p, int sy, int sx, int dy, int dx,
/* odd->odd or even->even */
if
(
upwards
)
{
src
=
p
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
16
+
(
sx
&
1
);
dst
=
p
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
16
+
(
dx
&
1
);
src
=
p
->
fb_info
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
16
+
(
sx
&
1
);
dst
=
p
->
fb_info
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
16
+
(
dx
&
1
);
if
(
sx
&
1
)
{
memmove_8p_col
(
dst
,
src
,
colsize
,
bytes
);
src
+=
15
;
...
...
@@ -259,13 +259,13 @@ void fbcon_iplan2p8_bmove(struct display *p, int sy, int sx, int dy, int dx,
}
}
else
{
if
(
!
((
sx
+
width
-
1
)
&
1
))
{
src
=
p
->
screen_base
+
sy
*
linesize
+
((
sx
+
width
-
1
)
>>
1
)
*
16
;
dst
=
p
->
screen_base
+
dy
*
linesize
+
((
dx
+
width
-
1
)
>>
1
)
*
16
;
src
=
p
->
fb_info
->
screen_base
+
sy
*
linesize
+
((
sx
+
width
-
1
)
>>
1
)
*
16
;
dst
=
p
->
fb_info
->
screen_base
+
dy
*
linesize
+
((
dx
+
width
-
1
)
>>
1
)
*
16
;
memmove_8p_col
(
dst
,
src
,
colsize
,
bytes
);
--
width
;
}
src
=
p
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
16
+
(
sx
&
1
);
dst
=
p
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
16
+
(
dx
&
1
);
src
=
p
->
fb_info
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
16
+
(
sx
&
1
);
dst
=
p
->
fb_info
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
16
+
(
dx
&
1
);
if
(
width
>
1
)
{
src
+=
colsize
*
bytes
+
(
sx
&
1
)
*
15
;
dst
+=
colsize
*
bytes
+
(
sx
&
1
)
*
15
;
...
...
@@ -282,8 +282,8 @@ void fbcon_iplan2p8_bmove(struct display *p, int sy, int sx, int dy, int dx,
/* odd->even or even->odd */
if
(
upwards
)
{
src
=
p
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
16
+
(
sx
&
1
);
dst
=
p
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
16
+
(
dx
&
1
);
src
=
p
->
fb_info
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
16
+
(
sx
&
1
);
dst
=
p
->
fb_info
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
16
+
(
dx
&
1
);
for
(
cols
=
width
;
cols
>
0
;
--
cols
)
{
memmove_8p_col
(
dst
,
src
,
colsize
,
bytes
);
INC_8P
(
src
);
...
...
@@ -292,8 +292,8 @@ void fbcon_iplan2p8_bmove(struct display *p, int sy, int sx, int dy, int dx,
}
else
{
sx
+=
width
-
1
;
dx
+=
width
-
1
;
src
=
p
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
16
+
(
sx
&
1
);
dst
=
p
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
16
+
(
dx
&
1
);
src
=
p
->
fb_info
->
screen_base
+
sy
*
linesize
+
(
sx
>>
1
)
*
16
+
(
sx
&
1
);
dst
=
p
->
fb_info
->
screen_base
+
dy
*
linesize
+
(
dx
>>
1
)
*
16
+
(
dx
&
1
);
for
(
cols
=
width
;
cols
>
0
;
--
cols
)
{
memmove_8p_col
(
dst
,
src
,
colsize
,
bytes
);
DEC_8P
(
src
);
...
...
@@ -328,13 +328,13 @@ void fbcon_iplan2p8_clear(struct vc_data *conp, struct display *p, int sy,
else
offset
=
sy
*
bytes
*
fontheight
(
p
);
size
=
lines
*
bytes
;
memset_even_8p
(
p
->
screen_base
+
offset
,
size
,
cval1
,
cval2
,
cval3
,
cval4
);
memset_even_8p
(
p
->
fb_info
->
screen_base
+
offset
,
size
,
cval1
,
cval2
,
cval3
,
cval4
);
}
else
{
if
(
fontheightlog
(
p
))
offset
=
((
sy
*
bytes
)
<<
fontheightlog
(
p
))
+
(
sx
>>
1
)
*
16
+
(
sx
&
1
);
else
offset
=
sy
*
bytes
*
fontheight
(
p
)
+
(
sx
>>
1
)
*
16
+
(
sx
&
1
);
start
=
p
->
screen_base
+
offset
;
start
=
p
->
fb_info
->
screen_base
+
offset
;
expand8dl
(
attr_bgcol_ec
(
p
,
conp
),
&
pcval1
,
&
pcval2
);
/* Clears are split if the region starts at an odd column or
...
...
@@ -370,11 +370,11 @@ void fbcon_iplan2p8_putc(struct vc_data *conp, struct display *p, int c,
u32
eorx1
,
eorx2
,
fgx1
,
fgx2
,
bgx1
,
bgx2
,
fdx
;
if
(
fontheightlog
(
p
))
{
dest
=
(
p
->
screen_base
+
((
yy
*
bytes
)
<<
fontheightlog
(
p
))
+
dest
=
(
p
->
fb_info
->
screen_base
+
((
yy
*
bytes
)
<<
fontheightlog
(
p
))
+
(
xx
>>
1
)
*
16
+
(
xx
&
1
));
cdat
=
p
->
fontdata
+
((
c
&
p
->
charmask
)
<<
fontheightlog
(
p
));
}
else
{
dest
=
(
p
->
screen_base
+
yy
*
bytes
*
fontheight
(
p
)
+
dest
=
(
p
->
fb_info
->
screen_base
+
yy
*
bytes
*
fontheight
(
p
)
+
(
xx
>>
1
)
*
16
+
(
xx
&
1
));
cdat
=
p
->
fontdata
+
(
c
&
p
->
charmask
)
*
fontheight
(
p
);
}
...
...
@@ -401,10 +401,10 @@ void fbcon_iplan2p8_putcs(struct vc_data *conp, struct display *p,
bytes
=
p
->
next_line
;
if
(
fontheightlog
(
p
))
dest0
=
(
p
->
screen_base
+
((
yy
*
bytes
)
<<
fontheightlog
(
p
))
+
dest0
=
(
p
->
fb_info
->
screen_base
+
((
yy
*
bytes
)
<<
fontheightlog
(
p
))
+
(
xx
>>
1
)
*
16
+
(
xx
&
1
));
else
dest0
=
(
p
->
screen_base
+
yy
*
bytes
*
fontheight
(
p
)
+
dest0
=
(
p
->
fb_info
->
screen_base
+
yy
*
bytes
*
fontheight
(
p
)
+
(
xx
>>
1
)
*
16
+
(
xx
&
1
));
c
=
scr_readw
(
s
);
...
...
@@ -442,10 +442,10 @@ void fbcon_iplan2p8_revc(struct display *p, int xx, int yy)
int
bytes
;
if
(
fontheightlog
(
p
))
dest
=
(
p
->
screen_base
+
((
yy
*
p
->
next_line
)
<<
fontheightlog
(
p
))
+
dest
=
(
p
->
fb_info
->
screen_base
+
((
yy
*
p
->
next_line
)
<<
fontheightlog
(
p
))
+
(
xx
>>
1
)
*
16
+
(
xx
&
1
));
else
dest
=
(
p
->
screen_base
+
yy
*
p
->
next_line
*
fontheight
(
p
)
+
dest
=
(
p
->
fb_info
->
screen_base
+
yy
*
p
->
next_line
*
fontheight
(
p
)
+
(
xx
>>
1
)
*
16
+
(
xx
&
1
));
j
=
fontheight
(
p
);
bytes
=
p
->
next_line
;
...
...
@@ -485,7 +485,7 @@ void fbcon_iplan2p8_clear_margins(struct vc_data *conp, struct display *p,
}
if
(
lines
)
{
expand8ql
(
attr_bgcol_ec
(
p
,
conp
),
&
cval1
,
&
cval2
,
&
cval3
,
&
cval4
);
memset_even_8p
(
p
->
screen_base
+
offset
,
lines
*
bytes
,
memset_even_8p
(
p
->
fb_info
->
screen_base
+
offset
,
lines
*
bytes
,
cval1
,
cval2
,
cval3
,
cval4
);
}
}
...
...
drivers/video/fbcon-mac.c
View file @
e73ea16d
...
...
@@ -57,8 +57,8 @@ void fbcon_mac_bmove(struct display *p, int sy, int sx, int dy, int dx,
int
dl
,
dr
,
dt
,
db
,
dw
,
dlo
;
int
move_up
;
src
=
(
u8
*
)
(
p
->
screen_base
+
sy
*
fontheight
(
p
)
*
p
->
next_line
);
dest
=
(
u8
*
)
(
p
->
screen_base
+
dy
*
fontheight
(
p
)
*
p
->
next_line
);
src
=
(
u8
*
)
(
p
->
fb_info
->
screen_base
+
sy
*
fontheight
(
p
)
*
p
->
next_line
);
dest
=
(
u8
*
)
(
p
->
fb_info
->
screen_base
+
dy
*
fontheight
(
p
)
*
p
->
next_line
);
if
(
sx
==
0
&&
width
==
p
->
conp
->
vc_cols
)
{
s
=
height
*
fontheight
(
p
)
*
p
->
next_line
;
...
...
@@ -197,7 +197,7 @@ void fbcon_mac_clear(struct vc_data *conp, struct display *p, int sy, int sx,
inverse
=
conp
?
attr_reverse
(
p
,
conp
->
vc_attr
)
:
0
;
pixel
=
inverse
?
PIXEL_WHITE_MAC
:
PIXEL_BLACK_MAC
;
dest
=
(
u8
*
)
(
p
->
screen_base
+
sy
*
fontheight
(
p
)
*
p
->
next_line
);
dest
=
(
u8
*
)
(
p
->
fb_info
->
screen_base
+
sy
*
fontheight
(
p
)
*
p
->
next_line
);
if
(
sx
==
0
&&
width
==
p
->
conp
->
vc_cols
)
{
s
=
height
*
fontheight
(
p
)
*
p
->
next_line
;
...
...
@@ -353,32 +353,32 @@ static void plot_pixel_mac(struct display *p, int bw, int pixel_x, int pixel_y)
switch
(
p
->
var
.
bits_per_pixel
)
{
case
1
:
dest
=
(
u8
*
)
((
pixel_x
>>
3
)
+
p
->
screen_base
+
pixel_y
*
p
->
next_line
);
dest
=
(
u8
*
)
((
pixel_x
>>
3
)
+
p
->
fb_info
->
screen_base
+
pixel_y
*
p
->
next_line
);
bit
=
0x80
>>
(
pixel_x
&
7
);
plot_helper
(
dest
,
bit
,
bw
);
break
;
case
2
:
dest
=
(
u8
*
)
((
pixel_x
>>
2
)
+
p
->
screen_base
+
pixel_y
*
p
->
next_line
);
dest
=
(
u8
*
)
((
pixel_x
>>
2
)
+
p
->
fb_info
->
screen_base
+
pixel_y
*
p
->
next_line
);
bit
=
0xC0
>>
((
pixel_x
&
3
)
<<
1
);
plot_helper
(
dest
,
bit
,
bw
);
break
;
case
4
:
dest
=
(
u8
*
)
((
pixel_x
>>
1
)
+
p
->
screen_base
+
pixel_y
*
p
->
next_line
);
dest
=
(
u8
*
)
((
pixel_x
>>
1
)
+
p
->
fb_info
->
screen_base
+
pixel_y
*
p
->
next_line
);
bit
=
0xF0
>>
((
pixel_x
&
1
)
<<
2
);
plot_helper
(
dest
,
bit
,
bw
);
break
;
case
8
:
dest
=
(
u8
*
)
(
pixel_x
+
p
->
screen_base
+
pixel_y
*
p
->
next_line
);
dest
=
(
u8
*
)
(
pixel_x
+
p
->
fb_info
->
screen_base
+
pixel_y
*
p
->
next_line
);
bit
=
0xFF
;
plot_helper
(
dest
,
bit
,
bw
);
break
;
/* FIXME: You can't access framebuffer directly like this! */
case
16
:
dest16
=
(
u16
*
)
((
pixel_x
*
2
)
+
p
->
screen_base
+
pixel_y
*
p
->
next_line
);
dest16
=
(
u16
*
)
((
pixel_x
*
2
)
+
p
->
fb_info
->
screen_base
+
pixel_y
*
p
->
next_line
);
pix16
=
0xFFFF
;
switch
(
bw
)
{
case
PIXEL_BLACK_MAC
:
*
dest16
=
~
pix16
;
break
;
...
...
@@ -389,7 +389,7 @@ static void plot_pixel_mac(struct display *p, int bw, int pixel_x, int pixel_y)
break
;
case
32
:
dest32
=
(
u32
*
)
((
pixel_x
*
4
)
+
p
->
screen_base
+
pixel_y
*
p
->
next_line
);
dest32
=
(
u32
*
)
((
pixel_x
*
4
)
+
p
->
fb_info
->
screen_base
+
pixel_y
*
p
->
next_line
);
pix32
=
0xFFFFFFFF
;
switch
(
bw
)
{
case
PIXEL_BLACK_MAC
:
*
dest32
=
~
pix32
;
break
;
...
...
@@ -410,30 +410,30 @@ static int get_pixel_mac(struct display *p, int pixel_x, int pixel_y)
switch
(
p
->
var
.
bits_per_pixel
)
{
case
1
:
dest
=
(
u8
*
)
((
pixel_x
/
8
)
+
p
->
screen_base
+
pixel_y
*
p
->
next_line
);
dest
=
(
u8
*
)
((
pixel_x
/
8
)
+
p
->
fb_info
->
screen_base
+
pixel_y
*
p
->
next_line
);
bit
=
0x80
>>
(
pixel_x
&
7
);
pixel
=
*
dest
&
bit
;
break
;
case
2
:
dest
=
(
u8
*
)
((
pixel_x
/
4
)
+
p
->
screen_base
+
pixel_y
*
p
->
next_line
);
dest
=
(
u8
*
)
((
pixel_x
/
4
)
+
p
->
fb_info
->
screen_base
+
pixel_y
*
p
->
next_line
);
bit
=
0xC0
>>
(
pixel_x
&
3
);
pixel
=
*
dest
&
bit
;
break
;
case
4
:
dest
=
(
u8
*
)
((
pixel_x
/
2
)
+
p
->
screen_base
+
pixel_y
*
p
->
next_line
);
dest
=
(
u8
*
)
((
pixel_x
/
2
)
+
p
->
fb_info
->
screen_base
+
pixel_y
*
p
->
next_line
);
bit
=
0xF0
>>
(
pixel_x
&
1
);
pixel
=
*
dest
&
bit
;
break
;
case
8
:
dest
=
(
u8
*
)
(
pixel_x
+
p
->
screen_base
+
pixel_y
*
p
->
next_line
);
dest
=
(
u8
*
)
(
pixel_x
+
p
->
fb_info
->
screen_base
+
pixel_y
*
p
->
next_line
);
pixel
=
*
dest
;
break
;
case
16
:
dest16
=
(
u16
*
)
((
pixel_x
*
2
)
+
p
->
screen_base
+
pixel_y
*
p
->
next_line
);
dest16
=
(
u16
*
)
((
pixel_x
*
2
)
+
p
->
fb_info
->
screen_base
+
pixel_y
*
p
->
next_line
);
pixel
=
*
dest16
?
1
:
0
;
break
;
case
32
:
dest32
=
(
u32
*
)
((
pixel_x
*
4
)
+
p
->
screen_base
+
pixel_y
*
p
->
next_line
);
dest32
=
(
u32
*
)
((
pixel_x
*
4
)
+
p
->
fb_info
->
screen_base
+
pixel_y
*
p
->
next_line
);
pixel
=
*
dest32
?
1
:
0
;
break
;
}
...
...
drivers/video/fbcon-mfb.c
View file @
e73ea16d
...
...
@@ -39,20 +39,20 @@ void fbcon_mfb_bmove(struct display *p, int sy, int sx, int dy, int dx,
u_int
rows
;
if
(
sx
==
0
&&
dx
==
0
&&
width
==
p
->
next_line
)
{
src
=
p
->
screen_base
+
sy
*
fontheight
(
p
)
*
width
;
dest
=
p
->
screen_base
+
dy
*
fontheight
(
p
)
*
width
;
src
=
p
->
fb_info
->
screen_base
+
sy
*
fontheight
(
p
)
*
width
;
dest
=
p
->
fb_info
->
screen_base
+
dy
*
fontheight
(
p
)
*
width
;
fb_memmove
(
dest
,
src
,
height
*
fontheight
(
p
)
*
width
);
}
else
if
(
dy
<=
sy
)
{
src
=
p
->
screen_base
+
sy
*
fontheight
(
p
)
*
p
->
next_line
+
sx
;
dest
=
p
->
screen_base
+
dy
*
fontheight
(
p
)
*
p
->
next_line
+
dx
;
src
=
p
->
fb_info
->
screen_base
+
sy
*
fontheight
(
p
)
*
p
->
next_line
+
sx
;
dest
=
p
->
fb_info
->
screen_base
+
dy
*
fontheight
(
p
)
*
p
->
next_line
+
dx
;
for
(
rows
=
height
*
fontheight
(
p
);
rows
--
;)
{
fb_memmove
(
dest
,
src
,
width
);
src
+=
p
->
next_line
;
dest
+=
p
->
next_line
;
}
}
else
{
src
=
p
->
screen_base
+
((
sy
+
height
)
*
fontheight
(
p
)
-
1
)
*
p
->
next_line
+
sx
;
dest
=
p
->
screen_base
+
((
dy
+
height
)
*
fontheight
(
p
)
-
1
)
*
p
->
next_line
+
dx
;
src
=
p
->
fb_info
->
screen_base
+
((
sy
+
height
)
*
fontheight
(
p
)
-
1
)
*
p
->
next_line
+
sx
;
dest
=
p
->
fb_info
->
screen_base
+
((
dy
+
height
)
*
fontheight
(
p
)
-
1
)
*
p
->
next_line
+
dx
;
for
(
rows
=
height
*
fontheight
(
p
);
rows
--
;)
{
fb_memmove
(
dest
,
src
,
width
);
src
-=
p
->
next_line
;
...
...
@@ -68,7 +68,7 @@ void fbcon_mfb_clear(struct vc_data *conp, struct display *p, int sy, int sx,
u_int
rows
;
int
inverse
=
conp
?
attr_reverse
(
p
,
conp
->
vc_video_erase_char
)
:
0
;
dest
=
p
->
screen_base
+
sy
*
fontheight
(
p
)
*
p
->
next_line
+
sx
;
dest
=
p
->
fb_info
->
screen_base
+
sy
*
fontheight
(
p
)
*
p
->
next_line
+
sx
;
if
(
sx
==
0
&&
width
==
p
->
next_line
)
{
if
(
inverse
)
...
...
@@ -90,7 +90,7 @@ void fbcon_mfb_putc(struct vc_data *conp, struct display *p, int c, int yy,
u_int
rows
,
bold
,
revs
,
underl
;
u8
d
;
dest
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
p
->
next_line
+
xx
;
dest
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
p
->
next_line
+
xx
;
cdat
=
p
->
fontdata
+
(
c
&
p
->
charmask
)
*
fontheight
(
p
);
bold
=
attr_bold
(
p
,
c
);
revs
=
attr_reverse
(
p
,
c
);
...
...
@@ -116,7 +116,7 @@ void fbcon_mfb_putcs(struct vc_data *conp, struct display *p,
u8
d
;
u16
c
;
dest0
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
p
->
next_line
+
xx
;
dest0
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
p
->
next_line
+
xx
;
c
=
scr_readw
(
s
);
bold
=
attr_bold
(
p
,
c
);
revs
=
attr_reverse
(
p
,
c
);
...
...
@@ -144,7 +144,7 @@ void fbcon_mfb_revc(struct display *p, int xx, int yy)
u8
*
dest
,
d
;
u_int
rows
;
dest
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
p
->
next_line
+
xx
;
dest
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
p
->
next_line
+
xx
;
for
(
rows
=
fontheight
(
p
);
rows
--
;
dest
+=
p
->
next_line
)
{
d
=
fb_readb
(
dest
);
fb_writeb
(
~
d
,
dest
);
...
...
@@ -166,7 +166,7 @@ void fbcon_mfb_clear_margins(struct vc_data *conp, struct display *p,
bottom
=
conp
->
vc_rows
+
p
->
yscroll
;
if
(
bottom
>=
p
->
vrows
)
bottom
-=
p
->
vrows
;
dest
=
p
->
screen_base
+
bottom
*
fontheight
(
p
)
*
p
->
next_line
;
dest
=
p
->
fb_info
->
screen_base
+
bottom
*
fontheight
(
p
)
*
p
->
next_line
;
if
(
inverse
)
fb_memset255
(
dest
,
height
*
p
->
next_line
);
else
...
...
drivers/video/fbcon-sti.c
View file @
e73ea16d
...
...
@@ -158,20 +158,20 @@ fbcon_sti_bmove(struct display *p, int sy, int sx,
u_int
rows
;
if
(
sx
==
0
&&
dx
==
0
&&
width
==
p
->
next_line
)
{
src
=
p
->
screen_base
+
sy
*
fontheight
(
p
)
*
width
;
dest
=
p
->
screen_base
+
dy
*
fontheight
(
p
)
*
width
;
src
=
p
->
fb_info
->
screen_base
+
sy
*
fontheight
(
p
)
*
width
;
dest
=
p
->
fb_info
->
screen_base
+
dy
*
fontheight
(
p
)
*
width
;
memcpy_fromhp_tohp
(
dest
,
src
,
height
*
fontheight
(
p
)
*
width
);
}
else
if
(
dy
<=
sy
)
{
src
=
p
->
screen_base
+
sy
*
fontheight
(
p
)
*
p
->
next_line
+
sx
;
dest
=
p
->
screen_base
+
dy
*
fontheight
(
p
)
*
p
->
next_line
+
dx
;
src
=
p
->
fb_info
->
screen_base
+
sy
*
fontheight
(
p
)
*
p
->
next_line
+
sx
;
dest
=
p
->
fb_info
->
screen_base
+
dy
*
fontheight
(
p
)
*
p
->
next_line
+
dx
;
for
(
rows
=
height
*
fontheight
(
p
);
rows
--
;)
{
memcpy_fromhp_tohp
(
dest
,
src
,
width
);
src
+=
p
->
next_line
;
dest
+=
p
->
next_line
;
}
}
else
{
src
=
p
->
screen_base
+
((
sy
+
height
)
*
fontheight
(
p
)
-
1
)
*
p
->
next_line
+
sx
;
dest
=
p
->
screen_base
+
((
dy
+
height
)
*
fontheight
(
p
)
-
1
)
*
p
->
next_line
+
dx
;
src
=
p
->
fb_info
->
screen_base
+
((
sy
+
height
)
*
fontheight
(
p
)
-
1
)
*
p
->
next_line
+
sx
;
dest
=
p
->
fb_info
->
screen_base
+
((
dy
+
height
)
*
fontheight
(
p
)
-
1
)
*
p
->
next_line
+
dx
;
for
(
rows
=
height
*
fontheight
(
p
);
rows
--
;)
{
memcpy_fromhp_tohp
(
dest
,
src
,
width
);
src
-=
p
->
next_line
;
...
...
@@ -190,7 +190,7 @@ fbcon_sti_clear(struct vc_data *conp,
u_int
rows
;
int
inverse
=
conp
?
attr_reverse
(
p
,
conp
->
vc_video_erase_char
)
:
0
;
dest
=
p
->
screen_base
+
sy
*
fontheight
(
p
)
*
p
->
next_line
+
sx
;
dest
=
p
->
fb_info
->
screen_base
+
sy
*
fontheight
(
p
)
*
p
->
next_line
+
sx
;
if
(
sx
==
0
&&
width
==
p
->
next_line
)
{
if
(
inverse
)
...
...
@@ -213,7 +213,7 @@ static void fbcon_sti_putc(struct vc_data *conp,
u_int
rows
,
bold
,
revs
,
underl
;
u8
d
;
dest
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
p
->
next_line
+
xx
;
dest
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
p
->
next_line
+
xx
;
cdat
=
p
->
fontdata
+
(
c
&
p
->
charmask
)
*
fontheight
(
p
);
bold
=
attr_bold
(
p
,
c
);
revs
=
attr_reverse
(
p
,
c
);
...
...
@@ -248,11 +248,11 @@ static void fbcon_sti_putcs(struct vc_data *conp,
}
dest0
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
p
->
next_line
+
xx
;
dest0
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
p
->
next_line
+
xx
;
if
(((
u32
)
dest0
&
0xf0000000
)
!=
0xf0000000
)
{
printk
(
"refusing to putcs %p %p %p %d %d %d (%p) %p = %p + %d * %d * %ld + %d
\n
"
,
conp
,
p
,
s
,
count
,
yy
,
xx
,
__builtin_return_address
(
0
),
dest0
,
p
->
screen_base
,
yy
,
fontheight
(
p
),
p
->
next_line
,
dest0
,
p
->
fb_info
->
screen_base
,
yy
,
fontheight
(
p
),
p
->
next_line
,
xx
);
return
;
}
...
...
@@ -286,7 +286,7 @@ static void fbcon_sti_revc(struct display *p,
u_int
rows
;
dest
=
p
->
screen_base
+
yy
*
fontheight
(
p
)
*
p
->
next_line
+
xx
;
dest
=
p
->
fb_info
->
screen_base
+
yy
*
fontheight
(
p
)
*
p
->
next_line
+
xx
;
for
(
rows
=
fontheight
(
p
);
rows
--
;
dest
+=
p
->
next_line
)
{
d
=
readb_hp
(
dest
);
writeb_hp
(
~
d
,
dest
);
...
...
@@ -311,7 +311,7 @@ fbcon_sti_clear_margins(struct vc_data *conp,
bottom
=
conp
->
vc_rows
+
p
->
yscroll
;
if
(
bottom
>=
p
->
vrows
)
bottom
-=
p
->
vrows
;
dest
=
p
->
screen_base
+
bottom
*
fontheight
(
p
)
*
p
->
next_line
;
dest
=
p
->
fb_info
->
screen_base
+
bottom
*
fontheight
(
p
)
*
p
->
next_line
;
if
(
inverse
)
memset_tohp
(
dest
,
0xffffffff
,
height
*
p
->
next_line
);
else
...
...
drivers/video/fbcon-vga-planes.c
View file @
e73ea16d
...
...
@@ -120,8 +120,8 @@ void fbcon_vga_planes_bmove(struct display *p, int sy, int sx, int dy, int dx,
if
(
dy
<
sy
||
(
dy
==
sy
&&
dx
<
sx
))
{
line_ofs
=
p
->
line_length
-
width
;
dest
=
p
->
screen_base
+
dx
+
dy
*
p
->
line_length
;
src
=
p
->
screen_base
+
sx
+
sy
*
p
->
line_length
;
dest
=
p
->
fb_info
->
screen_base
+
dx
+
dy
*
p
->
line_length
;
src
=
p
->
fb_info
->
screen_base
+
sx
+
sy
*
p
->
line_length
;
while
(
height
--
)
{
for
(
x
=
0
;
x
<
width
;
x
++
)
{
readb
(
src
);
...
...
@@ -134,8 +134,8 @@ void fbcon_vga_planes_bmove(struct display *p, int sy, int sx, int dy, int dx,
}
}
else
{
line_ofs
=
p
->
line_length
-
width
;
dest
=
p
->
screen_base
+
dx
+
width
+
(
dy
+
height
-
1
)
*
p
->
line_length
;
src
=
p
->
screen_base
+
sx
+
width
+
(
sy
+
height
-
1
)
*
p
->
line_length
;
dest
=
p
->
fb_info
->
screen_base
+
dx
+
width
+
(
dy
+
height
-
1
)
*
p
->
line_length
;
src
=
p
->
fb_info
->
screen_base
+
sx
+
width
+
(
sy
+
height
-
1
)
*
p
->
line_length
;
while
(
height
--
)
{
for
(
x
=
0
;
x
<
width
;
x
++
)
{
dest
--
;
...
...
@@ -167,7 +167,7 @@ void fbcon_vga_planes_clear(struct vc_data *conp, struct display *p, int sy, int
sy
*=
fontheight
(
p
);
height
*=
fontheight
(
p
);
where
=
p
->
screen_base
+
sx
+
sy
*
p
->
line_length
;
where
=
p
->
fb_info
->
screen_base
+
sx
+
sy
*
p
->
line_length
;
while
(
height
--
)
{
for
(
x
=
0
;
x
<
width
;
x
++
)
{
writeb
(
0
,
where
);
...
...
@@ -184,7 +184,7 @@ void fbcon_ega_planes_putc(struct vc_data *conp, struct display *p, int c, int y
int
y
;
u8
*
cdat
=
p
->
fontdata
+
(
c
&
p
->
charmask
)
*
fontheight
(
p
);
char
*
where
=
p
->
screen_base
+
xx
+
yy
*
p
->
line_length
*
fontheight
(
p
);
char
*
where
=
p
->
fb_info
->
screen_base
+
xx
+
yy
*
p
->
line_length
*
fontheight
(
p
);
setmode
(
0
);
setop
(
0
);
...
...
@@ -213,7 +213,7 @@ void fbcon_vga_planes_putc(struct vc_data *conp, struct display *p, int c, int y
int
y
;
u8
*
cdat
=
p
->
fontdata
+
(
c
&
p
->
charmask
)
*
fontheight
(
p
);
char
*
where
=
p
->
screen_base
+
xx
+
yy
*
p
->
line_length
*
fontheight
(
p
);
char
*
where
=
p
->
fb_info
->
screen_base
+
xx
+
yy
*
p
->
line_length
*
fontheight
(
p
);
setmode
(
2
);
setop
(
0
);
...
...
@@ -248,7 +248,7 @@ void fbcon_ega_planes_putcs(struct vc_data *conp, struct display *p, const unsig
selectmask
();
setmask
(
0xff
);
where
=
p
->
screen_base
+
xx
+
yy
*
p
->
line_length
*
fontheight
(
p
);
where
=
p
->
fb_info
->
screen_base
+
xx
+
yy
*
p
->
line_length
*
fontheight
(
p
);
writeb
(
bg
,
where
);
rmb
();
readb
(
where
);
/* fill latches */
...
...
@@ -289,7 +289,7 @@ void fbcon_vga_planes_putcs(struct vc_data *conp, struct display *p, const unsig
selectmask
();
setmask
(
0xff
);
where
=
p
->
screen_base
+
xx
+
yy
*
p
->
line_length
*
fontheight
(
p
);
where
=
p
->
fb_info
->
screen_base
+
xx
+
yy
*
p
->
line_length
*
fontheight
(
p
);
writeb
(
bg
,
where
);
rmb
();
readb
(
where
);
/* fill latches */
...
...
@@ -312,7 +312,7 @@ void fbcon_vga_planes_putcs(struct vc_data *conp, struct display *p, const unsig
void
fbcon_vga_planes_revc
(
struct
display
*
p
,
int
xx
,
int
yy
)
{
char
*
where
=
p
->
screen_base
+
xx
+
yy
*
p
->
line_length
*
fontheight
(
p
);
char
*
where
=
p
->
fb_info
->
screen_base
+
xx
+
yy
*
p
->
line_length
*
fontheight
(
p
);
int
y
;
setmode
(
0
);
...
...
drivers/video/fbcon-vga.c
View file @
e73ea16d
...
...
@@ -103,20 +103,20 @@ void fbcon_vga_bmove(struct display *p, int sy, int sx, int dy, int dx,
int
rows
;
if
(
sx
==
0
&&
dx
==
0
&&
width
==
p
->
next_line
/
2
)
{
src
=
(
u16
*
)(
p
->
screen_base
+
sy
*
p
->
next_line
);
dst
=
(
u16
*
)(
p
->
screen_base
+
dy
*
p
->
next_line
);
src
=
(
u16
*
)(
p
->
fb_info
->
screen_base
+
sy
*
p
->
next_line
);
dst
=
(
u16
*
)(
p
->
fb_info
->
screen_base
+
dy
*
p
->
next_line
);
vga_memmovew
(
dst
,
src
,
height
*
width
);
}
else
if
(
dy
<
sy
||
(
dy
==
sy
&&
dx
<
sx
))
{
src
=
(
u16
*
)(
p
->
screen_base
+
sy
*
p
->
next_line
+
sx
*
2
);
dst
=
(
u16
*
)(
p
->
screen_base
+
dy
*
p
->
next_line
+
dx
*
2
);
src
=
(
u16
*
)(
p
->
fb_info
->
screen_base
+
sy
*
p
->
next_line
+
sx
*
2
);
dst
=
(
u16
*
)(
p
->
fb_info
->
screen_base
+
dy
*
p
->
next_line
+
dx
*
2
);
for
(
rows
=
height
;
rows
--
;)
{
vga_memmovew
(
dst
,
src
,
width
);
src
+=
p
->
next_line
/
2
;
dst
+=
p
->
next_line
/
2
;
}
}
else
{
src
=
(
u16
*
)(
p
->
screen_base
+
(
sy
+
height
-
1
)
*
p
->
next_line
+
sx
*
2
);
dst
=
(
u16
*
)(
p
->
screen_base
+
(
dy
+
height
-
1
)
*
p
->
next_line
+
dx
*
2
);
src
=
(
u16
*
)(
p
->
fb_info
->
screen_base
+
(
sy
+
height
-
1
)
*
p
->
next_line
+
sx
*
2
);
dst
=
(
u16
*
)(
p
->
fb_info
->
screen_base
+
(
dy
+
height
-
1
)
*
p
->
next_line
+
dx
*
2
);
for
(
rows
=
height
;
rows
--
;)
{
vga_memmovew
(
dst
,
src
,
width
);
src
-=
p
->
next_line
/
2
;
...
...
@@ -128,7 +128,7 @@ void fbcon_vga_bmove(struct display *p, int sy, int sx, int dy, int dx,
void
fbcon_vga_clear
(
struct
vc_data
*
conp
,
struct
display
*
p
,
int
sy
,
int
sx
,
int
height
,
int
width
)
{
u16
*
dest
=
(
u16
*
)(
p
->
screen_base
+
sy
*
p
->
next_line
+
sx
*
2
);
u16
*
dest
=
(
u16
*
)(
p
->
fb_info
->
screen_base
+
sy
*
p
->
next_line
+
sx
*
2
);
int
rows
;
if
(
sx
==
0
&&
width
*
2
==
p
->
next_line
)
...
...
@@ -141,7 +141,7 @@ void fbcon_vga_clear(struct vc_data *conp, struct display *p, int sy, int sx,
void
fbcon_vga_putc
(
struct
vc_data
*
conp
,
struct
display
*
p
,
int
c
,
int
y
,
int
x
)
{
u16
*
dst
=
(
u16
*
)(
p
->
screen_base
+
y
*
p
->
next_line
+
x
*
2
);
u16
*
dst
=
(
u16
*
)(
p
->
fb_info
->
screen_base
+
y
*
p
->
next_line
+
x
*
2
);
if
(
conp
->
vc_can_do_color
)
vga_writew
(
c
,
dst
);
else
...
...
@@ -151,7 +151,7 @@ void fbcon_vga_putc(struct vc_data *conp, struct display *p, int c, int y,
void
fbcon_vga_putcs
(
struct
vc_data
*
conp
,
struct
display
*
p
,
const
unsigned
short
*
s
,
int
count
,
int
y
,
int
x
)
{
u16
*
dst
=
(
u16
*
)(
p
->
screen_base
+
y
*
p
->
next_line
+
x
*
2
);
u16
*
dst
=
(
u16
*
)(
p
->
fb_info
->
screen_base
+
y
*
p
->
next_line
+
x
*
2
);
u16
sattr
;
if
(
conp
->
vc_can_do_color
)
while
(
count
--
)
...
...
@@ -165,7 +165,7 @@ void fbcon_vga_putcs(struct vc_data *conp, struct display *p,
void
fbcon_vga_revc
(
struct
display
*
p
,
int
x
,
int
y
)
{
u16
*
dst
=
(
u16
*
)(
p
->
screen_base
+
y
*
p
->
next_line
+
x
*
2
);
u16
*
dst
=
(
u16
*
)(
p
->
fb_info
->
screen_base
+
y
*
p
->
next_line
+
x
*
2
);
u16
val
=
vga_readw
(
dst
);
val
=
(
val
&
0x88ff
)
|
((
val
<<
4
)
&
0x7000
)
|
((
val
>>
4
)
&
0x0700
);
vga_writew
(
val
,
dst
);
...
...
drivers/video/fm2fb.c
View file @
e73ea16d
...
...
@@ -356,7 +356,6 @@ int __init fm2fb_init(void)
disp
.
cmap
.
start
=
0
;
disp
.
cmap
.
len
=
0
;
disp
.
cmap
.
red
=
disp
.
cmap
.
green
=
disp
.
cmap
.
blue
=
disp
.
cmap
.
transp
=
NULL
;
disp
.
screen_base
=
(
char
*
)
fm2fb_mem
;
disp
.
visual
=
fb_fix
.
visual
;
disp
.
type
=
fb_fix
.
type
;
disp
.
type_aux
=
fb_fix
.
type_aux
;
...
...
@@ -376,6 +375,7 @@ int __init fm2fb_init(void)
strcpy
(
fb_info
.
modename
,
fb_fix
.
id
);
fb_info
.
node
=
NODEV
;
fb_info
.
fbops
=
&
fm2fb_ops
;
fb_info
.
screen_base
=
(
char
*
)
fm2fb_mem
;
fb_info
.
currcon
=
-
1
;
fb_info
.
disp
=
&
disp
;
fb_info
.
fontname
[
0
]
=
'\0'
;
...
...
drivers/video/neofb.c
View file @
e73ea16d
...
...
@@ -1535,7 +1535,6 @@ static int neofb_set_var (struct fb_var_screeninfo *var, int con,
fb
->
fix
.
line_length
=
display
->
next_line
;
display
->
screen_base
=
fb
->
screen_base
;
display
->
line_length
=
fb
->
fix
.
line_length
;
display
->
visual
=
fb
->
fix
.
visual
;
display
->
type
=
fb
->
fix
.
type
;
...
...
drivers/video/retz3fb.c
View file @
e73ea16d
...
...
@@ -1219,7 +1219,6 @@ static int retz3fb_set_var(struct fb_var_screeninfo *var, int con,
struct
fb_fix_screeninfo
fix
;
retz3fb_get_fix
(
&
fix
,
con
,
info
);
display
->
screen_base
=
zinfo
->
fbmem
;
display
->
visual
=
fix
.
visual
;
display
->
type
=
fix
.
type
;
display
->
type_aux
=
fix
.
type_aux
;
...
...
drivers/video/sis/sis_main.c
View file @
e73ea16d
...
...
@@ -579,7 +579,6 @@ static void sisfb_set_disp (int con, struct fb_var_screeninfo *var)
sisfb_get_fix
(
&
fix
,
con
,
0
);
display
->
screen_base
=
ivideo
.
video_vbase
;
display
->
visual
=
fix
.
visual
;
display
->
type
=
fix
.
type
;
display
->
type_aux
=
fix
.
type_aux
;
...
...
@@ -2769,6 +2768,7 @@ sishw_ext.usExternalChip = 0;
fb_info
.
changevar
=
NULL
;
fb_info
.
node
=
NODEV
;
fb_info
.
fbops
=
&
sisfb_ops
;
fb_info
.
screen_base
=
ivideo
.
video_vbase
;
fb_info
.
disp
=
&
disp
;
fb_info
.
currcon
=
-
1
;
fb_info
.
switch_con
=
&
sisfb_switch
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment