Pārlūkot izejas kodu

shs: I11461715003856563a10e2c0c600df773527b80e

Update to I11461715003856563a10e2c0c600df773527b80e.

Change-Id: I11461715003856563a10e2c0c600df773527b80e
Signed-off-by: Conner Huff <[email protected]>
Conner Huff 2 gadi atpakaļ
vecāks
revīzija
78977beb7e
5 mainītis faili ar 196 papildinājumiem un 122 dzēšanām
  1. 58 55
      shs/rmnet_shs.h
  2. 22 15
      shs/rmnet_shs_config.c
  3. 71 28
      shs/rmnet_shs_freq.c
  4. 2 0
      shs/rmnet_shs_freq.h
  5. 43 24
      shs/rmnet_shs_main.c

+ 58 - 55
shs/rmnet_shs.h

@@ -71,41 +71,42 @@ struct DATARMNETa6f2d499b2{struct hrtimer DATARMNET758a55f103;struct work_struct
  DATARMNET33110a3ff5;struct timespec64 DATARMNET251b97a380;int 
 DATARMNETe61d62310f;u8 DATARMNET42c3ecbd5e;};struct DATARMNETa6b20d7e8b{struct 
 hrtimer DATARMNET6fd692fc7a;struct hrtimer DATARMNET645fb3b468;struct hrtimer 
-hrtimer_wake;struct rmnet_map_dl_ind DATARMNET08dbb5ab35;struct qmi_rmnet_ps_ind
- rmnet_idl_ind_cb;struct rmnet_port*port;struct DATARMNETa6f2d499b2 
-DATARMNET132b9c7dc4[DATARMNETc6782fed88];u64 DATARMNETbd3a0ee74e[
-DATARMNETc6782fed88];long DATARMNETc252a1f55d;long DATARMNETa2e32cdd3a;
-atomic_long_t DATARMNET64bb8a8f57;u8 DATARMNET110549da6f;u8 DATARMNET9c869c1ec2;
-u8 DATARMNETd9cfd2812b;u8 DATARMNETf5ab31b9b0;u8 DATARMNET34097703c8;u8 
-DATARMNETfc89d842ae;u8 DATARMNET6fe0db3a49;u8 DATARMNETba3f7a11ef;u8 map_mask;u8
- map_len;u8 DATARMNET5c24e1df05;u8 DATARMNET6625085b71;u16 DATARMNETfeee6933fc;
-u8 DATARMNET7d667e828e;u8 DATARMNETe250463eef;ktime_t DATARMNETdd3caf9200;struct
- wakeup_source*ws;};struct DATARMNETa034b2e60c{struct sk_buff*head;struct 
-sk_buff*tail;u64 DATARMNETbaa5765693;u32 DATARMNET6215127f48;u32 
-DATARMNET35234676d4;};struct DATARMNET63d7680df2{union{struct iphdr 
-DATARMNETac9bbaad7c;struct ipv6hdr DATARMNET1688a97aa4;}ip_hdr;union{struct 
-tcphdr tp;struct udphdr up;}DATARMNETe33b41dad9;struct list_head 
-DATARMNET04c88b8191;struct net_device*dev;struct DATARMNET6c78e47d24*
-DATARMNET341ea38662;struct DATARMNETa034b2e60c DATARMNETae4b27456e;struct 
-hlist_node list;u64 DATARMNET11930c5df8;u64 DATARMNETa8940e4a7b;u64 
-DATARMNET2594c418db;u64 DATARMNET3ecedac168;u64 DATARMNETce5f56eab9;u32 
-DATARMNET1743c92e66;u32 queue_head;u32 hash;u32 bif;u32 ack_thresh;u16 map_index
-;u16 map_cpu;u16 DATARMNETfbbec4c537;u16 DATARMNETa59ce1fd2d;u8 
-DATARMNET85c698ec34;u16 DATARMNET0371465875;u16 DATARMNET1e9d25d9ff;u8 
-DATARMNET6250e93187;u8 DATARMNET80eb31d7b8;u8 DATARMNETd986107d55;u8 mux_id;};
-enum DATARMNETa40e71cf32{DATARMNET39a19f2e82,DATARMNETbb52958049,
-DATARMNET46a17e3ec5,DATARMNETfeb864b93d,DATARMNET3503c562cb};enum 
-DATARMNET055bc2777b{DATARMNETf8fcf5a1db,DATARMNET6a801720f2,DATARMNET64165df74d,
-DATARMNETfb9ca677b8};enum DATARMNET156842d55e{DATARMNET7bc926fdbe,
-DATARMNETb3e3b2a799,DATARMNET8dcf06727b};enum DATARMNET8463cba7c7{
-DATARMNETc3bce05be2,DATARMNET14067f0be4,DATARMNET28bb261646,DATARMNET67b67dc88f,
-DATARMNET0efbbe2821,DATARMNETa4267dfd8a,DATARMNETf13db5ace8,DATARMNETb6eae1e097,
-DATARMNET0e398136dc,DATARMNET975060d6b5,DATARMNET7f401828b3,DATARMNET6ea8a58f4e,
-DATARMNETcf84373518,DATARMNET6bf40b86f6,DATARMNET9f8bd72ee5,DATARMNET5eefd5051a,
-DATARMNET6d1e5ff045,DATARMNETf6458f40e6,DATARMNET438fb7f8f3,DATARMNET6fed39da20,
-DATARMNETeccb61ebc3};enum DATARMNETf355367410{DATARMNET557ff68d74,
-DATARMNET1c55e5fdb1,DATARMNET4ab5a31d0c,DATARMNETde2dd86539};enum 
-DATARMNET6c7f7f22c7{DATARMNETe35e238437,DATARMNET0d61981934};enum 
+hrtimer_wake;struct hrtimer DATARMNET533dba0f29;struct rmnet_map_dl_ind 
+DATARMNET08dbb5ab35;struct rmnet_map_pb_ind DATARMNET6b783c98fe;struct 
+qmi_rmnet_ps_ind rmnet_idl_ind_cb;struct rmnet_port*port;struct 
+DATARMNETa6f2d499b2 DATARMNET132b9c7dc4[DATARMNETc6782fed88];u64 
+DATARMNETbd3a0ee74e[DATARMNETc6782fed88];long DATARMNETc252a1f55d;long 
+DATARMNETa2e32cdd3a;atomic_long_t DATARMNET64bb8a8f57;u8 DATARMNET110549da6f;u8 
+DATARMNET9c869c1ec2;u8 DATARMNETd9cfd2812b;u8 DATARMNETf5ab31b9b0;u8 
+DATARMNET34097703c8;u8 DATARMNETfc89d842ae;u8 DATARMNET6fe0db3a49;u8 
+DATARMNETba3f7a11ef;u8 map_mask;u8 map_len;u8 DATARMNET5c24e1df05;u8 
+DATARMNET6625085b71;u16 DATARMNETfeee6933fc;u8 DATARMNET7d667e828e;u8 
+DATARMNETe250463eef;ktime_t DATARMNETdd3caf9200;struct wakeup_source*ws;};struct
+ DATARMNETa034b2e60c{struct sk_buff*head;struct sk_buff*tail;u64 
+DATARMNETbaa5765693;u32 DATARMNET6215127f48;u32 DATARMNET35234676d4;};struct 
+DATARMNET63d7680df2{union{struct iphdr DATARMNETac9bbaad7c;struct ipv6hdr 
+DATARMNET1688a97aa4;}ip_hdr;union{struct tcphdr tp;struct udphdr up;}
+DATARMNETe33b41dad9;struct list_head DATARMNET04c88b8191;struct net_device*dev;
+struct DATARMNET6c78e47d24*DATARMNET341ea38662;struct DATARMNETa034b2e60c 
+DATARMNETae4b27456e;struct hlist_node list;u64 DATARMNET11930c5df8;u64 
+DATARMNETa8940e4a7b;u64 DATARMNET2594c418db;u64 DATARMNET3ecedac168;u64 
+DATARMNETce5f56eab9;u32 DATARMNET1743c92e66;u32 queue_head;u32 hash;u32 bif;u32 
+ack_thresh;u16 map_index;u16 map_cpu;u16 DATARMNETfbbec4c537;u16 
+DATARMNETa59ce1fd2d;u8 DATARMNET85c698ec34;u16 DATARMNET0371465875;u16 
+DATARMNET1e9d25d9ff;u8 DATARMNET6250e93187;u8 DATARMNET80eb31d7b8;u8 
+DATARMNETd986107d55;u8 mux_id;};enum DATARMNETa40e71cf32{DATARMNET39a19f2e82,
+DATARMNETbb52958049,DATARMNET46a17e3ec5,DATARMNETfeb864b93d,DATARMNET3503c562cb}
+;enum DATARMNET055bc2777b{DATARMNETf8fcf5a1db,DATARMNET6a801720f2,
+DATARMNET64165df74d,DATARMNETfb9ca677b8};enum DATARMNET156842d55e{
+DATARMNET7bc926fdbe,DATARMNETb3e3b2a799,DATARMNET8dcf06727b};enum 
+DATARMNET8463cba7c7{DATARMNETc3bce05be2,DATARMNET14067f0be4,DATARMNET28bb261646,
+DATARMNET67b67dc88f,DATARMNET0efbbe2821,DATARMNETa4267dfd8a,DATARMNETf13db5ace8,
+DATARMNETb6eae1e097,DATARMNET0e398136dc,DATARMNET975060d6b5,DATARMNET7f401828b3,
+DATARMNET6ea8a58f4e,DATARMNETcf84373518,DATARMNET6bf40b86f6,DATARMNET9f8bd72ee5,
+DATARMNET5eefd5051a,DATARMNET6d1e5ff045,DATARMNETf6458f40e6,DATARMNET438fb7f8f3,
+DATARMNET6fed39da20,DATARMNETeccb61ebc3};enum DATARMNETf355367410{
+DATARMNET557ff68d74,DATARMNET1c55e5fdb1,DATARMNET4ab5a31d0c,DATARMNETde2dd86539}
+;enum DATARMNET6c7f7f22c7{DATARMNETe35e238437,DATARMNET0d61981934};enum 
 DATARMNET3f3bc61c03{DATARMNETf5157a9b85,DATARMNET709b59b0e6,DATARMNET99db6e7d86,
 DATARMNETe3c02ddaeb,DATARMNET394acaf558,DATARMNETef8cbfa62f,DATARMNETe6e77f9f03,
 DATARMNETecdf13872c,DATARMNETd1687e0776,DATARMNET1828d69e96,DATARMNET40ceff078e,
@@ -130,25 +131,26 @@ DATARMNET96571b28de;u32 DATARMNET4133fc9428;u32 seg;u8 DATARMNETef866573e0;u8
 DATARMNET1e1f197118;u8 DATARMNET72067bf727;};enum DATARMNETf0a06dc55a{
 DATARMNET1790979ccf,DATARMNETd5eb6398da,DATARMNETcd24fca747,DATARMNETe50d824af7,
 DATARMNET6b317c4c73,DATARMNET75d955c408,DATARMNETf3aaad06eb,DATARMNET720469c0a9,
-DATARMNET4510abc30d,DATARMNET23f8730007,};enum DATARMNETc1d9e38720{
-DATARMNET0b15fd8b54,DATARMNET5b5927fd7e,DATARMNETba3049005f};enum 
-DATARMNET4f392b0182{DATARMNET72cb00fdc0,DATARMNET443dab7031,DATARMNET96db46917c,
-DATARMNET89958f9b63,DATARMNET6d7a3a033a,DATARMNET16a68afc17,DATARMNET916f444e0a,
-DATARMNETe9a79499ac,DATARMNET89f4779456,DATARMNETa94c7e31a0,DATARMNET116c96c236,
-DATARMNET9da2ea4f74,DATARMNETe55953a107,DATARMNET43225b7a7c,DATARMNET4dbb6812b5,
-DATARMNETbf80eada88,DATARMNET26438cb654,DATARMNETa6d85c8497,DATARMNET650a0ef6e1,
-DATARMNET3e031f1532,DATARMNET9f467b9ce4,DATARMNETc154fd2d48,DATARMNET5874e1ecd7,
-DATARMNET4f09dc5794,DATARMNET11a1fd3964,DATARMNETf2fc7954d4,DATARMNET4e91ddb48a,
-DATARMNET16befe9635,DATARMNET856c53293b,DATARMNET7e63a08ad4,DATARMNETf7c8c7aa3f,
-DATARMNET08b6defcff,DATARMNETf5c836f9ae,DATARMNETdd870ee64c,DATARMNETf730f80f06,
-DATARMNET998c6de143,DATARMNETe7afce2292,DATARMNETe0fee0991a,DATARMNETbc2a6aea12,
-DATARMNETde91850c28,DATARMNET237e7bd5f6,DATARMNETf16e78412b,DATARMNET83147a2e7d,
-DATARMNET816bb1e327,DATARMNETf311f20c00,DATARMNETa2bd301af7,DATARMNET99640d60f7,
-DATARMNET562b7d32a8,DATARMNET0808844559,DATARMNET5410705c1c,DATARMNET022082b219,
-DATARMNETe4ee0d2636,DATARMNET23b8465daf,DATARMNET052f49b190,DATARMNETfb753e521e,
-DATARMNET64b02f64c6,DATARMNET576793621a,DATARMNETc262b24b02,DATARMNET4ebbc01257,
-DATARMNET595eed6ea2,DATARMNETde090e8314,DATARMNETa593d87b38,DATARMNET8a2898988b,
-DATARMNET0709c9f764,};extern struct DATARMNET37ef896af8 DATARMNET1731db288b;
+DATARMNET4510abc30d,DATARMNET23f8730007,DATARMNETb77d87790d,};enum 
+DATARMNETc1d9e38720{DATARMNET0b15fd8b54,DATARMNET5b5927fd7e,DATARMNETba3049005f}
+;enum DATARMNET4f392b0182{DATARMNET72cb00fdc0,DATARMNET443dab7031,
+DATARMNET96db46917c,DATARMNET89958f9b63,DATARMNET6d7a3a033a,DATARMNET16a68afc17,
+DATARMNET916f444e0a,DATARMNETe9a79499ac,DATARMNET89f4779456,DATARMNETa94c7e31a0,
+DATARMNET116c96c236,DATARMNET9da2ea4f74,DATARMNETe55953a107,DATARMNET43225b7a7c,
+DATARMNET4dbb6812b5,DATARMNETbf80eada88,DATARMNET26438cb654,DATARMNETa6d85c8497,
+DATARMNET650a0ef6e1,DATARMNET3e031f1532,DATARMNET9f467b9ce4,DATARMNETc154fd2d48,
+DATARMNET5874e1ecd7,DATARMNET4f09dc5794,DATARMNET11a1fd3964,DATARMNETf2fc7954d4,
+DATARMNET4e91ddb48a,DATARMNET16befe9635,DATARMNET856c53293b,DATARMNET7e63a08ad4,
+DATARMNETf7c8c7aa3f,DATARMNET08b6defcff,DATARMNETf5c836f9ae,DATARMNETdd870ee64c,
+DATARMNETf730f80f06,DATARMNET998c6de143,DATARMNETe7afce2292,DATARMNETe0fee0991a,
+DATARMNETbc2a6aea12,DATARMNETde91850c28,DATARMNET237e7bd5f6,DATARMNETf16e78412b,
+DATARMNET83147a2e7d,DATARMNET816bb1e327,DATARMNETf311f20c00,DATARMNETa2bd301af7,
+DATARMNET99640d60f7,DATARMNET562b7d32a8,DATARMNET0808844559,DATARMNET5410705c1c,
+DATARMNET022082b219,DATARMNETe4ee0d2636,DATARMNET23b8465daf,DATARMNET052f49b190,
+DATARMNETfb753e521e,DATARMNET64b02f64c6,DATARMNET576793621a,DATARMNETc262b24b02,
+DATARMNET4ebbc01257,DATARMNET595eed6ea2,DATARMNETde090e8314,DATARMNETa593d87b38,
+DATARMNET8a2898988b,DATARMNET0709c9f764,DATARMNETae009376be,DATARMNET5994bb1411,
+DATARMNET623224aa0a,};extern struct DATARMNET37ef896af8 DATARMNET1731db288b;
 extern spinlock_t DATARMNETd83ee17944;extern spinlock_t DATARMNET3764d083f0;
 extern spinlock_t DATARMNETec2a4f5211;extern spinlock_t DATARMNETfbdbab2ef6;
 extern struct hlist_head DATARMNETe603c3a4b3[(0xd26+209-0xdf6)<<(
@@ -161,7 +163,8 @@ DATARMNETa871eeb7e7(void);void DATARMNET8f9da46b14(void);int DATARMNET362b15f941
 (u16 cpu);void DATARMNETeacad8334e(void);void DATARMNETe1f95274f1(void);unsigned
  int DATARMNET02cdd9b125(void);int DATARMNET310c3eb16e(u8 mask);int 
 DATARMNETe02152c351(struct DATARMNET63d7680df2*DATARMNET63b1a086d5,u8 
-DATARMNETd87669e323,u8 DATARMNET5447204733);void DATARMNET78bb6be330(struct 
+DATARMNETd87669e323,u8 DATARMNET5447204733);void DATARMNET4684d6c911(struct 
+rmnet_map_pb_ind_hdr*DATARMNET4e61dda775);void DATARMNET78bb6be330(struct 
 rmnet_map_dl_ind_hdr*dlhdr,struct rmnet_map_control_command_header*qcmd);void 
 DATARMNETf61cd23b90(struct rmnet_map_dl_ind_trl*dltrl,struct 
 rmnet_map_control_command_header*qcmd);void DATARMNET7ed4cef8a3(struct 

+ 22 - 15
shs/rmnet_shs_config.c

@@ -21,6 +21,7 @@
 #include "rmnet_shs.h"
 #include "rmnet_shs_wq.h"
 #include "rmnet_shs_ll.h"
+#include "rmnet_shs_freq.h"
 #include "rmnet_shs_wq_genl.h"
 #include "rmnet_shs_common.h"
 #include "rmnet_shs_modules.h"
@@ -64,13 +65,15 @@ DATARMNET9f4bc49c6f;pr_info(
 rmnet_module_hook_unregister_no_sync(&DATARMNETf6217b20b8,(0xd26+209-0xdf6));
 qmi_rmnet_ps_ind_deregister(DATARMNETecc0627c70.port,&DATARMNETecc0627c70.
 rmnet_idl_ind_cb);rmnet_map_dl_ind_deregister(DATARMNETecc0627c70.port,&
-DATARMNETecc0627c70.DATARMNET08dbb5ab35);DATARMNETeacad8334e();
-DATARMNET90fe3a4b56();DATARMNET9f4bc49c6f=DATARMNET02cdd9b125();
-DATARMNET7fcf8c178f();DATARMNETf7dcab9a9e();DATARMNET9297340f58(
-DATARMNET9f4bc49c6f);trace_rmnet_shs_high(DATARMNET1790979ccf,
-DATARMNET443dab7031,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
-(0x16e8+787-0xc0c),NULL,NULL);}break;case NETDEV_REGISTER:DATARMNET2cb9ae589c++;
-if(DATARMNET2cb9ae589c&&!DATARMNETecc0627c70.DATARMNETfc89d842ae){pr_info(
+DATARMNETecc0627c70.DATARMNET08dbb5ab35);rmnet_map_pb_ind_deregister(
+DATARMNETecc0627c70.port,&DATARMNETecc0627c70.DATARMNET6b783c98fe);
+DATARMNETeacad8334e();DATARMNET90fe3a4b56();DATARMNET9f4bc49c6f=
+DATARMNET02cdd9b125();DATARMNET7fcf8c178f();DATARMNETf7dcab9a9e();
+DATARMNET9297340f58(DATARMNET9f4bc49c6f);trace_rmnet_shs_high(
+DATARMNET1790979ccf,DATARMNET443dab7031,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}break;case NETDEV_REGISTER:
+DATARMNET2cb9ae589c++;if(DATARMNET2cb9ae589c&&!DATARMNETecc0627c70.
+DATARMNETfc89d842ae){pr_info(
 "\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x69\x6e\x67\x20\x25\x73"
 ,dev->name);priv=netdev_priv(dev);port=rmnet_get_port(priv->real_dev);if(!port){
 pr_err(
@@ -81,15 +84,19 @@ DATARMNETe1f95274f1();DATARMNETecc0627c70.DATARMNETf5ab31b9b0=(0xd26+209-0xdf6);
 DATARMNETecc0627c70.DATARMNETfc89d842ae){port=DATARMNETecc0627c70.port;if(!port)
 {pr_err(
 "\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x3a\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x72\x6d\x6e\x65\x74\x5f\x63\x66\x67\x5f\x70\x6f\x72\x74"
-);break;}DATARMNETecc0627c70.DATARMNET08dbb5ab35.priority=RMNET_SHS;if(port->
-data_format&RMNET_INGRESS_FORMAT_DL_MARKER_V2){DATARMNETecc0627c70.
-DATARMNET08dbb5ab35.dl_hdr_handler_v2=&DATARMNET78bb6be330;DATARMNETecc0627c70.
-DATARMNET08dbb5ab35.dl_trl_handler_v2=&DATARMNETf61cd23b90;}DATARMNETecc0627c70.
-rmnet_idl_ind_cb.ps_on_handler=&DATARMNET7f1d9480cb;DATARMNETecc0627c70.
-rmnet_idl_ind_cb.ps_off_handler=&DATARMNETa4bd2ef52c;ret=
-rmnet_map_dl_ind_register(port,&DATARMNETecc0627c70.DATARMNET08dbb5ab35);if(ret)
-pr_err(
+);break;}DATARMNETecc0627c70.DATARMNET08dbb5ab35.priority=RMNET_SHS;
+DATARMNETecc0627c70.DATARMNET6b783c98fe.priority=RMNET_SHS;if(port->data_format&
+RMNET_INGRESS_FORMAT_DL_MARKER_V2){DATARMNETecc0627c70.DATARMNET08dbb5ab35.
+dl_hdr_handler_v2=&DATARMNET78bb6be330;DATARMNETecc0627c70.DATARMNET08dbb5ab35.
+dl_trl_handler_v2=&DATARMNETf61cd23b90;DATARMNETecc0627c70.DATARMNET6b783c98fe.
+pb_ind_handler=&DATARMNET4684d6c911;}DATARMNETecc0627c70.rmnet_idl_ind_cb.
+ps_on_handler=&DATARMNET7f1d9480cb;DATARMNETecc0627c70.rmnet_idl_ind_cb.
+ps_off_handler=&DATARMNETa4bd2ef52c;ret=rmnet_map_dl_ind_register(port,&
+DATARMNETecc0627c70.DATARMNET08dbb5ab35);if(ret)pr_err(
 "\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x20\x64\x6c\x5f\x69\x6e\x64\x20\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6f\x6e\x20\x66\x61\x69\x6c" "\n"
+,__func__);ret=rmnet_map_pb_ind_register(port,&DATARMNETecc0627c70.
+DATARMNET6b783c98fe);if(ret)pr_err(
+"\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x20\x70\x62\x5f\x69\x6e\x64\x20\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6f\x6e\x20\x66\x61\x69\x6c" "\n"
 ,__func__);ret=qmi_rmnet_ps_ind_register(port,&DATARMNETecc0627c70.
 rmnet_idl_ind_cb);if(ret)pr_err(
 "\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x20\x70\x73\x5f\x69\x6e\x64\x20\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6f\x6e\x20\x66\x61\x69\x6c" "\n"

+ 71 - 28
shs/rmnet_shs_freq.c

@@ -1,4 +1,5 @@
 /* Copyright (c) 2020-2021 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 and
@@ -14,6 +15,7 @@
 #include <linux/module.h>
 #include "rmnet_shs.h"
 #include "rmnet_shs_freq.h"
+#include "rmnet_shs_modules.h"
 #include <linux/cpufreq.h>
 #include <linux/cpu.h>
 #include <linux/pm_qos.h>
@@ -29,16 +31,31 @@ MODULE_PARM_DESC(DATARMNET666c9ff35e,
 );struct workqueue_struct*DATARMNETde8f350999;struct DATARMNET4e6b0cd2b8{struct 
 cpu_freq __percpu*DATARMNET9dd9bc4abb;};static struct DATARMNET4e6b0cd2b8 
 DATARMNETc4b1be7898;static struct work_struct DATARMNETbfcbb4b8ac;static 
-DEFINE_PER_CPU(struct freq_qos_request,DATARMNET17d6a9530a);static void 
-DATARMNETb90d2272b4(struct work_struct*DATARMNET33110a3ff5){struct cpu_freq*
-DATARMNETe24d518157;unsigned int i;int ret;struct freq_qos_request*
-DATARMNETddcafd8b91;cpus_read_lock();for_each_online_cpu(i){DATARMNETe24d518157=
-per_cpu_ptr(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb,i);DATARMNETddcafd8b91=&
-per_cpu(DATARMNET17d6a9530a,i);ret=freq_qos_update_request(DATARMNETddcafd8b91,
-DATARMNETe24d518157->DATARMNET103c8d34fe);}cpus_read_unlock();}void 
+DEFINE_PER_CPU(struct freq_qos_request,DATARMNET17d6a9530a);struct 
+DATARMNET257fd3bf84{struct cpu_freq __percpu*DATARMNETde47bee4ac;};static struct
+ DATARMNET257fd3bf84 DATARMNET7cf8d49bd5;static struct work_struct 
+DATARMNET3dc8e3c69f;static DEFINE_PER_CPU(struct freq_qos_request,
+DATARMNET68a4af61b9);static void DATARMNETb90d2272b4(struct work_struct*
+DATARMNET33110a3ff5){struct cpu_freq*DATARMNETe24d518157;unsigned int i;int ret;
+struct freq_qos_request*DATARMNETddcafd8b91;cpus_read_lock();for_each_online_cpu
+(i){DATARMNETe24d518157=per_cpu_ptr(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb,i);
+DATARMNETddcafd8b91=&per_cpu(DATARMNET17d6a9530a,i);ret=freq_qos_update_request(
+DATARMNETddcafd8b91,DATARMNETe24d518157->DATARMNET103c8d34fe);}cpus_read_unlock(
+);}static void DATARMNET5a406b068f(struct work_struct*DATARMNET33110a3ff5){
+struct cpu_freq*DATARMNETe24d518157;unsigned int i;int ret;struct 
+freq_qos_request*DATARMNETddcafd8b91;cpus_read_lock();for_each_online_cpu(i){
+DATARMNETe24d518157=per_cpu_ptr(DATARMNET7cf8d49bd5.DATARMNETde47bee4ac,i);
+DATARMNETddcafd8b91=&per_cpu(DATARMNET68a4af61b9,i);ret=freq_qos_update_request(
+DATARMNETddcafd8b91,DATARMNETe24d518157->DATARMNET103c8d34fe);
+DATARMNETda96251102(DATARMNETb77d87790d,DATARMNET5994bb1411,DATARMNETe24d518157
+->DATARMNET103c8d34fe,DATARMNETe24d518157->DATARMNET1159aa2cb6,
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}cpus_read_unlock();}void 
 DATARMNET82d7f4ffa2(void){struct cpu_freq*DATARMNETe24d518157;int i;
 for_each_possible_cpu(i){DATARMNETe24d518157=per_cpu_ptr(DATARMNETc4b1be7898.
 DATARMNET9dd9bc4abb,i);DATARMNETe24d518157->DATARMNET103c8d34fe=MIN_FREQ;
+DATARMNETe24d518157->DATARMNET1159aa2cb6=DATARMNET81fe789d21;}
+for_each_possible_cpu(i){DATARMNETe24d518157=per_cpu_ptr(DATARMNET7cf8d49bd5.
+DATARMNETde47bee4ac,i);DATARMNETe24d518157->DATARMNET103c8d34fe=MIN_FREQ;
 DATARMNETe24d518157->DATARMNET1159aa2cb6=DATARMNET81fe789d21;}}void 
 DATARMNET5e4aeef593(int cpu){struct cpu_freq*DATARMNETe24d518157;int i=cpu;if((
 (0xd26+209-0xdf6)<<i)&DATARMNET9273f84bf1)return;DATARMNETe24d518157=per_cpu_ptr
@@ -52,35 +69,61 @@ DATARMNETe24d518157->DATARMNET103c8d34fe=DATARMNET59b491fbc9;DATARMNETe24d518157
 ->DATARMNET1159aa2cb6=DATARMNET81fe789d21;trace_rmnet_freq_boost(i,
 DATARMNET59b491fbc9);}if(work_pending(&DATARMNETbfcbb4b8ac))return;if(
 DATARMNETde8f350999){queue_work_on(DATARMNET03d51cb126,DATARMNETde8f350999,&
-DATARMNETbfcbb4b8ac);}}void DATARMNET371703c28d(void){struct cpu_freq*
+DATARMNETbfcbb4b8ac);}}void DATARMNET202a68d7d0(void){struct cpu_freq*
+DATARMNETe24d518157;int i;for_each_possible_cpu(i){if(((0xd26+209-0xdf6)<<i)&
+DATARMNETbc3c416b77)continue;DATARMNETe24d518157=per_cpu_ptr(DATARMNET7cf8d49bd5
+.DATARMNETde47bee4ac,i);DATARMNETe24d518157->DATARMNET103c8d34fe=
+DATARMNET59b491fbc9;DATARMNETe24d518157->DATARMNET1159aa2cb6=DATARMNET81fe789d21
+;trace_rmnet_freq_boost(i,DATARMNET59b491fbc9);}if(work_pending(&
+DATARMNET3dc8e3c69f))return;if(DATARMNETde8f350999){queue_work_on(
+DATARMNET03d51cb126,DATARMNETde8f350999,&DATARMNET3dc8e3c69f);}}void 
+DATARMNET371703c28d(void){struct cpu_freq*DATARMNETe24d518157;int i;
+for_each_possible_cpu(i){DATARMNETe24d518157=per_cpu_ptr(DATARMNETc4b1be7898.
+DATARMNET9dd9bc4abb,i);DATARMNETe24d518157->DATARMNET103c8d34fe=MIN_FREQ;
+DATARMNETe24d518157->DATARMNET1159aa2cb6=DATARMNET81fe789d21;
+trace_rmnet_freq_reset(i,MIN_FREQ);}if(work_pending(&DATARMNETbfcbb4b8ac))return
+;if(DATARMNETde8f350999)queue_work_on(DATARMNET03d51cb126,DATARMNETde8f350999,&
+DATARMNETbfcbb4b8ac);}void DATARMNETf20806b279(void){struct cpu_freq*
 DATARMNETe24d518157;int i;for_each_possible_cpu(i){DATARMNETe24d518157=
-per_cpu_ptr(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb,i);DATARMNETe24d518157->
+per_cpu_ptr(DATARMNET7cf8d49bd5.DATARMNETde47bee4ac,i);DATARMNETe24d518157->
 DATARMNET103c8d34fe=MIN_FREQ;DATARMNETe24d518157->DATARMNET1159aa2cb6=
 DATARMNET81fe789d21;trace_rmnet_freq_reset(i,MIN_FREQ);}if(work_pending(&
-DATARMNETbfcbb4b8ac))return;if(DATARMNETde8f350999)queue_work_on(
-DATARMNET03d51cb126,DATARMNETde8f350999,&DATARMNETbfcbb4b8ac);}static void 
+DATARMNET3dc8e3c69f))return;if(DATARMNETde8f350999)queue_work_on(
+DATARMNET03d51cb126,DATARMNETde8f350999,&DATARMNET3dc8e3c69f);}static void 
 DATARMNET009d37d173(void){struct freq_qos_request*DATARMNETddcafd8b91;int i;
 for_each_possible_cpu(i){DATARMNETddcafd8b91=&per_cpu(DATARMNET17d6a9530a,i);if(
 DATARMNETddcafd8b91&&freq_qos_request_active(DATARMNETddcafd8b91)){
-freq_qos_remove_request(DATARMNETddcafd8b91);}}}int DATARMNETe6e8431304(void){
-struct cpu_freq*DATARMNETe24d518157;int i;int ret=(0xd2d+202-0xdf7);struct 
-freq_qos_request*DATARMNETddcafd8b91;struct cpufreq_policy*policy;
-DATARMNETc4b1be7898.DATARMNET9dd9bc4abb=alloc_percpu(struct cpu_freq);if(!
-DATARMNETc4b1be7898.DATARMNET9dd9bc4abb)return-ENOMEM;if(!DATARMNETde8f350999)
-DATARMNETde8f350999=alloc_workqueue(
-"\x73\x68\x73\x5f\x62\x6f\x6f\x73\x74\x5f\x77\x71",WQ_HIGHPRI,(0xd2d+202-0xdf7))
-;if(!DATARMNETde8f350999){ret=-ENOMEM;goto err;}for_each_possible_cpu(i){
-DATARMNETe24d518157=per_cpu_ptr(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb,i);
-DATARMNETddcafd8b91=&per_cpu(DATARMNET17d6a9530a,i);policy=cpufreq_cpu_get(i);if
-(!policy){pr_err(
+freq_qos_remove_request(DATARMNETddcafd8b91);}DATARMNETddcafd8b91=&per_cpu(
+DATARMNET68a4af61b9,i);if(DATARMNETddcafd8b91&&freq_qos_request_active(
+DATARMNETddcafd8b91)){freq_qos_remove_request(DATARMNETddcafd8b91);}}}int 
+DATARMNETe6e8431304(void){struct cpu_freq*DATARMNETe24d518157;int i;int ret=
+(0xd2d+202-0xdf7);struct freq_qos_request*DATARMNETddcafd8b91;struct 
+cpufreq_policy*policy;DATARMNETc4b1be7898.DATARMNET9dd9bc4abb=alloc_percpu(
+struct cpu_freq);if(!DATARMNETc4b1be7898.DATARMNET9dd9bc4abb)return-ENOMEM;
+DATARMNET7cf8d49bd5.DATARMNETde47bee4ac=alloc_percpu(struct cpu_freq);if(!
+DATARMNET7cf8d49bd5.DATARMNETde47bee4ac){free_percpu(DATARMNETc4b1be7898.
+DATARMNET9dd9bc4abb);return-ENOMEM;}if(!DATARMNETde8f350999)DATARMNETde8f350999=
+alloc_workqueue("\x73\x68\x73\x5f\x62\x6f\x6f\x73\x74\x5f\x77\x71",WQ_HIGHPRI,
+(0xd2d+202-0xdf7));if(!DATARMNETde8f350999){ret=-ENOMEM;goto err;}
+for_each_possible_cpu(i){DATARMNETe24d518157=per_cpu_ptr(DATARMNETc4b1be7898.
+DATARMNET9dd9bc4abb,i);DATARMNETddcafd8b91=&per_cpu(DATARMNET17d6a9530a,i);
+policy=cpufreq_cpu_get(i);if(!policy){pr_err(
 "\x25\x73\x3a\x20\x63\x70\x75\x66\x72\x65\x71\x20\x70\x6f\x6c\x69\x63\x79\x20\x6e\x6f\x74\x20\x66\x6f\x75\x6e\x64\x20\x66\x6f\x72\x20\x63\x70\x75\x25\x64" "\n"
 ,__func__,i);return-ESRCH;}ret=freq_qos_add_request(&policy->constraints,
 DATARMNETddcafd8b91,FREQ_QOS_MIN,MIN_FREQ);if(ret<(0xd2d+202-0xdf7)){pr_err(
 "\x25\x73\x3a\x20\x46\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x61\x64\x64\x20\x66\x72\x65\x71\x20\x63\x6f\x6e\x73\x74\x72\x61\x69\x6e\x74\x20\x28\x25\x64\x29" "\n"
+,__func__,ret);return ret;}DATARMNETddcafd8b91=&per_cpu(DATARMNET68a4af61b9,i);
+policy=cpufreq_cpu_get(i);if(!policy){pr_err(
+"\x25\x73\x3a\x20\x63\x70\x75\x66\x72\x65\x71\x20\x70\x6f\x6c\x69\x63\x79\x20\x6e\x6f\x74\x20\x66\x6f\x75\x6e\x64\x20\x66\x6f\x72\x20\x70\x62\x20\x63\x70\x75\x25\x64" "\n"
+,__func__,i);return-ESRCH;}ret=freq_qos_add_request(&policy->constraints,
+DATARMNETddcafd8b91,FREQ_QOS_MIN,MIN_FREQ);if(ret<(0xd2d+202-0xdf7)){pr_err(
+"\x25\x73\x3a\x20\x46\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x61\x64\x64\x20\x70\x62\x20\x66\x72\x65\x71\x20\x63\x6f\x6e\x73\x74\x72\x61\x69\x6e\x74\x20\x28\x25\x64\x29" "\n"
 ,__func__,ret);return ret;}}INIT_WORK(&DATARMNETbfcbb4b8ac,DATARMNETb90d2272b4);
-DATARMNET82d7f4ffa2();return(0xd2d+202-0xdf7);err:DATARMNET82d7f4ffa2();
-free_percpu(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb);if(DATARMNETde8f350999){
-destroy_workqueue(DATARMNETde8f350999);DATARMNETde8f350999=NULL;}return ret;}int
- DATARMNETdf74db7e38(void){DATARMNET009d37d173();if(DATARMNETde8f350999){
-destroy_workqueue(DATARMNETde8f350999);DATARMNETde8f350999=NULL;}free_percpu(
-DATARMNETc4b1be7898.DATARMNET9dd9bc4abb);return(0xd2d+202-0xdf7);}
+INIT_WORK(&DATARMNET3dc8e3c69f,DATARMNET5a406b068f);DATARMNET82d7f4ffa2();return
+(0xd2d+202-0xdf7);err:DATARMNET82d7f4ffa2();free_percpu(DATARMNETc4b1be7898.
+DATARMNET9dd9bc4abb);free_percpu(DATARMNET7cf8d49bd5.DATARMNETde47bee4ac);if(
+DATARMNETde8f350999){destroy_workqueue(DATARMNETde8f350999);DATARMNETde8f350999=
+NULL;}return ret;}int DATARMNETdf74db7e38(void){DATARMNET009d37d173();if(
+DATARMNETde8f350999){destroy_workqueue(DATARMNETde8f350999);DATARMNETde8f350999=
+NULL;}free_percpu(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb);free_percpu(
+DATARMNET7cf8d49bd5.DATARMNETde47bee4ac);return(0xd2d+202-0xdf7);}

+ 2 - 0
shs/rmnet_shs_freq.h

@@ -1,4 +1,5 @@
 /* Copyright (c) 2020-2021 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 and
@@ -15,6 +16,7 @@
 #define DATARMNETef19703014
 int DATARMNETe6e8431304(void);int DATARMNETdf74db7e38(void);void 
 DATARMNETfb7007f025(void);void DATARMNET371703c28d(void);void 
+DATARMNET202a68d7d0(void);void DATARMNETf20806b279(void);void 
 DATARMNET5e4aeef593(int cpu);
 #endif
 

+ 43 - 24
shs/rmnet_shs_main.c

@@ -40,15 +40,15 @@
 #include <linux/cpumask.h>
 #include <linux/icmp.h>
 #include <linux/inet.h>
-static char*verinfo[]={"\x63\x30\x39\x37\x35\x35\x62\x33",
-"\x32\x36\x66\x64\x33\x30\x36\x35","\x65\x36\x66\x64\x34\x31\x33\x37",
-"\x36\x64\x38\x31\x37\x39\x62\x63","\x64\x66\x39\x32\x65\x35\x33\x34",
-"\x30\x38\x61\x39\x34\x38\x64\x61","\x36\x35\x35\x37\x37\x63\x32\x32",
-"\x65\x35\x37\x30\x63\x30\x35\x63","\x30\x63\x61\x37\x61\x62\x38\x30",
-"\x63\x30\x33\x31\x36\x31\x63\x66","\x35\x61\x66\x31\x30\x31\x31\x64",
-"\x36\x38\x36\x36\x36\x32\x33\x32","\x65\x32\x31\x38\x66\x34\x35\x31"};
-module_param_array(verinfo,charp,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
-verinfo,
+static char*verinfo[]={"\x33\x35\x32\x37\x62\x38\x30\x65",
+"\x63\x30\x39\x37\x35\x35\x62\x33","\x32\x36\x66\x64\x33\x30\x36\x35",
+"\x65\x36\x66\x64\x34\x31\x33\x37","\x36\x64\x38\x31\x37\x39\x62\x63",
+"\x64\x66\x39\x32\x65\x35\x33\x34","\x30\x38\x61\x39\x34\x38\x64\x61",
+"\x36\x35\x35\x37\x37\x63\x32\x32","\x65\x35\x37\x30\x63\x30\x35\x63",
+"\x30\x63\x61\x37\x61\x62\x38\x30","\x63\x30\x33\x31\x36\x31\x63\x66",
+"\x35\x61\x66\x31\x30\x31\x31\x64","\x36\x38\x36\x36\x36\x32\x33\x32",
+"\x65\x32\x31\x38\x66\x34\x35\x31"};module_param_array(verinfo,charp,NULL,
+(0xcb7+5769-0x221c));MODULE_PARM_DESC(verinfo,
 "\x56\x65\x72\x73\x69\x6f\x6e\x20\x6f\x66\x20\x74\x68\x65\x20\x64\x72\x69\x76\x65\x72"
 );
 #define DATARMNET2f67183a86 2000000
@@ -111,20 +111,25 @@ DATARMNET673cf85e28,
 );unsigned int DATARMNETcb9ef310a4 __read_mostly=(0xd2d+202-0xdf7);module_param(
 DATARMNETcb9ef310a4,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
 DATARMNETcb9ef310a4,
-"\x20\x45\x73\x70\x20\x70\x61\x63\x6b\x65\x74\x73\x20\x73\x65\x65\x6e");struct 
-DATARMNETa6b20d7e8b DATARMNETecc0627c70;struct DATARMNET37ef896af8 shs_rx_work;
-int DATARMNET762cfa52fe(u8 mask);unsigned DATARMNET016351c9e4=(0xd2d+202-0xdf7);
-ssize_t DATARMNET713da9913c(struct netdev_rx_queue*DATARMNETb4180393e4,u8 cpu,u8
- DATARMNET5780499e9c){struct rps_map*DATARMNETaeb4918e65,*map;cpumask_var_t mask
-;map=rcu_dereference(DATARMNETb4180393e4->rps_map);if(map){map->cpus[
+"\x20\x45\x73\x70\x20\x70\x61\x63\x6b\x65\x74\x73\x20\x73\x65\x65\x6e");unsigned
+ int DATARMNET2be16c76ac __read_mostly=(0xef7+1112-0x131d);module_param(
+DATARMNET2be16c76ac,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNET2be16c76ac,
+"\x44\x75\x72\x61\x74\x69\x6f\x6e\x20\x74\x68\x61\x74\x20\x50\x42\x20\x42\x6f\x6f\x73\x74\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x61\x63\x74\x69\x76\x65\x20\x66\x6f\x72\x20\x62\x65\x66\x6f\x72\x65\x20\x72\x65\x73\x65\x74"
+);struct DATARMNETa6b20d7e8b DATARMNETecc0627c70;struct DATARMNET37ef896af8 
+shs_rx_work;int DATARMNET762cfa52fe(u8 mask);unsigned DATARMNET016351c9e4=
+(0xd2d+202-0xdf7);ssize_t DATARMNET713da9913c(struct netdev_rx_queue*
+DATARMNETb4180393e4,u8 cpu,u8 DATARMNET5780499e9c){struct rps_map*
+DATARMNETaeb4918e65,*map;cpumask_var_t mask;map=rcu_dereference(
+DATARMNETb4180393e4->rps_map);if(map){map->cpus[(0xd2d+202-0xdf7)]=cpu;map->len=
+(0xd26+209-0xdf6);if(((0xd26+209-0xdf6)<<cpu)&DATARMNETbc3c416b77)
+DATARMNETb7ddf3c5dd[DATARMNET975060d6b5]++;else DATARMNETb7ddf3c5dd[
+DATARMNET0e398136dc]++;return(0xd2d+202-0xdf7);}if(!alloc_cpumask_var(&mask,
+GFP_ATOMIC))return-ENOMEM;cpumask_set_cpu(cpu,(struct cpumask*)&mask);map=
+kzalloc(max_t(unsigned int,RPS_MAP_SIZE(cpumask_weight(mask)),L1_CACHE_BYTES),
+GFP_ATOMIC);if(!map){free_cpumask_var(mask);return-ENOMEM;}map->cpus[
 (0xd2d+202-0xdf7)]=cpu;map->len=(0xd26+209-0xdf6);if(((0xd26+209-0xdf6)<<cpu)&
 DATARMNETbc3c416b77)DATARMNETb7ddf3c5dd[DATARMNET975060d6b5]++;else 
-DATARMNETb7ddf3c5dd[DATARMNET0e398136dc]++;return(0xd2d+202-0xdf7);}if(!
-alloc_cpumask_var(&mask,GFP_ATOMIC))return-ENOMEM;cpumask_set_cpu(cpu,(struct 
-cpumask*)&mask);map=kzalloc(max_t(unsigned int,RPS_MAP_SIZE(cpumask_weight(mask)
-),L1_CACHE_BYTES),GFP_ATOMIC);if(!map){free_cpumask_var(mask);return-ENOMEM;}map
-->cpus[(0xd2d+202-0xdf7)]=cpu;map->len=(0xd26+209-0xdf6);if(((0xd26+209-0xdf6)<<
-cpu)&DATARMNETbc3c416b77)DATARMNETb7ddf3c5dd[DATARMNET975060d6b5]++;else 
 DATARMNETb7ddf3c5dd[DATARMNET0e398136dc]++;rcu_read_lock();DATARMNETaeb4918e65=
 rcu_dereference(DATARMNETb4180393e4->rps_map);rcu_assign_pointer(
 DATARMNETb4180393e4->rps_map,map);if(DATARMNETaeb4918e65)kfree(
@@ -680,7 +685,11 @@ hrtimer_restart DATARMNET4ce9744605(struct hrtimer*DATARMNET6e4292679f){const
 enum hrtimer_restart ret=HRTIMER_NORESTART;struct DATARMNETa6f2d499b2*
 DATARMNET4b39dc1574=container_of(DATARMNET6e4292679f,struct DATARMNETa6f2d499b2,
 DATARMNET758a55f103);DATARMNET371703c28d();schedule_work(&DATARMNET4b39dc1574->
-DATARMNET33110a3ff5);return ret;}void DATARMNETe1f95274f1(void){int i;for(i=
+DATARMNET33110a3ff5);return ret;}enum hrtimer_restart DATARMNETbfbe1f5cd0(struct
+ hrtimer*DATARMNET6e4292679f){const enum hrtimer_restart ret=HRTIMER_NORESTART;
+DATARMNETda96251102(DATARMNETb77d87790d,DATARMNET623224aa0a,(0xd2d+202-0xdf7),
+(0xd2d+202-0xdf7),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);
+DATARMNETf20806b279();return ret;}void DATARMNETe1f95274f1(void){int i;for(i=
 (0xd2d+202-0xdf7);i<DATARMNETc6782fed88;i++){DATARMNETecc0627c70.
 DATARMNET132b9c7dc4[i].DATARMNET42c3ecbd5e=i;INIT_WORK(&DATARMNETecc0627c70.
 DATARMNET132b9c7dc4[i].DATARMNET33110a3ff5,DATARMNET056c939591);hrtimer_init(&
@@ -692,7 +701,9 @@ DATARMNET6fd692fc7a.function=DATARMNET0a73c53ae6;hrtimer_init(&
 DATARMNETecc0627c70.DATARMNET645fb3b468,CLOCK_MONOTONIC,HRTIMER_MODE_REL);
 DATARMNETecc0627c70.DATARMNET645fb3b468.function=DATARMNETc2b0dbbb32;
 hrtimer_init(&DATARMNETecc0627c70.hrtimer_wake,CLOCK_MONOTONIC,HRTIMER_MODE_REL)
-;DATARMNETecc0627c70.hrtimer_wake.function=DATARMNET2ba63fbd90;INIT_WORK(&
+;DATARMNETecc0627c70.hrtimer_wake.function=DATARMNET2ba63fbd90;hrtimer_init(&
+DATARMNETecc0627c70.DATARMNET533dba0f29,CLOCK_MONOTONIC,HRTIMER_MODE_REL);
+DATARMNETecc0627c70.DATARMNET533dba0f29.function=DATARMNETbfbe1f5cd0;INIT_WORK(&
 shs_rx_work.DATARMNET33110a3ff5,DATARMNETa7afc8cdaa);}unsigned int 
 DATARMNET02cdd9b125(void){unsigned int DATARMNET9f4bc49c6f=DATARMNET12565c8f98;
 int i;DATARMNET12565c8f98=(0xd2d+202-0xdf7);for(i=(0xd2d+202-0xdf7);i<
@@ -719,7 +730,15 @@ DATARMNET25fc1e341e=skb_queue_len(DATARMNETaf21dd6000);if(DATARMNET25fc1e341e>=
 DATARMNET1ad396a890){DATARMNET82e88dbb56(DATARMNET49115bea94,cpu);}(*
 DATARMNETc628e18b55)++;}}return(0xd2d+202-0xdf7);}static struct notifier_block 
 DATARMNET105c85d84c={.notifier_call=DATARMNET2aa4ef6ff9,};void 
-DATARMNET78bb6be330(struct rmnet_map_dl_ind_hdr*dlhdr,struct 
+DATARMNET4684d6c911(struct rmnet_map_pb_ind_hdr*DATARMNET4e61dda775){struct 
+hrtimer*DATARMNET9c579dacb5;DATARMNETda96251102(DATARMNETb77d87790d,
+DATARMNETae009376be,DATARMNET4e61dda775->le.seq_num,DATARMNET4e61dda775->le.
+start_end_seq_num,DATARMNET4e61dda775->le.row_bytes_pending,DATARMNET4e61dda775
+->le.fc_bytes_pending,NULL,NULL);DATARMNET202a68d7d0();DATARMNET9c579dacb5=&
+DATARMNETecc0627c70.DATARMNET533dba0f29;if(hrtimer_active(DATARMNET9c579dacb5))
+hrtimer_cancel(DATARMNET9c579dacb5);hrtimer_start(DATARMNET9c579dacb5,
+ns_to_ktime(DATARMNET2be16c76ac*DATARMNET68fc0be252),HRTIMER_MODE_REL);return;}
+void DATARMNET78bb6be330(struct rmnet_map_dl_ind_hdr*dlhdr,struct 
 rmnet_map_control_command_header*qcmd){DATARMNET7ed4cef8a3(dlhdr);}void 
 DATARMNET7ed4cef8a3(struct rmnet_map_dl_ind_hdr*dlhdr){DATARMNETda96251102(
 DATARMNET23f8730007,DATARMNET4ebbc01257,dlhdr->le.seq,dlhdr->le.pkts,