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
f9464393
Commit
f9464393
authored
Aug 30, 2004
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://gkernel.bkbits.net/libata-2.6
into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents
d6786c00
54899e21
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
17 additions
and
13 deletions
+17
-13
drivers/scsi/ata_piix.c
drivers/scsi/ata_piix.c
+1
-1
drivers/scsi/libata-core.c
drivers/scsi/libata-core.c
+4
-4
drivers/scsi/sata_nv.c
drivers/scsi/sata_nv.c
+12
-8
No files found.
drivers/scsi/ata_piix.c
View file @
f9464393
...
...
@@ -389,7 +389,7 @@ static void piix_sata_phy_reset(struct ata_port *ap)
static
void
piix_set_piomode
(
struct
ata_port
*
ap
,
struct
ata_device
*
adev
)
{
unsigned
int
pio
=
adev
->
pio_mode
;
unsigned
int
pio
=
adev
->
pio_mode
-
XFER_PIO_0
;
struct
pci_dev
*
dev
=
ap
->
host_set
->
pdev
;
unsigned
int
is_slave
=
(
adev
->
devno
!=
0
);
unsigned
int
master_port
=
ap
->
port_no
?
0x42
:
0x40
;
...
...
drivers/scsi/libata-core.c
View file @
f9464393
...
...
@@ -1836,7 +1836,7 @@ static void ata_fill_sg(struct ata_queued_cmd *qc)
idx
=
0
;
for
(
nelem
=
qc
->
n_elem
;
nelem
;
nelem
--
,
sg
++
)
{
u32
addr
,
boundary
;
u32
addr
,
offset
;
u32
sg_len
,
len
;
/* determine if physical DMA addr spans 64K boundary.
...
...
@@ -1847,10 +1847,10 @@ static void ata_fill_sg(struct ata_queued_cmd *qc)
sg_len
=
sg_dma_len
(
sg
);
while
(
sg_len
)
{
boundary
=
(
addr
&
~
0xffff
)
+
(
0xffff
+
1
)
;
offset
=
addr
&
0xffff
;
len
=
sg_len
;
if
((
addr
+
sg_len
)
>
boundary
)
len
=
boundary
-
addr
;
if
((
offset
+
sg_len
)
>
0x10000
)
len
=
0x10000
-
offset
;
ap
->
prd
[
idx
].
addr
=
cpu_to_le32
(
addr
);
ap
->
prd
[
idx
].
flags_len
=
cpu_to_le32
(
len
&
0xffff
);
...
...
drivers/scsi/sata_nv.c
View file @
f9464393
...
...
@@ -20,6 +20,10 @@
* If you do not delete the provisions above, a recipient may use your
* version of this file under either the OSL or the GPL.
*
* 0.03
* - Fixed a bug where the hotplug handlers for non-CK804/MCP04 were using
* mmio_base, which is only set for the CK804/MCP04 case.
*
* 0.02
* - Added support for CK804 SATA controller.
*
...
...
@@ -40,7 +44,7 @@
#include <linux/libata.h>
#define DRV_NAME "sata_nv"
#define DRV_VERSION "0.0
2
"
#define DRV_VERSION "0.0
3
"
#define NV_PORTS 2
#define NV_PIO_MASK 0x1f
...
...
@@ -422,33 +426,33 @@ static void nv_enable_hotplug(struct ata_probe_ent *probe_ent)
u8
intr_mask
;
outb
(
NV_INT_STATUS_HOTPLUG
,
(
unsigned
long
)
probe_ent
->
mmio_base
+
NV_INT_STATUS
);
probe_ent
->
port
[
0
].
scr_addr
+
NV_INT_STATUS
);
intr_mask
=
inb
(
(
unsigned
long
)
probe_ent
->
mmio_base
+
NV_INT_ENABLE
);
intr_mask
=
inb
(
probe_ent
->
port
[
0
].
scr_addr
+
NV_INT_ENABLE
);
intr_mask
|=
NV_INT_ENABLE_HOTPLUG
;
outb
(
intr_mask
,
(
unsigned
long
)
probe_ent
->
mmio_base
+
NV_INT_ENABLE
);
outb
(
intr_mask
,
probe_ent
->
port
[
0
].
scr_addr
+
NV_INT_ENABLE
);
}
static
void
nv_disable_hotplug
(
struct
ata_host_set
*
host_set
)
{
u8
intr_mask
;
intr_mask
=
inb
(
(
unsigned
long
)
host_set
->
mmio_base
+
NV_INT_ENABLE
);
intr_mask
=
inb
(
host_set
->
ports
[
0
]
->
ioaddr
.
scr_addr
+
NV_INT_ENABLE
);
intr_mask
&=
~
(
NV_INT_ENABLE_HOTPLUG
);
outb
(
intr_mask
,
(
unsigned
long
)
host_set
->
mmio_base
+
NV_INT_ENABLE
);
outb
(
intr_mask
,
host_set
->
ports
[
0
]
->
ioaddr
.
scr_addr
+
NV_INT_ENABLE
);
}
static
void
nv_check_hotplug
(
struct
ata_host_set
*
host_set
)
{
u8
intr_status
;
intr_status
=
inb
(
(
unsigned
long
)
host_set
->
mmio_base
+
NV_INT_STATUS
);
intr_status
=
inb
(
host_set
->
ports
[
0
]
->
ioaddr
.
scr_addr
+
NV_INT_STATUS
);
// Clear interrupt status.
outb
(
0xff
,
(
unsigned
long
)
host_set
->
mmio_base
+
NV_INT_STATUS
);
outb
(
0xff
,
host_set
->
ports
[
0
]
->
ioaddr
.
scr_addr
+
NV_INT_STATUS
);
if
(
intr_status
&
NV_INT_STATUS_HOTPLUG
)
{
if
(
intr_status
&
NV_INT_STATUS_PDEV_ADDED
)
...
...
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