linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] net: mhi : Add support to enable ethernet interface
@ 2025-07-24 13:51 Vivek.Pernamitta
  2025-07-24 13:51 ` [PATCH 1/4] net: mhi: Rename MHI interface to improve clarity Vivek.Pernamitta
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Vivek.Pernamitta @ 2025-07-24 13:51 UTC (permalink / raw)
  To: Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Manivannan Sadhasivam
  Cc: netdev, linux-kernel, mhi, linux-arm-msm, Vivek Pernamitta

- Add support to enable ethernet network device for MHI NET driver
  currenlty we have support only NET driver.
  so new client can be configured to be Ethernet type over MHI by
  setting "mhi_device_info.ethernet_if = true"

- Change the naming format for MHI network interfaces to improve clarity
  when multiple MHI controllers are connected.

  Currently, MHI NET device interfaces are created as mhi_swip<n>/mhi_hwip<n>
  for each channel. This makes it difficult to distinguish between channels
  when multiple EP/MHI controllers are connected, as we cannot map the
  corresponding MHI channel to the respective controller and channel.
  To address this, create a new MHI interface name based on the device name and
  channel name.

- Add support for new MHI channels for M-plane, NETCONF and S-plane.

Initial post for Ethernet support in MHI driver is posted here
https://lore.kernel.org/all/1689762055-12570-1-git-send-email-quic_vpernami@quicinc.com/

Signed-off-by: 

---
Vivek Pernamitta (4):
      net: mhi: Rename MHI interface to improve clarity
      net: mhi : Add support to enable ethernet interface
      net: mhi: Add MHI IP_SW1, ETH0 and ETH1 interface
      bus: mhi: host: pci: Enable IP_SW1, IP_ETH0 and IP_ETH1 channels for QDU100

 drivers/bus/mhi/host/pci_generic.c |   8 +++
 drivers/net/mhi_net.c              | 100 +++++++++++++++++++++++++++++++------
 2 files changed, 93 insertions(+), 15 deletions(-)
---
base-commit: 9ee814bd78e315e4551223ca7548dd3f6bdcf1ae
change-id: 20250724-b4-eth_us-97f0d5ba7f08

Best regards,
-- 
Vivek Pernamitta <<quic_vpernami@quicinc.com>>


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/4] net: mhi: Rename MHI interface to improve clarity
  2025-07-24 13:51 [PATCH 0/4] net: mhi : Add support to enable ethernet interface Vivek.Pernamitta
@ 2025-07-24 13:51 ` Vivek.Pernamitta
  2025-07-26  0:08   ` Jakub Kicinski
  2025-07-24 13:51 ` [PATCH 2/4] net: mhi : Add support to enable ethernet interface Vivek.Pernamitta
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 8+ messages in thread
From: Vivek.Pernamitta @ 2025-07-24 13:51 UTC (permalink / raw)
  To: Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Manivannan Sadhasivam
  Cc: netdev, linux-kernel, mhi, linux-arm-msm, Vivek Pernamitta

From: Vivek Pernamitta <quic_vpernami@quicinc.com>

Rename the MHI network interface to include the device name, improving
clarity when multiple MHI controllers are connected.

Currently, MHI NET device interfaces are created as mhi_swip<n>/
mhi_hwip<n> for each channel, making it difficult to distinguish between
channels when multiple EP/MHI controllers are connected.

Rename the MHI interface to include the device name, for example:
- Channel IP_SW0 for the 1st MHI controller will be named mhi0_IP_SW0.
- Channel IP_SW0 for the 2nd MHI controller will be named mhi1_IP_SW0.
- Channel IP_HW0 for the 1st MHI controller will be named mhi0_IP_HW0.
Signed-off-by: Vivek Pernamitta <quic_vpernami@quicinc.com>
---
 drivers/net/mhi_net.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/drivers/net/mhi_net.c b/drivers/net/mhi_net.c
