1. 11 6月, 2008 1 次提交
  2. 29 4月, 2008 2 次提交
  3. 27 4月, 2008 14 次提交
  4. 26 4月, 2008 3 次提交
  5. 25 4月, 2008 1 次提交
  6. 18 4月, 2008 3 次提交
    • B
      ide: remove ->hold field from ide_hwif_t (take 2) · 2304dc64
      Bartlomiej Zolnierkiewicz 提交于
      ->hold is write-only now, remove it.
      
      v2:
      * v1 missed bast-ide, palm_bk3710, ide-cs and delkin_cb host drivers.
      Acked-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      2304dc64
    • B
      ide: remove broken/dangerous HDIO_[UNREGISTER,SCAN]_HWIF ioctls (take 3) · 93de00fd
      Bartlomiej Zolnierkiewicz 提交于
      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: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      93de00fd
    • B
      ide: use ide_find_port() instead of ide_deprecated_find_port() · 4f0eee4d
      Bartlomiej Zolnierkiewicz 提交于
      * Use ide_find_port() instead of ide_deprecated_find_port() in bast-ide/
        palm_bk3710/ide-cs/delkin_cb host drivers and in ide_register_hw().
      
      * Remove no longer needed ide_deprecated_find_port().
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      4f0eee4d
  7. 03 4月, 2008 1 次提交
  8. 11 2月, 2008 5 次提交
  9. 06 2月, 2008 2 次提交
  10. 03 2月, 2008 4 次提交
    • B
      ide: fix ide_unregister() usage in host drivers · 909f4369
      Bartlomiej Zolnierkiewicz 提交于
      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: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      909f4369
    • B
      ide: add ide_deprecated_find_port() helper · 9e016a71
      Bartlomiej Zolnierkiewicz 提交于
      * Factor out code for finding ide_hwifs[] slot from ide_register_hw()
        to ide_deprecated_find_port().
      
      * Convert bast-ide, ide-cs and delkin_cb host drivers to use ide_device_add()
        instead of ide_register_hw() (while at it drop doing "ide_unregister()" loop
        which tries to unregister _all_ IDE interfaces if useable ide_hwifs[] slot
        cannot be find).
      
      This patch leaves us with only two ide_register_hw() users:
      - drivers/macintosh/mediabay.c
      - drivers/ide/ide.c
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      9e016a71
    • B
      ide: add 'init_default' and 'restore' arguments to ide_unregister() · f82c2b17
      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: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      f82c2b17
    • B
      ide: add struct ide_port_info instances to legacy host drivers · c413b9b9
      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: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      c413b9b9
  11. 02 2月, 2008 4 次提交