• T
    [PATCH] libata: implement ATA_EHI_SETMODE and ATA_EHI_POST_SETMODE · baa1e78a
    Tejun Heo 提交于
    libata EH used to perform ata_set_mode() iff the EH session performed
    reset as indicated by ATA_EHI_DID_RESET.  This is incorrect because
    ->dev_config() called by revalidation is allowed to modify transfer
    mode which ata_set_mode() should take care of.  This patch implements
    the following two flags.
    
    * ATA_EHI_SETMODE: set during EH to schedule ata_set_mode().  Both new
      device attachment and revalidation set this flag.
    
    * ATA_EHI_POST_SETMODE: set while the device is revalidated after
      ata_set_mode().  Post-setmode revalidation is different from initial
      configuaration and EH revalidation in that ->dev_config() is not
      allowed tune transfer mode.  LLD can use this flag to determine
      whether it's allowed to tune transfer mode.  Note that POST_SETMODE
      ->dev_config() is guaranteed to be preceded by non-POST_SETMODE
      ->dev_config().
    Signed-off-by: NTejun Heo <htejun@gmail.com>
    Signed-off-by: NJeff Garzik <jeff@garzik.org>
    baa1e78a
libata.h 37.6 KB