11 Oct, 2008
40 commits
-
* Fix intendation for the main 'switch ()'.
* 'switch ()' -> 'if ()' for HDIO_DRIVE_TASKFILE case.
* Move HDIO_SET_NICE case under HDIO_GET_NICE one.
Signed-off-by: Bartlomiej Zolnierkiewicz
-
* Add struct ide_ioctl_devset representing ioctl device setting.
* Add ide_setting_ioctl() helper for matching given ioctl
and its parameters against table of ioctl device settings.* Convert ide_setting_ioctl() and idedisk_ioctl() to use
ide_setting_ioctl().* Un-export ide_setting_mtx.
While at it:
* {get,set}_lba_addressing() -> {get,set}_addressing()
There should be no functional changes caused by this patch.
Signed-off-by: Bartlomiej Zolnierkiewicz
-
It is always set to BUSSTATE_ON.
Signed-off-by: Bartlomiej Zolnierkiewicz
-
* Keep pointer to ->init_chipset method also in
struct ide_host and set it in ide_host_alloc_all().* Add ide_pci_suspend() and ide_pci_resume() helpers
(default ->suspend and ->resume implementations).* ->init_chipset can no longer be marked __devinit.
* Add proper PCI PM support to IDE PCI host drivers
(rz1000.c and tc86c001.c are skipped for now since
they need to be converted from using ->init_hwif
to use ->init_chipset instead).v2:
* Cleanup CONFIG_PM #ifdef-s per akpm's suggestion.Cc: Andrew Morton
Cc: "Rafael J. Wysocki"
Signed-off-by: Bartlomiej Zolnierkiewicz -
* Factor out disabling of "fast interrupt" prediction from
init_hwif_hpt366() to hpt3xx_disable_fast_irq() helper.* Use hpt3xx_disable_fast_irq() in ->init_chipset instead of
->init_hwif method.This is a preparation for adding proper PCI PM support.
While at it:
* Cache chip type in chip_type variable in hpt3xx_disable_fast_irq().
There should be no functional changes caused by this patch.
Cc: Sergei Shtylyov
Signed-off-by: Bartlomiej Zolnierkiewicz -
Rename lba_capacity_is_ok() to ata_id_is_lba_capacity_ok()
and move it to (remove needless parens while at it).Cc: Jeff Garzik
Signed-off-by: Bartlomiej Zolnierkiewicz -
Rename ide_id_to_hd_driveid() to ata_id_to_hd_driveid()
and move it to .Cc: Jeff Garzik
Signed-off-by: Bartlomiej Zolnierkiewicz -
Use ata_id_is_cfa() in do_identify() instead of open-coding
check for CompactFlash devices (the inline helper also takes
care of detecting CFs advertising themselves as ATA disks).Signed-off-by: Bartlomiej Zolnierkiewicz
-
* Add ata_id_flush_ext_enabled() inline helper to .
* ide_id_has_flush_cache_ext() -> ata_id_flush_ext_enabled()
The latter one also checks if the command is marked as
supported in word 83 and validity of words 83 & 86.Cc: Jeff Garzik
Signed-off-by: Bartlomiej Zolnierkiewicz -
* Add ata_id_flush_enabled() inline helper to .
* ide_id_has_flush_cache() -> ata_id_flush_enabled()
The latter one also checks if the command is marked as
supported in word 83 and validity of words 83 & 86.Cc: Jeff Garzik
Signed-off-by: Bartlomiej Zolnierkiewicz -
All devices supporting CACHE FLUSH EXT command should also support
CACHE FLUSH command so it is sufficient to check only for CACHE FLUSH
in ide_id_has_flush_cache().Signed-off-by: Bartlomiej Zolnierkiewicz
-
* Add ata_id_lba48_enabled() inline helper to .
* idedisk_supports_lba48() -> ata_id_lba48_enabled()
The latter one also checks validity of words 83 & 86.
Cc: Jeff Garzik
Signed-off-by: Bartlomiej Zolnierkiewicz -
* Use optimized ATA version check from Sergei in ata_id_is_sata().
* ide_dev_is_sata() -> ata_id_is_sata()
Cc: Jeff Garzik
Cc: Sergei Shtylyov
Signed-off-by: Bartlomiej Zolnierkiewicz -
* Remove (id[ATA_ID_FIELD_VALID] & 2) check from ide_dev_has_iordy()
(it is for validity of words 64-70, IORDY is in word 49).* ide_dev_has_iordy() -> ata_id_has_iordy()
Cc: Sergei Shtylyov
Signed-off-by: Bartlomiej Zolnierkiewicz -
Factor out HDIO_{GET,SET}_NICE ioctl handling from
generic_ide_ioctl() to ide_{get,set}_nice_ioctl().Signed-off-by: Bartlomiej Zolnierkiewicz
-
* Use drive->media and drive->scsi to check if ->dsc_overlap
can be set by HDIO_SET_NICE ioctl in generic_ide_ioctl().* Remove unused ->supports_dsc_overlap field from ide_driver_t.
There should be no functional changes caused by this patch.
Signed-off-by: Bartlomiej Zolnierkiewicz
-
Signed-off-by: Bartlomiej Zolnierkiewicz
-
Factor out the common code from check_prefetch()
and set_prefetch_mode() to __set_prefetch_mode().Signed-off-by: Bartlomiej Zolnierkiewicz
-
Just use SECTOR_SIZE instead.
Signed-off-by: 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: 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: Bartlomiej Zolnierkiewicz
-
Call ide_proc_register_driver() in ide*_setup() (just before
ide*_add_settings() call) instead of in ->probe method.Despite being basically a preparation for /proc/ide/hd*/settings
rework this is a nice cleanup in itself.Signed-off-by: Bartlomiej Zolnierkiewicz
-
* Include directly in
instead of through .* Include only when needed.
Cc: Christoph Hellwig
Signed-off-by: Bartlomiej Zolnierkiewicz -
Use multi PIO by default when available and remove no longer
needed CONFIG_IDEDISK_MULTI_MODE (it should be safe nowadays,
despite to what help entry has been saying).Signed-off-by: Bartlomiej Zolnierkiewicz
-
* Change ide_get_paired_drive() to return NULL if peer device
is not present and update all users accordingly.While at it:
* ide_get_paired_drive() -> ide_get_pair_dev()
* Use ide_get_pair_dev() in cs5530.c, sc1200.c and via82cxxx.c.
There should be no functional changes caused by this patch.
Acked-by: Sergei Shtylyov
Signed-off-by: Bartlomiej Zolnierkiewicz -
Remove needless drive->present checks from ->probe methods
(device model takes care of that).Signed-off-by: Bartlomiej Zolnierkiewicz
-
Signed-off-by: Bartlomiej Zolnierkiewicz
-
They just obfuscate the code.
Signed-off-by: Bartlomiej Zolnierkiewicz
-
init_irq() is now called only during initial host registration
so these BUG_ON()-s are no loner needed (+ the last one was done
too late anyway).Signed-off-by: Bartlomiej Zolnierkiewicz
-
* Make ide_busy_sleep() take timeout value as a parameter
and also allow use of AltStatus Register if requested with
altstatus parameter. Update existing users accordingly.* Convert ide_driveid_update() and actual_try_to_identify()
to use ide_busy_sleep().There should be no functional changes caused by this patch.
Signed-off-by: Bartlomiej Zolnierkiewicz
-
Fix EXABYTENEST handling in probe_for_drive() (so drive->present
is checked for "nested" device) and cleanup enable_nest().Signed-off-by: Bartlomiej Zolnierkiewicz
-
Signed-off-by: FUJITA Tomonori
Cc: Borislav Petkov
Cc: Thomas Bogendoerfer
Cc: Tejun Heo
Cc: Jens Axboe
Cc: James Bottomley
Signed-off-by: Andrew Morton
Signed-off-by: Bartlomiej Zolnierkiewicz -
On Friday 25 July 2008, Linus Torvalds wrote:
>
> On Fri, 25 Jul 2008, Ben Dooks wrote:
> >
> > personally, i would much prefer to see the loop being less evil
> > like:
> >
> > for (p = s; p < end; p += 2)
> > be16_to_cpus((u16 *)p);
>
> Well, in this case, the code actually depends on 'p' being back at the
> start of the buffer by the end of it all, so it would need some more
> changes than that.
>
> But yes, I applied David's patch, but I _also_ suspect that we would be
> better off without code that does horrid things like casts and assignments
> inside the function arguments.
>
> So it would be nice to re-code that loop to be more readable. But due to
> the reliance of 'p' being 's' after the loop, the minimal patch would be
> something like the appended.
>
> Bartlomiej - take this or not, I'm not going to commit it - I haven't
> tested it, nor do I even have any machines that would trigger it. So this
> is more a "maybe something like this" than anything else.From: Linus Torvalds
CC: Ben Dooks
Cc: David Miller
Cc: harvey.harrison@gmail.com
Signed-off-by: Bartlomiej Zolnierkiewicz -
Remove ->remap_0_to_1 and ->sect0 (they are always zero now).
Signed-off-by: Bartlomiej Zolnierkiewicz
-
* ERR_STAT -> ATA_ERR
* INDEX_STAT -> ATA_IDX
* ECC_STAT -> ATA_CORR
* DRQ_STAT -> ATA_DRQ
* SEEK_STAT -> ATA_DSC
* WRERR_STAT -> ATA_DF
* READY_STAT -> ATA_DRDY
* BUSY_STAT -> ATA_BUSY* MARK_ERR -> ATA_AMNF
* TRK0_ERR -> ATA_TRK0NF
* ABRT_ERR -> ATA_ABORTED
* MCR_ERR -> ATA_MCR
* ID_ERR -> ATA_IDNF
* MC_ERR -> ATA_MC
* ECC_ERR -> ATA_UNC
* ICRC_ERR -> ATA_ICRC* BBD_ERR -> ATA_BBK
Also:
* ILI_ERR -> ATAPI_ILI
* EOM_ERR -> ATAPI_EOM
* LFS_ERR -> ATAPI_LFS* CD -> ATAPI_COD
* IO -> ATAPI_IOSigned-off-by: Bartlomiej Zolnierkiewicz
-
* Use ATA_CMD_* defines instead of WIN_* ones.
* Include directly instead of through .
Signed-off-by: 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: Chris Wedgwood
Signed-off-by: Bartlomiej Zolnierkiewicz -
Acked-by: Jeff Garzik
Signed-off-by: Bartlomiej Zolnierkiewicz -
idedisk_supports_hpa() -> ata_id_hpa_enabled().
The latter one also checks validity of words 82 & 85.
Signed-off-by: Bartlomiej Zolnierkiewicz
-
Replace open-coded check by ata_id_wcache_enabled()
(which also checks validity of word 85).Signed-off-by: Bartlomiej Zolnierkiewicz