Loading drivers/ata/pata_ixp4xx_cf.c +31 −42 Original line number Diff line number Diff line /* * ixp4xx PATA/Compact Flash driver * Copyright (c) 2006 Tower Technologies * Copyright (C) 2006-07 Tower Technologies * Author: Alessandro Zummo <a.zummo@towertech.it> * * An ATA driver to handle a Compact Flash connected * to the ixp4xx expansion bus in TrueIDE mode. The CF * must have it chip selects connected to two CS lines * on the ixp4xx. The interrupt line is optional, if not * specified the driver will run in polling mode. * on the ixp4xx. In the irq is not available, you might * want to modify both this driver and libata to run in * polling mode. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as Loading @@ -23,7 +24,7 @@ #include <scsi/scsi_host.h> #define DRV_NAME "pata_ixp4xx_cf" #define DRV_VERSION "0.1.3" #define DRV_VERSION "0.2" static int ixp4xx_set_mode(struct ata_port *ap, struct ata_device **error) { Loading @@ -42,13 +43,6 @@ static int ixp4xx_set_mode(struct ata_port *ap, struct ata_device **error) return 0; } static void ixp4xx_phy_reset(struct ata_port *ap) { ap->cbl = ATA_CBL_PATA40; ata_port_probe(ap); ata_bus_reset(ap); } static void ixp4xx_mmio_data_xfer(struct ata_device *adev, unsigned char *buf, unsigned int buflen, int write_data) { Loading Loading @@ -92,10 +86,6 @@ static void ixp4xx_mmio_data_xfer(struct ata_device *adev, unsigned char *buf, *data->cs0_cfg |= 0x01; } static void ixp4xx_irq_clear(struct ata_port *ap) { } static struct scsi_host_template ixp4xx_sht = { .module = THIS_MODULE, .name = DRV_NAME, Loading @@ -121,23 +111,26 @@ static struct ata_port_operations ixp4xx_port_ops = { .port_disable = ata_port_disable, .tf_load = ata_tf_load, .tf_read = ata_tf_read, .check_status = ata_check_status, .exec_command = ata_exec_command, .check_status = ata_check_status, .dev_select = ata_std_dev_select, .freeze = ata_bmdma_freeze, .thaw = ata_bmdma_thaw, .error_handler = ata_bmdma_error_handler, .post_internal_cmd = ata_bmdma_post_internal_cmd, .qc_prep = ata_qc_prep, .qc_issue = ata_qc_issue_prot, .eng_timeout = ata_eng_timeout, .data_xfer = ixp4xx_mmio_data_xfer, .cable_detect = ata_cable_40wire, .irq_clear = ixp4xx_irq_clear, .irq_handler = ata_interrupt, .irq_clear = ata_bmdma_irq_clear, .irq_on = ata_irq_on, .irq_ack = ata_irq_ack, .irq_ack = ata_dummy_irq_ack, .port_start = ata_port_start, .phy_reset = ixp4xx_phy_reset, }; static void ixp4xx_setup_port(struct ata_ioports *ioaddr, Loading Loading @@ -211,10 +204,6 @@ static __devinit int ixp4xx_pata_probe(struct platform_device *pdev) ap->pio_mask = 0x1f; /* PIO4 */ ap->flags |= ATA_FLAG_MMIO | ATA_FLAG_NO_LEGACY | ATA_FLAG_NO_ATAPI; /* run in polling mode if no irq has been assigned */ if (!irq) ap->flags |= ATA_FLAG_PIO_POLLING; ixp4xx_setup_port(&ap->ioaddr, data); dev_printk(KERN_INFO, &pdev->dev, "version " DRV_VERSION "\n"); Loading Loading
drivers/ata/pata_ixp4xx_cf.c +31 −42 Original line number Diff line number Diff line /* * ixp4xx PATA/Compact Flash driver * Copyright (c) 2006 Tower Technologies * Copyright (C) 2006-07 Tower Technologies * Author: Alessandro Zummo <a.zummo@towertech.it> * * An ATA driver to handle a Compact Flash connected * to the ixp4xx expansion bus in TrueIDE mode. The CF * must have it chip selects connected to two CS lines * on the ixp4xx. The interrupt line is optional, if not * specified the driver will run in polling mode. * on the ixp4xx. In the irq is not available, you might * want to modify both this driver and libata to run in * polling mode. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as Loading @@ -23,7 +24,7 @@ #include <scsi/scsi_host.h> #define DRV_NAME "pata_ixp4xx_cf" #define DRV_VERSION "0.1.3" #define DRV_VERSION "0.2" static int ixp4xx_set_mode(struct ata_port *ap, struct ata_device **error) { Loading @@ -42,13 +43,6 @@ static int ixp4xx_set_mode(struct ata_port *ap, struct ata_device **error) return 0; } static void ixp4xx_phy_reset(struct ata_port *ap) { ap->cbl = ATA_CBL_PATA40; ata_port_probe(ap); ata_bus_reset(ap); } static void ixp4xx_mmio_data_xfer(struct ata_device *adev, unsigned char *buf, unsigned int buflen, int write_data) { Loading Loading @@ -92,10 +86,6 @@ static void ixp4xx_mmio_data_xfer(struct ata_device *adev, unsigned char *buf, *data->cs0_cfg |= 0x01; } static void ixp4xx_irq_clear(struct ata_port *ap) { } static struct scsi_host_template ixp4xx_sht = { .module = THIS_MODULE, .name = DRV_NAME, Loading @@ -121,23 +111,26 @@ static struct ata_port_operations ixp4xx_port_ops = { .port_disable = ata_port_disable, .tf_load = ata_tf_load, .tf_read = ata_tf_read, .check_status = ata_check_status, .exec_command = ata_exec_command, .check_status = ata_check_status, .dev_select = ata_std_dev_select, .freeze = ata_bmdma_freeze, .thaw = ata_bmdma_thaw, .error_handler = ata_bmdma_error_handler, .post_internal_cmd = ata_bmdma_post_internal_cmd, .qc_prep = ata_qc_prep, .qc_issue = ata_qc_issue_prot, .eng_timeout = ata_eng_timeout, .data_xfer = ixp4xx_mmio_data_xfer, .cable_detect = ata_cable_40wire, .irq_clear = ixp4xx_irq_clear, .irq_handler = ata_interrupt, .irq_clear = ata_bmdma_irq_clear, .irq_on = ata_irq_on, .irq_ack = ata_irq_ack, .irq_ack = ata_dummy_irq_ack, .port_start = ata_port_start, .phy_reset = ixp4xx_phy_reset, }; static void ixp4xx_setup_port(struct ata_ioports *ioaddr, Loading Loading @@ -211,10 +204,6 @@ static __devinit int ixp4xx_pata_probe(struct platform_device *pdev) ap->pio_mask = 0x1f; /* PIO4 */ ap->flags |= ATA_FLAG_MMIO | ATA_FLAG_NO_LEGACY | ATA_FLAG_NO_ATAPI; /* run in polling mode if no irq has been assigned */ if (!irq) ap->flags |= ATA_FLAG_PIO_POLLING; ixp4xx_setup_port(&ap->ioaddr, data); dev_printk(KERN_INFO, &pdev->dev, "version " DRV_VERSION "\n"); Loading