Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
[linux-2.6-microblaze.git] / drivers / spi / spi-topcliff-pch.c
index d7ea6af..6df2aef 100644 (file)
@@ -122,6 +122,7 @@ struct pch_spi_dma_ctrl {
 /**
  * struct pch_spi_data - Holds the SPI channel specific details
  * @io_remap_addr:             The remapped PCI base address
+ * @io_base_addr:              Base address
  * @master:                    Pointer to the SPI master structure
  * @work:                      Reference to work queue handler
  * @wait:                      Wait queue for waking up upon receiving an
@@ -138,8 +139,8 @@ struct pch_spi_dma_ctrl {
  *                             transfer
  * @rx_index:                  Receive data count; for bookkeeping during
  *                             transfer
- * @tx_buff:                   Buffer for data to be transmitted
- * @rx_index:                  Buffer for Received data
+ * @pkt_tx_buff:               Buffer for data to be transmitted
+ * @pkt_rx_buff:               Buffer for received data
  * @n_curnt_chip:              The chip number that this SPI driver currently
  *                             operates on
  * @current_chip:              Reference to the current chip that this SPI
@@ -151,7 +152,10 @@ struct pch_spi_dma_ctrl {
  * @board_dat:                 Reference to the SPI device data structure
  * @plat_dev:                  platform_device structure
  * @ch:                                SPI channel number
+ * @dma:                       Local DMA information
+ * @use_dma:                   True if DMA is to be used
  * @irq_reg_sts:               Status of IRQ registration
+ * @save_total_len:            Save length while data is being transferred
  */
 struct pch_spi_data {
        void __iomem *io_remap_addr;
@@ -1631,64 +1635,37 @@ static void pch_spi_remove(struct pci_dev *pdev)
        kfree(pd_dev_save);
 }
 
-#ifdef CONFIG_PM
-static int pch_spi_suspend(struct pci_dev *pdev, pm_message_t state)
+static int __maybe_unused pch_spi_suspend(struct device *dev)
 {
-       int retval;
-       struct pch_pd_dev_save *pd_dev_save = pci_get_drvdata(pdev);
+       struct pch_pd_dev_save *pd_dev_save = dev_get_drvdata(dev);
 
-       dev_dbg(&pdev->dev, "%s ENTRY\n", __func__);
+       dev_dbg(dev, "%s ENTRY\n", __func__);
 
        pd_dev_save->board_dat->suspend_sts = true;
 
-       /* save config space */
-       retval = pci_save_state(pdev);
-       if (retval == 0) {
-               pci_enable_wake(pdev, PCI_D3hot, 0);
-               pci_disable_device(pdev);
-               pci_set_power_state(pdev, PCI_D3hot);
-       } else {
-               dev_err(&pdev->dev, "%s pci_save_state failed\n", __func__);
-       }
-
-       return retval;
+       return 0;
 }
 
-static int pch_spi_resume(struct pci_dev *pdev)
+static int __maybe_unused pch_spi_resume(struct device *dev)
 {
-       int retval;
-       struct pch_pd_dev_save *pd_dev_save = pci_get_drvdata(pdev);
-       dev_dbg(&pdev->dev, "%s ENTRY\n", __func__);
+       struct pch_pd_dev_save *pd_dev_save = dev_get_drvdata(dev);
 
-       pci_set_power_state(pdev, PCI_D0);
-       pci_restore_state(pdev);
+       dev_dbg(dev, "%s ENTRY\n", __func__);
 
-       retval = pci_enable_device(pdev);
-       if (retval < 0) {
-               dev_err(&pdev->dev,
-                       "%s pci_enable_device failed\n", __func__);
-       } else {
-               pci_enable_wake(pdev, PCI_D3hot, 0);
-
-               /* set suspend status to false */
-               pd_dev_save->board_dat->suspend_sts = false;
-       }
+       /* set suspend status to false */
+       pd_dev_save->board_dat->suspend_sts = false;
 
-       return retval;
+       return 0;
 }
-#else
-#define pch_spi_suspend NULL
-#define pch_spi_resume NULL
 
-#endif
+static SIMPLE_DEV_PM_OPS(pch_spi_pm_ops, pch_spi_suspend, pch_spi_resume);
 
 static struct pci_driver pch_spi_pcidev_driver = {
        .name = "pch_spi",
        .id_table = pch_spi_pcidev_id,
        .probe = pch_spi_probe,
        .remove = pch_spi_remove,
-       .suspend = pch_spi_suspend,
-       .resume = pch_spi_resume,
+       .driver.pm = &pch_spi_pm_ops,
 };
 
 static int __init pch_spi_init(void)