Loading Documentation/devicetree/bindings/platform/msm/ipa.txt +6 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,12 @@ IPA node: "a2-bam-irq" - string to identify the A2 BAM interrupt. - qcom,ipa-hw-ver: Specifies the IPA hardware version. Optional: - qcom,use-a2-service: determine if A2 service will be used - qcom,use-ipa-tethering-bridge: determine if tethering bridge will be used - qcom,use-ipa-bamdma-a2-bridge: determine if a2/ipa hw bridge will be used IPA pipe sub nodes (A2 static pipes configurations): -label: two labels are supported, a2-to-ipa and ipa-to-a2 which Loading arch/arm/mach-msm/clock-krypton.c +5 −0 Original line number Diff line number Diff line Loading @@ -1906,6 +1906,11 @@ static struct clk_lookup msm_clocks_krypton[] = { /* IPA */ CLK_LOOKUP("core_clk", ipa_clk.c, "fd4c0000.qcom,ipa"), CLK_DUMMY("core_src_clk", ipa_clk_src.c, "fd4c0000.qcom,ipa", OFF), CLK_DUMMY("bus_clk", gcc_sys_noc_ipa_axi_clk.c, "fd4c0000.qcom,ipa", OFF), CLK_DUMMY("iface_clk", gcc_ipa_cnoc_clk.c, "fd4c0000.qcom,ipa", OFF), CLK_DUMMY("inactivity_clk", gcc_ipa_sleep_clk.c, "fd4c0000.qcom,ipa", OFF), CLK_LOOKUP("core_clk", gcc_blsp1_qup1_i2c_apps_clk.c, ""), CLK_LOOKUP("core_clk", gcc_blsp1_qup1_spi_apps_clk.c, ""), Loading arch/arm/mach-msm/include/mach/ipa.h +47 −31 Original line number Diff line number Diff line Loading @@ -32,6 +32,8 @@ enum ipa_nat_en_type { * @BASIC: basic mode * @ENABLE_FRAMING_HDLC: not currently supported * @ENABLE_DEFRAMING_HDLC: not currently supported * @DMA: all data arriving IPA will not go through IPA logic blocks, this * allows IPA to work as DMA for specific pipes. */ enum ipa_mode_type { IPA_BASIC, Loading @@ -54,9 +56,12 @@ enum ipa_aggr_en_type { * enum ipa_aggr_type - type of aggregation in IPA end-point */ enum ipa_aggr_type { IPA_MBIM_16, IPA_MBIM_32, IPA_TLP, IPA_MBIM_16 = 0, IPA_HDLC = 1, IPA_TLP = 2, IPA_RNDIS = 3, IPA_GENERIC = 4, IPA_QCMAP = 6, }; /** Loading Loading @@ -90,8 +95,10 @@ struct ipa_ep_cfg_nat { /** * struct ipa_ep_cfg_hdr - header configuration in IPA end-point * @hdr_len: Header length in bytes to be added/removed. Assuming header len * is constant per endpoint. Valid for both Input and Output Pipes * * @hdr_len:Header length in bytes to be added/removed. Assuming * header len is constant per endpoint. Valid for * both Input and Output Pipes * @hdr_ofst_metadata_valid: 0: Metadata_Ofst value is invalid, i.e., no * metadata within header. * 1: Metadata_Ofst value is valid, i.e., metadata Loading Loading @@ -124,6 +131,12 @@ struct ipa_ep_cfg_nat { * 0: Do not insert A5 Mux Header * 1: Insert A5 Mux Header * Valid for Output Pipes (IPA Producer) * @hdr_remove_additional: bool switch, remove more of the header * based on the aggregation configuration (register * HDR_LEN_INC_DEAGG_HDR) * @hdr_metadata_reg_valid: bool switch, metadata from * register INIT_HDR_METADATA_n is valid. * (relevant only for IPA Consumer pipes) */ struct ipa_ep_cfg_hdr { u32 hdr_len; Loading @@ -133,6 +146,8 @@ struct ipa_ep_cfg_hdr { u32 hdr_ofst_pkt_size_valid; u32 hdr_ofst_pkt_size; u32 hdr_a5_mux; u32 hdr_remove_additional; u32 hdr_metadata_reg_valid; }; /** Loading @@ -151,8 +166,9 @@ struct ipa_ep_cfg_mode { /** * struct ipa_ep_cfg_aggr - aggregation configuration in IPA end-point * * @aggr_en: Valid for both Input and Output Pipes * @aggr: Valid for both Input and Output Pipes * @aggr: aggregation type (Valid for both Input and Output Pipes) * @aggr_byte_limit: Limit of aggregated packet size in KB (<=32KB) When set * to 0, there is no size limitation on the aggregation. * When both, Aggr_Byte_Limit and Aggr_Time_Limit are set Loading drivers/platform/msm/Kconfig +1 −1 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ config QPNP_USB_DETECT config IPA tristate "IPA support" depends on SPS depends on SPS && NET help This driver supports the Internet Packet Accelerator (IPA) core. IPA is a programmable protocol processor HW block. Loading drivers/platform/msm/ipa/ipa.c +336 −242 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
Documentation/devicetree/bindings/platform/msm/ipa.txt +6 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,12 @@ IPA node: "a2-bam-irq" - string to identify the A2 BAM interrupt. - qcom,ipa-hw-ver: Specifies the IPA hardware version. Optional: - qcom,use-a2-service: determine if A2 service will be used - qcom,use-ipa-tethering-bridge: determine if tethering bridge will be used - qcom,use-ipa-bamdma-a2-bridge: determine if a2/ipa hw bridge will be used IPA pipe sub nodes (A2 static pipes configurations): -label: two labels are supported, a2-to-ipa and ipa-to-a2 which Loading
arch/arm/mach-msm/clock-krypton.c +5 −0 Original line number Diff line number Diff line Loading @@ -1906,6 +1906,11 @@ static struct clk_lookup msm_clocks_krypton[] = { /* IPA */ CLK_LOOKUP("core_clk", ipa_clk.c, "fd4c0000.qcom,ipa"), CLK_DUMMY("core_src_clk", ipa_clk_src.c, "fd4c0000.qcom,ipa", OFF), CLK_DUMMY("bus_clk", gcc_sys_noc_ipa_axi_clk.c, "fd4c0000.qcom,ipa", OFF), CLK_DUMMY("iface_clk", gcc_ipa_cnoc_clk.c, "fd4c0000.qcom,ipa", OFF), CLK_DUMMY("inactivity_clk", gcc_ipa_sleep_clk.c, "fd4c0000.qcom,ipa", OFF), CLK_LOOKUP("core_clk", gcc_blsp1_qup1_i2c_apps_clk.c, ""), CLK_LOOKUP("core_clk", gcc_blsp1_qup1_spi_apps_clk.c, ""), Loading
arch/arm/mach-msm/include/mach/ipa.h +47 −31 Original line number Diff line number Diff line Loading @@ -32,6 +32,8 @@ enum ipa_nat_en_type { * @BASIC: basic mode * @ENABLE_FRAMING_HDLC: not currently supported * @ENABLE_DEFRAMING_HDLC: not currently supported * @DMA: all data arriving IPA will not go through IPA logic blocks, this * allows IPA to work as DMA for specific pipes. */ enum ipa_mode_type { IPA_BASIC, Loading @@ -54,9 +56,12 @@ enum ipa_aggr_en_type { * enum ipa_aggr_type - type of aggregation in IPA end-point */ enum ipa_aggr_type { IPA_MBIM_16, IPA_MBIM_32, IPA_TLP, IPA_MBIM_16 = 0, IPA_HDLC = 1, IPA_TLP = 2, IPA_RNDIS = 3, IPA_GENERIC = 4, IPA_QCMAP = 6, }; /** Loading Loading @@ -90,8 +95,10 @@ struct ipa_ep_cfg_nat { /** * struct ipa_ep_cfg_hdr - header configuration in IPA end-point * @hdr_len: Header length in bytes to be added/removed. Assuming header len * is constant per endpoint. Valid for both Input and Output Pipes * * @hdr_len:Header length in bytes to be added/removed. Assuming * header len is constant per endpoint. Valid for * both Input and Output Pipes * @hdr_ofst_metadata_valid: 0: Metadata_Ofst value is invalid, i.e., no * metadata within header. * 1: Metadata_Ofst value is valid, i.e., metadata Loading Loading @@ -124,6 +131,12 @@ struct ipa_ep_cfg_nat { * 0: Do not insert A5 Mux Header * 1: Insert A5 Mux Header * Valid for Output Pipes (IPA Producer) * @hdr_remove_additional: bool switch, remove more of the header * based on the aggregation configuration (register * HDR_LEN_INC_DEAGG_HDR) * @hdr_metadata_reg_valid: bool switch, metadata from * register INIT_HDR_METADATA_n is valid. * (relevant only for IPA Consumer pipes) */ struct ipa_ep_cfg_hdr { u32 hdr_len; Loading @@ -133,6 +146,8 @@ struct ipa_ep_cfg_hdr { u32 hdr_ofst_pkt_size_valid; u32 hdr_ofst_pkt_size; u32 hdr_a5_mux; u32 hdr_remove_additional; u32 hdr_metadata_reg_valid; }; /** Loading @@ -151,8 +166,9 @@ struct ipa_ep_cfg_mode { /** * struct ipa_ep_cfg_aggr - aggregation configuration in IPA end-point * * @aggr_en: Valid for both Input and Output Pipes * @aggr: Valid for both Input and Output Pipes * @aggr: aggregation type (Valid for both Input and Output Pipes) * @aggr_byte_limit: Limit of aggregated packet size in KB (<=32KB) When set * to 0, there is no size limitation on the aggregation. * When both, Aggr_Byte_Limit and Aggr_Time_Limit are set Loading
drivers/platform/msm/Kconfig +1 −1 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ config QPNP_USB_DETECT config IPA tristate "IPA support" depends on SPS depends on SPS && NET help This driver supports the Internet Packet Accelerator (IPA) core. IPA is a programmable protocol processor HW block. Loading
drivers/platform/msm/ipa/ipa.c +336 −242 File changed.Preview size limit exceeded, changes collapsed. Show changes