Loading drivers/platform/msm/gsi/gsi.c +25 −3 Original line number Diff line number Diff line Loading @@ -1680,10 +1680,32 @@ static void gsi_program_chan_ctx(struct gsi_chan_props *props, unsigned int ee, uint8_t erindex) { uint32_t val; uint32_t prot; uint32_t prot_msb; switch (props->prot) { case GSI_CHAN_PROT_MHI: case GSI_CHAN_PROT_XHCI: case GSI_CHAN_PROT_GPI: case GSI_CHAN_PROT_XDCI: prot = props->prot; prot_msb = 0; break; default: GSIERR("Unsupported protocol %d\n", props->prot); WARN_ON(1); return; } val = ((prot << GSI_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_SHFT) & GSI_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_BMSK); if (gsi_ctx->per.ver >= GSI_VER_2_5) { val |= ((prot_msb << GSI_V2_5_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_MSB_SHFT) & GSI_V2_5_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_MSB_BMSK); } val = (((props->prot << GSI_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_SHFT) & GSI_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_BMSK) | ((props->dir << GSI_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_DIR_SHFT) & val |= (((props->dir << GSI_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_DIR_SHFT) & GSI_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_DIR_BMSK) | ((erindex << GSI_EE_n_GSI_CH_k_CNTXT_0_ERINDEX_SHFT) & GSI_EE_n_GSI_CH_k_CNTXT_0_ERINDEX_BMSK) | Loading drivers/platform/msm/gsi/gsi_reg.h +2 −0 Original line number Diff line number Diff line Loading @@ -1049,6 +1049,8 @@ #define GSI_EE_n_GSI_CH_k_CNTXT_0_CHSTATE_SHFT 0x14 #define GSI_EE_n_GSI_CH_k_CNTXT_0_ERINDEX_BMSK 0x7c000 #define GSI_EE_n_GSI_CH_k_CNTXT_0_ERINDEX_SHFT 0xe #define GSI_V2_5_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_MSB_BMSK 0x2000 #define GSI_V2_5_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_MSB_SHFT 0xd #define GSI_EE_n_GSI_CH_k_CNTXT_0_CHID_BMSK 0x1f00 #define GSI_EE_n_GSI_CH_k_CNTXT_0_CHID_SHFT 0x8 #define GSI_EE_n_GSI_CH_k_CNTXT_0_EE_BMSK 0xf0 Loading Loading
drivers/platform/msm/gsi/gsi.c +25 −3 Original line number Diff line number Diff line Loading @@ -1680,10 +1680,32 @@ static void gsi_program_chan_ctx(struct gsi_chan_props *props, unsigned int ee, uint8_t erindex) { uint32_t val; uint32_t prot; uint32_t prot_msb; switch (props->prot) { case GSI_CHAN_PROT_MHI: case GSI_CHAN_PROT_XHCI: case GSI_CHAN_PROT_GPI: case GSI_CHAN_PROT_XDCI: prot = props->prot; prot_msb = 0; break; default: GSIERR("Unsupported protocol %d\n", props->prot); WARN_ON(1); return; } val = ((prot << GSI_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_SHFT) & GSI_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_BMSK); if (gsi_ctx->per.ver >= GSI_VER_2_5) { val |= ((prot_msb << GSI_V2_5_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_MSB_SHFT) & GSI_V2_5_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_MSB_BMSK); } val = (((props->prot << GSI_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_SHFT) & GSI_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_BMSK) | ((props->dir << GSI_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_DIR_SHFT) & val |= (((props->dir << GSI_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_DIR_SHFT) & GSI_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_DIR_BMSK) | ((erindex << GSI_EE_n_GSI_CH_k_CNTXT_0_ERINDEX_SHFT) & GSI_EE_n_GSI_CH_k_CNTXT_0_ERINDEX_BMSK) | Loading
drivers/platform/msm/gsi/gsi_reg.h +2 −0 Original line number Diff line number Diff line Loading @@ -1049,6 +1049,8 @@ #define GSI_EE_n_GSI_CH_k_CNTXT_0_CHSTATE_SHFT 0x14 #define GSI_EE_n_GSI_CH_k_CNTXT_0_ERINDEX_BMSK 0x7c000 #define GSI_EE_n_GSI_CH_k_CNTXT_0_ERINDEX_SHFT 0xe #define GSI_V2_5_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_MSB_BMSK 0x2000 #define GSI_V2_5_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_MSB_SHFT 0xd #define GSI_EE_n_GSI_CH_k_CNTXT_0_CHID_BMSK 0x1f00 #define GSI_EE_n_GSI_CH_k_CNTXT_0_CHID_SHFT 0x8 #define GSI_EE_n_GSI_CH_k_CNTXT_0_EE_BMSK 0xf0 Loading