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
ee534a13
Commit
ee534a13
authored
Mar 26, 2003
by
Alan Cox
Committed by
Linus Torvalds
Mar 26, 2003
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[PATCH] PC9800 uses different IDE i/o bases for legacy mode devices
From Osamu Tomita
parent
08e8b3bb
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
19 additions
and
0 deletions
+19
-0
include/asm-i386/ide.h
include/asm-i386/ide.h
+19
-0
No files found.
include/asm-i386/ide.h
View file @
ee534a13
...
@@ -26,6 +26,9 @@
...
@@ -26,6 +26,9 @@
static
__inline__
int
ide_default_irq
(
unsigned
long
base
)
static
__inline__
int
ide_default_irq
(
unsigned
long
base
)
{
{
switch
(
base
)
{
switch
(
base
)
{
#ifdef CONFIG_X86_PC9800
case
0x640
:
return
9
;
#endif
case
0x1f0
:
return
14
;
case
0x1f0
:
return
14
;
case
0x170
:
return
15
;
case
0x170
:
return
15
;
case
0x1e8
:
return
11
;
case
0x1e8
:
return
11
;
...
@@ -40,12 +43,17 @@ static __inline__ int ide_default_irq(unsigned long base)
...
@@ -40,12 +43,17 @@ static __inline__ int ide_default_irq(unsigned long base)
static
__inline__
unsigned
long
ide_default_io_base
(
int
index
)
static
__inline__
unsigned
long
ide_default_io_base
(
int
index
)
{
{
switch
(
index
)
{
switch
(
index
)
{
#ifdef CONFIG_X86_PC9800
case
0
:
case
1
:
return
0x640
;
#else
case
0
:
return
0x1f0
;
case
0
:
return
0x1f0
;
case
1
:
return
0x170
;
case
1
:
return
0x170
;
case
2
:
return
0x1e8
;
case
2
:
return
0x1e8
;
case
3
:
return
0x168
;
case
3
:
return
0x168
;
case
4
:
return
0x1e0
;
case
4
:
return
0x1e0
;
case
5
:
return
0x160
;
case
5
:
return
0x160
;
#endif
default:
default:
return
0
;
return
0
;
}
}
...
@@ -56,13 +64,24 @@ static __inline__ void ide_init_hwif_ports(hw_regs_t *hw, unsigned long data_por
...
@@ -56,13 +64,24 @@ static __inline__ void ide_init_hwif_ports(hw_regs_t *hw, unsigned long data_por
{
{
unsigned
long
reg
=
data_port
;
unsigned
long
reg
=
data_port
;
int
i
;
int
i
;
#ifdef CONFIG_X86_PC9800
unsigned
long
increment
=
data_port
==
0x640
?
2
:
1
;
#endif
for
(
i
=
IDE_DATA_OFFSET
;
i
<=
IDE_STATUS_OFFSET
;
i
++
)
{
for
(
i
=
IDE_DATA_OFFSET
;
i
<=
IDE_STATUS_OFFSET
;
i
++
)
{
hw
->
io_ports
[
i
]
=
reg
;
hw
->
io_ports
[
i
]
=
reg
;
#ifdef CONFIG_X86_PC9800
reg
+=
increment
;
#else
reg
+=
1
;
reg
+=
1
;
#endif
}
}
if
(
ctrl_port
)
{
if
(
ctrl_port
)
{
hw
->
io_ports
[
IDE_CONTROL_OFFSET
]
=
ctrl_port
;
hw
->
io_ports
[
IDE_CONTROL_OFFSET
]
=
ctrl_port
;
#ifdef CONFIG_X86_PC9800
}
else
if
(
data_port
==
0x640
)
{
hw
->
io_ports
[
IDE_CONTROL_OFFSET
]
=
0x74c
;
#endif
}
else
{
}
else
{
hw
->
io_ports
[
IDE_CONTROL_OFFSET
]
=
hw
->
io_ports
[
IDE_DATA_OFFSET
]
+
0x206
;
hw
->
io_ports
[
IDE_CONTROL_OFFSET
]
=
hw
->
io_ports
[
IDE_DATA_OFFSET
]
+
0x206
;
}
}
...
...
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