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
fbbb0bd1
Commit
fbbb0bd1
authored
Oct 28, 2005
by
Tony Luck
Browse files
Options
Browse Files
Download
Plain Diff
Pull sn_pci_legacy_read-write into release branch
parents
9472d8ce
61b9cf7c
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
47 additions
and
1 deletion
+47
-1
arch/ia64/sn/pci/pci_dma.c
arch/ia64/sn/pci/pci_dma.c
+46
-0
include/asm-ia64/sn/sn_sal.h
include/asm-ia64/sn/sn_sal.h
+1
-1
No files found.
arch/ia64/sn/pci/pci_dma.c
View file @
fbbb0bd1
...
...
@@ -326,6 +326,29 @@ int sn_pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size)
{
unsigned
long
addr
;
int
ret
;
struct
ia64_sal_retval
isrv
;
/*
* First, try the SN_SAL_IOIF_PCI_SAFE SAL call which can work
* around hw issues at the pci bus level. SGI proms older than
* 4.10 don't implment this.
*/
SAL_CALL
(
isrv
,
SN_SAL_IOIF_PCI_SAFE
,
pci_domain_nr
(
bus
),
bus
->
number
,
0
,
/* io */
0
,
/* read */
port
,
size
,
__pa
(
val
));
if
(
isrv
.
status
==
0
)
return
size
;
/*
* If the above failed, retry using the SAL_PROBE call which should
* be present in all proms (but which cannot work round PCI chipset
* bugs). This code is retained for compatability with old
* pre-4.10 proms, and should be removed at some point in the future.
*/
if
(
!
SN_PCIBUS_BUSSOFT
(
bus
))
return
-
ENODEV
;
...
...
@@ -349,6 +372,29 @@ int sn_pci_legacy_write(struct pci_bus *bus, u16 port, u32 val, u8 size)
int
ret
=
size
;
unsigned
long
paddr
;
unsigned
long
*
addr
;
struct
ia64_sal_retval
isrv
;
/*
* First, try the SN_SAL_IOIF_PCI_SAFE SAL call which can work
* around hw issues at the pci bus level. SGI proms older than
* 4.10 don't implment this.
*/
SAL_CALL
(
isrv
,
SN_SAL_IOIF_PCI_SAFE
,
pci_domain_nr
(
bus
),
bus
->
number
,
0
,
/* io */
1
,
/* write */
port
,
size
,
__pa
(
&
val
));
if
(
isrv
.
status
==
0
)
return
size
;
/*
* If the above failed, retry using the SAL_PROBE call which should
* be present in all proms (but which cannot work round PCI chipset
* bugs). This code is retained for compatability with old
* pre-4.10 proms, and should be removed at some point in the future.
*/
if
(
!
SN_PCIBUS_BUSSOFT
(
bus
))
{
ret
=
-
ENODEV
;
...
...
include/asm-ia64/sn/sn_sal.h
View file @
fbbb0bd1
...
...
@@ -68,7 +68,7 @@
#define SN_SAL_IOIF_INTERRUPT 0x0200004a
#define SN_SAL_HWPERF_OP 0x02000050 // lock
#define SN_SAL_IOIF_ERROR_INTERRUPT 0x02000051
#define SN_SAL_IOIF_PCI_SAFE 0x02000052
#define SN_SAL_IOIF_SLOT_ENABLE 0x02000053
#define SN_SAL_IOIF_SLOT_DISABLE 0x02000054
#define SN_SAL_IOIF_GET_HUBDEV_INFO 0x02000055
...
...
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