- if (irq_stat & PORT_IRQ_DEV_XCHG) {
- ehi->err_mask |= AC_ERR_ATA_BUS;
- /* sil24 doesn't recover very well from phy
- * disconnection with a softreset. Force hardreset.
- */
- ehi->action |= ATA_EH_HARDRESET;
- ata_ehi_push_desc(ehi, ", device_exchanged");
+ if (irq_stat & (PORT_IRQ_PHYRDY_CHG | PORT_IRQ_DEV_XCHG)) {
+ ata_ehi_hotplugged(ehi);
+ ata_ehi_push_desc(ehi, ", %s",
+ irq_stat & PORT_IRQ_PHYRDY_CHG ?
+ "PHY RDY changed" : "device exchanged");