diff options
Diffstat (limited to 'drivers/s390/scsi/zfcp_ccw.c')
-rw-r--r-- | drivers/s390/scsi/zfcp_ccw.c | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/drivers/s390/scsi/zfcp_ccw.c b/drivers/s390/scsi/zfcp_ccw.c index 733fe3bf628..b2fe5cdbcae 100644 --- a/drivers/s390/scsi/zfcp_ccw.c +++ b/drivers/s390/scsi/zfcp_ccw.c | |||
@@ -11,6 +11,24 @@ | |||
11 | 11 | ||
12 | #include "zfcp_ext.h" | 12 | #include "zfcp_ext.h" |
13 | 13 | ||
14 | #define ZFCP_MODEL_PRIV 0x4 | ||
15 | |||
16 | static struct ccw_device_id zfcp_ccw_device_id[] = { | ||
17 | { CCW_DEVICE_DEVTYPE(0x1731, 0x3, 0x1732, 0x3) }, | ||
18 | { CCW_DEVICE_DEVTYPE(0x1731, 0x3, 0x1732, ZFCP_MODEL_PRIV) }, | ||
19 | {}, | ||
20 | }; | ||
21 | MODULE_DEVICE_TABLE(ccw, zfcp_ccw_device_id); | ||
22 | |||
23 | /** | ||
24 | * zfcp_ccw_priv_sch - check if subchannel is privileged | ||
25 | * @adapter: Adapter/Subchannel to check | ||
26 | */ | ||
27 | int zfcp_ccw_priv_sch(struct zfcp_adapter *adapter) | ||
28 | { | ||
29 | return adapter->ccw_device->id.dev_model == ZFCP_MODEL_PRIV; | ||
30 | } | ||
31 | |||
14 | /** | 32 | /** |
15 | * zfcp_ccw_probe - probe function of zfcp driver | 33 | * zfcp_ccw_probe - probe function of zfcp driver |
16 | * @ccw_device: pointer to belonging ccw device | 34 | * @ccw_device: pointer to belonging ccw device |
@@ -176,8 +194,8 @@ static int zfcp_ccw_notify(struct ccw_device *ccw_device, int event) | |||
176 | "ccnoti4", NULL); | 194 | "ccnoti4", NULL); |
177 | break; | 195 | break; |
178 | case CIO_BOXED: | 196 | case CIO_BOXED: |
179 | dev_warn(&adapter->ccw_device->dev, | 197 | dev_warn(&adapter->ccw_device->dev, "The FCP device " |
180 | "The ccw device did not respond in time.\n"); | 198 | "did not respond within the specified time\n"); |
181 | zfcp_erp_adapter_shutdown(adapter, 0, "ccnoti5", NULL); | 199 | zfcp_erp_adapter_shutdown(adapter, 0, "ccnoti5", NULL); |
182 | break; | 200 | break; |
183 | } | 201 | } |
@@ -199,14 +217,6 @@ static void zfcp_ccw_shutdown(struct ccw_device *cdev) | |||
199 | up(&zfcp_data.config_sema); | 217 | up(&zfcp_data.config_sema); |
200 | } | 218 | } |
201 | 219 | ||
202 | static struct ccw_device_id zfcp_ccw_device_id[] = { | ||
203 | { CCW_DEVICE_DEVTYPE(0x1731, 0x3, 0x1732, 0x3) }, | ||
204 | { CCW_DEVICE_DEVTYPE(0x1731, 0x3, 0x1732, 0x4) }, /* priv. */ | ||
205 | {}, | ||
206 | }; | ||
207 | |||
208 | MODULE_DEVICE_TABLE(ccw, zfcp_ccw_device_id); | ||
209 | |||
210 | static struct ccw_driver zfcp_ccw_driver = { | 220 | static struct ccw_driver zfcp_ccw_driver = { |
211 | .owner = THIS_MODULE, | 221 | .owner = THIS_MODULE, |
212 | .name = "zfcp", | 222 | .name = "zfcp", |