@@ -1086,6 +1086,7 @@ static int mhi_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
mhi_cntrl->runtime_get = mhi_pci_runtime_get;
mhi_cntrl->runtime_put = mhi_pci_runtime_put;
mhi_cntrl->mru = info->mru_default;
+ mhi_cntrl->name = info->name;
if (info->edl_trigger)
mhi_cntrl->edl_trigger = mhi_pci_generic_edl_trigger;
@@ -289,6 +289,7 @@ struct mhi_controller_config {
};
/**
+ * @name: device name of the MHI controller
* struct mhi_controller - Master MHI controller structure
* @cntrl_dev: Pointer to the struct device of physical bus acting as the MHI
* controller (required)
@@ -367,6 +368,7 @@ struct mhi_controller_config {
* they can be populated depending on the usecase.
*/
struct mhi_controller {
+ const char *name;
struct device *cntrl_dev;
struct mhi_device *mhi_dev;
struct dentry *debugfs_dentry;
For SDX72 MBIM mode, it starts data mux id from 112 instead of 0. This would lead to device can't ping outside successfully. Also MBIM side would report "bad packet session (112)".In order to fix this issue, we decide to use the device name of MHI controller to do a match in client driver side. Then client driver could set a corresponding mux_id value for this MHI product. Signed-off-by: Slark Xiao <slark_xiao@163.com> --- v2: Remove Fix flag v3: Use name match solution instead of use mux_id v4: Update the description of new member 'name' and move it to right position --- drivers/bus/mhi/host/pci_generic.c | 1 + include/linux/mhi.h | 2 ++ 2 files changed, 3 insertions(+)