aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorTom Jackson <thomas.p.jackson@intel.com>2012-02-24 04:38:49 -0500
committerDan Williams <dan.j.williams@intel.com>2012-05-17 15:27:12 -0400
commit944b787d0a469a376f4d6699eb01138823197513 (patch)
tree4a1a59d80cc22afc85729cea30405b60aef2cfe0 /drivers
parentc79dd80d73017a88a2c2ae46e7d5303cba6a32e0 (diff)
isci: Don't filter BROADCAST CHANGE primitives
Per the SAS spec, several types of BROADCAST CHANGE primitives must cause re-discovery of the originating expander. Only the standard BROADCAST CHANGE primitive was being sent to the LIBSAS layer. The other BC primitives have been added to the sci_phy_event_handler() Signed-off-by: Tom Jackson <thomas.p.jackson@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/scsi/isci/phy.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/scsi/isci/phy.c b/drivers/scsi/isci/phy.c
index c685ab04532f..474330fdbe1c 100644
--- a/drivers/scsi/isci/phy.c
+++ b/drivers/scsi/isci/phy.c
@@ -875,12 +875,19 @@ enum sci_status sci_phy_event_handler(struct isci_phy *iphy, u32 event_code)
875 sci_change_state(&iphy->sm, SCI_PHY_STARTING); 875 sci_change_state(&iphy->sm, SCI_PHY_STARTING);
876 break; 876 break;
877 case SCU_EVENT_BROADCAST_CHANGE: 877 case SCU_EVENT_BROADCAST_CHANGE:
878 case SCU_EVENT_BROADCAST_SES:
879 case SCU_EVENT_BROADCAST_RESERVED0:
880 case SCU_EVENT_BROADCAST_RESERVED1:
881 case SCU_EVENT_BROADCAST_EXPANDER:
882 case SCU_EVENT_BROADCAST_AEN:
878 /* Broadcast change received. Notify the port. */ 883 /* Broadcast change received. Notify the port. */
879 if (phy_get_non_dummy_port(iphy) != NULL) 884 if (phy_get_non_dummy_port(iphy) != NULL)
880 sci_port_broadcast_change_received(iphy->owning_port, iphy); 885 sci_port_broadcast_change_received(iphy->owning_port, iphy);
881 else 886 else
882 iphy->bcn_received_while_port_unassigned = true; 887 iphy->bcn_received_while_port_unassigned = true;
883 break; 888 break;
889 case SCU_EVENT_BROADCAST_RESERVED3:
890 case SCU_EVENT_BROADCAST_RESERVED4:
884 default: 891 default:
885 phy_event_warn(iphy, state, event_code); 892 phy_event_warn(iphy, state, event_code);
886 return SCI_FAILURE_INVALID_STATE; 893 return SCI_FAILURE_INVALID_STATE;