1. 07 1月, 2009 2 次提交
    • B
      ide: dynamic allocation of device structures · 5e7f3a46
      Bartlomiej Zolnierkiewicz 提交于
      Allocate device structures dynamically instead of having them embedded
      in ide_hwif_t:
      
      * Remove needless zeroing of port structure from ide_init_port_data().
      
      * Add ide_hwif_t.devices[MAX_DRIVES] (table of pointers to the devices).
      
      * Add ide_port_{alloc,free}_devices() helpers and use them respectively
        in ide_{host,free}_alloc().
      
      * Convert all users of ->drives[] to use ->devices[] instead.
      
      While at it:
      
      * Use drive->dn for the slave device check in scc_pata.c.
      
      As a nice side-effect this patch cuts ~1kB (x86-32) from the resulting
      code size:
      
         text    data     bss     dec     hex filename
        53963    1244     237   55444    d894 drivers/ide/ide-core.o.before
        52981    1244     237   54462    d4be drivers/ide/ide-core.o.after
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      5e7f3a46
    • B
      ide: remove ide_driver_t typedef · 7f3c868b
      Bartlomiej Zolnierkiewicz 提交于
      While at it:
      - s/struct ide_driver_s/struct ide_driver/
      - use to_ide_driver() macro in ide-proc.c
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      7f3c868b
  2. 30 12月, 2008 5 次提交
  3. 03 11月, 2008 1 次提交
  4. 18 10月, 2008 1 次提交
  5. 14 10月, 2008 1 次提交
  6. 11 10月, 2008 7 次提交
    • E
      ide: Remove ide_spin_wait_hwgroup() and use special requests instead · 92f1f8fd
      Elias Oltmanns 提交于
      Use a special request for serialisation purposes and get rid of the
      awkward ide_spin_wait_hwgroup(). This also involves converting the
      ide_devset structure so it can be shared by the /proc and the ioctl code.
      Signed-off-by: NElias Oltmanns <eo@nebensachen.de>
      [bart: use rq->cmd[] directly]
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      92f1f8fd
    • B
      ide: remove SECTOR_WORDS define · 151a6701
      Bartlomiej Zolnierkiewicz 提交于
      Just use SECTOR_SIZE instead.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      151a6701
    • B
      ide: /proc/ide/hd*/settings rework · 8185d5aa
      Bartlomiej Zolnierkiewicz 提交于
      * Add struct ide_devset, S_* flags, *DEVSET() & ide*_devset_*() macros.
      
      * Add 'const struct ide_devset **settings' to ide_driver_t.
      
      * Use 'const struct ide_devset **settings' in ide_drive_t instead of
        'struct ide_settings_s *settings'.  Then convert core code and device
        drivers to use struct ide_devset and co.:
      
        - device settings are no longer allocated dynamically for each device
          but instead there is an unique struct ide_devset instance per setting
      
        - device driver keeps the pointer to the table of pointers to its
          settings in ide_driver_t.settings
      
        - generic settings are kept in ide_generic_setting[]
      
        - ide_proc_[un]register_driver(), ide_find_setting_by_name(),
          ide_{read,write}_setting() and proc_ide_{read,write}_settings()
          are updated accordingly
      
        - ide*_add_settings() are removed
      
      * Remove no longer used __ide_add_setting(), ide_add_setting(),
        __ide_remove_setting() and auto_remove_settings().
      
      * Remove no longer used TYPE_*, SETTING_*, ide_procset_t
        and ide_settings_t.
      
      * ->keep_settings, ->using_dma, ->unmask, ->noflush, ->dsc_overlap,
        ->nice1, ->addressing, ->wcache and ->nowerr ide_drive_t fields
        can now be bitfield flags.
      
      While at it:
      
      * Rename ide_find_setting_by_name() to ide_find_setting().
      
      * Rename write_wcache() to set_wcache().
      
      There should be no functional changes caused by this patch.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      8185d5aa
    • B
      ide: preparations for /proc/ide/hd*/settings rework · 263138a0
      Bartlomiej Zolnierkiewicz 提交于
      After rework settings will be no longer created dynamically
      for each device so we need to make some fixups first.
      
      * Use set_[ksettings,unmaskirq]() as a set function for
        ["keepsettings","unmaskirq"] setting.
      
      * Allow writes to ["io_32bit","unmaskirq"] settings also when
        drive->no_[io_32bit,unmask] is set (this is checked later inside
        set_[io_32bit,unmaskirq]() anywyay and keeps consistency with
        the corresponding HDIO_SET_[32BIT,UNMASKINTR] ioctls).
      
      * Use max possible multi sectors value (16) as an allowed max for
        "multcount" setting.  set_multcount() set function checks against
        device's max possbile value anyway and it makes the proc setting
        consistent with the corresponding HDIO_SET_MULTCOUNT ioctl.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      263138a0
    • B
      ide: include <linux/hdreg.h> only when needed · 3ceca727
      Bartlomiej Zolnierkiewicz 提交于
      * Include <linux/ata.h> directly in <linux/ide.h>
        instead of through <linux/hdreg.h>.
      
      * Include <linux/hdreg.h> only when needed.
      
      Cc: Christoph Hellwig <hch@infradead.org>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      3ceca727
    • B
      ide: WIN_* -> ATA_CMD_* · aaaade3f
      Bartlomiej Zolnierkiewicz 提交于
      * Use ATA_CMD_* defines instead of WIN_* ones.
      
      While at it:
      
      * EXABYTE_ENABLE_NEXT -> ATA_EXABYTE_ENABLE_NEST
      
      * SETFEATURES_{EN,DIS}_WCACHE -> SETFEATURES_WC_{ON,OFF}
      
      * SETFEATURES_{EN,DIS}_AAM -> SETFEATURES_AAM_{ON,OFF}
      
      * SMART_* -> ATA_SMART_*
      
      * Remove stale comment from ide-proc.c.
      
      Partially based on earlier work by Chris Wedgwood.
      Acked-by: NChris Wedgwood <cw@f00f.org>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      aaaade3f
    • B
      ide: make drive->id an union (take 2) · 4dde4492
      Bartlomiej Zolnierkiewicz 提交于
      Make drive->id an unnamed union so id can be accessed either by using
      'u16 *id' or 'struct hd_driveid *driveid'.  Then convert all existing
      drive->id users accordingly (using 'u16 *id' when possible).
      
      This is an intermediate step to make ide 'struct hd_driveid'-free.
      
      While at it:
      
      - Add missing KERN_CONTs in it821x.c.
      
      - Use ATA_ID_WORDS and ATA_ID_*_LEN defines.
      
      - Remove unnecessary checks for drive->id.
      
      - s/drive_table/table/ in ide_in_drive_list().
      
      - Cleanup ide_config_drive_speed() a bit.
      
      - s/drive1/dev1/ & s/drive0/dev0/ in ide_undecoded_slave().
      
      v2:
      Fix typo in drivers/ide/ppc/pmac.c. (From Stephen Rothwell)
      
      There should be no functional changes caused by this patch.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      4dde4492
  7. 25 7月, 2008 1 次提交
  8. 24 7月, 2008 2 次提交
  9. 01 7月, 2008 1 次提交
  10. 11 6月, 2008 1 次提交
  11. 29 4月, 2008 1 次提交
  12. 27 4月, 2008 2 次提交
  13. 26 4月, 2008 1 次提交
  14. 18 4月, 2008 2 次提交
  15. 06 2月, 2008 1 次提交
  16. 03 2月, 2008 2 次提交
  17. 02 2月, 2008 1 次提交
  18. 27 1月, 2008 1 次提交
  19. 20 10月, 2007 1 次提交
    • 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
  20. 10 7月, 2007 1 次提交
  21. 24 5月, 2007 1 次提交
  22. 10 5月, 2007 2 次提交
    • 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
    • B
      ide: move IDE settings handling to ide-proc.c · 7662d046
      Bartlomiej Zolnierkiewicz 提交于
      * move
      	__ide_add_setting()
      	ide_add_setting()
      	__ide_remove_setting()
      	auto_remove_settings()
      	ide_find_setting_by_name()
      	ide_read_setting()
      	ide_write_setting()
      	set_xfer_rate()
      	ide_add_generic_settings()
      	ide_register_subdriver()
      	ide_unregister_subdriver()
      
        from ide.c to ide-proc.c
      
      * set_{io_32bit,pio_mode,using_dma}() cannot be marked static now, fix it
      
      * rename ide_[un]register_subdriver() to ide_proc_[un]register_driver(),
        update device drivers to use new names
      
      * add CONFIG_IDE_PROC_FS=n versions of ide_proc_[un]register_driver()
        and ide_add_generic_settings()
      
      * make ide_find_setting_by_name(), ide_{read,write}_setting()
        and ide_{add,remove}_proc_entries() static
      
      * cover IDE settings code in device drivers with CONFIG_IDE_PROC_FS #ifdef,
        also while at it cover with CONFIG_IDE_PROC_FS #ifdef ide_driver_t.proc
      
      * remove bogus comment from ide.h
      
      * cover with CONFIG_IDE_PROC_FS #ifdef .proc and .settings in ide_drive_t
      
      Besides saner code this patch results in the IDE core smaller by ~2 kB
      (on x86-32) and IDE disk driver by ~1 kB (ditto) when CONFIG_IDE_PROC_FS=n.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      7662d046
  23. 28 4月, 2007 1 次提交
  24. 15 2月, 2007 1 次提交
    • T
      [PATCH] remove many unneeded #includes of sched.h · cd354f1a
      Tim Schmielau 提交于
      After Al Viro (finally) succeeded in removing the sched.h #include in module.h
      recently, it makes sense again to remove other superfluous sched.h includes.
      There are quite a lot of files which include it but don't actually need
      anything defined in there.  Presumably these includes were once needed for
      macros that used to live in sched.h, but moved to other header files in the
      course of cleaning it up.
      
      To ease the pain, this time I did not fiddle with any header files and only
      removed #includes from .c-files, which tend to cause less trouble.
      
      Compile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,
      arm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,
      allmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all
      configs in arch/arm/configs on arm.  I also checked that no new warnings were
      introduced by the patch (actually, some warnings are removed that were emitted
      by unnecessarily included header files).
      Signed-off-by: NTim Schmielau <tim@physik3.uni-rostock.de>
      Acked-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cd354f1a