s390/qeth: consolidate pm code
De-duplicate the pm callback implementations from the two sub-drivers, replacing them with core helpers that delegate to the .set_online and .set_offline callbacks. Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
d4c08afafa
commit
c4733c32ca
@@ -2500,33 +2500,6 @@ static int qeth_l3_recover(void *ptr)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int qeth_l3_pm_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_l3_set_offline(gdev);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int qeth_l3_pm_resume(struct ccwgroup_device *gdev)
|
||||
{
|
||||
struct qeth_card *card = dev_get_drvdata(&gdev->dev);
|
||||
int rc;
|
||||
|
||||
rc = qeth_l3_set_online(gdev);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
/* Returns zero if the command is successfully "consumed" */
|
||||
static int qeth_l3_control_event(struct qeth_card *card,
|
||||
struct qeth_ipa_cmd *cmd)
|
||||
@@ -2542,9 +2515,6 @@ struct qeth_discipline qeth_l3_discipline = {
|
||||
.remove = qeth_l3_remove_device,
|
||||
.set_online = qeth_l3_set_online,
|
||||
.set_offline = qeth_l3_set_offline,
|
||||
.freeze = qeth_l3_pm_suspend,
|
||||
.thaw = qeth_l3_pm_resume,
|
||||
.restore = qeth_l3_pm_resume,
|
||||
.do_ioctl = qeth_l3_do_ioctl,
|
||||
.control_event_handler = qeth_l3_control_event,
|
||||
};
|
||||
|
Reference in New Issue
Block a user