On 12/2/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> From: Saeed Bishara <[EMAIL PROTECTED]>
>
> The integrated SATA controller is connected directly to the SoC's
> internal bus, not via PCI interface. this patch removes the dependency
> on the PCI interface.
>
> Signed-off-by: Saeed Bishara <[EMAIL PROTECTED]>
> ---
>  drivers/ata/Kconfig   |    2 +-
>  drivers/ata/sata_mv.c |  113
> ++++++++++++++++++++++++++++++-------------------
>  2 files changed, 71 insertions(+), 44 deletions(-)
>
> diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
> index ba63619..c60842b 100644
> --- a/drivers/ata/Kconfig
> +++ b/drivers/ata/Kconfig
> @@ -69,7 +69,7 @@ config ATA_PIIX
>
>  config SATA_MV
>       tristate "Marvell SATA support (HIGHLY EXPERIMENTAL)"
> -     depends on PCI && EXPERIMENTAL
> +     depends on EXPERIMENTAL
>       help
>         This option enables support for the Marvell Serial ATA family.
>         Currently supports 88SX[56]0[48][01] chips.
> diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
> index 97c3e11..cbd3f1b 100644
> --- a/drivers/ata/sata_mv.c
> +++ b/drivers/ata/sata_mv.c
> @@ -421,7 +421,9 @@ static void mv_error_handler(struct ata_port *ap);
>  static void mv_post_int_cmd(struct ata_queued_cmd *qc);
>  static void mv_eh_freeze(struct ata_port *ap);
>  static void mv_eh_thaw(struct ata_port *ap);
> +#ifdef CONFIG_PCI
>  static int mv_init_one(struct pci_dev *pdev, const struct pci_device_id
> *ent);
> +#endif
>
>  static void mv5_phy_errata(struct mv_host_priv *hpriv, void __iomem *mmio,
>                          unsigned int port);
> @@ -638,14 +640,14 @@ static const struct pci_device_id mv_pci_tbl[] = {
>
>       { }                     /* terminate list */
>  };
> -
> +#ifdef CONFIG_PCI
>  static struct pci_driver mv_pci_driver = {
>       .name                   = DRV_NAME,
>       .id_table               = mv_pci_tbl,
>       .probe                  = mv_init_one,
>       .remove                 = ata_pci_remove_one,
>  };
> -
> +#endif
>  static const struct mv_hw_ops mv5xxx_ops = {
>       .phy_errata             = mv5_phy_errata,
>       .enable_leds            = mv5_enable_leds,
> @@ -665,45 +667,6 @@ static const struct mv_hw_ops mv6xxx_ops = {
>  };
>
>  /*
> - * module options
> - */
> -static int msi;            /* Use PCI msi; either zero (off, default) or
> non-zero */
> -
> -
> -/* move to PCI layer or libata core? */
> -static int pci_go_64(struct pci_dev *pdev)
> -{
> -     int rc;
> -
> -     if (!pci_set_dma_mask(pdev, DMA_64BIT_MASK)) {
> -             rc = pci_set_consistent_dma_mask(pdev, DMA_64BIT_MASK);
> -             if (rc) {
> -                     rc = pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK);
> -                     if (rc) {
> -                             dev_printk(KERN_ERR, &pdev->dev,
> -                                        "64-bit DMA enable failed\n");
> -                             return rc;
> -                     }
> -             }
> -     } else {
> -             rc = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
> -             if (rc) {
> -                     dev_printk(KERN_ERR, &pdev->dev,
> -                                "32-bit DMA enable failed\n");
> -                     return rc;
> -             }
> -             rc = pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK);
> -             if (rc) {
> -                     dev_printk(KERN_ERR, &pdev->dev,
> -                                "32-bit consistent DMA enable failed\n");
> -                     return rc;
> -             }
> -     }
> -
> -     return rc;
> -}
> -
> -/*
>   * Functions
>   */
>
> @@ -2578,8 +2541,10 @@ static int mv_init_host(struct ata_host *host,
> unsigned int board_idx)
>
>               mv_port_init(&ap->ioaddr, port_mmio);
>
> +#ifdef CONFIG_PCI
>               ata_port_pbar_desc(ap, MV_PRIMARY_BAR, -1, "mmio");
>               ata_port_pbar_desc(ap, MV_PRIMARY_BAR, offset, "port");
> +#endif
>       }
>
>       for (hc = 0; hc < n_hc; hc++) {
> @@ -2616,6 +2581,47 @@ done:
>       return rc;
>  }
>
> +#ifdef CONFIG_PCI
> +
> +/*
> + * module options
> + */
> +static int msi;            /* Use PCI msi; either zero (off, default) or
> non-zero */
> +
> +
> +/* move to PCI layer or libata core? */
> +static int pci_go_64(struct pci_dev *pdev)
> +{
> +     int rc;
> +
> +     if (!pci_set_dma_mask(pdev, DMA_64BIT_MASK)) {
> +             rc = pci_set_consistent_dma_mask(pdev, DMA_64BIT_MASK);
> +             if (rc) {
> +                     rc = pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK);
> +                     if (rc) {
> +                             dev_printk(KERN_ERR, &pdev->dev,
> +                                        "64-bit DMA enable failed\n");
> +                             return rc;
> +                     }
> +             }
> +     } else {
> +             rc = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
> +             if (rc) {
> +                     dev_printk(KERN_ERR, &pdev->dev,
> +                                "32-bit DMA enable failed\n");
> +                     return rc;
> +             }
> +             rc = pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK);
> +             if (rc) {
> +                     dev_printk(KERN_ERR, &pdev->dev,
> +                                "32-bit consistent DMA enable failed\n");
> +                     return rc;
> +             }
> +     }
> +
> +     return rc;
> +}
> +
>  /**
>   *      mv_print_info - Dump key info to kernel log for perusal.
>   *      @host: ATA host to print info about
> @@ -2721,15 +2727,34 @@ static int mv_init_one(struct pci_dev *pdev, const
> struct pci_device_id *ent)
>                                IS_GEN_I(hpriv) ? &mv5_sht : &mv6_sht);
>  }
>
> -static int __init mv_init(void)
> +static int __init mv_pci_register_driver(void)
>  {
>       return pci_register_driver(&mv_pci_driver);
>  }
>
> -static void __exit mv_exit(void)
> +static void __exit mv_pci_unregister_driver(void)
>  {
>       pci_unregister_driver(&mv_pci_driver);
>  }
> +#else
> +static int __init mv_pci_register_driver(void)
> +{
> +     return 0;
> +}
> +
> +static void __exit mv_pci_unregister_driver(void)
> +{
> +}
> +#endif
> +static int __init mv_init(void)
> +{
> +     return mv_pci_register_driver();
> +}
> +
> +static void __exit mv_exit(void)
> +{
> +     mv_pci_unregister_driver();
> +}
>
>  MODULE_AUTHOR("Brett Russ");
>  MODULE_DESCRIPTION("SCSI low-level driver for Marvell SATA controllers");
> @@ -2737,8 +2762,10 @@ MODULE_LICENSE("GPL");
>  MODULE_DEVICE_TABLE(pci, mv_pci_tbl);
>  MODULE_VERSION(DRV_VERSION);
>
> +#ifdef CONFIG_PCI
>  module_param(msi, int, 0444);
>  MODULE_PARM_DESC(msi, "Enable use of PCI MSI (0=off, 1=on)");
> +#endif
>
>  module_init(mv_init);
>  module_exit(mv_exit);
> --
> 1.5.0.6
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-ide" in
> the body of a message to [EMAIL PROTECTED]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to