From: Tom Jackson Date: Fri, 24 Feb 2012 09:38:49 +0000 (+0000) Subject: isci: Don't filter BROADCAST CHANGE primitives X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=944b787d0a469a376f4d6699eb01138823197513;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git 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 Signed-off-by: Dan Williams --- 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) sci_change_state(&iphy->sm, SCI_PHY_STARTING); break; case SCU_EVENT_BROADCAST_CHANGE: + case SCU_EVENT_BROADCAST_SES: + case SCU_EVENT_BROADCAST_RESERVED0: + case SCU_EVENT_BROADCAST_RESERVED1: + case SCU_EVENT_BROADCAST_EXPANDER: + case SCU_EVENT_BROADCAST_AEN: /* Broadcast change received. Notify the port. */ if (phy_get_non_dummy_port(iphy) != NULL) sci_port_broadcast_change_received(iphy->owning_port, iphy); else iphy->bcn_received_while_port_unassigned = true; break; + case SCU_EVENT_BROADCAST_RESERVED3: + case SCU_EVENT_BROADCAST_RESERVED4: default: phy_event_warn(iphy, state, event_code); return SCI_FAILURE_INVALID_STATE;