diff options
Diffstat (limited to 'drivers/ufs/core')
| -rw-r--r-- | drivers/ufs/core/ufshcd.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index 80c0b49f30b0..78669c205568 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -10525,9 +10525,8 @@ int ufshcd_runtime_resume(struct device *dev) EXPORT_SYMBOL(ufshcd_runtime_resume); #endif /* CONFIG_PM */ -static void ufshcd_wl_shutdown(struct device *dev) +static void ufshcd_wl_shutdown(struct scsi_device *sdev) { - struct scsi_device *sdev = to_scsi_device(dev); struct ufs_hba *hba = shost_priv(sdev->host); down(&hba->host_sem); @@ -11133,9 +11132,9 @@ static int ufshcd_wl_poweroff(struct device *dev) } #endif -static int ufshcd_wl_probe(struct device *dev) +static int ufshcd_wl_probe(struct scsi_device *sdev) { - struct scsi_device *sdev = to_scsi_device(dev); + struct device *dev = &sdev->sdev_gendev; if (!is_device_wlun(sdev)) return -ENODEV; @@ -11147,10 +11146,11 @@ static int ufshcd_wl_probe(struct device *dev) return 0; } -static int ufshcd_wl_remove(struct device *dev) +static void ufshcd_wl_remove(struct scsi_device *sdev) { + struct device *dev = &sdev->sdev_gendev; + pm_runtime_forbid(dev); - return 0; } static const struct dev_pm_ops ufshcd_wl_pm_ops = { @@ -11223,12 +11223,12 @@ static void ufshcd_check_header_layout(void) * Hence register a scsi driver for ufs wluns only. */ static struct scsi_driver ufs_dev_wlun_template = { + .probe = ufshcd_wl_probe, + .remove = ufshcd_wl_remove, + .shutdown = ufshcd_wl_shutdown, .gendrv = { .name = "ufs_device_wlun", - .probe = ufshcd_wl_probe, - .remove = ufshcd_wl_remove, .pm = &ufshcd_wl_pm_ops, - .shutdown = ufshcd_wl_shutdown, }, }; @@ -11240,7 +11240,7 @@ static int __init ufshcd_core_init(void) ufs_debugfs_init(); - ret = scsi_register_driver(&ufs_dev_wlun_template.gendrv); + ret = scsi_register_driver(&ufs_dev_wlun_template); if (ret) ufs_debugfs_exit(); return ret; @@ -11249,7 +11249,7 @@ static int __init ufshcd_core_init(void) static void __exit ufshcd_core_exit(void) { ufs_debugfs_exit(); - scsi_unregister_driver(&ufs_dev_wlun_template.gendrv); + scsi_unregister_driver(&ufs_dev_wlun_template); } module_init(ufshcd_core_init); |
