1. 01 Aug, 2007 2 commits
    • Bartlomiej Zolnierkiewicz's avatar
      cs5535: PIO fixes · bc0b0b5c
      Bartlomiej Zolnierkiewicz authored
      
      
      * Fix cs5535_tuneproc() to pass PIO transfer mode value instead of PIO mode
        number to cs5535_set_speed() (fixes random PIO timings being programmed
        and a possible OOPS).  Do a little cleanup while at it.
      
      * Fix cs5535_set_speed() to check if the mate device is present (fixes PIO0
        taskfile timings being used if there is no other device on the cable).
      
      * Use cs5535_tuneproc() in cs5535_dma_check().  The old code had the same
        issue as cs5535_tuneproc() and add additionally caused 0x00-0x04 transfer
        mode values (== default PIO, default PIO w/ IORDY + two invalid values)
        being set on the device instead of values 0x08-0x0c (XFER_PIO_[0,4]).
      Acked-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      bc0b0b5c
    • Jordan Crouse's avatar
      ide: Fix an overrun found in the CS5535 IDE driver · 32a70a81
      Jordan Crouse authored
      
      
      As found by the Coverity checker, and reported by Adrian Bunk, this
      fixes a overrun error in the CS5535 IDE driver.  Somebody got a little
      excited with the if() statement - the CS5535 only supports UDMA 0-4.
      
      Bart:
      Not a bug per se since the upper layer will never feed this function
      with speed > XFER_UDMA_4 (thanks to ->ultra_mask being set to 0x1f).
      
      Worth fixing anyway.
      Signed-off-by: default avatarJordan Crouse <jordan.crouse@amd.com>
      Cc: Adrian Bunk <bunk@stusta.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      32a70a81
  2. 19 Jul, 2007 3 commits
  3. 09 Jul, 2007 1 commit
    • Bartlomiej Zolnierkiewicz's avatar
      ide: add short cables support · 49521f97
      Bartlomiej Zolnierkiewicz authored
      
      
      This patch allows users to override both host and device side cable detection
      with "ideX=ata66" kernel parameter.  Thanks to this it should be now possible
      to use UDMA > 2 modes on systems (laptops mainly) which use short 40-pin cable
      instead of 80-pin one.
      
      Next patches add automatic detection of some systems using short cables.
      
      Changes:
      
      * Rename hwif->udma_four to hwif->cbl and make it u8.
      
      * Convert all existing users accordingly (use ATA_CBL_* defines while at it).  
      
      * Add ATA_CBL_PATA40_SHORT support to ide-iops.c:eighty_ninty_three().
      
      * Use ATA_CBL_PATA40_SHORT for "ideX=ata66" kernel parameter.
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      Reviewed-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      49521f97
  4. 09 May, 2007 2 commits
    • Bartlomiej Zolnierkiewicz's avatar
      ide: add ide_tune_dma() helper · 29e744d0
      Bartlomiej Zolnierkiewicz authored
      
      
      After reworking the code responsible for selecting the best DMA
      transfer mode it is now possible to add generic ide_tune_dma() helper.
      
      Convert some IDE PCI host drivers to use it (the ones left need more work).
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      29e744d0
    • Bartlomiej Zolnierkiewicz's avatar
      ide: rework the code for selecting the best DMA transfer mode (v3) · 2d5eaa6d
      Bartlomiej Zolnierkiewicz authored
      
      
      Depends on the "ide: fix UDMA/MWDMA/SWDMA masks" patch.
      
      * add ide_hwif_t.udma_filter hook for filtering UDMA mask
        (use it in alim15x3, hpt366, siimage and serverworks drivers)
      * add ide_max_dma_mode() for finding best DMA mode for the device
        (loosely based on some older libata-core.c code)
      * convert ide_dma_speed() users to use ide_max_dma_mode()
      * make ide_rate_filter() take "ide_drive_t *drive" as an argument instead
        of "u8 mode" and teach it to how to use UDMA mask to do filtering
      * use ide_rate_filter() in hpt366 driver
      * remove no longer needed ide_dma_speed() and *_ratemask()
      * unexport eighty_ninty_three()
      
      v2:
      * rename ->filter_udma_mask to ->udma_filter
        [ Suggested by Sergei Shtylyov <sshtylyov@ru.mvista.com>. ]
      
      v3:
      * updated for scc_pata driver (fixes XFER_UDMA_6 filtering for user-space
        originated transfer mode change requests when 100MHz clock is used)
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      2d5eaa6d
  5. 16 Feb, 2007 3 commits
    • Bartlomiej Zolnierkiewicz's avatar
      ide: add ide_set_dma() helper (v2) · 3608b5d7
      Bartlomiej Zolnierkiewicz authored
      
      
      * add ide_set_dma() helper and make ide_hwif_t.ide_dma_check return
        -1 when DMA needs to be disabled (== need to call ->ide_dma_off_quietly)
         0 when DMA needs to be enabled  (== need to call ->ide_dma_on)
         1 when DMA setting shouldn't be changed
      * fix IDE code to use ide_set_dma() instead if using ->ide_dma_check directly
      
      v2:
      * updated for scc_pata
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      3608b5d7
    • Bartlomiej Zolnierkiewicz's avatar
      ide: disable DMA in ->ide_dma_check for "no IORDY" case (v2) · d8f4469d
      Bartlomiej Zolnierkiewicz authored
      
      
      If DMA is unsupported ->ide_dma_check should disable DMA.
      
      v2:
      * updated for scc_pata
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      d8f4469d
    • Bartlomiej Zolnierkiewicz's avatar
      ide: add ide_use_fast_pio() helper (v3) · 7569e8dc
      Bartlomiej Zolnierkiewicz authored
      
      
      * add ide_use_fast_pio() helper for use by host drivers
      
      * add DMA capability and hwif->autodma checks to ide_use_dma()
      
        - au1xxx-ide/it8213/it821x drivers didn't check for (id->capability & 1)
      
          [ for the IT8211/2 in SMART mode this check shouldn't be made but since
            in it821x_fixups() we set DMA bit explicitly:
      
                     if(strstr(id->model, "Integrated Technology Express")) {
                             /* In raid mode the ident block is slightly buggy
                                We need to set the bits so that the IDE layer knows
                                LBA28. LBA48 and DMA ar valid */
                             id->capability |= 3;            /* LBA28, DMA */
      
             we are better off using generic helper if we can ]
      
        - ide-cris driver didn't set ->autodma
      
          [ before the patch hwif->autodma was only checked in the chipset specific
            hwif->ide_dma_check implementations, for ide-cris it is cris_dma_check()
            function so there no behavior change here ]
      
      v2:
      * updated patch description (thanks to Alan Cox for the feedback)
      
      v3:
      * updated for scc_pata driver
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      7569e8dc
  6. 30 Jun, 2006 1 commit
  7. 09 Nov, 2005 1 commit