Hi Koen,

Il giorno ven 12 ago 2022 alle ore 15:26 Koen Vandeputte
<koen.vandepu...@citymesh.com> ha scritto:
>
>
> On 12.08.22 10:55, Daniele Palmas wrote:
> > Hi Koen,
> >
> > Il giorno gio 11 ago 2022 alle ore 15:24 Koen Vandeputte
> > <koen.vandepu...@citymesh.com> ha scritto:
> >> Hi All,
> >>
> >> I'm currently working on adding MHI support within OpenWRT. (kernel 
> >> 5.15.59)
> >>
> >> I have a few modems laying around here:
> >>
> >> - Sierra Wireless EM9191
> >> - Telit FN980
> >> - Fibocom FM150-AE
> >>
> >> On all 3 of them, MHI seems to enumerate correctly:
> >>
> >> [    8.258921] mhi-pci-generic 0000:01:00.0: BAR 0: assigned [mem
> >> 0x01100000-0x01100fff 64bit]
> >> [    8.267488] mhi-pci-generic 0000:01:00.0: enabling device (0140 -> 0142)
> >> [    8.276817] mhi mhi0: Requested to power ON
> >> [    8.288905] mhi mhi0: Power on setup success
> >> [    8.341370] mhi mhi0: Wait for device to enter SBL or Mission mode
> >>
> >> Exposed devices:
> >>
> >> /dev/wwan0mbim0
> >> /dev/wwan0qcdm0
> >> /dev/wwan0qmi0
> >>
> >> And a network device:
> >>
> >> mhi_hwip0
> >>
> >>
> >> Following kernel SYMS are enabled:
> >>
> >> CONFIG_MHI_BUS=m
> >> CONFIG_MHI_BUS_DEBUG=y
> >> CONFIG_MHI_BUS_PCI_GENERIC=m
> >> CONFIG_MHI_NET=m
> >> CONFIG_MHI_WWAN_CTRL=m
> >> CONFIG_MHI_WWAN_MBIM=m
> >> CONFIG_WWAN=m
> >>
> >>
> >> Now the problem is, when sending QMI traffic towards wwan0qmi0, I never
> >> get a reply back on any of them.
> >> When using cdc-wdm  or when wwan0qmi0 is exposed over usb, it works,
> >> but as soon as wwan0qmi0 is exposed over pcie, it fails.
> >>
> >> Does anyone have any clue what is missing here?
> >>
> > I suggest you enable dynamic debugging on mhi and wwan to get more
> > information about what's going on.
> >
> > My experience is that some hosts have issues with runtime power
> > management (e.g. the modem is not able to exit M3) and the symptoms
> > seem to be the same as the ones you describe.
> >
> > Regards,
> > Daniele
>
> Hi Daniele,
>
> Thanks for the reply.
> Well .. this is interesting.  Looks like my EM919x is always detected as
> a generic "qcom sdx55"
>
> All looks well-defined within mhi/pci-generic.c and lspci -v reports the
> proper ID's:
>
>
> static const struct pci_device_id mhi_pci_id_table[] = {
>          /* EM919x (sdx55), use the same vid:pid as qcom-sdx55m */
>          { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0306, 0x18d7, 0x0200),
>                  .driver_data = (kernel_ulong_t) &mhi_sierra_em919x_info },
>          /* Telit FN980 hardware revision v1 */
>          { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0306, 0x1C5D, 0x2000),
>                  .driver_data = (kernel_ulong_t)
> &mhi_telit_fn980_hw_v1_info },
>          { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0306),
>                  .driver_data = (kernel_ulong_t) &mhi_qcom_sdx55_info },
>          { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0304),
>                  .driver_data = (kernel_ulong_t) &mhi_qcom_sdx24_info },
>
>
> 01:00.0 Unassigned class [ff00]: Qualcomm Device 0306
>      Subsystem: Device 18d7:0200
>
>
> hmz ..
>

Yeah, that's odd.