index ae169929a9d8e449b5a427993abf68e8d032fae2..08ab67f9a769ec64e1007853e47743003a197ec4 100644
--- a/drivers/net/mhi_net.c
+++ b/drivers/net/mhi_net.c
@@ -351,11 +351,20 @@ static void mhi_net_dellink(struct mhi_device *mhi_dev, struct net_device *ndev)
 static int mhi_net_probe(struct mhi_device *mhi_dev,
 			 const struct mhi_device_id *id)
 {
-	const struct mhi_device_info *info = (struct mhi_device_info *)id->driver_data;
+	const struct mhi_device_info *info;
+	struct device *dev = &mhi_dev->dev;
+	char netname[IFNAMSIZ] = {0};
 	struct net_device *ndev;
 	int err;
 
-	ndev = alloc_netdev(sizeof(struct mhi_net_dev), info->netname,
+	info = (struct mhi_device_info *)id->driver_data;
+
+	if (snprintf(netname, sizeof(netname), "%s", dev_name(dev)) >= IFNAMSIZ) {
+		dev_err(dev, "Invalid interface name: '%s'\n", netname);
+		return -EINVAL;
+	}
+
+	ndev = alloc_netdev(sizeof(struct mhi_net_dev), netname,
 			    NET_NAME_PREDICTABLE, mhi_net_setup);
 	if (!ndev)
 		return -ENOMEM;

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/4] net: mhi : Add support to enable ethernet interface
  2025-07-24 13:51 [PATCH 0/4] net: mhi : Add support to enable ethernet interface Vivek.Pernamitta
  2025-07-24 13:51 ` [PATCH 1/4] net: mhi: Rename MHI interface to improve clarity Vivek.Pernamitta
@ 2025-07-24 13:51 ` Vivek.Pernamitta
  2025-07-26  0:10   ` Jakub Kicinski
  2025-07-24 13:51 ` [PATCH 3/4] net: mhi: Add MHI IP_SW1, ETH0 and ETH1 interface Vivek.Pernamitta
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 8+ messages in thread
From: Vivek.Pernamitta @ 2025-07-24 13:51 UTC (permalink / raw)
  To: Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Manivannan Sadhasivam
  Cc: netdev, linux-kernel, mhi, linux-arm-msm, Vivek Pernamitta

From: Vivek Pernamitta <quic_vpernami@quicinc.com>

Currently, we only have support for the NET driver. This update allows a
new client to be configured as an Ethernet type over MHI by setting
"mhi_device_info.ethernet_if = true". A new interface for Ethernet will
be created with <mhi_device_name>_<mhi_channel_name>.

Signed-off-by: Vivek Pernamitta <quic_vpernami@quicinc.com>
---
 drivers/net/mhi_net.c | 84 +++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 71 insertions(+), 13 deletions(-)

diff --git a/drivers/net/mhi_net.c b/drivers/net/mhi_net.c
index 08ab67f9a769ec64e1007853e47743003a197ec4..ba65abcee32a253fc1eb9d75f1693734f4d53ee3 100644
--- a/drivers/net/mhi_net.c
+++ b/drivers/net/mhi_net.c
@@ -11,6 +11,7 @@
 #include <linux/netdevice.h>
 #include <linux/skbuff.h>
 #include <linux/u64_stats_sync.h>
+#include <linux/etherdevice.h>
 
 #define MHI_NET_MIN_MTU		ETH_MIN_MTU
 #define MHI_NET_MAX_MTU		0xffff
@@ -38,10 +39,12 @@ struct mhi_net_dev {
 	u32 rx_queue_sz;
 	int msg_enable;
 	unsigned int mru;
+	bool ethernet_if;
 };
 
 struct mhi_device_info {
 	const char *netname;
+	bool ethernet_if;
 };
 
 static int mhi_ndo_open(struct net_device *ndev)
@@ -119,11 +122,37 @@ static void mhi_ndo_get_stats64(struct net_device *ndev,
 	} while (u64_stats_fetch_retry(&mhi_netdev->stats.tx_syncp, start));
 }
 
+static int mhi_mac_address(struct net_device *dev, void *p)
+{
+	int ret;
+
+	if (dev->type == ARPHRD_ETHER) {
+		ret = eth_mac_addr(dev, p);
+	return ret;
+	}
+
+	return 0;
+}
+
+static int mhi_validate_address(struct net_device *dev)
+{
+	int ret;
+
+	if (dev->type == ARPHRD_ETHER) {
+		ret = eth_validate_addr(dev);
+		return ret;
+	}
+
+	return 0;
+}
+
 static const struct net_device_ops mhi_netdev_ops = {
 	.ndo_open               = mhi_ndo_open,
 	.ndo_stop               = mhi_ndo_stop,
 	.ndo_start_xmit         = mhi_ndo_xmit,
 	.ndo_get_stats64	= mhi_ndo_get_stats64,
+	.ndo_set_mac_address    = mhi_mac_address,
+	.ndo_validate_addr      = mhi_validate_address,
 };
 
 static void mhi_net_setup(struct net_device *ndev)
