mirror of
https://github.com/torvalds/linux.git
synced 2026-06-10 07:32:29 +02:00
libata: Add helper to determine when PHY events should be ignored
commit 8393b811f3 upstream.
This is a preparation commit that will allow to add other criteria
according to which PHY events should be dropped.
Signed-off-by: Gabriele Mazzotta <gabriele.mzt@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
566831a12e
commit
8d850bbf3e
|
|
@ -1684,8 +1684,7 @@ static void ahci_handle_port_interrupt(struct ata_port *ap,
|
|||
if (unlikely(resetting))
|
||||
status &= ~PORT_IRQ_BAD_PMP;
|
||||
|
||||
/* if LPM is enabled, PHYRDY doesn't mean anything */
|
||||
if (ap->link.lpm_policy > ATA_LPM_MAX_POWER) {
|
||||
if (sata_lpm_ignore_phy_events(&ap->link)) {
|
||||
status &= ~PORT_IRQ_PHYRDY;
|
||||
ahci_scr_write(&ap->link, SCR_ERROR, SERR_PHYRDY_CHG);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6800,6 +6800,25 @@ u32 ata_wait_register(struct ata_port *ap, void __iomem *reg, u32 mask, u32 val,
|
|||
return tmp;
|
||||
}
|
||||
|
||||
/**
|
||||
* sata_lpm_ignore_phy_events - test if PHY event should be ignored
|
||||
* @link: Link receiving the event
|
||||
*
|
||||
* Test whether the received PHY event has to be ignored or not.
|
||||
*
|
||||
* LOCKING:
|
||||
* None:
|
||||
*
|
||||
* RETURNS:
|
||||
* True if the event has to be ignored.
|
||||
*/
|
||||
bool sata_lpm_ignore_phy_events(struct ata_link *link)
|
||||
{
|
||||
/* if LPM is enabled, PHYRDY doesn't mean anything */
|
||||
return !!(link->lpm_policy > ATA_LPM_MAX_POWER);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(sata_lpm_ignore_phy_events);
|
||||
|
||||
/*
|
||||
* Dummy port_ops
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1085,6 +1085,7 @@ extern struct ata_device *ata_dev_pair(struct ata_device *adev);
|
|||
extern int ata_do_set_mode(struct ata_link *link, struct ata_device **r_failed_dev);
|
||||
extern void ata_scsi_port_error_handler(struct Scsi_Host *host, struct ata_port *ap);
|
||||
extern void ata_scsi_cmd_error_handler(struct Scsi_Host *host, struct ata_port *ap, struct list_head *eh_q);
|
||||
extern bool sata_lpm_ignore_phy_events(struct ata_link *link);
|
||||
|
||||
extern int ata_cable_40wire(struct ata_port *ap);
|
||||
extern int ata_cable_80wire(struct ata_port *ap);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user