Loading drivers/platform/msm/gsi/gsi.c +18 −0 Original line number Original line Diff line number Diff line Loading @@ -867,6 +867,13 @@ static uint32_t gsi_get_max_channels(enum gsi_ver ver) GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_NUM_CH_PER_EE_BMSK) >> GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_NUM_CH_PER_EE_BMSK) >> GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_NUM_CH_PER_EE_SHFT; GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_NUM_CH_PER_EE_SHFT; break; break; case GSI_VER_2_9: reg = gsi_readl(gsi_ctx->base + GSI_V2_9_EE_n_GSI_HW_PARAM_2_OFFS(gsi_ctx->per.ee)); reg = (reg & GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_NUM_CH_PER_EE_BMSK) >> GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_NUM_CH_PER_EE_SHFT; break; } } GSIDBG("max channels %d\n", reg); GSIDBG("max channels %d\n", reg); Loading Loading @@ -931,6 +938,13 @@ static uint32_t gsi_get_max_event_rings(enum gsi_ver ver) GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_NUM_EV_PER_EE_BMSK) >> GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_NUM_EV_PER_EE_BMSK) >> GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_NUM_EV_PER_EE_SHFT; GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_NUM_EV_PER_EE_SHFT; break; break; case GSI_VER_2_9: reg = gsi_readl(gsi_ctx->base + GSI_V2_9_EE_n_GSI_HW_PARAM_2_OFFS(gsi_ctx->per.ee)); reg = (reg & GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_NUM_EV_PER_EE_BMSK) >> GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_NUM_EV_PER_EE_SHFT; break; } } GSIDBG("max event rings %d\n", reg); GSIDBG("max event rings %d\n", reg); Loading Loading @@ -1056,6 +1070,7 @@ int gsi_register_device(struct gsi_per_props *props, unsigned long *dev_hdl) break; break; case GSI_VER_2_5: case GSI_VER_2_5: case GSI_VER_2_7: case GSI_VER_2_7: case GSI_VER_2_9: needed_reg_ver = GSI_REGISTER_VER_2; needed_reg_ver = GSI_REGISTER_VER_2; break; break; case GSI_VER_ERR: case GSI_VER_ERR: Loading Loading @@ -4078,6 +4093,9 @@ void gsi_get_inst_ram_offset_and_size(unsigned long *base_offset, case GSI_VER_2_7: case GSI_VER_2_7: maxn = GSI_V2_7_GSI_INST_RAM_n_MAXn; maxn = GSI_V2_7_GSI_INST_RAM_n_MAXn; break; break; case GSI_VER_2_9: maxn = GSI_V2_9_GSI_INST_RAM_n_MAXn; break; case GSI_VER_ERR: case GSI_VER_ERR: case GSI_VER_MAX: case GSI_VER_MAX: default: default: Loading drivers/platform/msm/gsi/gsi_reg_v2.h +34 −0 Original line number Original line Diff line number Diff line Loading @@ -442,6 +442,7 @@ #define GSI_V2_2_GSI_INST_RAM_n_MAXn 4095 #define GSI_V2_2_GSI_INST_RAM_n_MAXn 4095 #define GSI_V2_5_GSI_INST_RAM_n_MAXn 8191 #define GSI_V2_5_GSI_INST_RAM_n_MAXn 8191 #define GSI_V2_7_GSI_INST_RAM_n_MAXn 5119 #define GSI_V2_7_GSI_INST_RAM_n_MAXn 5119 #define GSI_V2_9_GSI_INST_RAM_n_MAXn 6143 #define GSI_GSI_INST_RAM_n_INST_BYTE_3_BMSK 0xff000000 #define GSI_GSI_INST_RAM_n_INST_BYTE_3_BMSK 0xff000000 #define GSI_GSI_INST_RAM_n_INST_BYTE_3_SHFT 0x18 #define GSI_GSI_INST_RAM_n_INST_BYTE_3_SHFT 0x18 Loading Loading @@ -884,6 +885,39 @@ #define GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_IRAM_SIZE_THREE_N_HALF_KB_FVAL 0x4 #define GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_IRAM_SIZE_THREE_N_HALF_KB_FVAL 0x4 #define GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_IRAM_SIZE_FOUR_KB_FVAL 0x5 #define GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_IRAM_SIZE_FOUR_KB_FVAL 0x5 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_OFFS(n) \ (GSI_GSI_REG_BASE_OFFS + 0x00012040 + 0x4000 * (n)) #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_RMSK 0xffffffff #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_MAXn 2 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_INI(n) \ in_dword_masked(GSI_V2_9_EE_n_GSI_HW_PARAM_2_OFFS(n), \ GSI_V2_9_EE_n_GSI_HW_PARAM_2_RMSK) #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_INMI(n, mask) \ in_dword_masked(GSI_V2_9_EE_n_GSI_HW_PARAM_2_OFFS(n), \ mask) #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_USE_INTER_EE_BMSK 0x80000000 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_USE_INTER_EE_SHFT 0x1f #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_USE_RD_WR_ENG_BMSK 0x40000000 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_USE_RD_WR_ENG_SHFT 0x1e #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_SDMA_N_IOVEC_BMSK 0x38000000 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_SDMA_N_IOVEC_SHFT 0x1b #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_SDMA_MAX_BURST_BMSK 0x7f80000 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_SDMA_MAX_BURST_SHFT 0x13 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_SDMA_N_INT_BMSK 0x70000 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_SDMA_N_INT_SHFT 0x10 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_USE_SDMA_BMSK 0x8000 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_USE_SDMA_SHFT 0xf #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_CH_FULL_LOGIC_BMSK 0x4000 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_CH_FULL_LOGIC_SHFT 0xe #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_CH_PEND_TRANSLATE_BMSK 0x2000 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_CH_PEND_TRANSLATE_SHFT 0xd #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_NUM_EV_PER_EE_BMSK 0x1f00 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_NUM_EV_PER_EE_SHFT 0x8 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_NUM_CH_PER_EE_BMSK 0xf8 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_NUM_CH_PER_EE_SHFT 0x3 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_IRAM_SIZE_BMSK 0x7 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_IRAM_SIZE_SHFT 0x0 #define GSI_EE_n_GSI_SW_VERSION_OFFS(n) \ #define GSI_EE_n_GSI_SW_VERSION_OFFS(n) \ (GSI_GSI_REG_BASE_OFFS + 0x00012044 + 0x4000 * (n)) (GSI_GSI_REG_BASE_OFFS + 0x00012044 + 0x4000 * (n)) #define GSI_EE_n_GSI_SW_VERSION_MAJOR_BMSK 0xf0000000 #define GSI_EE_n_GSI_SW_VERSION_MAJOR_BMSK 0xf0000000 Loading drivers/platform/msm/ipa/ipa_v3/ipa.c +3 −0 Original line number Original line Diff line number Diff line Loading @@ -5450,6 +5450,9 @@ static enum gsi_ver ipa3_get_gsi_ver(enum ipa_hw_type ipa_hw_type) case IPA_HW_v4_7: case IPA_HW_v4_7: gsi_ver = GSI_VER_2_7; gsi_ver = GSI_VER_2_7; break; break; case IPA_HW_v4_9: gsi_ver = GSI_VER_2_9; break; default: default: IPAERR("No GSI version for ipa type %d\n", ipa_hw_type); IPAERR("No GSI version for ipa type %d\n", ipa_hw_type); WARN_ON(1); WARN_ON(1); Loading include/linux/msm_gsi.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ enum gsi_ver { GSI_VER_2_2 = 5, GSI_VER_2_2 = 5, GSI_VER_2_5 = 6, GSI_VER_2_5 = 6, GSI_VER_2_7 = 7, GSI_VER_2_7 = 7, GSI_VER_2_9 = 8, GSI_VER_MAX, GSI_VER_MAX, }; }; Loading Loading
drivers/platform/msm/gsi/gsi.c +18 −0 Original line number Original line Diff line number Diff line Loading @@ -867,6 +867,13 @@ static uint32_t gsi_get_max_channels(enum gsi_ver ver) GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_NUM_CH_PER_EE_BMSK) >> GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_NUM_CH_PER_EE_BMSK) >> GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_NUM_CH_PER_EE_SHFT; GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_NUM_CH_PER_EE_SHFT; break; break; case GSI_VER_2_9: reg = gsi_readl(gsi_ctx->base + GSI_V2_9_EE_n_GSI_HW_PARAM_2_OFFS(gsi_ctx->per.ee)); reg = (reg & GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_NUM_CH_PER_EE_BMSK) >> GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_NUM_CH_PER_EE_SHFT; break; } } GSIDBG("max channels %d\n", reg); GSIDBG("max channels %d\n", reg); Loading Loading @@ -931,6 +938,13 @@ static uint32_t gsi_get_max_event_rings(enum gsi_ver ver) GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_NUM_EV_PER_EE_BMSK) >> GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_NUM_EV_PER_EE_BMSK) >> GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_NUM_EV_PER_EE_SHFT; GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_NUM_EV_PER_EE_SHFT; break; break; case GSI_VER_2_9: reg = gsi_readl(gsi_ctx->base + GSI_V2_9_EE_n_GSI_HW_PARAM_2_OFFS(gsi_ctx->per.ee)); reg = (reg & GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_NUM_EV_PER_EE_BMSK) >> GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_NUM_EV_PER_EE_SHFT; break; } } GSIDBG("max event rings %d\n", reg); GSIDBG("max event rings %d\n", reg); Loading Loading @@ -1056,6 +1070,7 @@ int gsi_register_device(struct gsi_per_props *props, unsigned long *dev_hdl) break; break; case GSI_VER_2_5: case GSI_VER_2_5: case GSI_VER_2_7: case GSI_VER_2_7: case GSI_VER_2_9: needed_reg_ver = GSI_REGISTER_VER_2; needed_reg_ver = GSI_REGISTER_VER_2; break; break; case GSI_VER_ERR: case GSI_VER_ERR: Loading Loading @@ -4078,6 +4093,9 @@ void gsi_get_inst_ram_offset_and_size(unsigned long *base_offset, case GSI_VER_2_7: case GSI_VER_2_7: maxn = GSI_V2_7_GSI_INST_RAM_n_MAXn; maxn = GSI_V2_7_GSI_INST_RAM_n_MAXn; break; break; case GSI_VER_2_9: maxn = GSI_V2_9_GSI_INST_RAM_n_MAXn; break; case GSI_VER_ERR: case GSI_VER_ERR: case GSI_VER_MAX: case GSI_VER_MAX: default: default: Loading
drivers/platform/msm/gsi/gsi_reg_v2.h +34 −0 Original line number Original line Diff line number Diff line Loading @@ -442,6 +442,7 @@ #define GSI_V2_2_GSI_INST_RAM_n_MAXn 4095 #define GSI_V2_2_GSI_INST_RAM_n_MAXn 4095 #define GSI_V2_5_GSI_INST_RAM_n_MAXn 8191 #define GSI_V2_5_GSI_INST_RAM_n_MAXn 8191 #define GSI_V2_7_GSI_INST_RAM_n_MAXn 5119 #define GSI_V2_7_GSI_INST_RAM_n_MAXn 5119 #define GSI_V2_9_GSI_INST_RAM_n_MAXn 6143 #define GSI_GSI_INST_RAM_n_INST_BYTE_3_BMSK 0xff000000 #define GSI_GSI_INST_RAM_n_INST_BYTE_3_BMSK 0xff000000 #define GSI_GSI_INST_RAM_n_INST_BYTE_3_SHFT 0x18 #define GSI_GSI_INST_RAM_n_INST_BYTE_3_SHFT 0x18 Loading Loading @@ -884,6 +885,39 @@ #define GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_IRAM_SIZE_THREE_N_HALF_KB_FVAL 0x4 #define GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_IRAM_SIZE_THREE_N_HALF_KB_FVAL 0x4 #define GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_IRAM_SIZE_FOUR_KB_FVAL 0x5 #define GSI_V2_7_EE_n_GSI_HW_PARAM_2_GSI_IRAM_SIZE_FOUR_KB_FVAL 0x5 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_OFFS(n) \ (GSI_GSI_REG_BASE_OFFS + 0x00012040 + 0x4000 * (n)) #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_RMSK 0xffffffff #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_MAXn 2 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_INI(n) \ in_dword_masked(GSI_V2_9_EE_n_GSI_HW_PARAM_2_OFFS(n), \ GSI_V2_9_EE_n_GSI_HW_PARAM_2_RMSK) #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_INMI(n, mask) \ in_dword_masked(GSI_V2_9_EE_n_GSI_HW_PARAM_2_OFFS(n), \ mask) #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_USE_INTER_EE_BMSK 0x80000000 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_USE_INTER_EE_SHFT 0x1f #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_USE_RD_WR_ENG_BMSK 0x40000000 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_USE_RD_WR_ENG_SHFT 0x1e #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_SDMA_N_IOVEC_BMSK 0x38000000 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_SDMA_N_IOVEC_SHFT 0x1b #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_SDMA_MAX_BURST_BMSK 0x7f80000 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_SDMA_MAX_BURST_SHFT 0x13 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_SDMA_N_INT_BMSK 0x70000 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_SDMA_N_INT_SHFT 0x10 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_USE_SDMA_BMSK 0x8000 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_USE_SDMA_SHFT 0xf #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_CH_FULL_LOGIC_BMSK 0x4000 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_CH_FULL_LOGIC_SHFT 0xe #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_CH_PEND_TRANSLATE_BMSK 0x2000 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_CH_PEND_TRANSLATE_SHFT 0xd #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_NUM_EV_PER_EE_BMSK 0x1f00 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_NUM_EV_PER_EE_SHFT 0x8 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_NUM_CH_PER_EE_BMSK 0xf8 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_NUM_CH_PER_EE_SHFT 0x3 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_IRAM_SIZE_BMSK 0x7 #define GSI_V2_9_EE_n_GSI_HW_PARAM_2_GSI_IRAM_SIZE_SHFT 0x0 #define GSI_EE_n_GSI_SW_VERSION_OFFS(n) \ #define GSI_EE_n_GSI_SW_VERSION_OFFS(n) \ (GSI_GSI_REG_BASE_OFFS + 0x00012044 + 0x4000 * (n)) (GSI_GSI_REG_BASE_OFFS + 0x00012044 + 0x4000 * (n)) #define GSI_EE_n_GSI_SW_VERSION_MAJOR_BMSK 0xf0000000 #define GSI_EE_n_GSI_SW_VERSION_MAJOR_BMSK 0xf0000000 Loading
drivers/platform/msm/ipa/ipa_v3/ipa.c +3 −0 Original line number Original line Diff line number Diff line Loading @@ -5450,6 +5450,9 @@ static enum gsi_ver ipa3_get_gsi_ver(enum ipa_hw_type ipa_hw_type) case IPA_HW_v4_7: case IPA_HW_v4_7: gsi_ver = GSI_VER_2_7; gsi_ver = GSI_VER_2_7; break; break; case IPA_HW_v4_9: gsi_ver = GSI_VER_2_9; break; default: default: IPAERR("No GSI version for ipa type %d\n", ipa_hw_type); IPAERR("No GSI version for ipa type %d\n", ipa_hw_type); WARN_ON(1); WARN_ON(1); Loading
include/linux/msm_gsi.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ enum gsi_ver { GSI_VER_2_2 = 5, GSI_VER_2_2 = 5, GSI_VER_2_5 = 6, GSI_VER_2_5 = 6, GSI_VER_2_7 = 7, GSI_VER_2_7 = 7, GSI_VER_2_9 = 8, GSI_VER_MAX, GSI_VER_MAX, }; }; Loading