hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/drivers/slimbus/qcom-ctrl.c
....@@ -472,15 +472,10 @@
472472 static void qcom_slim_prg_slew(struct platform_device *pdev,
473473 struct qcom_slim_ctrl *ctrl)
474474 {
475
- struct resource *slew_mem;
476
-
477475 if (!ctrl->slew_reg) {
478476 /* SLEW RATE register for this SLIMbus */
479
- slew_mem = platform_get_resource_byname(pdev, IORESOURCE_MEM,
480
- "slew");
481
- ctrl->slew_reg = devm_ioremap(&pdev->dev, slew_mem->start,
482
- resource_size(slew_mem));
483
- if (!ctrl->slew_reg)
477
+ ctrl->slew_reg = devm_platform_ioremap_resource_byname(pdev, "slew");
478
+ if (IS_ERR(ctrl->slew_reg))
484479 return;
485480 }
486481
....@@ -515,9 +510,9 @@
515510 }
516511
517512 ctrl->irq = platform_get_irq(pdev, 0);
518
- if (!ctrl->irq) {
513
+ if (ctrl->irq < 0) {
519514 dev_err(&pdev->dev, "no slimbus IRQ\n");
520
- return -ENODEV;
515
+ return ctrl->irq;
521516 }
522517
523518 sctrl = &ctrl->ctrl;
....@@ -528,10 +523,8 @@
528523
529524 slim_mem = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ctrl");
530525 ctrl->base = devm_ioremap_resource(ctrl->dev, slim_mem);
531
- if (IS_ERR(ctrl->base)) {
532
- dev_err(&pdev->dev, "IOremap failed\n");
526
+ if (IS_ERR(ctrl->base))
533527 return PTR_ERR(ctrl->base);
534
- }
535528
536529 sctrl->set_laddr = qcom_set_laddr;
537530 sctrl->xfer_msg = qcom_xfer_msg;
....@@ -643,6 +636,8 @@
643636
644637 pm_runtime_disable(&pdev->dev);
645638 slim_unregister_controller(&ctrl->ctrl);
639
+ clk_disable_unprepare(ctrl->rclk);
640
+ clk_disable_unprepare(ctrl->hclk);
646641 destroy_workqueue(ctrl->rxwq);
647642 return 0;
648643 }
....@@ -654,8 +649,7 @@
654649 #ifdef CONFIG_PM
655650 static int qcom_slim_runtime_suspend(struct device *device)
656651 {
657
- struct platform_device *pdev = to_platform_device(device);
658
- struct qcom_slim_ctrl *ctrl = platform_get_drvdata(pdev);
652
+ struct qcom_slim_ctrl *ctrl = dev_get_drvdata(device);
659653 int ret;
660654
661655 dev_dbg(device, "pm_runtime: suspending...\n");
....@@ -672,8 +666,7 @@
672666
673667 static int qcom_slim_runtime_resume(struct device *device)
674668 {
675
- struct platform_device *pdev = to_platform_device(device);
676
- struct qcom_slim_ctrl *ctrl = platform_get_drvdata(pdev);
669
+ struct qcom_slim_ctrl *ctrl = dev_get_drvdata(device);
677670 int ret = 0;
678671
679672 dev_dbg(device, "pm_runtime: resuming...\n");