>
>
> Here are the logs:
>
>
> [   10.506776] mhi-pci-generic 0000:01:00.0: MHI PCI device found:
> qcom-sdx55m
> [   10.513847] mhi-pci-generic 0000:01:00.0: BAR 0: assigned [mem
> 0x01100000-0x01100fff 64bit]
> [   10.522357] mhi-pci-generic 0000:01:00.0: enabling device (0140 -> 0142)
> [   10.532198] mhi mhi0: Requested to power ON
> [   10.536490] mhi mhi0: Attempting power on with EE: PASS THROUGH,
> state: RESET
> [   10.547145] mhi mhi0: Power on setup success
> [   10.547293] mhi mhi0: Handling state transition: PBL
> [   10.556541] mhi mhi0: Device in READY State
> [   10.560738] mhi mhi0: Initializing MHI registers
> [   10.565457] mhi mhi0: Wait for device to enter SBL or Mission mode
> [   10.633687] mhi mhi0: local ee: MISSION MODE state: READY device ee:
> MISSION MODE state: READY
> [   10.657015] mhi mhi0: State change event to state: M0
> [   10.662281] mhi mhi0: Received EE event: MISSION MODE
> [   10.667577] mhi mhi0: Handling state transition: MISSION MODE
> [   10.673524] mhi mhi0: Processing Mission Mode transition
> [   10.684850] mhi_net mhi0_IP_HW0: 100: Updating channel state to: START
> [   10.707859] mhi_net mhi0_IP_HW0: 100: Channel state change to START
> successful
> [   10.715374] mhi_net mhi0_IP_HW0: 101: Updating channel state to: START
> [   10.737501] mhi_net mhi0_IP_HW0: 101: Channel state change to START
> successful
>
> // start talking QMI to wwan0qmi0
>
> [  131.173212] mhi_wwan_ctrl mhi0_QMI: 14: Updating channel state to: START
> [  131.187781] mhi_wwan_ctrl mhi0_QMI: 14: Channel state change to START
> successful
> [  131.195303] mhi_wwan_ctrl mhi0_QMI: 15: Updating channel state to: START
> [  131.207145] mhi_wwan_ctrl mhi0_QMI: 15: Channel state change to START
> successful
> [  131.966531] mhi_wwan_ctrl mhi0_QMI: 15: Updating channel state to: RESET
> [  131.980574] mhi_wwan_ctrl mhi0_QMI: 15: Channel state change to RESET
> successful
> [  131.988018] mhi mhi0: Marking all events for chan: 15 as stale
> [  131.993887] mhi mhi0: Finished marking events as stale events
> [  131.999704] mhi_wwan_ctrl mhi0_QMI: mhi_dl_xfer_cb: status: -107
> receive_len: 0
> [  132.007123] mhi_wwan_ctrl mhi0_QMI: mhi_dl_xfer_cb: status: -107
> receive_len: 0
> [  132.014565] mhi_wwan_ctrl mhi0_QMI: mhi_dl_xfer_cb: status: -107
> receive_len: 0
> [  132.021911] mhi_wwan_ctrl mhi0_QMI: 15: successfully reset
> [  132.027439] mhi_wwan_ctrl mhi0_QMI: 14: Updating channel state to: RESET
> [  132.039934] mhi_wwan_ctrl mhi0_QMI: 14: Channel state change to RESET
> successful
> [  132.047371] mhi mhi0: Marking all events for chan: 14 as stale
> [  132.053236] mhi mhi0: Finished marking events as stale events
> [  132.058992] mhi_wwan_ctrl mhi0_QMI: mhi_ul_xfer_cb: status: -107
> xfer_len: 0
> [  132.066075] mhi_wwan_ctrl mhi0_QMI: mhi_ul_xfer_cb: status: -107
> xfer_len: 0
> [  132.073167] mhi_wwan_ctrl mhi0_QMI: mhi_ul_xfer_cb: status: -107
> xfer_len: 0
> [  132.080268] mhi_wwan_ctrl mhi0_QMI: 14: successfully reset
> [  135.132013] mhi_wwan_ctrl mhi0_QMI: 14: Updating channel state to: START
> [  135.146232] mhi_wwan_ctrl mhi0_QMI: 14: Channel state change to START
> successful
> [  135.154006] mhi_wwan_ctrl mhi0_QMI: 15: Updating channel state to: START
> [  135.165448] mhi_wwan_ctrl mhi0_QMI: 15: Channel state change to START
> successful
> [  135.924164] mhi_wwan_ctrl mhi0_QMI: 15: Updating channel state to: RESET
> [  135.938200] mhi_wwan_ctrl mhi0_QMI: mhi_ul_xfer_cb: status: 0
> xfer_len: 12
> [  135.945123] mhi_wwan_ctrl mhi0_QMI: mhi_ul_xfer_cb: status: 0
> xfer_len: 12
> [  135.952012] mhi_wwan_ctrl mhi0_QMI: mhi_ul_xfer_cb: status: 0
> xfer_len: 12
> [  135.959258] mhi_wwan_ctrl mhi0_QMI: 15: Channel state change to RESET
> successful
> [  135.966710] mhi mhi0: Marking all events for chan: 15 as stale
> [  135.972581] mhi mhi0: Finished marking events as stale events
> [  135.978398] mhi_wwan_ctrl mhi0_QMI: mhi_dl_xfer_cb: status: -107
> receive_len: 0
> [  135.985828] mhi_wwan_ctrl mhi0_QMI: mhi_dl_xfer_cb: status: -107
> receive_len: 0
> [  135.993262] mhi_wwan_ctrl mhi0_QMI: mhi_dl_xfer_cb: status: -107
> receive_len: 0
> [  136.000638] mhi_wwan_ctrl mhi0_QMI: 15: successfully reset
> [  136.006167] mhi_wwan_ctrl mhi0_QMI: 14: Updating channel state to: RESET
> [  136.020214] mhi_wwan_ctrl mhi0_QMI: 14: Channel state change to RESET
> successful
> [  136.027650] mhi mhi0: Marking all events for chan: 14 as stale
> [  136.033515] mhi mhi0: Finished marking events as stale events
> [  136.039286] mhi_wwan_ctrl mhi0_QMI: 14: successfully reset
> [  139.091396] mhi_wwan_ctrl mhi0_QMI: 14: Updating channel state to: START
> [  139.105574] mhi_wwan_ctrl mhi0_QMI: 14: Channel state change to START
> successful
> [  139.113108] mhi_wwan_ctrl mhi0_QMI: 15: Updating channel state to: START
> [  139.124721] mhi_wwan_ctrl mhi0_QMI: 15: Channel state change to START
> successful
> [  139.883546] mhi_wwan_ctrl mhi0_QMI: 15: Updating channel state to: RESET
> [  139.897577] mhi_wwan_ctrl mhi0_QMI: mhi_ul_xfer_cb: status: 0
> xfer_len: 12
> [  139.904502] mhi_wwan_ctrl mhi0_QMI: mhi_ul_xfer_cb: status: 0
> xfer_len: 12
> [  139.911391] mhi_wwan_ctrl mhi0_QMI: mhi_ul_xfer_cb: status: 0
> xfer_len: 12
> [  139.918624] mhi_wwan_ctrl mhi0_QMI: 15: Channel state change to RESET
> successful
> [  139.926074] mhi mhi0: Marking all events for chan: 15 as stale
> [  139.931919] mhi mhi0: Finished marking events as stale events
> [  139.937781] mhi_wwan_ctrl mhi0_QMI: mhi_dl_xfer_cb: status: -107
> receive_len: 0
> [  139.945189] mhi_wwan_ctrl mhi0_QMI: mhi_dl_xfer_cb: status: -107
> receive_len: 0
> [  139.952678] mhi_wwan_ctrl mhi0_QMI: mhi_dl_xfer_cb: status: -107
> receive_len: 0
> [  139.960027] mhi_wwan_ctrl mhi0_QMI: 15: successfully reset
> [  139.965554] mhi_wwan_ctrl mhi0_QMI: 14: Updating channel state to: RESET
> [  139.979594] mhi_wwan_ctrl mhi0_QMI: 14: Channel state change to RESET
> successful
> [  139.987031] mhi mhi0: Marking all events for chan: 14 as stale
> [  139.992895] mhi mhi0: Finished marking events as stale events
> [  139.998663] mhi_wwan_ctrl mhi0_QMI: 14: successfully reset
>

This does not look like the runtime power management issue I was
talking about. No clue about what's going on, sorry.

Regards,
Daniele

> Koen
>

Reply via email to