#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/blkdev.h>
#include <linux/ata.h>
#include <linux/libata.h>
#include <linux/platform_device.h>
#include <linux/dmaengine.h>
#include <linux/slab.h>
#include <linux/completion.h>
#include <scsi/scsi_host.h>
#include <linux/platform_data/ata-pxa.h>
#define DRV_NAME …
#define DRV_VERSION …
struct pata_pxa_data { … };
static void pxa_ata_dma_irq(void *d)
{ … }
static enum ata_completion_errors pxa_qc_prep(struct ata_queued_cmd *qc)
{ … }
static void pxa_bmdma_setup(struct ata_queued_cmd *qc)
{ … }
static void pxa_bmdma_start(struct ata_queued_cmd *qc)
{ … }
static void pxa_bmdma_stop(struct ata_queued_cmd *qc)
{ … }
static unsigned char pxa_bmdma_status(struct ata_port *ap)
{ … }
static void pxa_irq_clear(struct ata_port *ap)
{ … }
static int pxa_check_atapi_dma(struct ata_queued_cmd *qc)
{ … }
static const struct scsi_host_template pxa_ata_sht = …;
static struct ata_port_operations pxa_ata_port_ops = …;
static int pxa_ata_probe(struct platform_device *pdev)
{ … }
static void pxa_ata_remove(struct platform_device *pdev)
{ … }
static struct platform_driver pxa_ata_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_VERSION(…);
MODULE_ALIAS(…) …;