2017-12-14 11:19:43 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-07-03 12:15:57 +02:00
|
|
|
|
2019-08-21 13:58:20 -05:00
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
2019-09-16 13:57:38 -05:00
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
2020-07-16 23:09:46 +08:00
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-21 13:58:20 -05:00
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
|
|
|
|
|
2020-07-16 23:09:39 +08:00
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-07-16 23:09:39 +08:00
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-07-16 23:09:39 +08:00
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-07-16 23:09:39 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-07-16 23:09:39 +08:00
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
|
|
|
|
|
2019-08-21 13:58:20 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-02-14 19:47:36 -06:00
|
|
|
|
|
|
|
|
|
2019-08-21 13:58:20 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-07-03 12:15:57 +02:00
|
|
|
|
2019-08-21 13:58:20 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-08-23 13:38:36 +08:00
|
|
|
|
2019-08-21 13:58:20 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-08-23 13:38:40 +08:00
|
|
|
|
2019-08-21 13:58:20 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-09-21 03:32:06 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-21 13:58:20 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-09-21 03:32:06 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-21 13:58:20 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-07-16 23:09:40 +08:00
|
|
|
|
|
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
2020-02-14 19:47:36 -06:00
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
2020-07-16 23:09:40 +08:00
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-07-16 23:09:40 +08:00
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-07-16 23:09:40 +08:00
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-07-16 23:09:40 +08:00
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-07-16 23:09:40 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-09-20 01:57:17 +08:00
|
|
|
|
|
|
|
|
|
2020-07-16 23:09:40 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-05-15 16:13:01 +08:00
|
|
|
|
2020-07-16 23:09:40 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
2023-05-15 16:13:01 +08:00
|
|
|
|
2020-09-17 17:31:46 +05:30
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-07-16 23:09:40 +08:00
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
|
|
|
|
|
2022-09-20 01:57:19 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
2022-09-20 01:57:19 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
|
|
|
|
|
2020-07-16 23:09:46 +08:00
|
|
|
|
2020-07-16 23:09:40 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-01-26 09:14:51 +08:00
|
|
|
|
|
|
|
|
|
2020-07-16 23:09:40 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-03-14 09:54:03 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-09-20 01:57:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-03-26 09:20:27 +00:00
|
|
|
|
2022-09-20 01:57:16 +08:00
|
|
|
|
|
|
|
|
|
2024-03-26 09:20:27 +00:00
|
|
|
|
2022-09-20 01:57:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-03-26 09:20:27 +00:00
|
|
|
|
|
|
|
|
|
2022-09-20 01:57:16 +08:00
|
|
|
|
2024-03-26 09:20:27 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-09-20 01:57:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-03-26 09:20:27 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-09-20 01:57:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-09-20 01:57:17 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-09-20 01:57:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-07-22 04:37:11 +08:00
|
|
|
|
2020-07-16 23:09:40 +08:00
|
|
|
|
2020-09-01 23:05:56 +08:00
|
|
|
|
2020-07-16 23:09:40 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-08-18 10:49:52 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-07-16 23:09:40 +08:00
|
|
|
|
|
|
|
|
|
2020-09-01 23:05:56 +08:00
|
|
|
|
|
|
|
|
|
2022-08-23 13:01:58 +08:00
|
|
|
|
2020-09-01 23:05:56 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-09-03 17:15:02 +05:30
|
|
|
|
|
|
|
|
|
2020-09-01 23:05:56 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-08-18 10:49:52 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-09-01 23:05:56 +08:00
|
|
|
|
|
|
|
|
|
2020-07-16 23:09:40 +08:00
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
2021-08-18 10:49:52 +08:00
|
|
|
|
2020-07-16 23:09:40 +08:00
|
|
|
|
|
|
|
|
|
2020-07-16 23:09:41 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-07-16 23:09:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-03-14 09:53:59 +08:00
|
|
|
|
2020-07-16 23:09:42 +08:00
|
|
|
|
2023-03-14 09:53:59 +08:00
|
|
|
|
2017-12-14 11:19:43 +05:30
|
|
|
|
|
|
|
|
|
2020-09-01 23:05:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-01 10:57:38 -05:00
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
2020-02-14 19:47:36 -06:00
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
2021-12-24 10:10:34 +08:00
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-09-03 17:15:02 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
2019-05-22 14:47:29 -05:00
|
|
|
|
|
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-12-24 10:10:34 +08:00
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
2020-02-14 19:47:36 -06:00
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-12-24 10:10:34 +08:00
|
|
|
|
2019-08-05 19:55:07 -05:00
|
|
|
|
2021-12-24 10:10:34 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-01 10:57:38 -05:00
|
|
|
|
|
|
|
|
|
2021-12-24 10:10:34 +08:00
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-12-24 10:10:34 +08:00
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-12-24 10:10:34 +08:00
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
|
|
|
|
|
2021-12-24 10:10:34 +08:00
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
|
|
|
|
|
2021-12-24 10:10:34 +08:00
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
|
|
|
|
|
2021-12-24 10:10:34 +08:00
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-02-14 19:47:36 -06:00
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-10-22 18:29:48 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-09-17 17:31:46 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-02-14 19:47:36 -06:00
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-10-22 18:29:48 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-09-17 17:31:46 +05:30
|
|
|
|
|
|
|
|
|
2018-04-26 18:38:58 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-12-11 19:45:02 -06:00
|
|
|
|
2023-05-15 15:10:38 +08:00
|
|
|
|
2019-05-01 10:57:38 -05:00
|
|
|
|
2019-12-11 19:45:02 -06:00
|
|
|
|
|
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
2020-02-14 19:47:36 -06:00
|
|
|
|
2019-12-11 19:45:02 -06:00
|
|
|
|
2019-08-05 19:55:06 -05:00
|
|
|
|
2023-05-15 15:10:38 +08:00
|
|
|
|
2019-12-11 19:45:02 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
2019-12-11 19:45:02 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-03-27 05:52:15 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
2019-05-01 10:57:38 -05:00
|
|
|
|
|
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
2019-09-16 14:23:46 -05:00
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
2019-09-16 14:23:46 -05:00
|
|
|
|
|
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
2022-11-01 10:35:21 +08:00
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-12-24 10:10:34 +08:00
|
|
|
|
2019-09-16 14:23:46 -05:00
|
|
|
|
2024-07-03 12:15:56 +02:00
|
|
|
|
|
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
2019-09-16 14:23:46 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
soundwire: intel: reinitialize IP+DSP in .prepare(), but only when resuming
The .prepare() callback is invoked for normal streaming, underflows or
during the system resume transition. In the latter case, the context
for the ALH PDIs is lost, and the DSP is not initialized properly
either, but the bus parameters don't need to be recomputed.
Conversely, when doing a regular .prepare() during an underflow, the
ALH/SHIM registers shall not be changed as the hardware cannot be
reprogrammed after the DMA started (hardware spec requirement).
This patch adds storage of PDI and hw_params in the DAI dma context,
and the difference between the types of .prepare() usages is handled
via a simple boolean, updated when suspending, and tested for in the
.prepare() case.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200817152923.3259-6-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2020-08-17 23:29:16 +08:00
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
2023-05-15 15:10:38 +08:00
|
|
|
|
2019-12-11 19:45:02 -06:00
|
|
|
|
2019-09-16 14:23:46 -05:00
|
|
|
|
|
|
|
|
|
2024-07-03 12:15:56 +02:00
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
2021-12-24 10:10:34 +08:00
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
2026-02-21 20:03:00 -08:00
|
|
|
|
2024-07-03 12:15:56 +02:00
|
|
|
|
|
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
2019-09-16 14:23:46 -05:00
|
|
|
|
|
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
2019-09-16 14:23:46 -05:00
|
|
|
|
2019-05-01 10:57:45 -05:00
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-02-14 19:47:37 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
soundwire: intel: reinitialize IP+DSP in .prepare(), but only when resuming
The .prepare() callback is invoked for normal streaming, underflows or
during the system resume transition. In the latter case, the context
for the ALH PDIs is lost, and the DSP is not initialized properly
either, but the bus parameters don't need to be recomputed.
Conversely, when doing a regular .prepare() during an underflow, the
ALH/SHIM registers shall not be changed as the hardware cannot be
reprogrammed after the DMA started (hardware spec requirement).
This patch adds storage of PDI and hw_params in the DAI dma context,
and the difference between the types of .prepare() usages is handled
via a simple boolean, updated when suspending, and tested for in the
.prepare() case.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200817152923.3259-6-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2020-08-17 23:29:16 +08:00
|
|
|
|
|
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
soundwire: intel: reinitialize IP+DSP in .prepare(), but only when resuming
The .prepare() callback is invoked for normal streaming, underflows or
during the system resume transition. In the latter case, the context
for the ALH PDIs is lost, and the DSP is not initialized properly
either, but the bus parameters don't need to be recomputed.
Conversely, when doing a regular .prepare() during an underflow, the
ALH/SHIM registers shall not be changed as the hardware cannot be
reprogrammed after the DMA started (hardware spec requirement).
This patch adds storage of PDI and hw_params in the DAI dma context,
and the difference between the types of .prepare() usages is handled
via a simple boolean, updated when suspending, and tested for in the
.prepare() case.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200817152923.3259-6-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2020-08-17 23:29:16 +08:00
|
|
|
|
2020-09-04 04:47:39 +08:00
|
|
|
|
2020-02-14 19:47:37 -06:00
|
|
|
|
2022-11-01 10:35:21 +08:00
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
|
|
|
|
|
2020-02-14 19:47:37 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
2023-09-11 23:50:29 +00:00
|
|
|
|
soundwire: intel: don't save hw_params for use in prepare
The existing code copies the hw_params pointer and reuses it later in
.prepare, specifically to re-initialize the ALH DMA channel
information that's lost in suspend-resume cycles.
This is not needed, we can directly access the information from the
substream/rtd - as done for the HDAudio DAIs in
sound/soc/sof/intel/hda-dai.c
In addition, using the saved pointer causes the suspend-resume test
cases to fail on specific platforms, depending on which version of GCC
is used. Péter Ujfalusi and I have spent long hours to root-cause this
problem that was reported by the Intel CI first with 6.2-rc1 and again
v6.3-rc1. In the latter case we were lucky that the problem was 100%
reproducible on local test devices, and found out that adding a
dev_dbg() or adding a call to usleep_range() just before accessing the
saved pointer "fixed" the issue. With errors appearing just by
changing the compiler version or minor changes in the code generated,
clearly we have a memory management Heisenbug.
The root-cause seems to be that the hw_params pointer is not
persistent. The soc-pcm code allocates the hw_params structure on the
stack, and passes it to the BE dailink hw_params and DAIs
hw_params. Saving such a pointer and reusing it later during the
.prepare stage cannot possibly work reliably, it's broken-by-design
since v5.10. It's astonishing that the problem was not seen earlier.
This simple fix will have to be back-ported to -stable, due to changes
to avoid the use of the get/set_dmadata routines this patch will only
apply on kernels older than v6.1.
Fixes: a5a0239c27fe ("soundwire: intel: reinitialize IP+DSP in .prepare(), but only when resuming")
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20230321022642.1426611-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2023-03-21 10:26:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
soundwire: intel: reinitialize IP+DSP in .prepare(), but only when resuming
The .prepare() callback is invoked for normal streaming, underflows or
during the system resume transition. In the latter case, the context
for the ALH PDIs is lost, and the DSP is not initialized properly
either, but the bus parameters don't need to be recomputed.
Conversely, when doing a regular .prepare() during an underflow, the
ALH/SHIM registers shall not be changed as the hardware cannot be
reprogrammed after the DMA started (hardware spec requirement).
This patch adds storage of PDI and hw_params in the DAI dma context,
and the difference between the types of .prepare() usages is handled
via a simple boolean, updated when suspending, and tested for in the
.prepare() case.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200817152923.3259-6-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2020-08-17 23:29:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
soundwire: intel: don't save hw_params for use in prepare
The existing code copies the hw_params pointer and reuses it later in
.prepare, specifically to re-initialize the ALH DMA channel
information that's lost in suspend-resume cycles.
This is not needed, we can directly access the information from the
substream/rtd - as done for the HDAudio DAIs in
sound/soc/sof/intel/hda-dai.c
In addition, using the saved pointer causes the suspend-resume test
cases to fail on specific platforms, depending on which version of GCC
is used. Péter Ujfalusi and I have spent long hours to root-cause this
problem that was reported by the Intel CI first with 6.2-rc1 and again
v6.3-rc1. In the latter case we were lucky that the problem was 100%
reproducible on local test devices, and found out that adding a
dev_dbg() or adding a call to usleep_range() just before accessing the
saved pointer "fixed" the issue. With errors appearing just by
changing the compiler version or minor changes in the code generated,
clearly we have a memory management Heisenbug.
The root-cause seems to be that the hw_params pointer is not
persistent. The soc-pcm code allocates the hw_params structure on the
stack, and passes it to the BE dailink hw_params and DAIs
hw_params. Saving such a pointer and reusing it later during the
.prepare stage cannot possibly work reliably, it's broken-by-design
since v5.10. It's astonishing that the problem was not seen earlier.
This simple fix will have to be back-ported to -stable, due to changes
to avoid the use of the get/set_dmadata routines this patch will only
apply on kernels older than v6.1.
Fixes: a5a0239c27fe ("soundwire: intel: reinitialize IP+DSP in .prepare(), but only when resuming")
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20230321022642.1426611-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2023-03-21 10:26:42 +08:00
|
|
|
|
soundwire: intel: reinitialize IP+DSP in .prepare(), but only when resuming
The .prepare() callback is invoked for normal streaming, underflows or
during the system resume transition. In the latter case, the context
for the ALH PDIs is lost, and the DSP is not initialized properly
either, but the bus parameters don't need to be recomputed.
Conversely, when doing a regular .prepare() during an underflow, the
ALH/SHIM registers shall not be changed as the hardware cannot be
reprogrammed after the DMA started (hardware spec requirement).
This patch adds storage of PDI and hw_params in the DAI dma context,
and the difference between the types of .prepare() usages is handled
via a simple boolean, updated when suspending, and tested for in the
.prepare() case.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200817152923.3259-6-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2020-08-17 23:29:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
soundwire: intel: reinitialize IP+DSP in .prepare(), but only when resuming
The .prepare() callback is invoked for normal streaming, underflows or
during the system resume transition. In the latter case, the context
for the ALH PDIs is lost, and the DSP is not initialized properly
either, but the bus parameters don't need to be recomputed.
Conversely, when doing a regular .prepare() during an underflow, the
ALH/SHIM registers shall not be changed as the hardware cannot be
reprogrammed after the DMA started (hardware spec requirement).
This patch adds storage of PDI and hw_params in the DAI dma context,
and the difference between the types of .prepare() usages is handled
via a simple boolean, updated when suspending, and tested for in the
.prepare() case.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200817152923.3259-6-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2020-08-17 23:29:16 +08:00
|
|
|
|
|
|
|
|
|
2023-05-15 15:10:38 +08:00
|
|
|
|
soundwire: intel: don't save hw_params for use in prepare
The existing code copies the hw_params pointer and reuses it later in
.prepare, specifically to re-initialize the ALH DMA channel
information that's lost in suspend-resume cycles.
This is not needed, we can directly access the information from the
substream/rtd - as done for the HDAudio DAIs in
sound/soc/sof/intel/hda-dai.c
In addition, using the saved pointer causes the suspend-resume test
cases to fail on specific platforms, depending on which version of GCC
is used. Péter Ujfalusi and I have spent long hours to root-cause this
problem that was reported by the Intel CI first with 6.2-rc1 and again
v6.3-rc1. In the latter case we were lucky that the problem was 100%
reproducible on local test devices, and found out that adding a
dev_dbg() or adding a call to usleep_range() just before accessing the
saved pointer "fixed" the issue. With errors appearing just by
changing the compiler version or minor changes in the code generated,
clearly we have a memory management Heisenbug.
The root-cause seems to be that the hw_params pointer is not
persistent. The soc-pcm code allocates the hw_params structure on the
stack, and passes it to the BE dailink hw_params and DAIs
hw_params. Saving such a pointer and reusing it later during the
.prepare stage cannot possibly work reliably, it's broken-by-design
since v5.10. It's astonishing that the problem was not seen earlier.
This simple fix will have to be back-ported to -stable, due to changes
to avoid the use of the get/set_dmadata routines this patch will only
apply on kernels older than v6.1.
Fixes: a5a0239c27fe ("soundwire: intel: reinitialize IP+DSP in .prepare(), but only when resuming")
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20230321022642.1426611-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2023-03-21 10:26:42 +08:00
|
|
|
|
soundwire: intel: reinitialize IP+DSP in .prepare(), but only when resuming
The .prepare() callback is invoked for normal streaming, underflows or
during the system resume transition. In the latter case, the context
for the ALH PDIs is lost, and the DSP is not initialized properly
either, but the bus parameters don't need to be recomputed.
Conversely, when doing a regular .prepare() during an underflow, the
ALH/SHIM registers shall not be changed as the hardware cannot be
reprogrammed after the DMA started (hardware spec requirement).
This patch adds storage of PDI and hw_params in the DAI dma context,
and the difference between the types of .prepare() usages is handled
via a simple boolean, updated when suspending, and tested for in the
.prepare() case.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200817152923.3259-6-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2020-08-17 23:29:16 +08:00
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
soundwire: intel: reinitialize IP+DSP in .prepare(), but only when resuming
The .prepare() callback is invoked for normal streaming, underflows or
during the system resume transition. In the latter case, the context
for the ALH PDIs is lost, and the DSP is not initialized properly
either, but the bus parameters don't need to be recomputed.
Conversely, when doing a regular .prepare() during an underflow, the
ALH/SHIM registers shall not be changed as the hardware cannot be
reprogrammed after the DMA started (hardware spec requirement).
This patch adds storage of PDI and hw_params in the DAI dma context,
and the difference between the types of .prepare() usages is handled
via a simple boolean, updated when suspending, and tested for in the
.prepare() case.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200817152923.3259-6-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2020-08-17 23:29:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-02-14 19:47:37 -06:00
|
|
|
|
|
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-03-27 05:52:15 +00:00
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
2022-11-01 10:35:21 +08:00
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
2020-09-04 04:47:39 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
2020-02-14 19:47:40 -06:00
|
|
|
|
2019-05-01 10:57:45 -05:00
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
2020-02-14 19:47:40 -06:00
|
|
|
|
|
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
2024-03-27 05:52:15 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
soundwire: intel: reinitialize IP+DSP in .prepare(), but only when resuming
The .prepare() callback is invoked for normal streaming, underflows or
during the system resume transition. In the latter case, the context
for the ALH PDIs is lost, and the DSP is not initialized properly
either, but the bus parameters don't need to be recomputed.
Conversely, when doing a regular .prepare() during an underflow, the
ALH/SHIM registers shall not be changed as the hardware cannot be
reprogrammed after the DMA started (hardware spec requirement).
This patch adds storage of PDI and hw_params in the DAI dma context,
and the difference between the types of .prepare() usages is handled
via a simple boolean, updated when suspending, and tested for in the
.prepare() case.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200817152923.3259-6-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2020-08-17 23:29:16 +08:00
|
|
|
|
2020-02-14 19:47:40 -06:00
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-01 10:57:38 -05:00
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
2021-12-24 10:10:34 +08:00
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
2020-07-01 02:43:52 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-11-01 10:35:21 +08:00
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
2020-07-01 02:43:52 +08:00
|
|
|
|
2022-11-01 10:35:21 +08:00
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
2020-09-04 04:47:37 +08:00
|
|
|
|
2020-07-01 02:43:52 +08:00
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
2020-07-01 02:43:52 +08:00
|
|
|
|
|
|
|
|
|
2021-12-24 10:10:30 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
2021-12-24 10:10:30 +08:00
|
|
|
|
|
|
|
|
|
2022-11-01 10:35:21 +08:00
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
|
|
|
|
|
2021-12-24 10:10:30 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
2021-12-24 10:10:30 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
2021-12-24 10:10:30 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-06-21 17:56:40 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-12-24 10:10:30 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-05-08 18:17:55 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-12-24 10:10:30 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
2021-12-24 10:10:30 +08:00
|
|
|
|
2022-11-01 10:35:21 +08:00
|
|
|
|
2021-12-24 10:10:30 +08:00
|
|
|
|
2026-05-08 18:17:55 +08:00
|
|
|
|
2022-11-01 10:35:20 +08:00
|
|
|
|
2021-12-24 10:10:30 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-10-27 15:34:42 +02:00
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
2020-02-14 19:47:37 -06:00
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
2021-12-24 10:10:30 +08:00
|
|
|
|
2021-12-24 10:10:31 +08:00
|
|
|
|
|
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-06-23 13:51:16 +01:00
|
|
|
|
sound updates for 6.0-rc1
As diffstat shows, we've had lots of developments in a wide range
at this time; the majority of changes are about ASoC, including
subsystem-wide cleanups, continued SOF / Intel updates and a
bunch of new drivers (as usual), while there have been some
significant (but almost invisible) improvements in ALSA core
side, too. Below are some highlights:
Core:
- Faster lookups of control elements with Xarray; normal user
won't notice, but on the devices with tons of control elements,
it can be visibly faster
- Support for input validation for controls; this will harden
for badly written drivers in general with a slight overhead
- Deferred async signal handling for working around the potential
deadlocks
- Cleanup / refactoring raw MIDI locking code
ASoC:
- Restructing of the set_fmt() callbacks for making things clearer
in situations like CODEC to CODEC links
- Clean up and modernizing the DAI naming scheme setups
- Merge of more of the Intel AVS driver stack, including some
board integrations
- New version 4 mechanism for communication with SOF DSPs
- Suppoort for dynamically selecting the PLL to use at runtime on
i.MX platforms
- Improvements for CODEC to CODEC support in the generic cards
- Support for AMD Jadeite and various machines, AMD RPL, Intel
MetorLake DSPs, Mediatek MT8186 DSPs and MT6366, nVidia Tegra
MDDRC, OPE and PEQ, NXP TFA9890, Qualcomm SDM845, WCD9335 and
WAS883x, and Texas Instruments TAS2780
HD- and USB-audio:
- Continued improvement for CS35L41 (sub)codec support
- More quirks for various devices (HP, Lenovo, Dell, Clevo)
-----BEGIN PGP SIGNATURE-----
iQJCBAABCAAsFiEEIXTw5fNLNI7mMiVaLtJE4w1nLE8FAmLr5bcOHHRpd2FpQHN1
c2UuZGUACgkQLtJE4w1nLE93IQ/+OleeiGv7C487QN5MrBCkdFnSAiXsXDArcMgo
Gt6XLubH54et1tqi2ms4gRQOqr4HiBelERuqmaCLMZfEgVDc0VhJnf2jjhluYq9+
o9+kcYKul6qTZeNZLPjEX8pBvDe7HzOl7yep++ZnKeH6DAKNQQLDjVuOcQU/BXdY
kL8vYrLI3zfqj/pCePb5xpkBx4XdCrE3TfiCr3tAHVg9MyvSGOJyWs02mEBqQRnc
rlLmkjQVQyln/AGK4RAPMmrrFytktAvBjmIDyFL7kAzhdxe0ouNzTvdxESeojNJv
CVo/p3hl/+0LYjpD2x9v2pQuifOfpjwSCy6f8jsaF366sMwR1D45h051prILsxAF
05D5AOwMCnnJdFQFxw3mIkoDva3/PRX8GFfHsXoz+efc5Ibp8ksNYVgAJ3D2TTtt
7nAYMn0dimVDtw2LHiKantgWAs/rOqD3hDzGxFj2sR662ahsHr8pT8csnJAGoBvW
7kgx7ZzFo/wSyZJqVqV7p4g6J79ScehRwhqoiwZau9Eo+PhuxZUKvm4RwGFh0Vvg
GbiVRPfLV4xQd/pDin6qRX1M7cgPc62qGLkhQHAzrX6H5ipwIbQrpyDGLjwdSEp8
XcQmzCG1zGOvb9A8BY1VBOQXxZRTqN58XujbZ6hsms7Uw8sqagxpYLA/e1bvt1E1
RQoHQRw=
=1n0/
-----END PGP SIGNATURE-----
Merge tag 'sound-6.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound updates from Takashi Iwai:
"As the diffstat shows, we've had lots of developments in a wide range
at this time; the majority of changes are about ASoC, including
subsystem-wide cleanups, continued SOF / Intel updates and a bunch of
new drivers (as usual), while there have been some significant (but
almost invisible) improvements in ALSA core side, too.
Below are some highlights:
Core:
- Faster lookups of control elements with Xarray; normal user won't
notice, but on the devices with tons of control elements, it can be
visibly faster
- Support for input validation for controls; this will harden for
badly written drivers in general with a slight overhead
- Deferred async signal handling for working around the potential
deadlocks
- Cleanup / refactoring raw MIDI locking code
ASoC:
- Restructing of the set_fmt() callbacks for making things clearer in
situations like CODEC to CODEC links
- Clean up and modernizing the DAI naming scheme setups
- Merge of more of the Intel AVS driver stack, including some board
integrations
- New version 4 mechanism for communication with SOF DSPs
- Suppoort for dynamically selecting the PLL to use at runtime on
i.MX platforms
- Improvements for CODEC to CODEC support in the generic cards
- Support for AMD Jadeite and various machines, AMD RPL, Intel
MetorLake DSPs, Mediatek MT8186 DSPs and MT6366, nVidia Tegra
MDDRC, OPE and PEQ, NXP TFA9890, Qualcomm SDM845, WCD9335 and
WAS883x, and Texas Instruments TAS2780
HD- and USB-audio:
- Continued improvement for CS35L41 (sub)codec support
- More quirks for various devices (HP, Lenovo, Dell, Clevo)"
* tag 'sound-6.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (778 commits)
ALSA: hda/realtek: Add quirk for HP Spectre x360 15-eb0xxx
ALSA: line6: Replace sprintf() with sysfs_emit()
ALSA: hda: Replace sprintf() with sysfs_emit()
ALSA: pcm: Replace sprintf() with sysfs_emit()
ALSA: core: Replace scnprintf() with sysfs_emit()
ALSA: control-led: Replace sprintf() with sysfs_emit()
ALSA: aoa: Replace sprintf() with sysfs_emit()
ALSA: ac97: Replace sprintf() with sysfs_emit()
ALSA: hda/realtek: Add quirk for Clevo NV45PZ
ALSA: hda/realtek: Add quirk for Lenovo Yoga9 14IAP7
ALSA: control: Use deferred fasync helper
ALSA: pcm: Use deferred fasync helper
ALSA: timer: Use deferred fasync helper
ALSA: core: Add async signal helpers
ASoC: q6asm: use kcalloc() instead of kzalloc()
ACPI: scan: Add CLSA0101 Laptop Support
ALSA: hda: cs35l41: Support CLSA0101
ALSA: hda: cs35l41: Use the CS35L41 HDA internal define
ASoC: dt-bindings: use spi-peripheral-props.yaml
ASoC: codecs: va-macro: use fsgen as clock
...
2022-08-06 10:19:51 -07:00
|
|
|
|
2022-06-23 13:51:16 +01:00
|
|
|
|
|
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-01 10:57:38 -05:00
|
|
|
|
|
|
|
|
|
2021-12-24 10:10:34 +08:00
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-06-17 11:35:36 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-06 12:23:04 +01:00
|
|
|
|
|
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
2021-12-24 10:10:34 +08:00
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-11-01 10:35:21 +08:00
|
|
|
|
2022-09-20 01:57:14 +08:00
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-09-20 01:57:14 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-03-14 09:53:58 +08:00
|
|
|
|
2022-09-20 01:57:14 +08:00
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
2021-12-24 10:10:34 +08:00
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
2022-11-01 10:35:21 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-09-16 14:23:43 -05:00
|
|
|
|
2021-12-24 10:10:34 +08:00
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-02 16:29:25 +05:30
|
|
|
|
2021-12-24 10:10:34 +08:00
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-02 16:29:25 +05:30
|
|
|
|
2021-12-24 10:10:34 +08:00
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-09-20 01:57:12 +08:00
|
|
|
|
|
|
|
|
|
2018-04-26 18:39:05 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-11-11 09:31:28 +08:00
|
|
|
|
2022-11-11 09:31:29 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-11-11 09:31:30 +08:00
|
|
|
|
|
|
|
|
|
2022-11-11 09:31:31 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-11-11 09:31:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-11-11 09:31:33 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-11-11 09:31:28 +08:00
|
|
|
|
|
|
|
|
|
2023-03-14 09:54:00 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-03-14 09:54:03 +08:00
|
|
|
|
2022-11-11 09:31:28 +08:00
|
|
|
|
module: Convert symbol namespace to string literal
Clean up the existing export namespace code along the same lines of
commit 33def8498fdd ("treewide: Convert macro and uses of __section(foo)
to __section("foo")") and for the same reason, it is not desired for the
namespace argument to be a macro expansion itself.
Scripted using
git grep -l -e MODULE_IMPORT_NS -e EXPORT_SYMBOL_NS | while read file;
do
awk -i inplace '
/^#define EXPORT_SYMBOL_NS/ {
gsub(/__stringify\(ns\)/, "ns");
print;
next;
}
/^#define MODULE_IMPORT_NS/ {
gsub(/__stringify\(ns\)/, "ns");
print;
next;
}
/MODULE_IMPORT_NS/ {
$0 = gensub(/MODULE_IMPORT_NS\(([^)]*)\)/, "MODULE_IMPORT_NS(\"\\1\")", "g");
}
/EXPORT_SYMBOL_NS/ {
if ($0 ~ /(EXPORT_SYMBOL_NS[^(]*)\(([^,]+),/) {
if ($0 !~ /(EXPORT_SYMBOL_NS[^(]*)\(([^,]+), ([^)]+)\)/ &&
$0 !~ /(EXPORT_SYMBOL_NS[^(]*)\(\)/ &&
$0 !~ /^my/) {
getline line;
gsub(/[[:space:]]*\\$/, "");
gsub(/[[:space:]]/, "", line);
$0 = $0 " " line;
}
$0 = gensub(/(EXPORT_SYMBOL_NS[^(]*)\(([^,]+), ([^)]+)\)/,
"\\1(\\2, \"\\3\")", "g");
}
}
{ print }' $file;
done
Requested-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://mail.google.com/mail/u/2/#inbox/FMfcgzQXKWgMmjdFwwdsfgxzKpVHWPlc
Acked-by: Greg KH <gregkh@linuxfoundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2024-12-02 15:59:47 +01:00
|
|
|
|