lkml.org 
[lkml]   [2008]   [Dec]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    SubjectRe: linux-next: Tree for October 24 - powerpc - build failure with !CONFIG_BLK_DEV_IDEDMA_PMAC
    Date
    On Saturday 25 October 2008, Bartlomiej Zolnierkiewicz wrote:
    > On Saturday 25 October 2008, Benjamin Herrenschmidt wrote:
    > > On Sat, 2008-10-25 at 02:39 +0400, Sergei Shtylyov wrote:
    > > > >> Hm, looks like this configuration was never buildable --
    > > > #ifdef's are
    > > > >> missing and wrongly placed. CCing Ben Herrenschmidt...
    > > > >>
    > > > >
    > > > > What configuration ?
    > > > >
    > > >
    > > > See the subject.
    > >
    > > Ah ok. We should probably just remove the option...
    >
    > Fine with me. Anybody want an easy +1 patch-point? :)

    Seems like ppc people are either very busy or don't care... Oh well...

    From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
    Subject: [PATCH] ide: build-fix for CONFIG_BLK_DEV_IDEDMA_PMAC=n

    IDE pmac host driver build fails with CONFIG_BLK_DEV_IDEDMA_PMAC=n
    as reported by Kamalesh:

    > drivers/ide/pmac.c: In function 'pmac_ide_set_pio_mode':
    > drivers/ide/pmac.c:527: error: implicit declaration of function 'kauai_lookup_timing'
    > drivers/ide/pmac.c:527: error: 'shasta_pio_timings' undeclared (first use in this function)
    > drivers/ide/pmac.c:527: error: (Each undeclared identifier is reported only once
    > drivers/ide/pmac.c:527: error: for each function it appears in.)
    > drivers/ide/pmac.c:534: error: 'kauai_pio_timings' undeclared (first use in this function)
    > drivers/ide/pmac.c: In function 'pmac_ide_do_resume':
    > drivers/ide/pmac.c:914: error: 'IDE_WAKEUP_DELAY' undeclared (first use in this function)
    > drivers/ide/pmac.c: At top level:
    > drivers/ide/pmac.c:1007: error: 'pmac_ide_init_dma' undeclared here (not in a function)
    > drivers/ide/pmac.c: In function 'pmac_ide_setup_device':
    > drivers/ide/pmac.c:1107: error: 'IDE_WAKEUP_DELAY' undeclared (first use in this function)
    > drivers/ide/pmac.c: In function 'pmac_ide_macio_attach':
    > drivers/ide/pmac.c:1209: error: 'pmac_ide_hwif_t' has no member named 'dma_regs'
    > drivers/ide/pmac.c:1210: error: 'pmac_ide_hwif_t' has no member named 'dma_regs'
    > make[2]: *** [drivers/ide/pmac.o] Error 1

    Fix it by removing the superfluous config option.

    Reported-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
    Cc: Stephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
    ---
    drivers/ide/Kconfig | 14 +++-----------
    drivers/ide/pmac.c | 30 +++---------------------------
    2 files changed, 6 insertions(+), 38 deletions(-)

    Index: b/drivers/ide/Kconfig
    ===================================================================
    --- a/drivers/ide/Kconfig
    +++ b/drivers/ide/Kconfig
    @@ -655,10 +655,12 @@ config BLK_DEV_CELLEB

    endif

    +# TODO: BLK_DEV_IDEDMA_PCI -> BLK_DEV_IDEDMA_SFF
    config BLK_DEV_IDE_PMAC
    tristate "PowerMac on-board IDE support"
    depends on PPC_PMAC && IDE=y
    select IDE_TIMINGS
    + select BLK_DEV_IDEDMA_PCI
    help
    This driver provides support for the on-board IDE controller on
    most of the recent Apple Power Macintoshes and PowerBooks.
    @@ -675,16 +677,6 @@ config BLK_DEV_IDE_PMAC_ATA100FIRST
    CD-ROM on hda. This option changes this to more natural hda for
    hard disk and hdc for CD-ROM.

    -config BLK_DEV_IDEDMA_PMAC
    - bool "PowerMac IDE DMA support"
    - depends on BLK_DEV_IDE_PMAC
    - select BLK_DEV_IDEDMA_PCI
    - help
    - This option allows the driver for the on-board IDE controller on
    - Power Macintoshes and PowerBooks to use DMA (direct memory access)
    - to transfer data to and from memory. Saying Y is safe and improves
    - performance.
    -
    config BLK_DEV_IDE_AU1XXX
    bool "IDE for AMD Alchemy Au1200"
    depends on SOC_AU1200
    @@ -903,7 +895,7 @@ config BLK_DEV_UMC8672
    endif

    config BLK_DEV_IDEDMA
    - def_bool BLK_DEV_IDEDMA_SFF || BLK_DEV_IDEDMA_PMAC || \
    + def_bool BLK_DEV_IDEDMA_SFF || \
    BLK_DEV_IDEDMA_ICS || BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA

    endif # IDE
    Index: b/drivers/ide/pmac.c
    ===================================================================
    --- a/drivers/ide/pmac.c
    +++ b/drivers/ide/pmac.c
    @@ -66,7 +66,6 @@ typedef struct pmac_ide_hwif {
    struct macio_dev *mdev;
    u32 timings[4];
    volatile u32 __iomem * *kauai_fcr;
    -#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
    /* Those fields are duplicating what is in hwif. We currently
    * can't use the hwif ones because of some assumptions that are
    * beeing done by the generic code about the kind of dma controller
    @@ -74,8 +73,6 @@ typedef struct pmac_ide_hwif {
    */
    volatile struct dbdma_regs __iomem * dma_regs;
    struct dbdma_cmd* dma_table_cpu;
    -#endif
    -
    } pmac_ide_hwif_t;

    enum {
    @@ -222,8 +219,6 @@ static const char* model_name[] = {
    #define KAUAI_FCR_UATA_RESET_N 0x00000002
    #define KAUAI_FCR_UATA_ENABLE 0x00000001

    -#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
    -
    /* Rounded Multiword DMA timings
    *
    * I gave up finding a generic formula for all controller
    @@ -413,8 +408,6 @@ static int pmac_ide_build_dmatable(ide_d
    static void pmac_ide_selectproc(ide_drive_t *drive);
    static void pmac_ide_kauai_selectproc(ide_drive_t *drive);

    -#endif /* CONFIG_BLK_DEV_IDEDMA_PMAC */
    -
    #define PMAC_IDE_REG(x) \
    ((void __iomem *)((drive)->hwif->io_ports.data_addr + (x)))

    @@ -584,8 +577,6 @@ pmac_ide_set_pio_mode(ide_drive_t *drive
    pmac_ide_do_update_timings(drive);
    }

    -#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
    -
    /*
    * Calculate KeyLargo ATA/66 UDMA timings
    */
    @@ -786,7 +777,6 @@ set_timings_mdma(ide_drive_t *drive, int
    drive->name, speed & 0xf, *timings);
    #endif
    }
    -#endif /* #ifdef CONFIG_BLK_DEV_IDEDMA_PMAC */

    static void pmac_ide_set_dma_mode(ide_drive_t *drive, const u8 speed)
    {
    @@ -804,7 +794,6 @@ static void pmac_ide_set_dma_mode(ide_dr
    tl[0] = *timings;
    tl[1] = *timings2;

    -#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
    if (speed >= XFER_UDMA_0) {
    if (pmif->kind == controller_kl_ata4)
    ret = set_timings_udma_ata4(&tl[0], speed);
    @@ -817,7 +806,7 @@ static void pmac_ide_set_dma_mode(ide_dr
    ret = -1;
    } else
    set_timings_mdma(drive, pmif->kind, &tl[0], &tl[1], speed);
    -#endif /* CONFIG_BLK_DEV_IDEDMA_PMAC */
    +
    if (ret)
    return;

    @@ -1008,9 +997,7 @@ static const struct ide_port_info pmac_p
    .chipset = ide_pmac,
    .tp_ops = &pmac_tp_ops,
    .port_ops = &pmac_ide_port_ops,
    -#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
    .dma_ops = &pmac_dma_ops,
    -#endif
    .host_flags = IDE_HFLAG_SET_PIO_MODE_KEEP_DMA |
    IDE_HFLAG_POST_SET_MODE |
    IDE_HFLAG_MMIO |
    @@ -1182,7 +1169,7 @@ pmac_ide_macio_attach(struct macio_dev *
    pmif->regbase = regbase;
    pmif->irq = irq;
    pmif->kauai_fcr = NULL;
    -#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
    +
    if (macio_resource_count(mdev) >= 2) {
    if (macio_request_resource(mdev, 1, "ide-pmac (dma)"))
    printk(KERN_WARNING "ide-pmac: can't request DMA "
    @@ -1192,7 +1179,7 @@ pmac_ide_macio_attach(struct macio_dev *
    pmif->dma_regs = ioremap(macio_resource_start(mdev, 1), 0x1000);
    } else
    pmif->dma_regs = NULL;
    -#endif /* CONFIG_BLK_DEV_IDEDMA_PMAC */
    +
    dev_set_drvdata(&mdev->ofdev.dev, pmif);

    memset(&hw, 0, sizeof(hw));
    @@ -1300,9 +1287,7 @@ pmac_ide_pci_attach(struct pci_dev *pdev

    base = ioremap(rbase, rlen);
    pmif->regbase = (unsigned long) base + 0x2000;
    -#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
    pmif->dma_regs = base + 0x1000;
    -#endif /* CONFIG_BLK_DEV_IDEDMA_PMAC */
    pmif->kauai_fcr = base;
    pmif->irq = pdev->irq;

    @@ -1434,8 +1419,6 @@ out:
    return error;
    }

    -#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
    -
    /*
    * pmac_ide_build_dmatable builds the DBDMA command list
    * for a transfer and sets the DBDMA channel to point to it.
    @@ -1723,13 +1706,6 @@ static int __devinit pmac_ide_init_dma(i

    return 0;
    }
    -#else
    -static int __devinit pmac_ide_init_dma(ide_hwif_t *hwif,
    - const struct ide_port_info *d)
    -{
    - return -EOPNOTSUPP;
    -}
    -#endif /* CONFIG_BLK_DEV_IDEDMA_PMAC */

    module_init(pmac_ide_probe);

    \
     
     \ /
      Last update: 2008-12-07 15:31    [W:0.036 / U:0.140 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site