ata.h and libata.h contains duplicate and conflicting definitions. This patch tries to resolve this and make them both includeable in a sourcefile.
Also updated is the fsl_sata driver which uses libata.h Signed-off-by: Tor Krill <[EMAIL PROTECTED]> --- drivers/block/fsl_sata.c | 15 ++++++++------- include/ata.h | 15 +++++++++++++-- include/libata.h | 45 +-------------------------------------------- 3 files changed, 22 insertions(+), 53 deletions(-) diff --git a/drivers/block/fsl_sata.c b/drivers/block/fsl_sata.c index 7436c4d..2b63ac4 100644 --- a/drivers/block/fsl_sata.c +++ b/drivers/block/fsl_sata.c @@ -23,6 +23,7 @@ #include <asm/io.h> #include <malloc.h> #include <libata.h> +#include <ata.h> #include <fis.h> #include "fsl_sata.h" @@ -609,7 +610,7 @@ static u32 fsl_sata_rw_cmd(int dev, u32 start, u32 blkcnt, u8 *buffer, int is_wr cfis->lba_low = block & 0xff; cfis->sector_count = (u8)(blkcnt & 0xff); - fsl_sata_exec_cmd(sata, cfis, CMD_ATA, 0, buffer, ATA_SECT_SIZE * blkcnt); + fsl_sata_exec_cmd(sata, cfis, CMD_ATA, 0, buffer, ATA_SECT_BYTESIZE * blkcnt); return blkcnt; } @@ -658,7 +659,7 @@ static u32 fsl_sata_rw_cmd_ext(int dev, u32 start, u32 blkcnt, u8 *buffer, int i cfis->sector_count_exp = (blkcnt >> 8) & 0xff; cfis->sector_count = blkcnt & 0xff; - fsl_sata_exec_cmd(sata, cfis, CMD_ATA, 0, buffer, ATA_SECT_SIZE * blkcnt); + fsl_sata_exec_cmd(sata, cfis, CMD_ATA, 0, buffer, ATA_SECT_BYTESIZE * blkcnt); return blkcnt; } @@ -703,7 +704,7 @@ u32 fsl_sata_rw_ncq_cmd(int dev, u32 start, u32 blkcnt, u8 *buffer, int is_write ncq_channel = sata->queue_depth - 1; /* Use the latest queue */ - fsl_sata_exec_cmd(sata, cfis, CMD_NCQ, ncq_channel, buffer, ATA_SECT_SIZE * blkcnt); + fsl_sata_exec_cmd(sata, cfis, CMD_NCQ, ncq_channel, buffer, ATA_SECT_BYTESIZE * blkcnt); return blkcnt; } @@ -779,7 +780,7 @@ u32 ata_low_level_rw_lba48(int dev, u32 blknr, u32 blkcnt, void *buffer, int is_ fsl_sata_rw_ncq_cmd(dev, start, max_blks, addr, is_write); start += max_blks; blks -= max_blks; - addr += ATA_SECT_SIZE * max_blks; + addr += ATA_SECT_BYTESIZE * max_blks; } else { if (fsl_sata_info[dev].flags != FLAGS_FPDMA) fsl_sata_rw_cmd_ext(dev, start, blks, addr, is_write); @@ -787,7 +788,7 @@ u32 ata_low_level_rw_lba48(int dev, u32 blknr, u32 blkcnt, void *buffer, int is_ fsl_sata_rw_ncq_cmd(dev, start, blks, addr, is_write); start += blks; blks = 0; - addr += ATA_SECT_SIZE * blks; + addr += ATA_SECT_BYTESIZE * blks; } } while (blks != 0); @@ -810,12 +811,12 @@ u32 ata_low_level_rw_lba28(int dev, u32 blknr, u32 blkcnt, void *buffer, int is_ fsl_sata_rw_cmd(dev, start, max_blks, addr, is_write); start += max_blks; blks -= max_blks; - addr += ATA_SECT_SIZE * max_blks; + addr += ATA_SECT_BYTESIZE * max_blks; } else { fsl_sata_rw_cmd(dev, start, blks, addr, is_write); start += blks; blks = 0; - addr += ATA_SECT_SIZE * blks; + addr += ATA_SECT_BYTESIZE * blks; } } while (blks != 0); diff --git a/include/ata.h b/include/ata.h index aa6e90d..54a1455 100644 --- a/include/ata.h +++ b/include/ata.h @@ -119,8 +119,10 @@ enum { ATA_REG_BYTEH = ATA_REG_LBAH, ATA_REG_DEVSEL = ATA_REG_DEVICE, ATA_REG_IRQ = ATA_REG_NSECT, +}; - /* SETFEATURES stuff */ +/* SETFEATURES stuff */ +enum ata_set_features{ SETFEATURES_XFER = 0x03, XFER_UDMA_7 = 0x47, XFER_UDMA_6 = 0x46, @@ -130,9 +132,13 @@ enum { XFER_UDMA_2 = 0x42, XFER_UDMA_1 = 0x41, XFER_UDMA_0 = 0x40, + XFER_MW_DMA_4 = 0x24, /* CFA only */ + XFER_MW_DMA_3 = 0x23, /* CFA only */ XFER_MW_DMA_2 = 0x22, XFER_MW_DMA_1 = 0x21, XFER_MW_DMA_0 = 0x20, + XFER_PIO_6 = 0x0E, /* CFA only */ + XFER_PIO_5 = 0x0D, /* CFA only */ XFER_PIO_4 = 0x0C, XFER_PIO_3 = 0x0B, XFER_PIO_2 = 0x0A, @@ -141,7 +147,12 @@ enum { XFER_SW_DMA_2 = 0x12, XFER_SW_DMA_1 = 0x11, XFER_SW_DMA_0 = 0x10, - XFER_PIO_SLOW = 0x00 + XFER_PIO_SLOW = 0x00, + + SETFEATURES_WC_ON = 0x02, /* Enable write cache */ + SETFEATURES_WC_OFF = 0x82, /* Disable write cache */ + + SETFEATURES_SPINUP = 0x07, /* Spin-up drive */ }; /* * ATA Commands (only mandatory commands listed here) diff --git a/include/libata.h b/include/libata.h index aedba74..246dcd3 100644 --- a/include/libata.h +++ b/include/libata.h @@ -49,39 +49,6 @@ enum ata_cmd { ATA_CMD_WRITE_FPDMA_QUEUED = 0x61, }; -/* SETFEATURES stuff - */ -enum ata_set_features { - /* SETFEATURES stuff */ - SETFEATURES_XFER = 0x03, - XFER_UDMA_7 = 0x47, - XFER_UDMA_6 = 0x46, - XFER_UDMA_5 = 0x45, - XFER_UDMA_4 = 0x44, - XFER_UDMA_3 = 0x43, - XFER_UDMA_2 = 0x42, - XFER_UDMA_1 = 0x41, - XFER_UDMA_0 = 0x40, - XFER_MW_DMA_4 = 0x24, /* CFA only */ - XFER_MW_DMA_3 = 0x23, /* CFA only */ - XFER_MW_DMA_2 = 0x22, - XFER_MW_DMA_1 = 0x21, - XFER_MW_DMA_0 = 0x20, - XFER_PIO_6 = 0x0E, /* CFA only */ - XFER_PIO_5 = 0x0D, /* CFA only */ - XFER_PIO_4 = 0x0C, - XFER_PIO_3 = 0x0B, - XFER_PIO_2 = 0x0A, - XFER_PIO_1 = 0x09, - XFER_PIO_0 = 0x08, - XFER_PIO_SLOW = 0x00, - - SETFEATURES_WC_ON = 0x02, /* Enable write cache */ - SETFEATURES_WC_OFF = 0x82, /* Disable write cache */ - - SETFEATURES_SPINUP = 0x07, /* Spin-up drive */ -}; - enum ata_protocol { ATA_PROT_UNKNOWN, /* unknown */ ATA_PROT_NODATA, /* no data */ @@ -101,26 +68,16 @@ enum ata_dev_typed { }; enum { - ATA_SECT_SIZE = 512, + ATA_SECT_BYTESIZE = 512, ATA_MAX_SECTORS_128 = 128, ATA_MAX_SECTORS = 256, ATA_MAX_SECTORS_LBA48 = 65535, /* bits in ATA command block registers */ - ATA_HOB = (1 << 7), /* LBA48 selector */ - ATA_NIEN = (1 << 1), /* disable-irq flag */ ATA_LBA = (1 << 6), /* LBA28 selector */ - ATA_DEV1 = (1 << 4), /* Select Device 1 (slave) */ - ATA_BUSY = (1 << 7), /* BSY status bit */ - ATA_DRDY = (1 << 6), /* device ready */ - ATA_DF = (1 << 5), /* device fault */ - ATA_DRQ = (1 << 3), /* data request i/o */ - ATA_ERR = (1 << 0), /* have an error */ - ATA_SRST = (1 << 2), /* software reset */ ATA_ICRC = (1 << 7), /* interface CRC error */ ATA_UNC = (1 << 6), /* uncorrectable media error */ ATA_IDNF = (1 << 4), /* ID not found */ - ATA_ABORTED = (1 << 2), /* command aborted */ ATA_ID_WORDS = 256, ATA_ID_SERNO = 10, -- 1.5.4.4 ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users