Loading Documentation/devicetree/bindings/bus/mhi.txt +11 −5 Original line number Diff line number Diff line Loading @@ -76,9 +76,15 @@ mhi channel node properties: - mhi,ee Usage: required Value type: <u32> Definition: Channel execution enviornment as defined by enum MHI_EE 1 = Bootloader stage 2 = AMSS mode Definition: Channel execution enviornment (EE) mask as defined by enum mhi_ch_ee_mask BIT(0) = Channel supported in PBL EE BIT(1) = Channel supported in SBL EE BIT(2) = Channel supported in AMSS EE BIT(3) = Channel supported in BHIe EE BIT(4) = Channel supported in RDDM EE BIT(5) = Channel supported in PTHRU EE BIT(6) = Channel supported in EDL EE - mhi,pollcfg Usage: optional Loading Loading @@ -223,7 +229,7 @@ mhi_controller { mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@1 { Loading @@ -234,7 +240,7 @@ mhi_controller { mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_event@0 { Loading arch/arm64/boot/dts/qcom/sm8150-mhi.dtsi +60 −60 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@1 { Loading @@ -53,7 +53,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@2 { Loading @@ -64,7 +64,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <1>; mhi,ee = <0x2>; }; mhi_chan@3 { Loading @@ -75,7 +75,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <1>; mhi,ee = <0x2>; }; mhi_chan@4 { Loading @@ -86,7 +86,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@5 { Loading @@ -97,7 +97,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@8 { Loading @@ -108,7 +108,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@9 { Loading @@ -119,7 +119,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@10 { Loading @@ -130,7 +130,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@11 { Loading @@ -141,7 +141,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@14 { Loading @@ -152,7 +152,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@15 { Loading @@ -163,7 +163,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@16 { Loading @@ -174,7 +174,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@17 { Loading @@ -185,7 +185,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@18 { Loading @@ -196,7 +196,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@19 { Loading @@ -207,7 +207,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,auto-queue; }; Loading @@ -219,7 +219,7 @@ mhi,chan-dir = <1>; mhi,data-type = <1>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,auto-start; }; Loading @@ -231,7 +231,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,auto-queue; mhi,auto-start; }; Loading @@ -244,7 +244,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@23 { Loading @@ -255,7 +255,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@24 { Loading @@ -266,7 +266,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <1>; mhi,ee = <0x2>; }; mhi_chan@25 { Loading @@ -277,7 +277,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <1>; mhi,ee = <0x2>; }; mhi_chan@26 { Loading @@ -288,7 +288,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@27 { Loading @@ -299,7 +299,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@32 { Loading @@ -310,7 +310,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@33 { Loading @@ -321,7 +321,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@100 { Loading @@ -332,7 +332,7 @@ mhi,chan-dir = <1>; mhi,data-type = <1>; mhi,doorbell-mode = <3>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,db-mode-switch; }; Loading @@ -344,7 +344,7 @@ mhi,chan-dir = <2>; mhi,data-type = <1>; mhi,doorbell-mode = <3>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@104 { Loading @@ -353,7 +353,7 @@ mhi,event-ring = <4>; mhi,chan-dir = <1>; mhi,data-type = <3>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,offload-chan; }; Loading @@ -363,7 +363,7 @@ mhi,event-ring = <5>; mhi,chan-dir = <2>; mhi,data-type = <3>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,offload-chan; mhi,lpm-notify; }; Loading Loading @@ -470,7 +470,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@1 { Loading @@ -481,7 +481,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@2 { Loading @@ -492,7 +492,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <1>; mhi,ee = <0x2>; }; mhi_chan@3 { Loading @@ -503,7 +503,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <1>; mhi,ee = <0x2>; }; mhi_chan@4 { Loading @@ -514,7 +514,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@5 { Loading @@ -525,7 +525,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@8 { Loading @@ -536,7 +536,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@9 { Loading @@ -547,7 +547,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@10 { Loading @@ -558,7 +558,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@11 { Loading @@ -569,7 +569,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@14 { Loading @@ -580,7 +580,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@15 { Loading @@ -591,7 +591,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@16 { Loading @@ -602,7 +602,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@17 { Loading @@ -613,7 +613,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@18 { Loading @@ -624,7 +624,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@19 { Loading @@ -635,7 +635,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,auto-queue; }; Loading @@ -647,7 +647,7 @@ mhi,chan-dir = <1>; mhi,data-type = <1>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,auto-start; }; Loading @@ -659,7 +659,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,auto-queue; mhi,auto-start; }; Loading @@ -672,7 +672,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@23 { Loading @@ -683,7 +683,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@24 { Loading @@ -694,7 +694,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <1>; mhi,ee = <0x2>; }; mhi_chan@25 { Loading @@ -705,7 +705,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <1>; mhi,ee = <0x2>; }; mhi_chan@26 { Loading @@ -716,7 +716,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@27 { Loading @@ -727,7 +727,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@32 { Loading @@ -738,7 +738,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@33 { Loading @@ -749,7 +749,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@100 { Loading @@ -760,7 +760,7 @@ mhi,chan-dir = <1>; mhi,data-type = <1>; mhi,doorbell-mode = <3>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,db-mode-switch; }; Loading @@ -772,7 +772,7 @@ mhi,chan-dir = <2>; mhi,data-type = <1>; mhi,doorbell-mode = <3>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@104 { Loading @@ -781,7 +781,7 @@ mhi,event-ring = <4>; mhi,chan-dir = <1>; mhi,data-type = <3>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,offload-chan; }; Loading @@ -791,7 +791,7 @@ mhi,event-ring = <5>; mhi,chan-dir = <2>; mhi,data-type = <3>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,offload-chan; mhi,lpm-notify; }; Loading drivers/bus/mhi/core/mhi_init.c +2 −2 Original line number Diff line number Diff line Loading @@ -900,8 +900,8 @@ static int of_parse_ch_cfg(struct mhi_controller *mhi_cntrl, if (ret) goto error_chan_cfg; ret = of_property_read_u32(child, "mhi,ee", &mhi_chan->ee); if (ret || mhi_chan->ee >= MHI_EE_MAX_SUPPORTED) ret = of_property_read_u32(child, "mhi,ee", &mhi_chan->ee_mask); if (ret) goto error_chan_cfg; of_property_read_u32(child, "mhi,pollcfg", Loading drivers/bus/mhi/core/mhi_internal.h +11 −1 Original line number Diff line number Diff line Loading @@ -476,6 +476,16 @@ enum mhi_er_data_type { MHI_ER_DATA_TYPE_MAX = MHI_ER_TSYNC_ELEMENT_TYPE, }; enum mhi_ch_ee_mask { MHI_CH_EE_PBL = BIT(MHI_EE_PBL), MHI_CH_EE_SBL = BIT(MHI_EE_SBL), MHI_CH_EE_AMSS = BIT(MHI_EE_AMSS), MHI_CH_EE_BHIE = BIT(MHI_EE_BHIE), MHI_CH_EE_RDDM = BIT(MHI_EE_RDDM), MHI_CH_EE_PTHRU = BIT(MHI_EE_PTHRU), MHI_CH_EE_EDL = BIT(MHI_EE_EDL), }; struct db_cfg { bool reset_req; bool db_mode; Loading Loading @@ -571,7 +581,7 @@ struct mhi_chan { u32 intmod; enum dma_data_direction dir; struct db_cfg db_cfg; enum mhi_ee ee; u32 ee_mask; enum MHI_XFER_TYPE xfer_type; enum MHI_CH_STATE ch_state; enum MHI_EV_CCS ccs; Loading drivers/bus/mhi/core/mhi_main.c +5 −5 Original line number Diff line number Diff line Loading @@ -657,7 +657,8 @@ void mhi_create_devices(struct mhi_controller *mhi_cntrl) mhi_chan = mhi_cntrl->mhi_chan; for (i = 0; i < mhi_cntrl->max_chan; i++, mhi_chan++) { if (!mhi_chan->configured || mhi_chan->ee != mhi_cntrl->ee) if (!mhi_chan->configured || mhi_chan->mhi_dev || !(mhi_chan->ee_mask & BIT(mhi_cntrl->ee))) continue; mhi_dev = mhi_alloc_device(mhi_cntrl); if (!mhi_dev) Loading Loading @@ -1320,10 +1321,9 @@ static int __mhi_prepare_channel(struct mhi_controller *mhi_cntrl, MHI_LOG("Entered: preparing channel:%d\n", mhi_chan->chan); if (mhi_cntrl->ee != mhi_chan->ee) { MHI_ERR("Current EE:%s Required EE:%s for chan:%s\n", TO_MHI_EXEC_STR(mhi_cntrl->ee), TO_MHI_EXEC_STR(mhi_chan->ee), if (!(BIT(mhi_cntrl->ee) & mhi_chan->ee_mask)) { MHI_ERR("Current EE:%s Required EE Mask:0x%x for chan:%s\n", TO_MHI_EXEC_STR(mhi_cntrl->ee), mhi_chan->ee_mask, mhi_chan->name); return -ENOTCONN; } Loading Loading
Documentation/devicetree/bindings/bus/mhi.txt +11 −5 Original line number Diff line number Diff line Loading @@ -76,9 +76,15 @@ mhi channel node properties: - mhi,ee Usage: required Value type: <u32> Definition: Channel execution enviornment as defined by enum MHI_EE 1 = Bootloader stage 2 = AMSS mode Definition: Channel execution enviornment (EE) mask as defined by enum mhi_ch_ee_mask BIT(0) = Channel supported in PBL EE BIT(1) = Channel supported in SBL EE BIT(2) = Channel supported in AMSS EE BIT(3) = Channel supported in BHIe EE BIT(4) = Channel supported in RDDM EE BIT(5) = Channel supported in PTHRU EE BIT(6) = Channel supported in EDL EE - mhi,pollcfg Usage: optional Loading Loading @@ -223,7 +229,7 @@ mhi_controller { mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@1 { Loading @@ -234,7 +240,7 @@ mhi_controller { mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_event@0 { Loading
arch/arm64/boot/dts/qcom/sm8150-mhi.dtsi +60 −60 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@1 { Loading @@ -53,7 +53,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@2 { Loading @@ -64,7 +64,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <1>; mhi,ee = <0x2>; }; mhi_chan@3 { Loading @@ -75,7 +75,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <1>; mhi,ee = <0x2>; }; mhi_chan@4 { Loading @@ -86,7 +86,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@5 { Loading @@ -97,7 +97,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@8 { Loading @@ -108,7 +108,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@9 { Loading @@ -119,7 +119,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@10 { Loading @@ -130,7 +130,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@11 { Loading @@ -141,7 +141,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@14 { Loading @@ -152,7 +152,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@15 { Loading @@ -163,7 +163,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@16 { Loading @@ -174,7 +174,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@17 { Loading @@ -185,7 +185,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@18 { Loading @@ -196,7 +196,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@19 { Loading @@ -207,7 +207,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,auto-queue; }; Loading @@ -219,7 +219,7 @@ mhi,chan-dir = <1>; mhi,data-type = <1>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,auto-start; }; Loading @@ -231,7 +231,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,auto-queue; mhi,auto-start; }; Loading @@ -244,7 +244,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@23 { Loading @@ -255,7 +255,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@24 { Loading @@ -266,7 +266,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <1>; mhi,ee = <0x2>; }; mhi_chan@25 { Loading @@ -277,7 +277,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <1>; mhi,ee = <0x2>; }; mhi_chan@26 { Loading @@ -288,7 +288,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@27 { Loading @@ -299,7 +299,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@32 { Loading @@ -310,7 +310,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@33 { Loading @@ -321,7 +321,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@100 { Loading @@ -332,7 +332,7 @@ mhi,chan-dir = <1>; mhi,data-type = <1>; mhi,doorbell-mode = <3>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,db-mode-switch; }; Loading @@ -344,7 +344,7 @@ mhi,chan-dir = <2>; mhi,data-type = <1>; mhi,doorbell-mode = <3>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@104 { Loading @@ -353,7 +353,7 @@ mhi,event-ring = <4>; mhi,chan-dir = <1>; mhi,data-type = <3>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,offload-chan; }; Loading @@ -363,7 +363,7 @@ mhi,event-ring = <5>; mhi,chan-dir = <2>; mhi,data-type = <3>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,offload-chan; mhi,lpm-notify; }; Loading Loading @@ -470,7 +470,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@1 { Loading @@ -481,7 +481,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@2 { Loading @@ -492,7 +492,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <1>; mhi,ee = <0x2>; }; mhi_chan@3 { Loading @@ -503,7 +503,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <1>; mhi,ee = <0x2>; }; mhi_chan@4 { Loading @@ -514,7 +514,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@5 { Loading @@ -525,7 +525,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@8 { Loading @@ -536,7 +536,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@9 { Loading @@ -547,7 +547,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@10 { Loading @@ -558,7 +558,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@11 { Loading @@ -569,7 +569,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@14 { Loading @@ -580,7 +580,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@15 { Loading @@ -591,7 +591,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@16 { Loading @@ -602,7 +602,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@17 { Loading @@ -613,7 +613,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@18 { Loading @@ -624,7 +624,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@19 { Loading @@ -635,7 +635,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,auto-queue; }; Loading @@ -647,7 +647,7 @@ mhi,chan-dir = <1>; mhi,data-type = <1>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,auto-start; }; Loading @@ -659,7 +659,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,auto-queue; mhi,auto-start; }; Loading @@ -672,7 +672,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@23 { Loading @@ -683,7 +683,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@24 { Loading @@ -694,7 +694,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <1>; mhi,ee = <0x2>; }; mhi_chan@25 { Loading @@ -705,7 +705,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <1>; mhi,ee = <0x2>; }; mhi_chan@26 { Loading @@ -716,7 +716,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@27 { Loading @@ -727,7 +727,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@32 { Loading @@ -738,7 +738,7 @@ mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@33 { Loading @@ -749,7 +749,7 @@ mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@100 { Loading @@ -760,7 +760,7 @@ mhi,chan-dir = <1>; mhi,data-type = <1>; mhi,doorbell-mode = <3>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,db-mode-switch; }; Loading @@ -772,7 +772,7 @@ mhi,chan-dir = <2>; mhi,data-type = <1>; mhi,doorbell-mode = <3>; mhi,ee = <2>; mhi,ee = <0x4>; }; mhi_chan@104 { Loading @@ -781,7 +781,7 @@ mhi,event-ring = <4>; mhi,chan-dir = <1>; mhi,data-type = <3>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,offload-chan; }; Loading @@ -791,7 +791,7 @@ mhi,event-ring = <5>; mhi,chan-dir = <2>; mhi,data-type = <3>; mhi,ee = <2>; mhi,ee = <0x4>; mhi,offload-chan; mhi,lpm-notify; }; Loading
drivers/bus/mhi/core/mhi_init.c +2 −2 Original line number Diff line number Diff line Loading @@ -900,8 +900,8 @@ static int of_parse_ch_cfg(struct mhi_controller *mhi_cntrl, if (ret) goto error_chan_cfg; ret = of_property_read_u32(child, "mhi,ee", &mhi_chan->ee); if (ret || mhi_chan->ee >= MHI_EE_MAX_SUPPORTED) ret = of_property_read_u32(child, "mhi,ee", &mhi_chan->ee_mask); if (ret) goto error_chan_cfg; of_property_read_u32(child, "mhi,pollcfg", Loading
drivers/bus/mhi/core/mhi_internal.h +11 −1 Original line number Diff line number Diff line Loading @@ -476,6 +476,16 @@ enum mhi_er_data_type { MHI_ER_DATA_TYPE_MAX = MHI_ER_TSYNC_ELEMENT_TYPE, }; enum mhi_ch_ee_mask { MHI_CH_EE_PBL = BIT(MHI_EE_PBL), MHI_CH_EE_SBL = BIT(MHI_EE_SBL), MHI_CH_EE_AMSS = BIT(MHI_EE_AMSS), MHI_CH_EE_BHIE = BIT(MHI_EE_BHIE), MHI_CH_EE_RDDM = BIT(MHI_EE_RDDM), MHI_CH_EE_PTHRU = BIT(MHI_EE_PTHRU), MHI_CH_EE_EDL = BIT(MHI_EE_EDL), }; struct db_cfg { bool reset_req; bool db_mode; Loading Loading @@ -571,7 +581,7 @@ struct mhi_chan { u32 intmod; enum dma_data_direction dir; struct db_cfg db_cfg; enum mhi_ee ee; u32 ee_mask; enum MHI_XFER_TYPE xfer_type; enum MHI_CH_STATE ch_state; enum MHI_EV_CCS ccs; Loading
drivers/bus/mhi/core/mhi_main.c +5 −5 Original line number Diff line number Diff line Loading @@ -657,7 +657,8 @@ void mhi_create_devices(struct mhi_controller *mhi_cntrl) mhi_chan = mhi_cntrl->mhi_chan; for (i = 0; i < mhi_cntrl->max_chan; i++, mhi_chan++) { if (!mhi_chan->configured || mhi_chan->ee != mhi_cntrl->ee) if (!mhi_chan->configured || mhi_chan->mhi_dev || !(mhi_chan->ee_mask & BIT(mhi_cntrl->ee))) continue; mhi_dev = mhi_alloc_device(mhi_cntrl); if (!mhi_dev) Loading Loading @@ -1320,10 +1321,9 @@ static int __mhi_prepare_channel(struct mhi_controller *mhi_cntrl, MHI_LOG("Entered: preparing channel:%d\n", mhi_chan->chan); if (mhi_cntrl->ee != mhi_chan->ee) { MHI_ERR("Current EE:%s Required EE:%s for chan:%s\n", TO_MHI_EXEC_STR(mhi_cntrl->ee), TO_MHI_EXEC_STR(mhi_chan->ee), if (!(BIT(mhi_cntrl->ee) & mhi_chan->ee_mask)) { MHI_ERR("Current EE:%s Required EE Mask:0x%x for chan:%s\n", TO_MHI_EXEC_STR(mhi_cntrl->ee), mhi_chan->ee_mask, mhi_chan->name); return -ENOTCONN; } Loading