qcacld-3.0: Do not take wakelock if ip multicast packet
Currently, wakelock is taken for all unicast packets. Do not take wakelock if packet is IP multicast packet. Change-Id: If197cbb58d1414adedb1d29f9c2bd67be83e95b4 CRs-Fixed: 3807621
This commit is contained in:
parent
50422eee58
commit
b74a18ea3f
@ -1669,7 +1669,7 @@ QDF_STATUS dp_rx_packet_cbk(void *dp_link_context,
|
||||
bool is_arp_req;
|
||||
enum qdf_proto_subtype subtype = QDF_PROTO_INVALID;
|
||||
bool is_eapol, send_over_nl;
|
||||
bool is_dhcp;
|
||||
bool is_dhcp, is_ip_mcast;
|
||||
struct dp_tx_rx_stats *stats;
|
||||
QDF_STATUS status;
|
||||
uint8_t pkt_type;
|
||||
@ -1696,6 +1696,7 @@ QDF_STATUS dp_rx_packet_cbk(void *dp_link_context,
|
||||
is_arp_req = false;
|
||||
is_eapol = false;
|
||||
is_dhcp = false;
|
||||
is_ip_mcast = false;
|
||||
send_over_nl = false;
|
||||
|
||||
if (qdf_nbuf_is_ipv4_arp_pkt(nbuf)) {
|
||||
@ -1735,6 +1736,9 @@ QDF_STATUS dp_rx_packet_cbk(void *dp_link_context,
|
||||
dhcp_ack_count;
|
||||
is_dhcp = true;
|
||||
}
|
||||
} else if (qdf_nbuf_data_is_ipv4_mcast_pkt(nbuf->data) ||
|
||||
qdf_nbuf_data_is_ipv6_mcast_pkt(nbuf->data)) {
|
||||
is_ip_mcast = true;
|
||||
}
|
||||
|
||||
wlan_dp_pkt_add_timestamp(dp_intf, QDF_PKT_RX_DRIVER_EXIT,
|
||||
@ -1812,7 +1816,7 @@ QDF_STATUS dp_rx_packet_cbk(void *dp_link_context,
|
||||
/* hold configurable wakelock for unicast traffic */
|
||||
if (!dp_is_current_high_throughput(dp_ctx) &&
|
||||
dp_ctx->dp_cfg.rx_wakelock_timeout &&
|
||||
dp_link->conn_info.is_authenticated)
|
||||
dp_link->conn_info.is_authenticated && !is_ip_mcast)
|
||||
wake_lock = dp_is_rx_wake_lock_needed(nbuf, is_arp_req);
|
||||
|
||||
if (wake_lock) {
|
||||
|
Loading…
Reference in New Issue
Block a user