01 Nov, 2011

1 commit


18 May, 2009

3 commits

  • Remove hw_regs_t typedef and rename struct hw_regs_s to struct ide_hw.

    There should be no functional changes caused by this patch.

    Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • Pass number of ports to ide_host_{alloc,add}() and then update
    all users accordingly.

    v2:
    - drop no longer needed NULL initializers in buddha.c, cmd640.c and gayle.c
    (noticed by Sergei)

    There should be no functional changes caused by this patch.

    Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Convert host drivers that still use hw_regs_t's chipset field to use
    the one in struct ide_port_info instead.

    * Move special handling of ide_pci chipset type from ide_hw_configure()
    to ide_init_port().

    * Remove chipset field from hw_regs_t.

    While at it:
    - remove stale comment in delkin_cb.c

    There should be no functional changes caused by this patch.

    Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     

27 Mar, 2009

1 commit


24 Jul, 2008

3 commits

  • Add ide_host_add() helper which does ide_host_alloc()+ide_host_register(),
    then convert ide_setup_pci_device[s](), ide_legacy_device_add() and some
    host drivers to use it.

    While at it:

    * Fix ide_setup_pci_device[s](), ide_arm.c, gayle.c, ide-4drives.c,
    macide.c, q40ide.c, cmd640.c and cs5520.c to return correct error value.

    * -ENOENT -> -ENOMEM in rapide.c, ide-h8300.c, ide-generic.c, au1xxx-ide.c
    and pmac.c

    * -ENODEV -> -ENOMEM in palm_bk3710.c, ide_platform.c and delkin_cb.c

    * -1 -> -ENOMEM in ide-pnp.c

    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Add struct ide_host which keeps pointers to host's ports.

    * Add ide_host_alloc[_all]() and ide_host_remove() helpers.

    * Pass 'struct ide_host *host' instead of 'u8 *idx' to
    ide_device_add[_all]() and rename it to ide_host_register[_all]().

    * Convert host drivers and core code to use struct ide_host.

    * Remove no longer needed ide_find_port().

    * Make ide_find_port_slot() static.

    * Unexport ide_unregister().

    v2:
    * Add missing 'struct ide_host *host' to macide.c.

    v3:
    * Fix build problem in pmac.c (s/ide_alloc_host/ide_host_alloc/)
    (Noticed by Stephen Rothwell).

    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Add 'hw_regs_t **hws' argument to ide_device_add[_all]() and convert
    host drivers + ide_legacy_init_one() + ide_setup_pci_device[s]() to use
    it instead of calling ide_init_port_hw() directly.

    [ However if host has > 1 port we must still set hwif->chipset to hint
    consecutive ide_find_port() call that the previous slot is occupied. ]

    * Unexport ide_init_port_hw().

    v2:
    * Use defines instead of hard-coded values in buddha.c, gayle.c and q40ide.c.
    (Suggested by Geert Uytterhoeven)

    * Better patch description.

    v3:
    * Fix build problem in ide-cs.c. (Noticed by Stephen Rothwell)

    There should be no functional changes caused by this patch.

    Cc: Geert Uytterhoeven
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     

17 Jul, 2008

2 commits


11 Jun, 2008

1 commit


27 Apr, 2008

3 commits


26 Apr, 2008

2 commits


18 Apr, 2008

