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
nexedi
linux
Commits
15a234b3
Commit
15a234b3
authored
Sep 10, 2004
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fbcon: initial PCI memory access annotations
parent
bd71b573
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
21 additions
and
21 deletions
+21
-21
drivers/video/aty/radeon_base.c
drivers/video/aty/radeon_base.c
+16
-16
drivers/video/aty/radeonfb.h
drivers/video/aty/radeonfb.h
+4
-4
include/linux/fb.h
include/linux/fb.h
+1
-1
No files found.
drivers/video/aty/radeon_base.c
View file @
15a234b3
...
@@ -282,7 +282,7 @@ static void __devexit radeon_unmap_ROM(struct radeonfb_info *rinfo, struct pci_d
...
@@ -282,7 +282,7 @@ static void __devexit radeon_unmap_ROM(struct radeonfb_info *rinfo, struct pci_d
static
int
__devinit
radeon_map_ROM
(
struct
radeonfb_info
*
rinfo
,
struct
pci_dev
*
dev
)
static
int
__devinit
radeon_map_ROM
(
struct
radeonfb_info
*
rinfo
,
struct
pci_dev
*
dev
)
{
{
void
*
rom
;
void
__iomem
*
rom
;
struct
resource
*
r
;
struct
resource
*
r
;
u16
dptr
;
u16
dptr
;
u8
rom_type
;
u8
rom_type
;
...
@@ -395,13 +395,13 @@ static int __devinit radeon_find_mem_vbios(struct radeonfb_info *rinfo)
...
@@ -395,13 +395,13 @@ static int __devinit radeon_find_mem_vbios(struct radeonfb_info *rinfo)
* if we end up having conflicts
* if we end up having conflicts
*/
*/
u32
segstart
;
u32
segstart
;
unsigned
char
*
rom_base
=
NULL
;
void
__iomem
*
rom_base
=
NULL
;
for
(
segstart
=
0x000c0000
;
segstart
<
0x000f0000
;
segstart
+=
0x00001000
)
{
for
(
segstart
=
0x000c0000
;
segstart
<
0x000f0000
;
segstart
+=
0x00001000
)
{
rom_base
=
(
char
*
)
ioremap
(
segstart
,
0x10000
);
rom_base
=
ioremap
(
segstart
,
0x10000
);
if
(
rom_base
==
NULL
)
if
(
rom_base
==
NULL
)
return
-
ENOMEM
;
return
-
ENOMEM
;
if
(
(
*
rom_base
==
0x55
)
&&
(((
*
(
rom_base
+
1
))
&
0xff
)
==
0xaa
)
)
if
(
readb
(
rom_base
)
==
0x55
&&
readb
(
rom_base
+
1
)
==
0xaa
)
break
;
break
;
iounmap
(
rom_base
);
iounmap
(
rom_base
);
rom_base
=
NULL
;
rom_base
=
NULL
;
...
@@ -1719,10 +1719,10 @@ static ssize_t radeonfb_read(struct file *file, char __user *buf, size_t count,
...
@@ -1719,10 +1719,10 @@ static ssize_t radeonfb_read(struct file *file, char __user *buf, size_t count,
count
=
rinfo
->
mapped_vram
-
p
;
count
=
rinfo
->
mapped_vram
-
p
;
radeonfb_sync
(
info
);
radeonfb_sync
(
info
);
if
(
count
)
{
if
(
count
)
{
char
*
base_addr
;
void
__iomem
*
base_addr
;
base_addr
=
info
->
screen_base
;
base_addr
=
info
->
screen_base
;
count
-=
copy_to_user
(
buf
,
base_addr
+
p
,
count
);
count
-=
copy_to_user
(
buf
,
base_addr
+
p
,
count
);
/* Ayee!! */
if
(
!
count
)
if
(
!
count
)
return
-
EFAULT
;
return
-
EFAULT
;
*
ppos
+=
count
;
*
ppos
+=
count
;
...
@@ -1751,10 +1751,10 @@ static ssize_t radeonfb_write(struct file *file, const char __user *buf, size_t
...
@@ -1751,10 +1751,10 @@ static ssize_t radeonfb_write(struct file *file, const char __user *buf, size_t
}
}
radeonfb_sync
(
info
);
radeonfb_sync
(
info
);
if
(
count
)
{
if
(
count
)
{
char
*
base_addr
;
void
__iomem
*
base_addr
;
base_addr
=
info
->
screen_base
;
base_addr
=
info
->
screen_base
;
count
-=
copy_from_user
(
base_addr
+
p
,
buf
,
count
);
count
-=
copy_from_user
(
base_addr
+
p
,
buf
,
count
);
/* Ayee!! */
*
ppos
+=
count
;
*
ppos
+=
count
;
err
=
-
EFAULT
;
err
=
-
EFAULT
;
}
}
...
@@ -1795,7 +1795,7 @@ static int __devinit radeon_set_fbinfo (struct radeonfb_info *rinfo)
...
@@ -1795,7 +1795,7 @@ static int __devinit radeon_set_fbinfo (struct radeonfb_info *rinfo)
|
FBINFO_HWACCEL_XPAN
|
FBINFO_HWACCEL_XPAN
|
FBINFO_HWACCEL_YPAN
;
|
FBINFO_HWACCEL_YPAN
;
info
->
fbops
=
&
radeonfb_ops
;
info
->
fbops
=
&
radeonfb_ops
;
info
->
screen_base
=
(
char
*
)
rinfo
->
fb_base
;
info
->
screen_base
=
rinfo
->
fb_base
;
/* Fill fix common fields */
/* Fill fix common fields */
strlcpy
(
info
->
fix
.
id
,
rinfo
->
name
,
sizeof
(
info
->
fix
.
id
));
strlcpy
(
info
->
fix
.
id
,
rinfo
->
name
,
sizeof
(
info
->
fix
.
id
));
...
@@ -2117,7 +2117,7 @@ static int radeonfb_pci_register (struct pci_dev *pdev,
...
@@ -2117,7 +2117,7 @@ static int radeonfb_pci_register (struct pci_dev *pdev,
}
}
/* map the regions */
/* map the regions */
rinfo
->
mmio_base
=
(
unsigned
long
)
ioremap
(
rinfo
->
mmio_base_phys
,
RADEON_REGSIZE
);
rinfo
->
mmio_base
=
ioremap
(
rinfo
->
mmio_base_phys
,
RADEON_REGSIZE
);
if
(
!
rinfo
->
mmio_base
)
{
if
(
!
rinfo
->
mmio_base
)
{
printk
(
KERN_ERR
"radeonfb: cannot map MMIO
\n
"
);
printk
(
KERN_ERR
"radeonfb: cannot map MMIO
\n
"
);
ret
=
-
EIO
;
ret
=
-
EIO
;
...
@@ -2228,8 +2228,8 @@ static int radeonfb_pci_register (struct pci_dev *pdev,
...
@@ -2228,8 +2228,8 @@ static int radeonfb_pci_register (struct pci_dev *pdev,
rinfo
->
mapped_vram
=
min_t
(
unsigned
long
,
MAX_MAPPED_VRAM
,
rinfo
->
video_ram
);
rinfo
->
mapped_vram
=
min_t
(
unsigned
long
,
MAX_MAPPED_VRAM
,
rinfo
->
video_ram
);
do
{
do
{
rinfo
->
fb_base
=
(
unsigned
long
)
ioremap
(
rinfo
->
fb_base_phys
,
rinfo
->
fb_base
=
ioremap
(
rinfo
->
fb_base_phys
,
rinfo
->
mapped_vram
);
rinfo
->
mapped_vram
);
}
while
(
rinfo
->
fb_base
==
0
&&
}
while
(
rinfo
->
fb_base
==
0
&&
((
rinfo
->
mapped_vram
/=
2
)
>=
MIN_MAPPED_VRAM
)
);
((
rinfo
->
mapped_vram
/=
2
)
>=
MIN_MAPPED_VRAM
)
);
...
@@ -2356,7 +2356,7 @@ static int radeonfb_pci_register (struct pci_dev *pdev,
...
@@ -2356,7 +2356,7 @@ static int radeonfb_pci_register (struct pci_dev *pdev,
return
0
;
return
0
;
err_unmap_fb:
err_unmap_fb:
iounmap
((
void
*
)
rinfo
->
fb_base
);
iounmap
(
rinfo
->
fb_base
);
err_unmap_rom:
err_unmap_rom:
if
(
rinfo
->
mon1_EDID
)
if
(
rinfo
->
mon1_EDID
)
kfree
(
rinfo
->
mon1_EDID
);
kfree
(
rinfo
->
mon1_EDID
);
...
@@ -2370,7 +2370,7 @@ static int radeonfb_pci_register (struct pci_dev *pdev,
...
@@ -2370,7 +2370,7 @@ static int radeonfb_pci_register (struct pci_dev *pdev,
#endif
#endif
if
(
rinfo
->
bios_seg
)
if
(
rinfo
->
bios_seg
)
radeon_unmap_ROM
(
rinfo
,
pdev
);
radeon_unmap_ROM
(
rinfo
,
pdev
);
iounmap
((
void
*
)
rinfo
->
mmio_base
);
iounmap
(
rinfo
->
mmio_base
);
err_release_pci:
err_release_pci:
pci_release_regions
(
pdev
);
pci_release_regions
(
pdev
);
err_release_fb:
err_release_fb:
...
@@ -2407,8 +2407,8 @@ static void __devexit radeonfb_pci_unregister (struct pci_dev *pdev)
...
@@ -2407,8 +2407,8 @@ static void __devexit radeonfb_pci_unregister (struct pci_dev *pdev)
unregister_framebuffer
(
info
);
unregister_framebuffer
(
info
);
iounmap
((
void
*
)
rinfo
->
mmio_base
);
iounmap
(
rinfo
->
mmio_base
);
iounmap
((
void
*
)
rinfo
->
fb_base
);
iounmap
(
rinfo
->
fb_base
);
pci_release_regions
(
pdev
);
pci_release_regions
(
pdev
);
...
...
drivers/video/aty/radeonfb.h
View file @
15a234b3
...
@@ -262,14 +262,14 @@ struct radeonfb_info {
...
@@ -262,14 +262,14 @@ struct radeonfb_info {
unsigned
long
mmio_base_phys
;
unsigned
long
mmio_base_phys
;
unsigned
long
fb_base_phys
;
unsigned
long
fb_base_phys
;
unsigned
long
mmio_base
;
void
__iomem
*
mmio_base
;
unsigned
long
fb_base
;
void
__iomem
*
fb_base
;
unsigned
long
fb_local_base
;
unsigned
long
fb_local_base
;
struct
pci_dev
*
pdev
;
struct
pci_dev
*
pdev
;
u8
*
bios_seg
;
void
__iomem
*
bios_seg
;
int
fp_bios_start
;
int
fp_bios_start
;
u32
pseudo_palette
[
17
];
u32
pseudo_palette
[
17
];
...
...
include/linux/fb.h
View file @
15a234b3
...
@@ -602,7 +602,7 @@ struct fb_info {
...
@@ -602,7 +602,7 @@ struct fb_info {
struct
fb_pixmap
sprite
;
/* Cursor hardware mapper */
struct
fb_pixmap
sprite
;
/* Cursor hardware mapper */
struct
fb_cmap
cmap
;
/* Current cmap */
struct
fb_cmap
cmap
;
/* Current cmap */
struct
fb_ops
*
fbops
;
struct
fb_ops
*
fbops
;
char
*
screen_base
;
/* Virtual address */
char
__iomem
*
screen_base
;
/* Virtual address */
int
currcon
;
/* Current VC. */
int
currcon
;
/* Current VC. */
void
*
pseudo_palette
;
/* Fake palette of 16 colors */
void
*
pseudo_palette
;
/* Fake palette of 16 colors */
#define FBINFO_STATE_RUNNING 0
#define FBINFO_STATE_RUNNING 0
...
...
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