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. (aacraid@pmc-sierra.com)
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