@@ -140,6 +169,14 @@ static void mhi_net_setup(struct net_device *ndev)
 	ndev->tx_queue_len = 1000;
 }
 
+static void mhi_ethernet_setup(struct net_device *ndev)
+{
+	ndev->netdev_ops = &mhi_netdev_ops;
+	ether_setup(ndev);
+	ndev->min_mtu = ETH_MIN_MTU;
+	ndev->max_mtu = ETH_MAX_MTU;
+}
+
 static struct sk_buff *mhi_net_skb_agg(struct mhi_net_dev *mhi_netdev,
 				       struct sk_buff *skb)
 {
@@ -209,16 +246,22 @@ static void mhi_net_dl_callback(struct mhi_device *mhi_dev,
 			mhi_netdev->skbagg_head = NULL;
 		}
 
-		switch (skb->data[0] & 0xf0) {
-		case 0x40:
-			skb->protocol = htons(ETH_P_IP);
-			break;
-		case 0x60:
-			skb->protocol = htons(ETH_P_IPV6);
-			break;
-		default:
-			skb->protocol = htons(ETH_P_MAP);
-			break;
+		if (mhi_netdev->ethernet_if) {
+			skb_copy_to_linear_data(skb, skb->data,
+						mhi_res->bytes_xferd);
+			skb->protocol = eth_type_trans(skb, mhi_netdev->ndev);
+		} else {
+			switch (skb->data[0] & 0xf0) {
+			case 0x40:
+				skb->protocol = htons(ETH_P_IP);
+				break;
+			case 0x60:
+				skb->protocol = htons(ETH_P_IPV6);
+				break;
+			default:
+				skb->protocol = htons(ETH_P_MAP);
+				break;
+			}
 		}
 
 		u64_stats_update_begin(&mhi_netdev->stats.rx_syncp);
@@ -301,11 +344,17 @@ static void mhi_net_rx_refill_work(struct work_struct *work)
 		schedule_delayed_work(&mhi_netdev->rx_refill, HZ / 2);
 }
 
-static int mhi_net_newlink(struct mhi_device *mhi_dev, struct net_device *ndev)
+static int mhi_net_newlink(struct mhi_device *mhi_dev, struct net_device *ndev, bool eth_dev)
 {
 	struct mhi_net_dev *mhi_netdev;
 	int err;
 
+	if (eth_dev) {
+		eth_hw_addr_random(ndev);
+		if (!is_valid_ether_addr(ndev->dev_addr))
+			return -EADDRNOTAVAIL;
+	}
+
 	mhi_netdev = netdev_priv(ndev);
 
 	dev_set_drvdata(&mhi_dev->dev, mhi_netdev);
@@ -313,6 +362,7 @@ static int mhi_net_newlink(struct mhi_device *mhi_dev, struct net_device *ndev)
 	mhi_netdev->mdev = mhi_dev;
 	mhi_netdev->skbagg_head = NULL;
 	mhi_netdev->mru = mhi_dev->mhi_cntrl->mru;
+	mhi_netdev->ethernet_if = eth_dev;
 
 	INIT_DELAYED_WORK(&mhi_netdev->rx_refill, mhi_net_rx_refill_work);
 	u64_stats_init(&mhi_netdev->stats.rx_syncp);
@@ -365,13 +415,14 @@ static int mhi_net_probe(struct mhi_device *mhi_dev,
 	}
 
 	ndev = alloc_netdev(sizeof(struct mhi_net_dev), netname,
-			    NET_NAME_PREDICTABLE, mhi_net_setup);
+			    NET_NAME_PREDICTABLE, info->ethernet_if ?
+			    mhi_ethernet_setup : mhi_net_setup);
 	if (!ndev)
 		return -ENOMEM;
 
 	SET_NETDEV_DEV(ndev, &mhi_dev->dev);
 
-	err = mhi_net_newlink(mhi_dev, ndev);
+	err = mhi_net_newlink(mhi_dev, ndev, info->ethernet_if);
 	if (err) {
 		free_netdev(ndev);
 		return err;
@@ -389,10 +440,17 @@ static void mhi_net_remove(struct mhi_device *mhi_dev)
 
 static const struct mhi_device_info mhi_hwip0 = {
 	.netname = "mhi_hwip%d",
+	.ethernet_if = false,
 };
 
 static const struct mhi_device_info mhi_swip0 = {
 	.netname = "mhi_swip%d",
+	.ethernet_if = false,
+};
+
+static const struct mhi_device_info mhi_eth0 = {
+	.netname = "mhi_eth%d",
+	.ethernet_if = true,
 };
 
 static const struct mhi_device_id mhi_net_id_table[] = {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/4] net: mhi: Add MHI IP_SW1, ETH0 and ETH1 interface
  2025-07-24 13:51 [PATCH 0/4] net: mhi : Add support to enable ethernet interface Vivek.Pernamitta
  2025-07-24 13:51 ` [PATCH 1/4] net: mhi: Rename MHI interface to improve clarity Vivek.Pernamitta
  2025-07-24 13:51 ` [PATCH 2/4] net: mhi : Add support to enable ethernet interface Vivek.Pernamitta
@ 2025-07-24 13:51 ` Vivek.Pernamitta
  2025-07-24 13:51 ` [PATCH 4/4] bus: mhi: host: pci: Enable IP_SW1, IP_ETH0 and IP_ETH1 channels for QDU100 Vivek.Pernamitta
  2025-07-24 16:39 ` [PATCH 0/4] net: mhi : Add support to enable ethernet interface Manivannan Sadhasivam
  4 siblings, 0 replies; 8+ messages in thread
From: Vivek.Pernamitta @ 2025-07-24 13:51 UTC (permalink / raw)
  To: Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Manivannan Sadhasivam
  Cc: netdev, linux-kernel, mhi, linux-arm-msm, Vivek Pernamitta

From: Vivek Pernamitta <quic_vpernami@quicinc.com>

Add IP_SW1, ETH0 and ETH1 network interfaces are required
for M-plane, Nefconf and S-plane component.

Signed-off-by: Vivek Pernamitta <quic_vpernami@quicinc.com>
---
 drivers/net/mhi_net.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/mhi_net.c b/drivers/net/mhi_net.c
index ba65abcee32a253fc1eb9d75f1693734f4d53ee3..ea3f27cbfafe54ef20f66ec0f046ce979c876217 100644
--- a/drivers/net/mhi_net.c
+++ b/drivers/net/mhi_net.c
@@ -458,6 +458,9 @@ static const struct mhi_device_id mhi_net_id_table[] = {
 	{ .chan = "IP_HW0", .driver_data = (kernel_ulong_t)&mhi_hwip0 },
 	/* Software data PATH (to modem CPU) */
 	{ .chan = "IP_SW0", .driver_data = (kernel_ulong_t)&mhi_swip0 },
+	{ .chan = "IP_SW1", .driver_data = (kernel_ulong_t)&mhi_swip0 },
+	{ .chan = "IP_ETH0", .driver_data = (kernel_ulong_t)&mhi_eth0 },
+	{ .chan = "IP_ETH1", .driver_data = (kernel_ulong_t)&mhi_eth0 },
 	{}
 };
 MODULE_DEVICE_TABLE(mhi, mhi_net_id_table);

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 4/4] bus: mhi: host: pci: Enable IP_SW1, IP_ETH0 and IP_ETH1 channels for QDU100
  2025-07-24 13:51 [PATCH 0/4] net: mhi : Add support to enable ethernet interface Vivek.Pernamitta
                   ` (2 preceding siblings ...)
  2025-07-24 13:51 ` [PATCH 3/4] net: mhi: Add MHI IP_SW1, ETH0 and ETH1 interface Vivek.Pernamitta
@ 2025-07-24 13:51 ` Vivek.Pernamitta
  2025-07-24 16:39 ` [PATCH 0/4] net: mhi : Add support to enable ethernet interface Manivannan Sadhasivam
  4 siblings, 0 replies; 8+ messages in thread
From: Vivek.Pernamitta @ 2025-07-24 13:51 UTC (permalink / raw)
  To: Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Manivannan Sadhasivam
  Cc: netdev, linux-kernel, mhi, linux-arm-msm, Vivek Pernamitta

From: Vivek Pernamitta <quic_vpernami@quicinc.com>

Enable IP_SW1, IP_ETH0 and IP_ETH1 channels for M-plane, NETCONF and
S-plane interface for QDU100.

Signed-off-by: Vivek Pernamitta <quic_vpernami@quicinc.com>
---
 drivers/bus/mhi/host/pci_generic.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/bus/mhi/host/pci_generic.c b/drivers/bus/mhi/host/pci_generic.c
index 4edb5bb476baf02af02aed00be0d6bacf9e92634..1527e0b5ac24bee5d99a36ef6ab47ed619e77db9 100644
--- a/drivers/bus/mhi/host/pci_generic.c
+++ b/drivers/bus/mhi/host/pci_generic.c
@@ -263,6 +263,13 @@ static const struct mhi_channel_config mhi_qcom_qdu100_channels[] = {
 	MHI_CHANNEL_CONFIG_DL(41, "MHI_PHC", 32, 4),
 	MHI_CHANNEL_CONFIG_UL(46, "IP_SW0", 256, 5),
 	MHI_CHANNEL_CONFIG_DL(47, "IP_SW0", 256, 5),
+	MHI_CHANNEL_CONFIG_UL(48, "IP_SW1", 256, 6),
+	MHI_CHANNEL_CONFIG_DL(49, "IP_SW1", 256, 6),
+	MHI_CHANNEL_CONFIG_UL(50, "IP_ETH0", 256, 7),
+	MHI_CHANNEL_CONFIG_DL(51, "IP_ETH0", 256, 7),
+	MHI_CHANNEL_CONFIG_UL(52, "IP_ETH1", 256, 8),
+	MHI_CHANNEL_CONFIG_DL(53, "IP_ETH1", 256, 8),
+
 };
 
 static struct mhi_event_config mhi_qcom_qdu100_events[] = {
@@ -278,6 +285,7 @@ static struct mhi_event_config mhi_qcom_qdu100_events[] = {
 	MHI_EVENT_CONFIG_SW_DATA(5, 512),
 	MHI_EVENT_CONFIG_SW_DATA(6, 512),
 	MHI_EVENT_CONFIG_SW_DATA(7, 512),
+	MHI_EVENT_CONFIG_SW_DATA(8, 512),
 };
 
 static const struct mhi_controller_config mhi_qcom_qdu100_config = {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/4] net: mhi : Add support to enable ethernet interface
  2025-07-24 13:51 [PATCH 0/4] net: mhi : Add support to enable ethernet interface Vivek.Pernamitta
                   ` (3 preceding siblings ...)
  2025-07-24 13:51 ` [PATCH 4/4] bus: mhi: host: pci: Enable IP_SW1, IP_ETH0 and IP_ETH1 channels for QDU100 Vivek.Pernamitta
@ 2025-07-24 16:39 ` Manivannan Sadhasivam
  4 siblings, 0 replies; 8+ messages in thread
From: Manivannan Sadhasivam @ 2025-07-24 16:39 UTC (permalink / raw)
  To: Vivek.Pernamitta
  Cc: Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, netdev, linux-kernel, mhi, linux-arm-msm,
	Vivek Pernamitta

On Thu, Jul 24, 2025 at 07:21:16PM GMT, Vivek.Pernamitta@quicinc.com wrote:
> - Add support to enable ethernet network device for MHI NET driver
>   currenlty we have support only NET driver.
>   so new client can be configured to be Ethernet type over MHI by
>   setting "mhi_device_info.ethernet_if = true"
> 
> - Change the naming format for MHI network interfaces to improve clarity
>   when multiple MHI controllers are connected.
> 
>   Currently, MHI NET device interfaces are created as mhi_swip<n>/mhi_hwip<n>
>   for each channel. This makes it difficult to distinguish between channels
>   when multiple EP/MHI controllers are connected, as we cannot map the
>   corresponding MHI channel to the respective controller and channel.
>   To address this, create a new MHI interface name based on the device name and
>   channel name.
> 
> - Add support for new MHI channels for M-plane, NETCONF and S-plane.
> 
> Initial post for Ethernet support in MHI driver is posted here
> https://lore.kernel.org/all/1689762055-12570-1-git-send-email-quic_vpernami@quicinc.com/
> 

What has changed since then? This series is supposed to be v4. And you haven't
resolved the v2 comments itself:
https://lore.kernel.org/mhi/1689660928-12092-1-git-send-email-quic_vpernami@quicinc.com/

- Mani

> Signed-off-by: 
> 
> ---
> Vivek Pernamitta (4):
>       net: mhi: Rename MHI interface to improve clarity
>       net: mhi : Add support to enable ethernet interface
>       net: mhi: Add MHI IP_SW1, ETH0 and ETH1 interface
>       bus: mhi: host: pci: Enable IP_SW1, IP_ETH0 and IP_ETH1 channels for QDU100
> 
>  drivers/bus/mhi/host/pci_generic.c |   8 +++
>  drivers/net/mhi_net.c              | 100 +++++++++++++++++++++++++++++++------
>  2 files changed, 93 insertions(+), 15 deletions(-)
> ---
> base-commit: 9ee814bd78e315e4551223ca7548dd3f6bdcf1ae
> change-id: 20250724-b4-eth_us-97f0d5ba7f08
> 
> Best regards,
> -- 
> Vivek Pernamitta <<quic_vpernami@quicinc.com>>
> 

-- 
மணிவண்ணன் சதாசிவம்

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/4] net: mhi: Rename MHI interface to improve clarity
  2025-07-24 13:51 ` [PATCH 1/4] net: mhi: Rename MHI interface to improve clarity Vivek.Pernamitta
@ 2025-07-26  0:08   ` Jakub Kicinski
  0 siblings, 0 replies; 8+ messages in thread
From: Jakub Kicinski @ 2025-07-26  0:08 UTC (permalink / raw)
  To: Vivek.Pernamitta
  Cc: Andrew Lunn, David S. Miller, Eric Dumazet, Paolo Abeni,
	Manivannan Sadhasivam, netdev, linux-kernel, mhi, linux-arm-msm,
	Vivek Pernamitta

On Thu, 24 Jul 2025 19:21:17 +0530 Vivek.Pernamitta@quicinc.com wrote:
> From: Vivek Pernamitta <quic_vpernami@quicinc.com>
> 
> Rename the MHI network interface to include the device name, improving
> clarity when multiple MHI controllers are connected.
> 
> Currently, MHI NET device interfaces are created as mhi_swip<n>/
> mhi_hwip<n> for each channel, making it difficult to distinguish between
> channels when multiple EP/MHI controllers are connected.
> 
> Rename the MHI interface to include the device name, for example:
> - Channel IP_SW0 for the 1st MHI controller will be named mhi0_IP_SW0.
> - Channel IP_SW0 for the 2nd MHI controller will be named mhi1_IP_SW0.
> - Channel IP_HW0 for the 1st MHI controller will be named mhi0_IP_HW0.

The userspace can rename the interfaces. It has the association with
the underlying device right there in the udev event.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/4] net: mhi : Add support to enable ethernet interface
  2025-07-24 13:51 ` [PATCH 2/4] net: mhi : Add support to enable ethernet interface Vivek.Pernamitta
@ 2025-07-26  0:10   ` Jakub Kicinski
  0 siblings, 0 replies; 8+ messages in thread
