Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
scsi
aacraid
nark.c
Go to the documentation of this file.
1
/*
2
* Adaptec AAC series RAID controller driver
3
*
4
* based on the old aacraid driver that is..
5
* Adaptec aacraid device driver for Linux.
6
*
7
* Copyright (c) 2000-2010 Adaptec, Inc.
8
* 2010 PMC-Sierra, Inc. (
[email protected]
)
9
*
10
* This program is free software; you can redistribute it and/or modify
11
* it under the terms of the GNU General Public License as published by
12
* the Free Software Foundation; either version 2, or (at your option)
13
* any later version.
14
*
15
* This program is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
* GNU General Public License for more details.
19
*
20
* You should have received a copy of the GNU General Public License
21
* along with this program; see the file COPYING. If not, write to
22
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
23
*
24
* Module Name:
25
* nark.c
26
*
27
* Abstract: Hardware Device Interface for NEMER/ARK
28
*
29
*/
30
31
#include <linux/pci.h>
32
#include <
linux/blkdev.h
>
33
34
#include <
scsi/scsi_host.h
>
35
36
#include "
aacraid.h
"
37
43
static
int
aac_nark_ioremap(
struct
aac_dev
*
dev
,
u32
size
)
44
{
45
if
(!size) {
46
iounmap
(dev->
regs
.
rx
);
47
dev->
regs
.
rx
=
NULL
;
48
iounmap
(dev->
base
);
49
dev->
base
=
NULL
;
50
return
0;
51
}
52
dev->
base_start
=
pci_resource_start
(dev->
pdev
, 2);
53
dev->
regs
.
rx
=
ioremap
((
u64
)
pci_resource_start
(dev->
pdev
, 0) |
54
((
u64
)
pci_resource_start
(dev->
pdev
, 1) << 32),
55
sizeof
(
struct
rx_registers
) -
sizeof
(
struct
rx_inbound
));
56
dev->
base
=
NULL
;
57
if
(dev->
regs
.
rx
==
NULL
)
58
return
-1;
59
dev->
base
=
ioremap
(dev->
base_start
, size);
60
if
(dev->
base
==
NULL
) {
61
iounmap
(dev->
regs
.
rx
);
62
dev->
regs
.
rx
=
NULL
;
63
return
-1;
64
}
65
dev->
IndexRegs
= &((
struct
rx_registers
__iomem
*)dev->
base
)->IndexRegs;
66
return
0;
67
}
68
75
int
aac_nark_init
(
struct
aac_dev
* dev)
76
{
77
/*
78
* Fill in the function dispatch table.
79
*/
80
dev->
a_ops
.adapter_ioremap = aac_nark_ioremap;
81
dev->
a_ops
.adapter_comm =
aac_rx_select_comm
;
82
83
return
_aac_rx_init
(dev);
84
}
Generated on Thu Jan 10 2013 14:18:44 for Linux Kernel by
1.8.2