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
Kirill Smelkov
linux
Commits
6a1d9652
Commit
6a1d9652
authored
Jul 01, 2003
by
Martin Schwidefsky
Committed by
Linus Torvalds
Jul 01, 2003
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[PATCH] s390: thin interrupts.
Add thin interrupt support to qdio.
parent
572929c0
Changes
2
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
416 additions
and
339 deletions
+416
-339
drivers/s390/cio/qdio.c
drivers/s390/cio/qdio.c
+401
-335
drivers/s390/cio/qdio.h
drivers/s390/cio/qdio.h
+15
-4
No files found.
drivers/s390/cio/qdio.c
View file @
6a1d9652
This diff is collapsed.
Click to expand it.
drivers/s390/cio/qdio.h
View file @
6a1d9652
#ifndef _CIO_QDIO_H
#ifndef _CIO_QDIO_H
#define _CIO_QDIO_H
#define _CIO_QDIO_H
#define VERSION_CIO_QDIO_H "$Revision: 1.1
7
$"
#define VERSION_CIO_QDIO_H "$Revision: 1.1
8
$"
//#define QDIO_DBF_LIKE_HELL
//#define QDIO_DBF_LIKE_HELL
...
@@ -31,8 +31,8 @@
...
@@ -31,8 +31,8 @@
*/
*/
#define IQDIO_FILL_LEVEL_TO_POLL 4
#define IQDIO_FILL_LEVEL_TO_POLL 4
#define IQDIO_THININT_ISC 3
#define
T
IQDIO_THININT_ISC 3
#define IQDIO_DELAY_TARGET 0
#define
T
IQDIO_DELAY_TARGET 0
#define QDIO_BUSY_BIT_PATIENCE 2000
/* in microsecs */
#define QDIO_BUSY_BIT_PATIENCE 2000
/* in microsecs */
#define IQDIO_GLOBAL_LAPS 2
/* GLOBAL_LAPS are not used as we */
#define IQDIO_GLOBAL_LAPS 2
/* GLOBAL_LAPS are not used as we */
#define IQDIO_GLOBAL_LAPS_INT 1
/* don't global summary */
#define IQDIO_GLOBAL_LAPS_INT 1
/* don't global summary */
...
@@ -473,7 +473,13 @@ struct qdio_perf_stats {
...
@@ -473,7 +473,13 @@ struct qdio_perf_stats {
#define atomic_swap(a,b) xchg((int*)a.counter,b)
#define atomic_swap(a,b) xchg((int*)a.counter,b)
#define SYNC_MEMORY if (q->siga_sync) qdio_siga_sync(q)
/* unlikely as the later the better */
#define SYNC_MEMORY if (unlikely(q->siga_sync)) qdio_siga_sync_q(q)
#define SYNC_MEMORY_ALL if (unlikely(q->siga_sync)) \
qdio_siga_sync(q,~0U,~0U)
#define SYNC_MEMORY_ALL_OUTB if (unlikely(q->siga_sync)) \
qdio_siga_sync(q,~0U,0)
#define NOW qdio_get_micros()
#define NOW qdio_get_micros()
#define SAVE_TIMESTAMP(q) q->timing.last_transfer_time=NOW
#define SAVE_TIMESTAMP(q) q->timing.last_transfer_time=NOW
#define GET_SAVED_TIMESTAMP(q) (q->timing.last_transfer_time)
#define GET_SAVED_TIMESTAMP(q) (q->timing.last_transfer_time)
...
@@ -519,6 +525,7 @@ struct qdio_q {
...
@@ -519,6 +525,7 @@ struct qdio_q {
struct
ccw_device
*
cdev
;
struct
ccw_device
*
cdev
;
unsigned
int
is_iqdio_q
;
unsigned
int
is_iqdio_q
;
unsigned
int
is_thinint_q
;
/* bit 0 means queue 0, bit 1 means queue 1, ... */
/* bit 0 means queue 0, bit 1 means queue 1, ... */
unsigned
int
mask
;
unsigned
int
mask
;
...
@@ -540,6 +547,7 @@ struct qdio_q {
...
@@ -540,6 +547,7 @@ struct qdio_q {
unsigned
int
siga_out
;
unsigned
int
siga_out
;
unsigned
int
siga_sync
;
unsigned
int
siga_sync
;
unsigned
int
siga_sync_done_on_thinints
;
unsigned
int
siga_sync_done_on_thinints
;
unsigned
int
siga_sync_done_on_outb_tis
;
unsigned
int
hydra_gives_outbound_pcis
;
unsigned
int
hydra_gives_outbound_pcis
;
/* used to save beginning position when calling dd_handlers */
/* used to save beginning position when calling dd_handlers */
...
@@ -548,6 +556,8 @@ struct qdio_q {
...
@@ -548,6 +556,8 @@ struct qdio_q {
atomic_t
use_count
;
atomic_t
use_count
;
atomic_t
is_in_shutdown
;
atomic_t
is_in_shutdown
;
void
*
irq_ptr
;
#ifdef QDIO_USE_TIMERS_FOR_POLLING
#ifdef QDIO_USE_TIMERS_FOR_POLLING
struct
timer_list
timer
;
struct
timer_list
timer
;
atomic_t
timer_already_set
;
atomic_t
timer_already_set
;
...
@@ -604,6 +614,7 @@ struct qdio_irq {
...
@@ -604,6 +614,7 @@ struct qdio_irq {
int
irq
;
int
irq
;
unsigned
int
is_iqdio_irq
;
unsigned
int
is_iqdio_irq
;
unsigned
int
is_thinint_irq
;
unsigned
int
hydra_gives_outbound_pcis
;
unsigned
int
hydra_gives_outbound_pcis
;
unsigned
int
sync_done_on_outb_pcis
;
unsigned
int
sync_done_on_outb_pcis
;
...
...
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