1. 25 1月, 2008 1 次提交
    • K
      Driver core: convert block from raw kobjects to core devices · edfaa7c3
      Kay Sievers 提交于
      This moves the block devices to /sys/class/block. It will create a
      flat list of all block devices, with the disks and partitions in one
      directory. For compatibility /sys/block is created and contains symlinks
      to the disks.
      
        /sys/class/block
        |-- sda -> ../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda
        |-- sda1 -> ../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1
        |-- sda10 -> ../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda10
        |-- sda5 -> ../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5
        |-- sda6 -> ../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda6
        |-- sda7 -> ../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda7
        |-- sda8 -> ../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda8
        |-- sda9 -> ../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda9
        `-- sr0 -> ../../devices/pci0000:00/0000:00:1f.2/host1/target1:0:0/1:0:0:0/block/sr0
      
        /sys/block/
        |-- sda -> ../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda
        `-- sr0 -> ../devices/pci0000:00/0000:00:1f.2/host1/target1:0:0/1:0:0:0/block/sr0
      Signed-off-by: NKay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      edfaa7c3
  2. 13 12月, 2007 2 次提交
  3. 28 11月, 2007 1 次提交
    • J
      ide: skip ide_wait_not_busy() on noprobe-disks · 8266105b
      Jonas Stare 提交于
      There is a problem in some hardware where the kernel will stall for
      35 seconds waiting for disks that don't exist. This patch will skip
      waiting for the BSY-bit on IDE drives to go away if you set "hdx=noprobe"
      as a kernel option and the disk is not marked as 'present' (like when
      you set the geometry by hand).
      
      If no noprobe-option is set the code will work (more or less) as the
      original but if set the code will skip the ide_wait_not_busy() for
      that drive. Even if there would be a drive there and it is still busy
      afterwards it should not matter since it isn't probed for later.
      
      The code also honors the MAX_DRIVES variable instead of assuming that
      there will be two harddrives on the bus.
      
      Bart: minor cleanups
      Signed-off-by: NJonas Stare <jonas.stare@purplescout.se>
      CC: Andrew Morton <akpm@linux-foundation.org>,
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      8266105b
  4. 06 11月, 2007 1 次提交
  5. 23 10月, 2007 2 次提交
  6. 20 10月, 2007 3 次提交
    • B
      ide: add ide_device_add() · 8447d9d5
      Bartlomiej Zolnierkiewicz 提交于
      * Add ide_device_add() helper and convert host drivers to use it
        instead of open-coded variants.
      
      * Make ide_pci_setup_ports() and do_ide_setup_pci_device()
        take 'u8 *idx' argument instead of 'ata_index_t *index'.
      
      * Remove no longer needed ata_index_t.
      
      * Unexport probe_hwif_init() and make it static.
      
      * Unexport ide_proc_register_port().
      
      There should be no functionality changes caused by this patch
      (sgiioc4.c: ide_proc_register_port() requires hwif->present
       to be set and it won't be set if probe_hwif_init() fails).
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      8447d9d5
    • B
      ide: add ->fixup method to ide_hwif_t · fd9bb539
      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: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      fd9bb539
    • B
      ide: add hwif_register_devices() helper · 9601a607
      Bartlomiej Zolnierkiewicz 提交于
      Add hwif_register_devices() helper to fix code duplication between
      probe_hwif_init_with_fixup() and ideprobe_init().  Also remove stale
      comment while at it.
      Acked-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      9601a607
  7. 19 10月, 2007 1 次提交
  8. 17 10月, 2007 3 次提交
    • B
      ide: remove CONFIG_IDEDMA_ONLYDISK · 8c0697cc
      Bartlomiej Zolnierkiewicz 提交于
      ATAPI devices with broken DMA support should be handled by DMA blacklist
      and for debugging purposes we have new shiny "hdx=nodma" kernel paremeter.
      Acked-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      8c0697cc
    • B
      ide: remove hwif->autodma and drive->autodma · 9ff6f72f
      Bartlomiej Zolnierkiewicz 提交于
      * hpt34x.c: disable DMA masks for HPT345
        (hwif->autodma is zero so DMA won't be enabled anyway).
      
      * trm290.c: disable IDE_HFLAG_TRUST_BIOS_FOR_DMA flag
        (hwif->autodma is zero so DMA won't be enabled anyway).
      
      * Check noautodma global variable instead of drive->autodma in ide_tune_dma().
      
        This fixes handling of "ide=nodma" kernel parameter for icside, ide-cris,
        au1xxx-ide, pmac, it821x, jmicron, sgiioc4 and siimage host drivers.
      
      * Remove hwif->autodma (it was not checked by IDE core code anyway) and
        drive->autodma (was set by all host drivers - except HPT345/TRM290 special
        cases - unless "ide=nodma" was used).
      
      While at it:
      - remove needless printk() from icside.c
      - remove stale FIXME/comment from ide-probe.c
      - don't force DMA off if PCI bus-mastering had to be enabled in setup-pci.c
        (this setting was always later over-ridden by host drivers anyway)
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      9ff6f72f
    • B
      ide: remove ->ide_dma_check (take 2) · 0ae2e178
      Bartlomiej Zolnierkiewicz 提交于
      * Add IDE_HFLAG_TRUST_BIOS_FOR_DMA host flag for host drivers that depend
        on BIOS for programming device/controller for DMA.  Set it in cy82c693,
        generic, ns87415, opti621 and trm290 host drivers.
      
      * Add IDE_HFLAG_VDMA host flag for host drivers using VDMA.  Set it in cs5520
        host driver.
      
      * Teach ide_tune_dma() about IDE_HFLAG_TRUST_BIOS_FOR_DMA flag.
      
      * Add generic ide_dma_check() helper and remove all open coded ->ide_dma_check
        implementations.  Fix all places checking for presence of ->ide_dma_check
        hook to check for ->ide_dma_on instead.
      
      * Remove no longer needed code from config_drive_for_dma().
      
      * Make ide_tune_dma() static.
      
      v2:
      * Fix config_drive_for_dma() return values.
      
      * Fix ide-dma.c build for CONFIG_BLK_DEV_IDEDMA_PCI=n by adding
        dummy config_drive_for_dma() inline.
      
      * Fix IDE_HFLAG_TRUST_BIOS_FOR_DMA handling in ide_dma_check().
      
      * Fix init_hwif_it8213() comment.
      
      There should be no functionality changes caused by this patch.
      
      Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      0ae2e178
  9. 16 10月, 2007 1 次提交
  10. 13 10月, 2007 1 次提交
  11. 12 10月, 2007 1 次提交
    • B
      ide: add ide_set{_max}_pio() (take 4) · 26bcb879
      Bartlomiej Zolnierkiewicz 提交于
      * Add IDE_HFLAG_ABUSE_{PREFETCH,FAST_DEVSEL,DMA_MODES} flags
        and set them in ht6560, cmd640, cmd64x and sc1200 host drivers.
      
      * Add set_pio_mode_abuse() for checking if host driver has a non-standard
        ->tuneproc() implementation and use it in do_special().
      
      * Add ide_set_pio() for setting PIO mode (it uses hwif->pio_mask to find
        the maximum PIO mode supported by the host), also add ide_set_max_pio()
        wrapper for ide_set_pio() to use for auto-tuning.  Convert users of
        ->tuneproc to use ide_set{_max}_pio() where possible.  This leaves only
        do_special(), set_using_pio(), ide_hwif_restore() and ide_set_pio() as
        a direct users of ->tuneproc.
      
      * Remove no longer needed ide_get_best_pio_mode() calls and printk-s
        reporting PIO mode selected from ->tuneproc implementations.
      
      * Rename ->tuneproc hook to ->set_pio_mode and make 'pio' argument const.
      
      * Remove stale comment from ide_config_drive_speed().
      
      v2:
      * Fix "ata_" prefix (Noticed by Jeff).
      
      v3:
      * Minor cleanups/fixups per Sergei's suggestions.
      
      v4:
      * Fix compile problem in drivers/ide/pci/cmd640.c
        (Noticed by Andrew Morton).
      
      * Improve some ->set_pio_mode comments.
      Reviewed-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Cc: Jeff Garzik <jeff@garzik.org>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      26bcb879
  12. 24 7月, 2007 1 次提交
  13. 18 7月, 2007 1 次提交
  14. 10 7月, 2007 2 次提交
  15. 04 7月, 2007 1 次提交
  16. 08 6月, 2007 1 次提交
    • B
      it821x: RAID mode fixes · 0380dad4
      Bartlomiej Zolnierkiewicz 提交于
      The DMA support for RAID mode broke after:
      
      	commit 71ef51cc
      	Author: Jens Axboe <axboe@suse.de>
      	Date:   Fri Jul 28 09:02:17 2006 +0200
      
      	    [PATCH] it821x: fix ide dma setup bug
      
      	    Only enable dma for a valid speed setting.
      
      	    Signed-off-by: Jens Axboe <axboe@suse.de>
      
      	commit 0a8348d0
      	Author: Jens Axboe <axboe@suse.de>
      	Date:   Fri Jul 28 08:58:26 2006 +0200
      
      	    [PATCH] ide: if the id fields looks screwy, disable DMA
      
      	    It's the safer choice. Originally due to a bug in itx821x, but a
      	    generally sound thing to do.
      
      	    Signed-off-by: Jens Axboe <axboe@suse.de>
      
      However it worked by pure luck before Jens' fixes: bogus ide_dma_enable()
      usage in it821x driver combined with loosy check in ide_dma_verbose() allowed
      the hardware to operate in DMA mode.  When these problems were fixed the DMA
      support broke...
      
      The source root for the regression turned out to be that the it821x.c code
      was clearing too much of id->field_valid.  The IDE core code was using the
      original value of id->field_valid to do the tuning but later DMA got disabled
      in ide_dma_verbose() because of the incorrect id->field_valid fixup.  Fix it.
      
      While at it:
      
      * Do fixup() after probing the drives but before tuning them (which is also
        OK w.r.t. ide_undecoded_slave() fixup).  This change fixes device IDENTIFY
        data to be consistent before/after the tuning and allows us to remove extra
        re-tuning of drives from it821x_fixups().
      
      * Fake MWDMA0 enabled/supported bits in IDENTIFY data if the device has
        DMA capable bit set (this is just to tell the IDE core that DMA is
        supported since it821x firmware takes care of DMA mode programming).
      
      * Don't touch timing registers and don't program transfer modes on devices
        et all when in RAID mode - depend solely on firmware to do the tuning
        (as suggested by Alan Cox and done in libata pata_it821x driver).
      
      Thanks for testing the patch goes out to Thomas Kuther.
      
      Cc: Thomas Kuther <gimpel@sonnenkinder.org>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Jens Axboe <axboe@suse.de>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      0380dad4
  17. 10 5月, 2007 1 次提交
    • B
      ide: add ide_proc_register_port() · 5cbf79cd
      Bartlomiej Zolnierkiewicz 提交于
      * create_proc_ide_interfaces() tries to add /proc entries for every probed
        and initialized IDE port, replace it by ide_proc_register_port() which does
        it only for the given port (also rename destroy_proc_ide_interface() to
        ide_proc_unregister_port() for consistency)
        
      * convert {create,destroy}_proc_ide_interface[s]() users to use new functions
      
      * pmac driver depended on proc_ide_create() to add /proc port entries, fix it
        
      * au1xxx-ide, swarm and cs5520 drivers depended indirectly on ide-generic
        driver (CONFIG_IDE_GENERIC=y) to add port /proc entries, fix them
      
      * there is now no need to add /proc entries for IDE ports in proc_ide_create()
        so don't do it
      
      * proc_ide_create() needs now to be called before drivers are probed - fix it,
        while at it make proc_ide_create() create /proc "ide" directory
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      5cbf79cd
  18. 04 3月, 2007 1 次提交
  19. 17 2月, 2007 2 次提交
    • B
      ide: make ide_hwif_t.ide_dma_{host_off,off_quietly} void (v2) · 7469aaf6
      Bartlomiej Zolnierkiewicz 提交于
      * since ide_hwif_t.ide_dma_{host_off,off_quietly} always return '0'
        make these functions void and while at it drop "ide_" prefix
      * fix comment for __ide_dma_off_quietly()
      * make __ide_dma_{host_off,off_quietly,off}() void and drop "__" prefix
      
      v2:
      * while at it rename atiixp_ide_dma_host_off() to atiixp_dma_host_off(),
        sgiioc4_ide_dma_{host_off,off_quietly}() to sgiioc4_dma_{host_off,off_quietly}()
        and sl82c105_ide_dma_off_quietly() to sl82c105_dma_off_quietly()
        [ Noticed by Sergei Shtylyov <sshtylyov@ru.mvista.com>. ]
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      7469aaf6
    • B
      ide: add ide_set_dma() helper (v2) · 3608b5d7
      Bartlomiej Zolnierkiewicz 提交于
      * 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: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      3608b5d7
  20. 08 2月, 2007 1 次提交
    • H
      ACPI support for IDE devices · e3a59b4d
      Hannes Reinecke 提交于
      This patch implements ACPI integration for generic IDE devices.
      The ACPI spec mandates that some methods are called during suspend and
      resume. And consequently there most modern Laptops cannot resume
      properly without it.
      
      According to the spec, we should call '_GTM' (Get Timing) upon suspend
      to store the current IDE adapter settings.
      Upon resume we should call '_STM' (Set Timing) to initialize the
      adapter with the stored settings; afterwards '_GTF' (Get Taskfile)
      should be called which returns a buffer with some IDE initialisation
      commands. Those commands should be passed to the drive.
      
      There are two module params which control the behaviour of this patch:
      
      'ide=noacpi'
      	Do not call any ACPI methods (Disables any ACPI method calls)
      'ide=acpigtf'
      	Enable execution of _GTF methods upon resume.
      	Has no effect if 'ide=noacpi' is set.
      'ide=acpionboot'
      	Enable execution of ACPI methods during boot.
      	This might be required on some machines if 'ide=acpigtf' is
      	selected as some machines modify the _GTF information
      	depending on the drive identification passed down with _STM.
      Signed-off-by: NHannes Reinecke <hare@suse.de>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      e3a59b4d
  21. 12 12月, 2006 1 次提交
    • B
      [PATCH] remove blk_queue_activity_fn · 2b02a179
      Boaz Harrosh 提交于
      While working on bidi support at struct request level
      I have found that blk_queue_activity_fn is actually never used.
      The only user is in ide-probe.c with this code:
      
      	/* enable led activity for disk drives only */
      	if (drive->media == ide_disk && hwif->led_act)
      		blk_queue_activity_fn(q, hwif->led_act, drive);
      
      And led_act is never initialized anywhere.
      (Looking back at older kernels it was used in the PPC arch, but was removed around 2.6.18)
      Unless it is all for future use off course.
      (this patch is against linux-2.6-block.git as off 2006/12/4)
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      2b02a179
  22. 03 10月, 2006 1 次提交
  23. 03 7月, 2006 1 次提交
  24. 01 7月, 2006 1 次提交
  25. 27 6月, 2006 1 次提交
  26. 20 6月, 2006 1 次提交
    • D
      [SPARC]: Kill __irq_itoa(). · c6387a48
      David S. Miller 提交于
      This ugly hack was long overdue to die.
      
      It was a way to print out Sparc interrupts in a more freindly format,
      since IRQ numbers were arbitrary opaque 32-bit integers which vectored
      into PIL levels.  These 32-bit integers were not necessarily in the
      0-->NR_IRQS range, but the PILs they vectored to were.
      
      The idea now is that we will increase NR_IRQS a little bit and use a
      virtual<-->real IRQ number mapping scheme similar to PowerPC.
      
      That makes this IRQ printing hack irrelevant, and furthermore only a
      handful of drivers actually used __irq_itoa() making it even less
      useful.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c6387a48
  27. 24 3月, 2006 1 次提交
  28. 04 2月, 2006 1 次提交
  29. 13 1月, 2006 1 次提交
  30. 10 1月, 2006 1 次提交
  31. 09 1月, 2006 1 次提交
  32. 07 11月, 2005 1 次提交