From 78977beb7e948da9ace27cb810d415f76d893cc9 Mon Sep 17 00:00:00 2001 From: Conner Huff Date: Thu, 15 Jun 2023 13:36:42 -0700 Subject: [PATCH] shs: I11461715003856563a10e2c0c600df773527b80e Update to I11461715003856563a10e2c0c600df773527b80e. Change-Id: I11461715003856563a10e2c0c600df773527b80e Signed-off-by: Conner Huff --- shs/rmnet_shs.h | 113 +++++++++++++++++++++-------------------- shs/rmnet_shs_config.c | 37 ++++++++------ shs/rmnet_shs_freq.c | 99 ++++++++++++++++++++++++++---------- shs/rmnet_shs_freq.h | 2 + shs/rmnet_shs_main.c | 67 +++++++++++++++--------- 5 files changed, 196 insertions(+), 122 deletions(-) diff --git a/shs/rmnet_shs.h b/shs/rmnet_shs.h index 7daea81bf0..beeb068162 100644 --- a/shs/rmnet_shs.h +++ b/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 diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index 614f97ba8c..331828a639 100644 --- a/shs/rmnet_shs_config.c +++ b/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" diff --git a/shs/rmnet_shs_freq.c b/shs/rmnet_shs_freq.c index 62bc74f4b3..5dcc7742a7 100644 --- a/shs/rmnet_shs_freq.c +++ b/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 #include "rmnet_shs.h" #include "rmnet_shs_freq.h" +#include "rmnet_shs_modules.h" #include #include #include @@ -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)<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)<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);} diff --git a/shs/rmnet_shs_freq.h b/shs/rmnet_shs_freq.h index 694c43d413..060fadc403 100644 --- a/shs/rmnet_shs_freq.h +++ b/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 diff --git a/shs/rmnet_shs_main.c b/shs/rmnet_shs_main.c index adf5150775..cd228d3608 100644 --- a/shs/rmnet_shs_main.c +++ b/shs/rmnet_shs_main.c @@ -40,15 +40,15 @@ #include #include #include -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)<cpus[ (0xd2d+202-0xdf7)]=cpu;map->len=(0xd26+209-0xdf6);if(((0xd26+209-0xdf6)<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= 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,