Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9d11ef4e authored by Conner Huff's avatar Conner Huff Committed by Gerrit - the friendly Code Review server
Browse files

drivers: rmnet: shs: New dl marker v2 callbacks



New API's for main rmnet driver to call when handling
DL markers accompanied with v2 format. This allows
rmnet modules to receive new qcmd field upon callback.

Change-Id: I77637c77715342b1c2e685cde82f29b87b048cc6
Signed-off-by: default avatarConner Huff <chuff@codeaurora.org>
parent 72a8f8d6
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -301,6 +301,10 @@ int rmnet_shs_get_mask_len(u8 mask);

int rmnet_shs_chk_and_flush_node(struct rmnet_shs_skbn_s *node,
				 u8 force_flush, u8 ctxt);
void rmnet_shs_dl_hdr_handler_v2(struct rmnet_map_dl_ind_hdr *dlhdr,
			      struct rmnet_map_control_command_header *qcmd);
void rmnet_shs_dl_trl_handler_v2(struct rmnet_map_dl_ind_trl *dltrl,
			      struct rmnet_map_control_command_header *qcmd);
void rmnet_shs_dl_hdr_handler(struct rmnet_map_dl_ind_hdr *dlhdr);
void rmnet_shs_dl_trl_handler(struct rmnet_map_dl_ind_trl *dltrl);
void rmnet_shs_assign(struct sk_buff *skb, struct rmnet_port *port);
+17 −4
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
#include <linux/netdevice.h>
#include <linux/module.h>
#include <../drivers/net/ethernet/qualcomm/rmnet/rmnet_map.h>
#include <../drivers/net/ethernet/qualcomm/rmnet/rmnet_private.h>
#include "rmnet_shs_config.h"
#include "rmnet_shs.h"
#include "rmnet_shs_wq.h"
@@ -85,6 +86,8 @@ static int rmnet_shs_dev_notify_cb(struct notifier_block *nb,

	struct net_device *dev = netdev_notifier_info_to_dev(data);
	static struct net_device *phy_dev;
	struct rmnet_priv *priv;
	struct rmnet_port *port;

	if (!dev) {
		rmnet_shs_crit_err[RMNET_SHS_NETDEV_ERR]++;
@@ -139,10 +142,20 @@ static int rmnet_shs_dev_notify_cb(struct notifier_block *nb,
				rmnet_shs_cfg.is_timer_init = 1;
				rmnet_shs_cfg.dl_mrk_ind_cb.priority =
				   RMNET_SHS;
				priv = netdev_priv(dev);
				port = rmnet_get_port(priv->real_dev);
				if (port->data_format & RMNET_INGRESS_FORMAT_DL_MARKER_V2) {
					rmnet_shs_cfg.dl_mrk_ind_cb.dl_hdr_handler_v2 =
						&rmnet_shs_dl_hdr_handler_v2;
					rmnet_shs_cfg.dl_mrk_ind_cb.dl_trl_handler_v2 =
						&rmnet_shs_dl_trl_handler_v2;
				} else {
					rmnet_shs_cfg.dl_mrk_ind_cb.dl_hdr_handler =
						&rmnet_shs_dl_hdr_handler;
					rmnet_shs_cfg.dl_mrk_ind_cb.dl_trl_handler =
						&rmnet_shs_dl_trl_handler;
				}

				trace_rmnet_shs_high(RMNET_SHS_MODULE,
						     RMNET_SHS_MODULE_INIT_WQ,
						     0xDEF, 0xDEF, 0xDEF,
+12 −0
Original line number Diff line number Diff line
@@ -1293,6 +1293,12 @@ void rmnet_shs_ps_off_hdlr(void *port)
	rmnet_shs_wq_restart();
}

void rmnet_shs_dl_hdr_handler_v2(struct rmnet_map_dl_ind_hdr *dlhdr,
			      struct rmnet_map_control_command_header *qcmd)
{
	rmnet_shs_dl_hdr_handler(dlhdr);
}

void rmnet_shs_dl_hdr_handler(struct rmnet_map_dl_ind_hdr *dlhdr)
{

@@ -1311,6 +1317,12 @@ void rmnet_shs_dl_hdr_handler(struct rmnet_map_dl_ind_hdr *dlhdr)
/* Triggers flushing of all packets upon DL trailer
 * receiving a DL trailer marker
 */
void rmnet_shs_dl_trl_handler_v2(struct rmnet_map_dl_ind_trl *dltrl,
			      struct rmnet_map_control_command_header *qcmd)
{
	rmnet_shs_dl_trl_handler(dltrl);
}

void rmnet_shs_dl_trl_handler(struct rmnet_map_dl_ind_trl *dltrl)
{