1 commit

  • hdparm explicitely marks HDIO_[UNREGISTER,SCAN]_HWIF ioctls as DANGEROUS
    and given the number of bugs we can assume that there are no real users:

    * DMA has no chance of working because DMA resources are released by
    ide_unregister() and they are never allocated again.

    * Since ide_init_hwif_ports() is used for ->io_ports[] setup the ioctls
    don't work for almost all hosts with "non-standard" (== non ISA-like)
    layout of IDE taskfile registers (there is a lot of such host drivers).

    * ide_port_init_devices() is not called when probing IDE devices so:
    - drive->autotune is never set and IDE host/devices are not programmed
    for the correct PIO/DMA transfer modes (=> possible data corruption)
    - host specific I/O 32-bit and IRQ unmasking settings are not applied
    (=> possible data corruption)
    - host specific ->port_init_devs method is not called (=> no luck with
    ht6560b, qd65xx and opti621 host drivers)

    * ->rw_disk method is not preserved (=> no HPT3xxN chipsets support).

    * ->serialized flag is not preserved (=> possible data corruption when
    using icside, aec62xx (ATP850UF chipset), cmd640, cs5530, hpt366
    (HPT3xxN chipsets), rz1000, sc1200, dtc2278 and ht6560b host drivers).

    * ->ack_intr method is not preserved (=> needed by ide-cris, buddha,
    gayle and macide host drivers).

    * ->sata_scr[] and sata_misc[] is cleared by ide_unregister() and it
    isn't initialized again (SiI3112 support needs them).

    * To issue an ioctl() there need to be at least one IDE device present
    in the system.

    * ->cable_detect method is not preserved + it is not called when probing
    IDE devices so cable detection is broken (however since DMA support is
    also broken it doesn't really matter ;-).

    * Some objects which may have already been freed in ide_unregister()
    are restored by ide_hwif_restore() (i.e. ->hwgroup).

    * ide_register_hw() may unregister unrelated IDE ports if free ide_hwifs[]
    slot cannot be found.

    * When IDE host drivers are modular unregistered port may be re-used by
    different host driver that owned it first causing subtle bugs.

    Since we now have a proper warm-plug support remove these ioctls,
    then remove no longer needed:
    - ide_register_hw() and ide_hwif_restore() functions
    - 'init_default' and 'restore' arguments of ide_unregister()
    - zeroeing of hwif->{dma,extra}_* fields in ide_unregister()

    As an added bonus IDE core code size shrinks by ~3kB (x86-32).

    v2:
    * fix ide_unregister() arguments in cleanup_module() (Andrew Morton).

    v3:
    * fix ide_unregister() arguments in palm_bk3710.c.

    Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     

03 Apr, 2008

1 commit


03 Feb, 2008

3 commits

  • bast-ide.c/ide-cs.c/delkin_cb.c:

    * Don't set 'restore' flag for ide_unregister() when initializing new
    interface.

    rapide.c/ide-pnp.c/ide-cs.c/ide_platform.c/au1xxx-ide.c/delkin_cb.c/scc_pata.c:

    * Don't set 'init_default' and 'restore' flags for ide_unregister() when
    removing interface.

    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Add 'init_default' (flag for calling init_hwif_default()) and 'restore'
    (flag for calling ide_hwif_restore()) arguments to ide_unregister().

    * Update ide_unregister() users to set 'init_default' and 'restore' flags.

    * No need to set 'init_default' flag in ide_register_hw() if the setup done
    by init_hwif_default() is going to be overridden by ide_init_port_hw().

    * No need to set 'init_default' and 'restore' flags in cleanup_module().

    There should be no functionality changes caused by this patch.

    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Remove 'struct pci_dev *dev' argument from ide_hwif_setup_dma().

    * Un-static ide_hwif_setup_dma() and add CONFIG_BLK_DEV_IDEDMA_PCI=n version.

    * Add 'const struct ide_port_info *d' argument to ide_device_add[_all]().

    * Factor out generic ports init from ide_pci_setup_ports() to ide_init_port(),
    move it to ide-probe.c and call it in in ide_device_add_all() instead of
    ide_pci_setup_ports().

    * Move ->mate setup to ide_device_add_all() from ide_port_init().

    * Add IDE_HFLAG_NO_AUTOTUNE host flag for host drivers that don't enable
    ->autotune currently.

    * Setup hwif->chipset in ide_init_port() but iff pi->chipset is set
    (to not override setup done by ide_hwif_configure()).

    * Add ETRAX host handling to ide_device_add_all().

    * cmd640.c: set IDE_HFLAG_ABUSE_* also for CONFIG_BLK_DEV_CMD640_ENHANCED=n.

    * pmac.c: make pmac_ide_setup_dma() return an error value and move DMA masks
    setup to pmac_ide_setup_device().

    * Add 'struct ide_port_info' instances to legacy host drivers, pass them to
    ide_device_add() calls and then remove open-coded ports initialization.

    Reviewed-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     

02 Feb, 2008

1 commit

  • Delete filenames/versions from comments.

    I'm leaving decisions about adding DRV_VERSION defines and MODULE_VERSION()-s
    to maintainers of the respective drivers.

    While at it:

    * Remove unused VERSION define from ide.c.

    * Remove unused/stale DRV_VERSION define from au1xxx-ide.c.

    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     

27 Jan, 2008

3 commits

  • * Make remaining built-in only IDE host drivers modular, add ide-scan-pci.c
    file for probing PCI host drivers registered with IDE core (special case
    for built-in IDE and CONFIG_IDEPCI_PCIBUS_ORDER=y) and then take care of
    the ordering in which all IDE host drivers are probed when IDE is built-in
    during link time.

    * Move probing of gayle, falconide, macide, q40ide and buddha (m68k arch
    specific) host drivers, before PCI ones (no PCI on m68k), ide-cris (cris
    arch specific), cmd640 (x86 arch specific) and pmac (ppc arch specific).

    * Move probing of ide-cris (cris arch specific) host driver before cmd640
    (x86 arch specific).

    * Move probing of mpc8xx (ppc specific) host driver before ide-pnp (depends
    on ISA and none of ppc platform that use mpc8xx supports ISA) and ide-h8300
    (h8300 arch specific).

    * Add "probe_vlb" kernel parameter to cmd640 host driver and update
    Documentation/ide.txt accordingly.

    * Make IDE_ARM config option visible so it can also be disabled if needed.

    * Remove bogus comment from ide.c while at it.

    v2:
    * Fix two issues spotted by Sergei:
    - replace ENOMEM error value by ENOENT in ide-h8300 host driver
    - fix MODULE_PARM_DESC() in cmd640 host driver

    Cc: Sergei Shtylyov
    Cc: Mikael Starvik
    Cc: Geert Uytterhoeven
    Cc: Roman Zippel
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Add mpc8xx_ide_probe() to mpc8xx.c and call it from probe_for_hwifs().

    * Convert ide_arm, ide-cris, ide-h8300, ide-pnp, buddha, falconide, gayle,
    macide, q40ide, cmd640 and mpc8xx host drivers to use ide_device_add().

    This removes dependency on ide_generic for these drivers so update
    ide/Kconfig accordingly.

    v2:
    * ide_arm build fix (s/ide_device_idx/ide_device_add/)
    (Thanks to Christoph Lameter for reporting the problem).

    Cc: Mikael Starvik
    Cc: Geert Uytterhoeven
    Cc: Roman Zippel
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Rename init_hwif_data() to ide_init_port_data() and export it.

    * For all users of ide_register_hw() with 'initializing' argument set
    hwif->present and hwif->hold are always zero so convert these host
    drivers to use ide_find_port()+ide_init_port_data()+ide_init_port_hw()
    instead (also no need for init_hwif_default() call since the setup
    done by it gets over-ridden by ide_init_port_hw() call).

    * Drop 'initializing' argument from ide_register_hw().

    Cc: Geert Uytterhoeven
    Cc: Roman Zippel
    Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     

20 Oct, 2007

2 commits

  • * hwif->hwif_data contains pointer to struct expansion_card so use ec->dma
    directly instead of caching it in hwif->hw.dma.

    * Remove no longer needed hw_regs_t.dma and NO_DMA define.

    Cc: Russell King
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Add ->fixup method to ide_hwif_t.

    * Set hwif->fixup in ide_pci_setup_ports() to d->fixup.

    * Use hwif->fixup in probe_hwif().

    * Use probe_hwif_init() instead of probe_hwif_init_with_fixup() in
    ide_setup_pci_device().

    * Add 'fixup' argument to ide_register_hw() and use it to set hwif->fixup,
    update all ide_register_hw() users accordingly.

    * Convert ide-cs/delkin_cb host drivers to use ide_register_hw().

    * Restore hwif->fixup in ide_hwif_restore().

    * Remove ide_register_hw_with_fixup(), probe_hwif_init_with_fixup()
    and 'fixup' argument from probe_hwif().

    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     

10 May, 2007

1 commit


27 Jan, 2007

1 commit


17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds