diff --git a/drivers/ata/Makefile b/drivers/ata/Makefile
index 6bbd6da..e20148c 100644
--- a/drivers/ata/Makefile
+++ b/drivers/ata/Makefile
@@ -5,7 +5,6 @@
 obj-$(CONFIG_SATA_AHCI)		+= ahci.o libahci.o
 obj-$(CONFIG_SATA_ACARD_AHCI)	+= acard-ahci.o libahci.o
 obj-$(CONFIG_SATA_AHCI_PLATFORM) += ahci_platform.o libahci.o
-obj-$(CONFIG_SATA_AHCI_ST)      += ahci_st.o
 obj-$(CONFIG_SATA_FSL)		+= sata_fsl.o
 obj-$(CONFIG_SATA_INIC162X)	+= sata_inic162x.o
 obj-$(CONFIG_SATA_SIL24)	+= sata_sil24.o
@@ -13,6 +12,7 @@
 obj-$(CONFIG_SATA_HIGHBANK)	+= sata_highbank.o libahci.o
 obj-$(CONFIG_AHCI_IMX)		+= ahci_imx.o
 obj-$(CONFIG_AHCI_SUNXI)	+= ahci_sunxi.o
+obj-$(CONFIG_AHCI_ST)		+= ahci_st.o
 
 # SFF w/ custom DMA
 obj-$(CONFIG_PDC_ADMA)		+= pdc_adma.o
diff --git a/drivers/ata/ahci_st.c b/drivers/ata/ahci_st.c
index 17191b9..e1aa544 100644
--- a/drivers/ata/ahci_st.c
+++ b/drivers/ata/ahci_st.c
@@ -87,7 +87,7 @@
 	return 0;
 }
 
-static int st_ahci_exit(struct device *dev)
+static void st_ahci_exit(struct device *dev)
 {
 	struct st_ahci_drv_data *drv_data = dev_get_drvdata(dev);
 	struct ahci_host_priv *hpriv = drv_data->hpriv;
@@ -96,12 +96,10 @@
 	if (drv_data->pwr) {
 		err = reset_control_assert(drv_data->pwr);
 		if (err)
-			dev_err(&pdev->dev, "unable to pwrdwn\n");
+			dev_err(dev, "unable to pwrdwn\n");
 	}
 
 	ahci_platform_disable_resources(hpriv);
-
-	return 0;
 }
 
 static int st_ahci_probe_resets(struct platform_device *pdev)
@@ -186,9 +184,9 @@
 	struct ahci_host_priv *hpriv = drv_data->hpriv;
 	int err;
 
-	ret = ahci_platform_suspend_host(dev);
-	if (ret)
-		return ret;
+	err = ahci_platform_suspend_host(dev);
+	if (err)
+		return err;
 
 	if (drv_data->pwr) {
 		err = reset_control_assert(drv_data->pwr);
