Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/agpgart
[linux-2.6] / drivers / s390 / block / dasd_9336_erp.c
1 /* 
2  * File...........: linux/drivers/s390/block/dasd_9336_erp.c
3  * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
4  * Bugreports.to..: <Linux390@de.ibm.com>
5  * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 2000
6  *
7  */
8
9 #define PRINTK_HEADER "dasd_erp(9336)"
10
11 #include "dasd_int.h"
12
13
14 /*
15  * DASD_9336_ERP_EXAMINE 
16  *
17  * DESCRIPTION
18  *   Checks only for fatal/no/recover error. 
19  *   A detailed examination of the sense data is done later outside
20  *   the interrupt handler.
21  *
22  *   The logic is based on the 'IBM 3880 Storage Control Reference' manual
23  *   'Chapter 7. 9336 Sense Data'.
24  *
25  * RETURN VALUES
26  *   dasd_era_none      no error 
27  *   dasd_era_fatal     for all fatal (unrecoverable errors)
28  *   dasd_era_recover   for all others.
29  */
30 dasd_era_t
31 dasd_9336_erp_examine(struct dasd_ccw_req * cqr, struct irb * irb)
32 {
33         /* check for successful execution first */
34         if (irb->scsw.cstat == 0x00 &&
35             irb->scsw.dstat == (DEV_STAT_CHN_END | DEV_STAT_DEV_END))
36                 return dasd_era_none;
37
38         /* examine the 24 byte sense data */
39         return dasd_era_recover;
40
41 }                               /* END dasd_9336_erp_examine */
42
43 /*
44  * Overrides for Emacs so that we follow Linus's tabbing style.
45  * Emacs will notice this stuff at the end of the file and automatically
46  * adjust the settings for this buffer only.  This must remain at the end
47  * of the file.
48  * ---------------------------------------------------------------------------
49  * Local variables:
50  * c-indent-level: 4 
51  * c-brace-imaginary-offset: 0
52  * c-brace-offset: -4
53  * c-argdecl-indent: 4
54  * c-label-offset: -4
55  * c-continued-statement-offset: 4
56  * c-continued-brace-offset: 0
57  * indent-tabs-mode: 1
58  * tab-width: 8
59  * End:
60  */