Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
94f8c66e
K
Kernel
项目概览
openeuler
/
Kernel
12 个月 前同步成功
通知
5
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
94f8c66e
编写于
9月 05, 2005
作者:
L
Linus Torvalds
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'upstream' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev
上级
da1f136c
d0bd9929
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
104 addition
and
100 deletion
+104
-100
drivers/scsi/ahci.c
drivers/scsi/ahci.c
+21
-31
drivers/scsi/ata_piix.c
drivers/scsi/ata_piix.c
+5
-6
drivers/scsi/libata-core.c
drivers/scsi/libata-core.c
+14
-1
drivers/scsi/libata-scsi.c
drivers/scsi/libata-scsi.c
+4
-4
drivers/scsi/libata.h
drivers/scsi/libata.h
+1
-0
drivers/scsi/sata_nv.c
drivers/scsi/sata_nv.c
+5
-4
drivers/scsi/sata_promise.c
drivers/scsi/sata_promise.c
+10
-10
drivers/scsi/sata_qstor.c
drivers/scsi/sata_qstor.c
+4
-4
drivers/scsi/sata_sil.c
drivers/scsi/sata_sil.c
+7
-5
drivers/scsi/sata_svw.c
drivers/scsi/sata_svw.c
+3
-4
drivers/scsi/sata_sx4.c
drivers/scsi/sata_sx4.c
+27
-27
drivers/scsi/sata_vsc.c
drivers/scsi/sata_vsc.c
+2
-3
include/linux/libata.h
include/linux/libata.h
+1
-1
未找到文件。
drivers/scsi/ahci.c
浏览文件 @
94f8c66e
...
...
@@ -189,7 +189,6 @@ static void ahci_irq_clear(struct ata_port *ap);
static
void
ahci_eng_timeout
(
struct
ata_port
*
ap
);
static
int
ahci_port_start
(
struct
ata_port
*
ap
);
static
void
ahci_port_stop
(
struct
ata_port
*
ap
);
static
void
ahci_host_stop
(
struct
ata_host_set
*
host_set
);
static
void
ahci_tf_read
(
struct
ata_port
*
ap
,
struct
ata_taskfile
*
tf
);
static
void
ahci_qc_prep
(
struct
ata_queued_cmd
*
qc
);
static
u8
ahci_check_status
(
struct
ata_port
*
ap
);
...
...
@@ -242,7 +241,6 @@ static struct ata_port_operations ahci_ops = {
.
port_start
=
ahci_port_start
,
.
port_stop
=
ahci_port_stop
,
.
host_stop
=
ahci_host_stop
,
};
static
struct
ata_port_info
ahci_port_info
[]
=
{
...
...
@@ -296,17 +294,9 @@ static inline unsigned long ahci_port_base_ul (unsigned long base, unsigned int
return
base
+
0x100
+
(
port
*
0x80
);
}
static
inline
void
*
ahci_port_base
(
void
*
base
,
unsigned
int
port
)
static
inline
void
__iomem
*
ahci_port_base
(
void
__iomem
*
base
,
unsigned
int
port
)
{
return
(
void
*
)
ahci_port_base_ul
((
unsigned
long
)
base
,
port
);
}
static
void
ahci_host_stop
(
struct
ata_host_set
*
host_set
)
{
struct
ahci_host_priv
*
hpriv
=
host_set
->
private_data
;
kfree
(
hpriv
);
ata_host_stop
(
host_set
);
return
(
void
__iomem
*
)
ahci_port_base_ul
((
unsigned
long
)
base
,
port
);
}
static
int
ahci_port_start
(
struct
ata_port
*
ap
)
...
...
@@ -314,8 +304,9 @@ static int ahci_port_start(struct ata_port *ap)
struct
device
*
dev
=
ap
->
host_set
->
dev
;
struct
ahci_host_priv
*
hpriv
=
ap
->
host_set
->
private_data
;
struct
ahci_port_priv
*
pp
;
void
*
mem
,
*
mmio
=
ap
->
host_set
->
mmio_base
;
void
*
port_mmio
=
ahci_port_base
(
mmio
,
ap
->
port_no
);
void
__iomem
*
mmio
=
ap
->
host_set
->
mmio_base
;
void
__iomem
*
port_mmio
=
ahci_port_base
(
mmio
,
ap
->
port_no
);
void
*
mem
;
dma_addr_t
mem_dma
;
pp
=
kmalloc
(
sizeof
(
*
pp
),
GFP_KERNEL
);
...
...
@@ -383,8 +374,8 @@ static void ahci_port_stop(struct ata_port *ap)
{
struct
device
*
dev
=
ap
->
host_set
->
dev
;
struct
ahci_port_priv
*
pp
=
ap
->
private_data
;
void
*
mmio
=
ap
->
host_set
->
mmio_base
;
void
*
port_mmio
=
ahci_port_base
(
mmio
,
ap
->
port_no
);
void
__iomem
*
mmio
=
ap
->
host_set
->
mmio_base
;
void
__iomem
*
port_mmio
=
ahci_port_base
(
mmio
,
ap
->
port_no
);
u32
tmp
;
tmp
=
readl
(
port_mmio
+
PORT_CMD
);
...
...
@@ -546,8 +537,8 @@ static void ahci_qc_prep(struct ata_queued_cmd *qc)
static
void
ahci_intr_error
(
struct
ata_port
*
ap
,
u32
irq_stat
)
{
void
*
mmio
=
ap
->
host_set
->
mmio_base
;
void
*
port_mmio
=
ahci_port_base
(
mmio
,
ap
->
port_no
);
void
__iomem
*
mmio
=
ap
->
host_set
->
mmio_base
;
void
__iomem
*
port_mmio
=
ahci_port_base
(
mmio
,
ap
->
port_no
);
u32
tmp
;
int
work
;
...
...
@@ -595,8 +586,8 @@ static void ahci_intr_error(struct ata_port *ap, u32 irq_stat)
static
void
ahci_eng_timeout
(
struct
ata_port
*
ap
)
{
struct
ata_host_set
*
host_set
=
ap
->
host_set
;
void
*
mmio
=
host_set
->
mmio_base
;
void
*
port_mmio
=
ahci_port_base
(
mmio
,
ap
->
port_no
);
void
__iomem
*
mmio
=
host_set
->
mmio_base
;
void
__iomem
*
port_mmio
=
ahci_port_base
(
mmio
,
ap
->
port_no
);
struct
ata_queued_cmd
*
qc
;
unsigned
long
flags
;
...
...
@@ -626,8 +617,8 @@ static void ahci_eng_timeout(struct ata_port *ap)
static
inline
int
ahci_host_intr
(
struct
ata_port
*
ap
,
struct
ata_queued_cmd
*
qc
)
{
void
*
mmio
=
ap
->
host_set
->
mmio_base
;
void
*
port_mmio
=
ahci_port_base
(
mmio
,
ap
->
port_no
);
void
__iomem
*
mmio
=
ap
->
host_set
->
mmio_base
;
void
__iomem
*
port_mmio
=
ahci_port_base
(
mmio
,
ap
->
port_no
);
u32
status
,
serr
,
ci
;
serr
=
readl
(
port_mmio
+
PORT_SCR_ERR
);
...
...
@@ -663,7 +654,7 @@ static irqreturn_t ahci_interrupt (int irq, void *dev_instance, struct pt_regs *
struct
ata_host_set
*
host_set
=
dev_instance
;
struct
ahci_host_priv
*
hpriv
;
unsigned
int
i
,
handled
=
0
;
void
*
mmio
;
void
__iomem
*
mmio
;
u32
irq_stat
,
irq_ack
=
0
;
VPRINTK
(
"ENTER
\n
"
);
...
...
@@ -709,7 +700,7 @@ static irqreturn_t ahci_interrupt (int irq, void *dev_instance, struct pt_regs *
static
int
ahci_qc_issue
(
struct
ata_queued_cmd
*
qc
)
{
struct
ata_port
*
ap
=
qc
->
ap
;
void
*
port_mmio
=
(
void
*
)
ap
->
ioaddr
.
cmd_addr
;
void
__iomem
*
port_mmio
=
(
void
__iomem
*
)
ap
->
ioaddr
.
cmd_addr
;
writel
(
1
,
port_mmio
+
PORT_CMD_ISSUE
);
readl
(
port_mmio
+
PORT_CMD_ISSUE
);
/* flush */
...
...
@@ -894,7 +885,7 @@ static void ahci_print_info(struct ata_probe_ent *probe_ent)
{
struct
ahci_host_priv
*
hpriv
=
probe_ent
->
private_data
;
struct
pci_dev
*
pdev
=
to_pci_dev
(
probe_ent
->
dev
);
void
*
mmio
=
probe_ent
->
mmio_base
;
void
__iomem
*
mmio
=
probe_ent
->
mmio_base
;
u32
vers
,
cap
,
impl
,
speed
;
const
char
*
speed_s
;
u16
cc
;
...
...
@@ -967,7 +958,7 @@ static int ahci_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
struct
ata_probe_ent
*
probe_ent
=
NULL
;
struct
ahci_host_priv
*
hpriv
;
unsigned
long
base
;
void
*
mmio_base
;
void
__iomem
*
mmio_base
;
unsigned
int
board_idx
=
(
unsigned
int
)
ent
->
driver_data
;
int
have_msi
,
pci_dev_busy
=
0
;
int
rc
;
...
...
@@ -1004,8 +995,7 @@ static int ahci_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
probe_ent
->
dev
=
pci_dev_to_dev
(
pdev
);
INIT_LIST_HEAD
(
&
probe_ent
->
node
);
mmio_base
=
ioremap
(
pci_resource_start
(
pdev
,
AHCI_PCI_BAR
),
pci_resource_len
(
pdev
,
AHCI_PCI_BAR
));
mmio_base
=
pci_iomap
(
pdev
,
AHCI_PCI_BAR
,
0
);
if
(
mmio_base
==
NULL
)
{
rc
=
-
ENOMEM
;
goto
err_out_free_ent
;
...
...
@@ -1049,7 +1039,7 @@ static int ahci_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
err_out_hpriv:
kfree
(
hpriv
);
err_out_iounmap:
iounmap
(
mmio_base
);
pci_iounmap
(
pdev
,
mmio_base
);
err_out_free_ent:
kfree
(
probe_ent
);
err_out_msi:
...
...
@@ -1089,7 +1079,8 @@ static void ahci_remove_one (struct pci_dev *pdev)
scsi_host_put
(
ap
->
host
);
}
host_set
->
ops
->
host_stop
(
host_set
);
kfree
(
hpriv
);
pci_iounmap
(
pdev
,
host_set
->
mmio_base
);
kfree
(
host_set
);
if
(
have_msi
)
...
...
@@ -1106,7 +1097,6 @@ static int __init ahci_init(void)
return
pci_module_init
(
&
ahci_pci_driver
);
}
static
void
__exit
ahci_exit
(
void
)
{
pci_unregister_driver
(
&
ahci_pci_driver
);
...
...
drivers/scsi/ata_piix.c
浏览文件 @
94f8c66e
...
...
@@ -583,8 +583,7 @@ static void pci_enable_intx(struct pci_dev *pdev)
#define AHCI_ENABLE (1 << 31)
static
int
piix_disable_ahci
(
struct
pci_dev
*
pdev
)
{
void
*
mmio
;
unsigned
long
addr
;
void
__iomem
*
mmio
;
u32
tmp
;
int
rc
=
0
;
...
...
@@ -592,11 +591,11 @@ static int piix_disable_ahci(struct pci_dev *pdev)
* works because this device is usually set up by BIOS.
*/
addr
=
pci_resource_start
(
pdev
,
AHCI_PCI_BAR
);
if
(
!
addr
||
!
pci_resource_len
(
pdev
,
AHCI_PCI_BAR
))
if
(
!
pci_resource_start
(
pdev
,
AHCI_PCI_BAR
)
||
!
pci_resource_len
(
pdev
,
AHCI_PCI_BAR
))
return
0
;
mmio
=
ioremap
(
addr
,
64
);
mmio
=
pci_iomap
(
pdev
,
AHCI_PCI_BAR
,
64
);
if
(
!
mmio
)
return
-
ENOMEM
;
...
...
@@ -610,7 +609,7 @@ static int piix_disable_ahci(struct pci_dev *pdev)
rc
=
-
EIO
;
}
iounmap
(
mmio
);
pci_iounmap
(
pdev
,
mmio
);
return
rc
;
}
...
...
drivers/scsi/libata-core.c
浏览文件 @
94f8c66e
...
...
@@ -75,6 +75,10 @@ static void __ata_qc_complete(struct ata_queued_cmd *qc);
static
unsigned
int
ata_unique_id
=
1
;
static
struct
workqueue_struct
*
ata_wq
;
int
atapi_enabled
=
0
;
module_param
(
atapi_enabled
,
int
,
0444
);
MODULE_PARM_DESC
(
atapi_enabled
,
"Enable discovery of ATAPI devices (0=off, 1=on)"
);
MODULE_AUTHOR
(
"Jeff Garzik"
);
MODULE_DESCRIPTION
(
"Library module for ATA devices"
);
MODULE_LICENSE
(
"GPL"
);
...
...
@@ -4200,6 +4204,15 @@ ata_probe_ent_alloc(struct device *dev, struct ata_port_info *port)
#ifdef CONFIG_PCI
void
ata_pci_host_stop
(
struct
ata_host_set
*
host_set
)
{
struct
pci_dev
*
pdev
=
to_pci_dev
(
host_set
->
dev
);
pci_iounmap
(
pdev
,
host_set
->
mmio_base
);
}
/**
* ata_pci_init_native_mode - Initialize native-mode driver
* @pdev: pci device to be initialized
...
...
@@ -4212,7 +4225,6 @@ ata_probe_ent_alloc(struct device *dev, struct ata_port_info *port)
* ata_probe_ent structure should then be freed with kfree().
*/
#ifdef CONFIG_PCI
struct
ata_probe_ent
*
ata_pci_init_native_mode
(
struct
pci_dev
*
pdev
,
struct
ata_port_info
**
port
)
{
...
...
@@ -4595,6 +4607,7 @@ EXPORT_SYMBOL_GPL(ata_scsi_simulate);
#ifdef CONFIG_PCI
EXPORT_SYMBOL_GPL
(
pci_test_config_bits
);
EXPORT_SYMBOL_GPL
(
ata_pci_host_stop
);
EXPORT_SYMBOL_GPL
(
ata_pci_init_native_mode
);
EXPORT_SYMBOL_GPL
(
ata_pci_init_one
);
EXPORT_SYMBOL_GPL
(
ata_pci_remove_one
);
...
...
drivers/scsi/libata-scsi.c
浏览文件 @
94f8c66e
...
...
@@ -1470,10 +1470,10 @@ ata_scsi_find_dev(struct ata_port *ap, struct scsi_device *scsidev)
if
(
unlikely
(
!
ata_dev_present
(
dev
)))
return
NULL
;
#ifndef ATA_ENABLE_ATAPI
if
(
unlikely
(
dev
->
class
==
ATA_DEV_ATAPI
))
return
NULL
;
#endif
if
(
!
atapi_enabled
)
{
if
(
unlikely
(
dev
->
class
==
ATA_DEV_ATAPI
))
return
NULL
;
}
return
dev
;
}
...
...
drivers/scsi/libata.h
浏览文件 @
94f8c66e
...
...
@@ -38,6 +38,7 @@ struct ata_scsi_args {
};
/* libata-core.c */
extern
int
atapi_enabled
;
extern
struct
ata_queued_cmd
*
ata_qc_new_init
(
struct
ata_port
*
ap
,
struct
ata_device
*
dev
);
extern
void
ata_qc_free
(
struct
ata_queued_cmd
*
qc
);
...
...
drivers/scsi/sata_nv.c
浏览文件 @
94f8c66e
...
...
@@ -351,6 +351,7 @@ static void nv_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val)
static
void
nv_host_stop
(
struct
ata_host_set
*
host_set
)
{
struct
nv_host
*
host
=
host_set
->
private_data
;
struct
pci_dev
*
pdev
=
to_pci_dev
(
host_set
->
dev
);
// Disable hotplug event interrupts.
if
(
host
->
host_desc
->
disable_hotplug
)
...
...
@@ -358,7 +359,8 @@ static void nv_host_stop (struct ata_host_set *host_set)
kfree
(
host
);
ata_host_stop
(
host_set
);
if
(
host_set
->
mmio_base
)
pci_iounmap
(
pdev
,
host_set
->
mmio_base
);
}
static
int
nv_init_one
(
struct
pci_dev
*
pdev
,
const
struct
pci_device_id
*
ent
)
...
...
@@ -420,8 +422,7 @@ static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
if
(
host
->
host_flags
&
NV_HOST_FLAGS_SCR_MMIO
)
{
unsigned
long
base
;
probe_ent
->
mmio_base
=
ioremap
(
pci_resource_start
(
pdev
,
5
),
pci_resource_len
(
pdev
,
5
));
probe_ent
->
mmio_base
=
pci_iomap
(
pdev
,
5
,
0
);
if
(
probe_ent
->
mmio_base
==
NULL
)
{
rc
=
-
EIO
;
goto
err_out_free_host
;
...
...
@@ -457,7 +458,7 @@ static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
err_out_iounmap:
if
(
host
->
host_flags
&
NV_HOST_FLAGS_SCR_MMIO
)
iounmap
(
probe_ent
->
mmio_base
);
pci_iounmap
(
pdev
,
probe_ent
->
mmio_base
);
err_out_free_host:
kfree
(
host
);
err_out_free_ent:
...
...
drivers/scsi/sata_promise.c
浏览文件 @
94f8c66e
...
...
@@ -92,6 +92,7 @@ static void pdc_exec_command_mmio(struct ata_port *ap, struct ata_taskfile *tf);
static
void
pdc_irq_clear
(
struct
ata_port
*
ap
);
static
int
pdc_qc_issue_prot
(
struct
ata_queued_cmd
*
qc
);
static
Scsi_Host_Template
pdc_ata_sht
=
{
.
module
=
THIS_MODULE
,
.
name
=
DRV_NAME
,
...
...
@@ -132,7 +133,7 @@ static struct ata_port_operations pdc_sata_ops = {
.
scr_write
=
pdc_sata_scr_write
,
.
port_start
=
pdc_port_start
,
.
port_stop
=
pdc_port_stop
,
.
host_stop
=
ata_host_stop
,
.
host_stop
=
ata_
pci_
host_stop
,
};
static
struct
ata_port_operations
pdc_pata_ops
=
{
...
...
@@ -153,7 +154,7 @@ static struct ata_port_operations pdc_pata_ops = {
.
port_start
=
pdc_port_start
,
.
port_stop
=
pdc_port_stop
,
.
host_stop
=
ata_host_stop
,
.
host_stop
=
ata_
pci_
host_stop
,
};
static
struct
ata_port_info
pdc_port_info
[]
=
{
...
...
@@ -282,7 +283,7 @@ static void pdc_port_stop(struct ata_port *ap)
static
void
pdc_reset_port
(
struct
ata_port
*
ap
)
{
void
*
mmio
=
(
void
*
)
ap
->
ioaddr
.
cmd_addr
+
PDC_CTLSTAT
;
void
__iomem
*
mmio
=
(
void
__iomem
*
)
ap
->
ioaddr
.
cmd_addr
+
PDC_CTLSTAT
;
unsigned
int
i
;
u32
tmp
;
...
...
@@ -418,7 +419,7 @@ static inline unsigned int pdc_host_intr( struct ata_port *ap,
u8
status
;
unsigned
int
handled
=
0
,
have_err
=
0
;
u32
tmp
;
void
*
mmio
=
(
void
*
)
ap
->
ioaddr
.
cmd_addr
+
PDC_GLOBAL_CTL
;
void
__iomem
*
mmio
=
(
void
__iomem
*
)
ap
->
ioaddr
.
cmd_addr
+
PDC_GLOBAL_CTL
;
tmp
=
readl
(
mmio
);
if
(
tmp
&
PDC_ERR_MASK
)
{
...
...
@@ -447,7 +448,7 @@ static inline unsigned int pdc_host_intr( struct ata_port *ap,
static
void
pdc_irq_clear
(
struct
ata_port
*
ap
)
{
struct
ata_host_set
*
host_set
=
ap
->
host_set
;
void
*
mmio
=
host_set
->
mmio_base
;
void
__iomem
*
mmio
=
host_set
->
mmio_base
;
readl
(
mmio
+
PDC_INT_SEQMASK
);
}
...
...
@@ -459,7 +460,7 @@ static irqreturn_t pdc_interrupt (int irq, void *dev_instance, struct pt_regs *r
u32
mask
=
0
;
unsigned
int
i
,
tmp
;
unsigned
int
handled
=
0
;
void
*
mmio_base
;
void
__iomem
*
mmio_base
;
VPRINTK
(
"ENTER
\n
"
);
...
...
@@ -581,7 +582,7 @@ static void pdc_ata_setup_port(struct ata_ioports *port, unsigned long base)
static
void
pdc_host_init
(
unsigned
int
chip_id
,
struct
ata_probe_ent
*
pe
)
{
void
*
mmio
=
pe
->
mmio_base
;
void
__iomem
*
mmio
=
pe
->
mmio_base
;
u32
tmp
;
/*
...
...
@@ -624,7 +625,7 @@ static int pdc_ata_init_one (struct pci_dev *pdev, const struct pci_device_id *e
static
int
printed_version
;
struct
ata_probe_ent
*
probe_ent
=
NULL
;
unsigned
long
base
;
void
*
mmio_base
;
void
__iomem
*
mmio_base
;
unsigned
int
board_idx
=
(
unsigned
int
)
ent
->
driver_data
;
int
pci_dev_busy
=
0
;
int
rc
;
...
...
@@ -663,8 +664,7 @@ static int pdc_ata_init_one (struct pci_dev *pdev, const struct pci_device_id *e
probe_ent
->
dev
=
pci_dev_to_dev
(
pdev
);
INIT_LIST_HEAD
(
&
probe_ent
->
node
);
mmio_base
=
ioremap
(
pci_resource_start
(
pdev
,
3
),
pci_resource_len
(
pdev
,
3
));
mmio_base
=
pci_iomap
(
pdev
,
3
,
0
);
if
(
mmio_base
==
NULL
)
{
rc
=
-
ENOMEM
;
goto
err_out_free_ent
;
...
...
drivers/scsi/sata_qstor.c
浏览文件 @
94f8c66e
...
...
@@ -538,11 +538,12 @@ static void qs_port_stop(struct ata_port *ap)
static
void
qs_host_stop
(
struct
ata_host_set
*
host_set
)
{
void
__iomem
*
mmio_base
=
host_set
->
mmio_base
;
struct
pci_dev
*
pdev
=
to_pci_dev
(
host_set
->
dev
);
writeb
(
0
,
mmio_base
+
QS_HCT_CTRL
);
/* disable host interrupts */
writeb
(
QS_CNFG3_GSRST
,
mmio_base
+
QS_HCF_CNFG3
);
/* global reset */
ata_host_stop
(
host_set
);
pci_iounmap
(
pdev
,
mmio_base
);
}
static
void
qs_host_init
(
unsigned
int
chip_id
,
struct
ata_probe_ent
*
pe
)
...
...
@@ -646,8 +647,7 @@ static int qs_ata_init_one(struct pci_dev *pdev,
goto
err_out_regions
;
}
mmio_base
=
ioremap
(
pci_resource_start
(
pdev
,
4
),
pci_resource_len
(
pdev
,
4
));
mmio_base
=
pci_iomap
(
pdev
,
4
,
0
);
if
(
mmio_base
==
NULL
)
{
rc
=
-
ENOMEM
;
goto
err_out_regions
;
...
...
@@ -697,7 +697,7 @@ static int qs_ata_init_one(struct pci_dev *pdev,
return
0
;
err_out_iounmap:
iounmap
(
mmio_base
);
pci_iounmap
(
pdev
,
mmio_base
);
err_out_regions:
pci_release_regions
(
pdev
);
err_out:
...
...
drivers/scsi/sata_sil.c
浏览文件 @
94f8c66e
...
...
@@ -86,6 +86,7 @@ static u32 sil_scr_read (struct ata_port *ap, unsigned int sc_reg);
static
void
sil_scr_write
(
struct
ata_port
*
ap
,
unsigned
int
sc_reg
,
u32
val
);
static
void
sil_post_set_mode
(
struct
ata_port
*
ap
);
static
struct
pci_device_id
sil_pci_tbl
[]
=
{
{
0x1095
,
0x3112
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
sil_3112_m15w
},
{
0x1095
,
0x0240
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
sil_3112_m15w
},
...
...
@@ -172,7 +173,7 @@ static struct ata_port_operations sil_ops = {
.
scr_write
=
sil_scr_write
,
.
port_start
=
ata_port_start
,
.
port_stop
=
ata_port_stop
,
.
host_stop
=
ata_host_stop
,
.
host_stop
=
ata_
pci_
host_stop
,
};
static
struct
ata_port_info
sil_port_info
[]
=
{
...
...
@@ -231,6 +232,7 @@ MODULE_LICENSE("GPL");
MODULE_DEVICE_TABLE
(
pci
,
sil_pci_tbl
);
MODULE_VERSION
(
DRV_VERSION
);
static
unsigned
char
sil_get_device_cache_line
(
struct
pci_dev
*
pdev
)
{
u8
cache_line
=
0
;
...
...
@@ -242,7 +244,8 @@ static void sil_post_set_mode (struct ata_port *ap)
{
struct
ata_host_set
*
host_set
=
ap
->
host_set
;
struct
ata_device
*
dev
;
void
*
addr
=
host_set
->
mmio_base
+
sil_port
[
ap
->
port_no
].
xfer_mode
;
void
__iomem
*
addr
=
host_set
->
mmio_base
+
sil_port
[
ap
->
port_no
].
xfer_mode
;
u32
tmp
,
dev_mode
[
2
];
unsigned
int
i
;
...
...
@@ -375,7 +378,7 @@ static int sil_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
static
int
printed_version
;
struct
ata_probe_ent
*
probe_ent
=
NULL
;
unsigned
long
base
;
void
*
mmio_base
;
void
__iomem
*
mmio_base
;
int
rc
;
unsigned
int
i
;
int
pci_dev_busy
=
0
;
...
...
@@ -425,8 +428,7 @@ static int sil_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
probe_ent
->
irq_flags
=
SA_SHIRQ
;
probe_ent
->
host_flags
=
sil_port_info
[
ent
->
driver_data
].
host_flags
;
mmio_base
=
ioremap
(
pci_resource_start
(
pdev
,
5
),
pci_resource_len
(
pdev
,
5
));
mmio_base
=
pci_iomap
(
pdev
,
5
,
0
);
if
(
mmio_base
==
NULL
)
{
rc
=
-
ENOMEM
;
goto
err_out_free_ent
;
...
...
drivers/scsi/sata_svw.c
浏览文件 @
94f8c66e
...
...
@@ -318,7 +318,7 @@ static struct ata_port_operations k2_sata_ops = {
.
scr_write
=
k2_sata_scr_write
,
.
port_start
=
ata_port_start
,
.
port_stop
=
ata_port_stop
,
.
host_stop
=
ata_host_stop
,
.
host_stop
=
ata_
pci_
host_stop
,
};
static
void
k2_sata_setup_port
(
struct
ata_ioports
*
port
,
unsigned
long
base
)
...
...
@@ -346,7 +346,7 @@ static int k2_sata_init_one (struct pci_dev *pdev, const struct pci_device_id *e
static
int
printed_version
;
struct
ata_probe_ent
*
probe_ent
=
NULL
;
unsigned
long
base
;
void
*
mmio_base
;
void
__iomem
*
mmio_base
;
int
pci_dev_busy
=
0
;
int
rc
;
int
i
;
...
...
@@ -392,8 +392,7 @@ static int k2_sata_init_one (struct pci_dev *pdev, const struct pci_device_id *e
probe_ent
->
dev
=
pci_dev_to_dev
(
pdev
);
INIT_LIST_HEAD
(
&
probe_ent
->
node
);
mmio_base
=
ioremap
(
pci_resource_start
(
pdev
,
5
),
pci_resource_len
(
pdev
,
5
));
mmio_base
=
pci_iomap
(
pdev
,
5
,
0
);
if
(
mmio_base
==
NULL
)
{
rc
=
-
ENOMEM
;
goto
err_out_free_ent
;
...
...
drivers/scsi/sata_sx4.c
浏览文件 @
94f8c66e
...
...
@@ -245,13 +245,14 @@ static struct pci_driver pdc_sata_pci_driver = {
static
void
pdc20621_host_stop
(
struct
ata_host_set
*
host_set
)
{
struct
pci_dev
*
pdev
=
to_pci_dev
(
host_set
->
dev
);
struct
pdc_host_priv
*
hpriv
=
host_set
->
private_data
;
void
*
dimm_mmio
=
hpriv
->
dimm_mmio
;
iounmap
(
dimm_mmio
);
pci_iounmap
(
pdev
,
dimm_mmio
);
kfree
(
hpriv
);
ata_host_stop
(
host_set
);
pci_iounmap
(
pdev
,
host_set
->
mmio_base
);
}
static
int
pdc_port_start
(
struct
ata_port
*
ap
)
...
...
@@ -451,9 +452,9 @@ static void pdc20621_dma_prep(struct ata_queued_cmd *qc)
struct
scatterlist
*
sg
=
qc
->
sg
;
struct
ata_port
*
ap
=
qc
->
ap
;
struct
pdc_port_priv
*
pp
=
ap
->
private_data
;
void
*
mmio
=
ap
->
host_set
->
mmio_base
;
void
__iomem
*
mmio
=
ap
->
host_set
->
mmio_base
;
struct
pdc_host_priv
*
hpriv
=
ap
->
host_set
->
private_data
;
void
*
dimm_mmio
=
hpriv
->
dimm_mmio
;
void
__iomem
*
dimm_mmio
=
hpriv
->
dimm_mmio
;
unsigned
int
portno
=
ap
->
port_no
;
unsigned
int
i
,
last
,
idx
,
total_len
=
0
,
sgt_len
;
u32
*
buf
=
(
u32
*
)
&
pp
->
dimm_buf
[
PDC_DIMM_HEADER_SZ
];
...
...
@@ -513,9 +514,9 @@ static void pdc20621_nodata_prep(struct ata_queued_cmd *qc)
{
struct
ata_port
*
ap
=
qc
->
ap
;
struct
pdc_port_priv
*
pp
=
ap
->
private_data
;
void
*
mmio
=
ap
->
host_set
->
mmio_base
;
void
__iomem
*
mmio
=
ap
->
host_set
->
mmio_base
;
struct
pdc_host_priv
*
hpriv
=
ap
->
host_set
->
private_data
;
void
*
dimm_mmio
=
hpriv
->
dimm_mmio
;
void
__iomem
*
dimm_mmio
=
hpriv
->
dimm_mmio
;
unsigned
int
portno
=
ap
->
port_no
;
unsigned
int
i
;
...
...
@@ -565,7 +566,7 @@ static void __pdc20621_push_hdma(struct ata_queued_cmd *qc,
{
struct
ata_port
*
ap
=
qc
->
ap
;
struct
ata_host_set
*
host_set
=
ap
->
host_set
;
void
*
mmio
=
host_set
->
mmio_base
;
void
__iomem
*
mmio
=
host_set
->
mmio_base
;
/* hard-code chip #0 */
mmio
+=
PDC_CHIP0_OFS
;
...
...
@@ -639,7 +640,7 @@ static void pdc20621_packet_start(struct ata_queued_cmd *qc)
struct
ata_port
*
ap
=
qc
->
ap
;
struct
ata_host_set
*
host_set
=
ap
->
host_set
;
unsigned
int
port_no
=
ap
->
port_no
;
void
*
mmio
=
host_set
->
mmio_base
;
void
__iomem
*
mmio
=
host_set
->
mmio_base
;
unsigned
int
rw
=
(
qc
->
tf
.
flags
&
ATA_TFLAG_WRITE
);
u8
seq
=
(
u8
)
(
port_no
+
1
);
unsigned
int
port_ofs
;
...
...
@@ -699,7 +700,7 @@ static int pdc20621_qc_issue_prot(struct ata_queued_cmd *qc)
static
inline
unsigned
int
pdc20621_host_intr
(
struct
ata_port
*
ap
,
struct
ata_queued_cmd
*
qc
,
unsigned
int
doing_hdma
,
void
*
mmio
)
void
__iomem
*
mmio
)
{
unsigned
int
port_no
=
ap
->
port_no
;
unsigned
int
port_ofs
=
...
...
@@ -778,7 +779,7 @@ static inline unsigned int pdc20621_host_intr( struct ata_port *ap,
static
void
pdc20621_irq_clear
(
struct
ata_port
*
ap
)
{
struct
ata_host_set
*
host_set
=
ap
->
host_set
;
void
*
mmio
=
host_set
->
mmio_base
;
void
__iomem
*
mmio
=
host_set
->
mmio_base
;
mmio
+=
PDC_CHIP0_OFS
;
...
...
@@ -792,7 +793,7 @@ static irqreturn_t pdc20621_interrupt (int irq, void *dev_instance, struct pt_re
u32
mask
=
0
;
unsigned
int
i
,
tmp
,
port_no
;
unsigned
int
handled
=
0
;
void
*
mmio_base
;
void
__iomem
*
mmio_base
;
VPRINTK
(
"ENTER
\n
"
);
...
...
@@ -940,9 +941,9 @@ static void pdc20621_get_from_dimm(struct ata_probe_ent *pe, void *psource,
u16
idx
;
u8
page_mask
;
long
dist
;
void
*
mmio
=
pe
->
mmio_base
;
void
__iomem
*
mmio
=
pe
->
mmio_base
;
struct
pdc_host_priv
*
hpriv
=
pe
->
private_data
;
void
*
dimm_mmio
=
hpriv
->
dimm_mmio
;
void
__iomem
*
dimm_mmio
=
hpriv
->
dimm_mmio
;
/* hard-code chip #0 */
mmio
+=
PDC_CHIP0_OFS
;
...
...
@@ -996,9 +997,9 @@ static void pdc20621_put_to_dimm(struct ata_probe_ent *pe, void *psource,
u16
idx
;
u8
page_mask
;
long
dist
;
void
*
mmio
=
pe
->
mmio_base
;
void
__iomem
*
mmio
=
pe
->
mmio_base
;
struct
pdc_host_priv
*
hpriv
=
pe
->
private_data
;
void
*
dimm_mmio
=
hpriv
->
dimm_mmio
;
void
__iomem
*
dimm_mmio
=
hpriv
->
dimm_mmio
;
/* hard-code chip #0 */
mmio
+=
PDC_CHIP0_OFS
;
...
...
@@ -1044,7 +1045,7 @@ static void pdc20621_put_to_dimm(struct ata_probe_ent *pe, void *psource,
static
unsigned
int
pdc20621_i2c_read
(
struct
ata_probe_ent
*
pe
,
u32
device
,
u32
subaddr
,
u32
*
pdata
)
{
void
*
mmio
=
pe
->
mmio_base
;
void
__iomem
*
mmio
=
pe
->
mmio_base
;
u32
i2creg
=
0
;
u32
status
;
u32
count
=
0
;
...
...
@@ -1103,7 +1104,7 @@ static int pdc20621_prog_dimm0(struct ata_probe_ent *pe)
u32
data
=
0
;
int
size
,
i
;
u8
bdimmsize
;
void
*
mmio
=
pe
->
mmio_base
;
void
__iomem
*
mmio
=
pe
->
mmio_base
;
static
const
struct
{
unsigned
int
reg
;
unsigned
int
ofs
;
...
...
@@ -1166,7 +1167,7 @@ static unsigned int pdc20621_prog_dimm_global(struct ata_probe_ent *pe)
{
u32
data
,
spd0
;
int
error
,
i
;
void
*
mmio
=
pe
->
mmio_base
;
void
__iomem
*
mmio
=
pe
->
mmio_base
;
/* hard-code chip #0 */
mmio
+=
PDC_CHIP0_OFS
;
...
...
@@ -1220,7 +1221,7 @@ static unsigned int pdc20621_dimm_init(struct ata_probe_ent *pe)
u32
ticks
=
0
;
u32
clock
=
0
;
u32
fparam
=
0
;
void
*
mmio
=
pe
->
mmio_base
;
void
__iomem
*
mmio
=
pe
->
mmio_base
;
/* hard-code chip #0 */
mmio
+=
PDC_CHIP0_OFS
;
...
...
@@ -1344,7 +1345,7 @@ static unsigned int pdc20621_dimm_init(struct ata_probe_ent *pe)
static
void
pdc_20621_init
(
struct
ata_probe_ent
*
pe
)
{
u32
tmp
;
void
*
mmio
=
pe
->
mmio_base
;
void
__iomem
*
mmio
=
pe
->
mmio_base
;
/* hard-code chip #0 */
mmio
+=
PDC_CHIP0_OFS
;
...
...
@@ -1377,7 +1378,8 @@ static int pdc_sata_init_one (struct pci_dev *pdev, const struct pci_device_id *
static
int
printed_version
;
struct
ata_probe_ent
*
probe_ent
=
NULL
;
unsigned
long
base
;
void
*
mmio_base
,
*
dimm_mmio
=
NULL
;
void
__iomem
*
mmio_base
;
void
__iomem
*
dimm_mmio
=
NULL
;
struct
pdc_host_priv
*
hpriv
=
NULL
;
unsigned
int
board_idx
=
(
unsigned
int
)
ent
->
driver_data
;
int
pci_dev_busy
=
0
;
...
...
@@ -1417,8 +1419,7 @@ static int pdc_sata_init_one (struct pci_dev *pdev, const struct pci_device_id *
probe_ent
->
dev
=
pci_dev_to_dev
(
pdev
);
INIT_LIST_HEAD
(
&
probe_ent
->
node
);
mmio_base
=
ioremap
(
pci_resource_start
(
pdev
,
3
),
pci_resource_len
(
pdev
,
3
));
mmio_base
=
pci_iomap
(
pdev
,
3
,
0
);
if
(
mmio_base
==
NULL
)
{
rc
=
-
ENOMEM
;
goto
err_out_free_ent
;
...
...
@@ -1432,8 +1433,7 @@ static int pdc_sata_init_one (struct pci_dev *pdev, const struct pci_device_id *
}
memset
(
hpriv
,
0
,
sizeof
(
*
hpriv
));
dimm_mmio
=
ioremap
(
pci_resource_start
(
pdev
,
4
),
pci_resource_len
(
pdev
,
4
));
dimm_mmio
=
pci_iomap
(
pdev
,
4
,
0
);
if
(
!
dimm_mmio
)
{
kfree
(
hpriv
);
rc
=
-
ENOMEM
;
...
...
@@ -1480,9 +1480,9 @@ static int pdc_sata_init_one (struct pci_dev *pdev, const struct pci_device_id *
err_out_iounmap_dimm:
/* only get to this label if 20621 */
kfree
(
hpriv
);
iounmap
(
dimm_mmio
);
pci_iounmap
(
pdev
,
dimm_mmio
);
err_out_iounmap:
iounmap
(
mmio_base
);
pci_iounmap
(
pdev
,
mmio_base
);
err_out_free_ent:
kfree
(
probe_ent
);
err_out_regions:
...
...
drivers/scsi/sata_vsc.c
浏览文件 @
94f8c66e
...
...
@@ -252,7 +252,7 @@ static struct ata_port_operations vsc_sata_ops = {
.
scr_write
=
vsc_sata_scr_write
,
.
port_start
=
ata_port_start
,
.
port_stop
=
ata_port_stop
,
.
host_stop
=
ata_host_stop
,
.
host_stop
=
ata_
pci_
host_stop
,
};
static
void
__devinit
vsc_sata_setup_port
(
struct
ata_ioports
*
port
,
unsigned
long
base
)
...
...
@@ -326,8 +326,7 @@ static int __devinit vsc_sata_init_one (struct pci_dev *pdev, const struct pci_d
probe_ent
->
dev
=
pci_dev_to_dev
(
pdev
);
INIT_LIST_HEAD
(
&
probe_ent
->
node
);
mmio_base
=
ioremap
(
pci_resource_start
(
pdev
,
0
),
pci_resource_len
(
pdev
,
0
));
mmio_base
=
pci_iomap
(
pdev
,
0
,
0
);
if
(
mmio_base
==
NULL
)
{
rc
=
-
ENOMEM
;
goto
err_out_free_ent
;
...
...
include/linux/libata.h
浏览文件 @
94f8c66e
...
...
@@ -40,7 +40,6 @@
#undef ATA_VERBOSE_DEBUG
/* yet more debugging output */
#undef ATA_IRQ_TRAP
/* define to ack screaming irqs */
#undef ATA_NDEBUG
/* define to disable quick runtime checks */
#undef ATA_ENABLE_ATAPI
/* define to enable ATAPI support */
#undef ATA_ENABLE_PATA
/* define to enable PATA support in some
* low-level drivers */
#undef ATAPI_ENABLE_DMADIR
/* enables ATAPI DMADIR bridge support */
...
...
@@ -450,6 +449,7 @@ struct pci_bits {
unsigned
long
val
;
};
extern
void
ata_pci_host_stop
(
struct
ata_host_set
*
host_set
);
extern
struct
ata_probe_ent
*
ata_pci_init_native_mode
(
struct
pci_dev
*
pdev
,
struct
ata_port_info
**
port
);
extern
int
pci_test_config_bits
(
struct
pci_dev
*
pdev
,
struct
pci_bits
*
bits
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录