s390/scm: process availability

Let the bus code process scm availability information and
notify scm device drivers about the new state.

Reviewed-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
diff --git a/drivers/s390/block/scm_drv.c b/drivers/s390/block/scm_drv.c
index ff8558c..5f6180d 100644
--- a/drivers/s390/block/scm_drv.c
+++ b/drivers/s390/block/scm_drv.c
@@ -15,6 +15,8 @@
 
 static void scm_notify(struct scm_device *scmdev, enum scm_event event)
 {
+	struct scm_blk_dev *bdev = dev_get_drvdata(&scmdev->dev);
+
 	switch (event) {
 	case SCM_CHANGE:
 		pr_info("%lu: The capabilities of the SCM increment changed\n",
@@ -22,6 +24,11 @@
 		SCM_LOG(2, "State changed");
 		SCM_LOG_STATE(2, scmdev);
 		break;
+	case SCM_AVAIL:
+		SCM_LOG(2, "Increment available");
+		SCM_LOG_STATE(2, scmdev);
+		scm_blk_set_available(bdev);
+		break;
 	}
 }