From: Jakub Kicinski @ 2025-07-26  0:10 UTC (permalink / raw)
  To: Vivek.Pernamitta
  Cc: Andrew Lunn, David S. Miller, Eric Dumazet, Paolo Abeni,
	Manivannan Sadhasivam, netdev, linux-kernel, mhi, linux-arm-msm,
	Vivek Pernamitta

On Thu, 24 Jul 2025 19:21:18 +0530 Vivek.Pernamitta@quicinc.com wrote:
>  	ndev = alloc_netdev(sizeof(struct mhi_net_dev), netname,
> -			    NET_NAME_PREDICTABLE, mhi_net_setup);
> +			    NET_NAME_PREDICTABLE, info->ethernet_if ?
> +			    mhi_ethernet_setup : mhi_net_setup);

Similar story, if it's an Ethernet device is should be called eth%d
and user space can name it whatever it wants based on the full sysfs
attribute set.

For n-th time in our history we discover that having the kernel create
"predictable" names always falls short, sigh.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2025-07-26  0:10 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-24 13:51 [PATCH 0/4] net: mhi : Add support to enable ethernet interface Vivek.Pernamitta
2025-07-24 13:51 ` [PATCH 1/4] net: mhi: Rename MHI interface to improve clarity Vivek.Pernamitta
2025-07-26  0:08   ` Jakub Kicinski
2025-07-24 13:51 ` [PATCH 2/4] net: mhi : Add support to enable ethernet interface Vivek.Pernamitta
2025-07-26  0:10   ` Jakub Kicinski
2025-07-24 13:51 ` [PATCH 3/4] net: mhi: Add MHI IP_SW1, ETH0 and ETH1 interface Vivek.Pernamitta
2025-07-24 13:51 ` [PATCH 4/4] bus: mhi: host: pci: Enable IP_SW1, IP_ETH0 and IP_ETH1 channels for QDU100 Vivek.Pernamitta
2025-07-24 16:39 ` [PATCH 0/4] net: mhi : Add support to enable ethernet interface Manivannan Sadhasivam

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).