broadband-modem-mbim: handle mhi-pci-generic as a valid data port driver
mhi_wwan_mbim ends up being detected as mhi-pci-generic, so we need to look for that in addition to cdc_wwan when doing MBIM data port stuff. Otherwise devices (various Foxconn X55/X72, Cinterion MV3x, Quectel EM1xx, Telit FN990) that expose the IP_HW0_MBIM MHI channel won't correctly clean up data ports on startup, and may not correctly handle bearer multiplexing. mhi_net is only used for QMI devices with rmnet so it shouldn't be involved in the MBIM data path at all. Signed-off-by: Dan Williams <dan@ioncontrol.co>
This commit is contained in:
@@ -344,7 +344,7 @@ peek_port_mbim_for_data (MMBroadbandModemMbim *self,
|
|||||||
g_assert (mm_port_get_subsys (data) == MM_PORT_SUBSYS_NET);
|
g_assert (mm_port_get_subsys (data) == MM_PORT_SUBSYS_NET);
|
||||||
|
|
||||||
net_port_driver = mm_kernel_device_get_driver (mm_port_peek_kernel_device (data));
|
net_port_driver = mm_kernel_device_get_driver (mm_port_peek_kernel_device (data));
|
||||||
if (g_strcmp0 (net_port_driver, "cdc_mbim") != 0 && g_strcmp0 (net_port_driver, "mhi_net")) {
|
if (g_strcmp0 (net_port_driver, "cdc_mbim") && g_strcmp0 (net_port_driver, "mhi-pci-generic")) {
|
||||||
g_set_error (error,
|
g_set_error (error,
|
||||||
MM_CORE_ERROR,
|
MM_CORE_ERROR,
|
||||||
MM_CORE_ERROR_FAILED,
|
MM_CORE_ERROR_FAILED,
|
||||||
@@ -354,7 +354,7 @@ peek_port_mbim_for_data (MMBroadbandModemMbim *self,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!g_strcmp0 (net_port_driver, "mhi_net"))
|
if (!g_strcmp0 (net_port_driver, "mhi-pci-generic"))
|
||||||
return mm_broadband_modem_mbim_peek_port_mbim (self);
|
return mm_broadband_modem_mbim_peek_port_mbim (self);
|
||||||
|
|
||||||
net_port_parent_path = mm_kernel_device_get_interface_sysfs_path (mm_port_peek_kernel_device (data));
|
net_port_parent_path = mm_kernel_device_get_interface_sysfs_path (mm_port_peek_kernel_device (data));
|
||||||
|
|||||||
Reference in New Issue
Block a user