Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion driver/quectel_MHI/src/core/mhi_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,8 @@ struct mhi_bus mhi_bus;

const char *to_mhi_pm_state_str(enum MHI_PM_STATE state)
{
int index = find_last_bit((unsigned long *)&state, 32);
unsigned long value = state;
int index = find_last_bit(&value, 32);

if (index >= ARRAY_SIZE(mhi_pm_state_str))
return "Invalid State";
Expand Down
36 changes: 32 additions & 4 deletions driver/quectel_MHI/src/devices/mhi_netdev_quectel.c
Original file line number Diff line number Diff line change
Expand Up @@ -1137,10 +1137,24 @@ static netdev_tx_t rmnet_vnd_start_xmit(struct sk_buff *skb,
}
else {
if (priv->qmap_version == 5) {
add_qhdr(skb, priv->mux_id);
struct sk_buff *new_skb = add_qhdr(skb, priv->mux_id);
if (!new_skb) {
// print error
printk(KERN_ERR"add_qhdr failed, drop skb\n");
dev_kfree_skb_any(skb);
return NETDEV_TX_OK;
}
skb = new_skb;
}
else if (priv->qmap_version == 9) {
add_qhdr_v5(skb, priv->mux_id);
struct sk_buff *new_skb = add_qhdr_v5(skb, priv->mux_id);
if (!new_skb) {
// print error
printk(KERN_ERR"add_qhdr_v5 failed, drop skb\n");
dev_kfree_skb_any(skb);
return NETDEV_TX_OK;
}
skb = new_skb;
}
else {
dev_kfree_skb_any (skb);
Expand Down Expand Up @@ -2419,10 +2433,24 @@ static netdev_tx_t mhi_netdev_xmit(struct sk_buff *skb, struct net_device *dev)
}
else if (mhi_netdev->net_type == MHI_NET_RMNET) {
if (mhi_netdev->qmap_version == 5) {
add_qhdr(skb, QUECTEL_QMAP_MUX_ID);
struct sk_buff *new_skb = add_qhdr(skb, QUECTEL_QMAP_MUX_ID);
if (!new_skb) {
// print error
printk("add_qhdr failed, drop skb, mode MHI_NET_RMNET\n");
dev_kfree_skb_any(skb);
return NETDEV_TX_OK;
}
skb = new_skb;
}
else if (mhi_netdev->qmap_version == 9) {
add_qhdr_v5(skb, QUECTEL_QMAP_MUX_ID);
struct sk_buff *new_skb = add_qhdr_v5(skb, QUECTEL_QMAP_MUX_ID);
if (!new_skb) {
// print error
printk("add_qhdr_v5 failed, drop skb, mode MHI_NET_RMNET\n");
dev_kfree_skb_any(skb);
return NETDEV_TX_OK;
}
skb = new_skb;
}
else {
dev_kfree_skb_any (skb);
Expand Down