ide: add ->max_sectors field to struct ide_port_info

* Add ->max_sectors field to struct ide_port_info to allow host drivers
  to specify value used for hwif->rqsize (if smaller than the default).

* Convert pdc202xx_old to use ->max_sectors and remove no longer needed
  IDE_HFLAG_RQSIZE_256 flag.

There should be no functional changes caused by this patch.

Acked-by: Sergei Shtyltov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
Bartlomiej Zolnierkiewicz 2008-12-29 20:27:34 +01:00
parent 7f1ac8c4b9
commit 6b4924962c
3 changed files with 10 additions and 8 deletions

View File

@ -1442,8 +1442,8 @@ static void ide_init_port(ide_hwif_t *hwif, unsigned int port,
hwif->mate->serialized = hwif->serialized = 1; hwif->mate->serialized = hwif->serialized = 1;
} }
if (d->host_flags & IDE_HFLAG_RQSIZE_256) if (d->max_sectors)
hwif->rqsize = 256; hwif->rqsize = d->max_sectors;
/* call chipset specific routine for each enabled port */ /* call chipset specific routine for each enabled port */
if (d->init_hwif) if (d->init_hwif)

View File

@ -350,16 +350,17 @@ static const struct ide_dma_ops pdc2026x_dma_ops = {
.dma_timeout = pdc202xx_dma_timeout, .dma_timeout = pdc202xx_dma_timeout,
}; };
#define DECLARE_PDC2026X_DEV(udma, extra_flags) \ #define DECLARE_PDC2026X_DEV(udma, sectors) \
{ \ { \
.name = DRV_NAME, \ .name = DRV_NAME, \
.init_chipset = init_chipset_pdc202xx, \ .init_chipset = init_chipset_pdc202xx, \
.port_ops = &pdc2026x_port_ops, \ .port_ops = &pdc2026x_port_ops, \
.dma_ops = &pdc2026x_dma_ops, \ .dma_ops = &pdc2026x_dma_ops, \
.host_flags = IDE_HFLAGS_PDC202XX | extra_flags, \ .host_flags = IDE_HFLAGS_PDC202XX, \
.pio_mask = ATA_PIO4, \ .pio_mask = ATA_PIO4, \
.mwdma_mask = ATA_MWDMA2, \ .mwdma_mask = ATA_MWDMA2, \
.udma_mask = udma, \ .udma_mask = udma, \
.max_sectors = sectors, \
} }
static const struct ide_port_info pdc202xx_chipsets[] __devinitdata = { static const struct ide_port_info pdc202xx_chipsets[] __devinitdata = {
@ -376,8 +377,8 @@ static const struct ide_port_info pdc202xx_chipsets[] __devinitdata = {
/* 1: PDC2026{2,3} */ /* 1: PDC2026{2,3} */
DECLARE_PDC2026X_DEV(ATA_UDMA4, 0), DECLARE_PDC2026X_DEV(ATA_UDMA4, 0),
/* 2: PDC2026{5,7} */ /* 2: PDC2026{5,7}: UDMA5, limit LBA48 requests to 256 sectors */
DECLARE_PDC2026X_DEV(ATA_UDMA5, IDE_HFLAG_RQSIZE_256), DECLARE_PDC2026X_DEV(ATA_UDMA5, 256),
}; };
/** /**

View File

@ -1372,8 +1372,6 @@ enum {
IDE_HFLAG_LEGACY_IRQS = (1 << 21), IDE_HFLAG_LEGACY_IRQS = (1 << 21),
/* force use of legacy IRQs */ /* force use of legacy IRQs */
IDE_HFLAG_FORCE_LEGACY_IRQS = (1 << 22), IDE_HFLAG_FORCE_LEGACY_IRQS = (1 << 22),
/* limit LBA48 requests to 256 sectors */
IDE_HFLAG_RQSIZE_256 = (1 << 23),
/* use 32-bit I/O ops */ /* use 32-bit I/O ops */
IDE_HFLAG_IO_32BIT = (1 << 24), IDE_HFLAG_IO_32BIT = (1 << 24),
/* unmask IRQs */ /* unmask IRQs */
@ -1411,6 +1409,9 @@ struct ide_port_info {
ide_pci_enablebit_t enablebits[2]; ide_pci_enablebit_t enablebits[2];
hwif_chipset_t chipset; hwif_chipset_t chipset;
u16 max_sectors; /* if < than the default one */
u32 host_flags; u32 host_flags;
u8 pio_mask; u8 pio_mask;
u8 swdma_mask; u8 swdma_mask;