static SIMPLE_DEV_PM_OPS(pl011_dev_pm_ops, pl011_suspend, pl011_resume);
 
+#ifdef CONFIG_ACPI_SPCR_TABLE
+static void qpdf2400_erratum44_workaround(struct device *dev,
+                                         struct uart_amba_port *uap)
+{
+       if (!qdf2400_e44_present)
+               return;
+
+       dev_info(dev, "working around QDF2400 SoC erratum 44\n");
+       uap->vendor = &vendor_qdt_qdf2400_e44;
+}
+#else
+static void qpdf2400_erratum44_workaround(struct device *dev,
+                                         struct uart_amba_port *uap)
+{ /* empty */ }
+#endif
+
 static int sbsa_uart_probe(struct platform_device *pdev)
 {
        struct uart_amba_port *uap;
                return ret;
        uap->port.irq   = ret;
 
-#ifdef CONFIG_ACPI_SPCR_TABLE
-       if (qdf2400_e44_present) {
-               dev_info(&pdev->dev, "working around QDF2400 SoC erratum 44\n");
-               uap->vendor = &vendor_qdt_qdf2400_e44;
-       } else
-#endif
-               uap->vendor = &vendor_sbsa;
+       uap->vendor = &vendor_sbsa;
+       qpdf2400_erratum44_workaround(&pdev->dev, uap);
 
        uap->reg_offset = uap->vendor->reg_offset;
        uap->fifosize   = 32;