s390/net: remove pm ops from ccwgroup drivers
authorJulian Wiedmann <jwi@linux.ibm.com>
Tue, 19 May 2020 19:09:03 +0000 (21:09 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 19 May 2020 19:48:39 +0000 (12:48 -0700)
commit 5e1fb45ec8e2 ("s390/ccwgroup: remove pm support") removed power
management support from the ccwgroup bus driver. So remove the
associated callbacks from all ccwgroup drivers.

CC: Vineeth Vijayan <vneethv@linux.ibm.com>
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/s390/include/asm/ccwgroup.h
drivers/s390/net/ctcm_main.c
drivers/s390/net/lcs.c
drivers/s390/net/qeth_core_main.c

index 7293c13..ad3acb1 100644 (file)
@@ -36,11 +36,6 @@ struct ccwgroup_device {
  * @set_online: function called when device is set online
  * @set_offline: function called when device is set offline
  * @shutdown: function called when device is shut down
- * @prepare: prepare for pm state transition
- * @complete: undo work done in @prepare
- * @freeze: callback for freezing during hibernation snapshotting
- * @thaw: undo work done in @freeze
- * @restore: callback for restoring after hibernation
  * @driver: embedded driver structure
  * @ccw_driver: supported ccw_driver (optional)
  */
@@ -50,11 +45,6 @@ struct ccwgroup_driver {
        int (*set_online) (struct ccwgroup_device *);
        int (*set_offline) (struct ccwgroup_device *);
        void (*shutdown)(struct ccwgroup_device *);
-       int (*prepare) (struct ccwgroup_device *);
-       void (*complete) (struct ccwgroup_device *);
-       int (*freeze)(struct ccwgroup_device *);
-       int (*thaw) (struct ccwgroup_device *);
-       int (*restore)(struct ccwgroup_device *);
 
        struct device_driver driver;
        struct ccw_driver *ccw_driver;
index 437a6d8..d06809e 100644 (file)
@@ -1698,43 +1698,6 @@ static void ctcm_remove_device(struct ccwgroup_device *cgdev)
        put_device(&cgdev->dev);
 }
 
-static int ctcm_pm_suspend(struct ccwgroup_device *gdev)
-{
-       struct ctcm_priv *priv = dev_get_drvdata(&gdev->dev);
-
-       if (gdev->state == CCWGROUP_OFFLINE)
-               return 0;
-       netif_device_detach(priv->channel[CTCM_READ]->netdev);
-       ctcm_close(priv->channel[CTCM_READ]->netdev);
-       if (!wait_event_timeout(priv->fsm->wait_q,
-           fsm_getstate(priv->fsm) == DEV_STATE_STOPPED, CTCM_TIME_5_SEC)) {
-               netif_device_attach(priv->channel[CTCM_READ]->netdev);
-               return -EBUSY;
-       }
-       ccw_device_set_offline(gdev->cdev[1]);
-       ccw_device_set_offline(gdev->cdev[0]);
-       return 0;
-}
-
-static int ctcm_pm_resume(struct ccwgroup_device *gdev)
-{
-       struct ctcm_priv *priv = dev_get_drvdata(&gdev->dev);
-       int rc;
-
-       if (gdev->state == CCWGROUP_OFFLINE)
-               return 0;
-       rc = ccw_device_set_online(gdev->cdev[1]);
-       if (rc)
-               goto err_out;
-       rc = ccw_device_set_online(gdev->cdev[0]);
-       if (rc)
-               goto err_out;
-       ctcm_open(priv->channel[CTCM_READ]->netdev);
-err_out:
-       netif_device_attach(priv->channel[CTCM_READ]->netdev);
-       return rc;
-}
-
 static struct ccw_device_id ctcm_ids[] = {
        {CCW_DEVICE(0x3088, 0x08), .driver_info = ctcm_channel_type_parallel},
        {CCW_DEVICE(0x3088, 0x1e), .driver_info = ctcm_channel_type_ficon},
@@ -1764,9 +1727,6 @@ static struct ccwgroup_driver ctcm_group_driver = {
        .remove      = ctcm_remove_device,
        .set_online  = ctcm_new_device,
        .set_offline = ctcm_shutdown_device,
-       .freeze      = ctcm_pm_suspend,
-       .thaw        = ctcm_pm_resume,
-       .restore     = ctcm_pm_resume,
 };
 
 static ssize_t group_store(struct device_driver *ddrv, const char *buf,
index 8f08b0a..440219b 100644 (file)
@@ -2296,60 +2296,6 @@ lcs_remove_device(struct ccwgroup_device *ccwgdev)
        put_device(&ccwgdev->dev);
 }
 
-static int lcs_pm_suspend(struct lcs_card *card)
-{
-       if (card->dev)
-               netif_device_detach(card->dev);
-       lcs_set_allowed_threads(card, 0);
-       lcs_wait_for_threads(card, 0xffffffff);
-       if (card->state != DEV_STATE_DOWN)
-               __lcs_shutdown_device(card->gdev, 1);
-       return 0;
-}
-
-static int lcs_pm_resume(struct lcs_card *card)
-{
-       int rc = 0;
-
-       if (card->state == DEV_STATE_RECOVER)
-               rc = lcs_new_device(card->gdev);
-       if (card->dev)
-               netif_device_attach(card->dev);
-       if (rc) {
-               dev_warn(&card->gdev->dev, "The lcs device driver "
-                       "failed to recover the device\n");
-       }
-       return rc;
-}
-
-static int lcs_prepare(struct ccwgroup_device *gdev)
-{
-       return 0;
-}
-
-static void lcs_complete(struct ccwgroup_device *gdev)
-{
-       return;
-}
-
-static int lcs_freeze(struct ccwgroup_device *gdev)
-{
-       struct lcs_card *card = dev_get_drvdata(&gdev->dev);
-       return lcs_pm_suspend(card);
-}
-
-static int lcs_thaw(struct ccwgroup_device *gdev)
-{
-       struct lcs_card *card = dev_get_drvdata(&gdev->dev);
-       return lcs_pm_resume(card);
-}
-
-static int lcs_restore(struct ccwgroup_device *gdev)
-{
-       struct lcs_card *card = dev_get_drvdata(&gdev->dev);
-       return lcs_pm_resume(card);
-}
-
 static struct ccw_device_id lcs_ids[] = {
        {CCW_DEVICE(0x3088, 0x08), .driver_info = lcs_channel_type_parallel},
        {CCW_DEVICE(0x3088, 0x1f), .driver_info = lcs_channel_type_2216},
@@ -2382,11 +2328,6 @@ static struct ccwgroup_driver lcs_group_driver = {
        .remove      = lcs_remove_device,
        .set_online  = lcs_new_device,
        .set_offline = lcs_shutdown_device,
-       .prepare     = lcs_prepare,
-       .complete    = lcs_complete,
-       .freeze      = lcs_freeze,
-       .thaw        = lcs_thaw,
-       .restore     = lcs_restore,
 };
 
 static ssize_t group_store(struct device_driver *ddrv, const char *buf,
index db8e069..18a0fb7 100644 (file)
@@ -6434,32 +6434,6 @@ static void qeth_core_shutdown(struct ccwgroup_device *gdev)
        qdio_free(CARD_DDEV(card));
 }
 
-static int qeth_suspend(struct ccwgroup_device *gdev)
-{
-       struct qeth_card *card = dev_get_drvdata(&gdev->dev);
-
-       qeth_set_allowed_threads(card, 0, 1);
-       wait_event(card->wait_q, qeth_threads_running(card, 0xffffffff) == 0);
-       if (gdev->state == CCWGROUP_OFFLINE)
-               return 0;
-
-       qeth_set_offline(card, false);
-       return 0;
-}
-
-static int qeth_resume(struct ccwgroup_device *gdev)
-{
-       struct qeth_card *card = dev_get_drvdata(&gdev->dev);
-       int rc;
-
-       rc = qeth_set_online(card);
-
-       qeth_set_allowed_threads(card, 0xffffffff, 0);
-       if (rc)
-               dev_warn(&card->gdev->dev, "The qeth device driver failed to recover an error on the device\n");
-       return rc;
-}
-
 static ssize_t group_store(struct device_driver *ddrv, const char *buf,
                           size_t count)
 {
@@ -6496,11 +6470,6 @@ static struct ccwgroup_driver qeth_core_ccwgroup_driver = {
        .set_online = qeth_core_set_online,
        .set_offline = qeth_core_set_offline,
        .shutdown = qeth_core_shutdown,
-       .prepare = NULL,
-       .complete = NULL,
-       .freeze = qeth_suspend,
-       .thaw = qeth_resume,
-       .restore = qeth_resume,
 };
 
 struct qeth_card *qeth_get_card_by_busid(char *bus_id)