1. 05 3月, 2009 1 次提交
    • H
      ide: NULL noise: drivers/ide/ide-*.c · 71bfc7a7
      Hannes Eder 提交于
      Fix this sparse warnings:
        drivers/ide/ide-disk_proc.c:130:11: warning: Using plain integer as NULL pointer
        drivers/ide/ide-floppy_proc.c:32:11: warning: Using plain integer as NULL pointer
        drivers/ide/ide-proc.c:234:11: warning: Using plain integer as NULL pointer
        drivers/ide/ide-tape.c:2141:11: warning: Using plain integer as NULL pointer
      Signed-off-by: NHannes Eder <hannes@hanneseder.net>
      Cc: trivial@kernel.org
      Cc: kernel-janitors@vger.kernel.org
      Cc: Al Viro <viro@ZenIV.linux.org.uk>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      71bfc7a7
  2. 07 1月, 2009 3 次提交
    • B
      ide: add port and host iterators · 2bd24a1c
      Bartlomiej Zolnierkiewicz 提交于
      Add ide_port_for_each_dev() / ide_host_for_each_port() iterators
      and update IDE code to use them.
      
      While at it:
      - s/unit/i/ variable in ide_port_wait_ready(), ide_probe_port(),
        ide_port_tune_devices(), ide_port_init_devices_data(), do_reset1(),
        ide_acpi_set_state() and scc_dma_end()
      - s/d/i/ variable in ide_proc_port_register_devices()
      
      There should be no functional changes caused by this patch.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      2bd24a1c
    • 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
  3. 30 12月, 2008 5 次提交
  4. 03 11月, 2008 1 次提交
  5. 18 10月, 2008 1 次提交
  6. 14 10月, 2008 1 次提交
  7. 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
  8. 25 7月, 2008 1 次提交
  9. 24 7月, 2008 2 次提交
  10. 01 7月, 2008 1 次提交
  11. 11 6月, 2008 1 次提交
  12. 29 4月, 2008 1 次提交
  13. 27 4月, 2008 2 次提交
  14. 26 4月, 2008 1 次提交
  15. 18 4月, 2008 2 次提交
  16. 06 2月, 2008 1 次提交
  17. 03 2月, 2008 2 次提交
  18. 02 2月, 2008 1 次提交
  19. 27 1月, 2008 1 次提交
  20. 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
  21. 10 7月, 2007 1 次提交
  22. 24 5月, 2007 1 次提交
  23. 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