Kornel Dulęba
364d0221f1
net: wwan: t7xx: Fix Runtime PM resume sequence
...
Resume device before calling napi_schedule, instead of doing in the napi
poll routine. Polling is done in softrq context. We can't call the PM
resume logic from there as it's blocking and not irq safe.
In order to make it work modify the interrupt handler to be run from irq
handler thread.
Fixes: 5545b7b9f2 ("net: wwan: t7xx: Add NAPI support")
Signed-off-by: Kornel Dulęba <mindal@semihalf.com >
Signed-off-by: David S. Miller <davem@davemloft.net >
2023-01-28 13:20:20 +00:00
Haijun Liu
5545b7b9f2
net: wwan: t7xx: Add NAPI support
...
Replace the work queue based RX flow with a NAPI implementation
Remove rx_thread and dpmaif_rxq_work.
Enable GRO on RX path.
Introduce dummy network device. its responsibility is
- Binds one NAPI object for each DL HW queue and acts as
the agent of all those network devices.
- Use NAPI object to poll DL packets.
- Helps to dispatch each packet to the network interface.
Signed-off-by: Haijun Liu <haijun.liu@mediatek.com >
Co-developed-by: Sreehari Kancharla <sreehari.kancharla@linux.intel.com >
Signed-off-by: Sreehari Kancharla <sreehari.kancharla@linux.intel.com >
Signed-off-by: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com >
Acked-by: Ricardo Martinez <ricardo.martinez@linux.intel.com >
Acked-by: M Chetan Kumar <m.chetan.kumar@linux.intel.com >
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: David S. Miller <davem@davemloft.net >
2022-11-07 09:34:12 +00:00
Ilpo Järvinen
c053d7b6bd
net: wwan: t7xx: Use needed_headroom instead of hard_header_len
...
hard_header_len is used by gro_list_prepare() but on Rx, there
is no header so use needed_headroom instead.
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Sreehari Kancharla <sreehari.kancharla@linux.intel.com >
Reviewed-by: Sergey Ryazanov <ryazanov.s.a@gmail.com >
Signed-off-by: David S. Miller <davem@davemloft.net >
2022-11-07 09:34:12 +00:00
Nathan Huckleberry
73c99e2603
net: wwan: t7xx: Fix return type of t7xx_ccmni_start_xmit
...
The ndo_start_xmit field in net_device_ops is expected to be of type
netdev_tx_t (*ndo_start_xmit)(struct sk_buff *skb, struct net_device *dev).
The mismatched return type breaks forward edge kCFI since the underlying
function definition does not match the function hook definition.
The return type of t7xx_ccmni_start_xmit should be changed from int to
netdev_tx_t.
Reported-by: Dan Carpenter <error27@gmail.com >
Link: https://github.com/ClangBuiltLinux/linux/issues/1703
Cc: llvm@lists.linux.dev
Signed-off-by: Nathan Huckleberry <nhuck@google.com >
Acked-by: Sergey Ryazanov <ryazanov.s.a@gmail.com >
Link: https://lore.kernel.org/r/20220912214510.929070-1-nhuck@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org >
2022-09-19 18:28:50 -07:00
Haijun Liu
05d19bf500
net: wwan: t7xx: Add WWAN network interface
...
Creates the Cross Core Modem Network Interface (CCMNI) which implements
the wwan_ops for registration with the WWAN framework, CCMNI also
implements the net_device_ops functions used by the network device.
Network device operations include open, close, start transmission, TX
timeout and change MTU.
Signed-off-by: Haijun Liu <haijun.liu@mediatek.com >
Co-developed-by: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com >
Signed-off-by: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com >
Co-developed-by: Ricardo Martinez <ricardo.martinez@linux.intel.com >
Signed-off-by: Ricardo Martinez <ricardo.martinez@linux.intel.com >
Reviewed-by: Loic Poulain <loic.poulain@linaro.org >
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Reviewed-by: Sergey Ryazanov <ryazanov.s.a@gmail.com >
Signed-off-by: David S. Miller <davem@davemloft.net >
2022-05-09 10:51:59 +01:00