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
1806b777
Commit
1806b777
authored
Apr 24, 2004
by
Aristeu Sergio Rozanski Filho
Committed by
James Bottomley
Apr 24, 2004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[PATCH] qlogicfas: split and create a new module
parent
ba08cd44
Changes
4
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
717 additions
and
604 deletions
+717
-604
drivers/scsi/Makefile
drivers/scsi/Makefile
+2
-1
drivers/scsi/qlogicfas.c
drivers/scsi/qlogicfas.c
+51
-572
drivers/scsi/qlogicfas408.c
drivers/scsi/qlogicfas408.c
+637
-0
drivers/scsi/qlogicfas408.h
drivers/scsi/qlogicfas408.h
+27
-31
No files found.
drivers/scsi/Makefile
View file @
1806b777
...
...
@@ -75,7 +75,8 @@ obj-$(CONFIG_SCSI_NCR53C406A) += NCR53c406a.o
obj-$(CONFIG_SCSI_NCR_D700)
+=
53c700.o NCR_D700.o
obj-$(CONFIG_SCSI_NCR_Q720)
+=
NCR_Q720_mod.o
obj-$(CONFIG_SCSI_SYM53C416)
+=
sym53c416.o
obj-$(CONFIG_SCSI_QLOGIC_FAS)
+=
qlogicfas.o
obj-$(CONFIG_SCSI_QLOGIC_FAS)
+=
qlogicfas408.o qlogicfas.o
obj-$(CONFIG_PCMCIA_QLOGIC)
+=
qlogicfas408.o
obj-$(CONFIG_SCSI_QLOGIC_ISP)
+=
qlogicisp.o
obj-$(CONFIG_SCSI_QLOGIC_FC)
+=
qlogicfc.o
obj-$(CONFIG_SCSI_QLOGIC_1280)
+=
qla1280.o
...
...
drivers/scsi/qlogicfas.c
View file @
1806b777
This diff is collapsed.
Click to expand it.
drivers/scsi/qlogicfas408.c
0 → 100644
View file @
1806b777
This diff is collapsed.
Click to expand it.
drivers/scsi/qlogicfas.h
→
drivers/scsi/qlogicfas
408
.h
View file @
1806b777
/* to be used by qlogicfas and qlogic_cs */
#ifndef __QLOGICFAS_H
#define __QLOGICFAS_H
#ifndef __QLOGICFAS
408
_H
#define __QLOGICFAS
408
_H
/*----------------------------------------------------------------*/
/* Configuration */
/* Set the following to 2 to use normal interrupt (active high/totempole-
tristate), otherwise use 0 (REQUIRED FOR PCMCIA) for active low, open
drain */
#define QL_INT_ACTIVE_HIGH 2
/* Set the following to max out the speed of the PIO PseudoDMA transfers,
again, 0 tends to be slower, but more stable. */
...
...
@@ -79,34 +73,22 @@
the assertion delay, also in 1/2 clocks (FASTCLK is ignored here). */
/*----------------------------------------------------------------*/
#ifdef PCMCIA
#undef QL_INT_ACTIVE_HIGH
#define QL_INT_ACTIVE_HIGH 0
#endif
struct
qlogicfas_priv
;
typedef
struct
qlogicfas_priv
*
qlogicfas_priv_t
;
struct
qlogicfas_priv
{
struct
qlogicfas408_priv
{
int
qbase
;
/* Port */
int
qinitid
;
/* initiator ID */
int
qabort
;
/* Flag to cause an abort */
int
qlirq
;
/* IRQ being used */
int
int_type
;
/* type of irq, 2 for ISA board, 0 for PCMCIA */
char
qinfo
[
80
];
/* description */
Scsi_Cmnd
*
qlcmd
;
/* current command being processed */
struct
Scsi_Host
*
shost
;
/* pointer back to host */
qlogicfas_priv_t
next
;
/* next private struct */
struct
qlogicfas408_priv
*
next
;
/* next private struct */
};
extern
int
qlcfg5
;
extern
int
qlcfg6
;
extern
int
qlcfg7
;
extern
int
qlcfg8
;
extern
int
qlcfg9
;
extern
int
qlcfgc
;
/* The qlogic card uses two register maps - These macros select which one */
#define REG0 ( outb( inb( qbase + 0xd ) & 0x7f , qbase + 0xd ), outb( 4 , qbase + 0xd ))
#define REG1 ( outb( inb( qbase + 0xd ) | 0x80 , qbase + 0xd ), outb( 0xb4 |
QL_INT_ACTIVE_HIGH
, qbase + 0xd ))
#define REG1 ( outb( inb( qbase + 0xd ) | 0x80 , qbase + 0xd ), outb( 0xb4 |
int_type
, qbase + 0xd ))
/* following is watchdog timeout in microseconds */
#define WATCHDOG 5000000
...
...
@@ -115,10 +97,24 @@ extern int qlcfgc;
/* the following will set the monitor border color (useful to find
where something crashed or gets stuck at and as a simple profiler) */
#if 0
#define rtrc(i) {inb(0x3da);outb(0x31,0x3c0);outb((i),0x3c0);}
#else
#define rtrc(i) {}
#endif
#endif
/* __QLOGICFAS_H */
#define get_priv_by_cmd(x) (struct qlogicfas408_priv *)&((x)->device->host->hostdata[0])
#define get_priv_by_host(x) (struct qlogicfas408_priv *)&((x)->hostdata[0])
irqreturn_t
qlogicfas408_ihandl
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
);
int
qlogicfas408_queuecommand
(
Scsi_Cmnd
*
cmd
,
void
(
*
done
)
(
Scsi_Cmnd
*
));
int
qlogicfas408_biosparam
(
struct
scsi_device
*
disk
,
struct
block_device
*
dev
,
sector_t
capacity
,
int
ip
[]);
int
qlogicfas408_abort
(
Scsi_Cmnd
*
cmd
);
int
qlogicfas408_bus_reset
(
Scsi_Cmnd
*
cmd
);
int
qlogicfas408_host_reset
(
Scsi_Cmnd
*
cmd
);
int
qlogicfas408_device_reset
(
Scsi_Cmnd
*
cmd
);
char
*
qlogicfas408_info
(
struct
Scsi_Host
*
host
);
int
qlogicfas408_get_chip_type
(
int
qbase
,
int
int_type
);
void
qlogicfas408_setup
(
int
qbase
,
int
id
,
int
int_type
);
int
qlogicfas408_detect
(
int
qbase
,
int
int_type
);
void
qlogicfas408_disable_ints
(
struct
qlogicfas408_priv
*
priv
);
#endif
/* __QLOGICFAS408_H */
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