Commit Graph

50 Commits

Author SHA1 Message Date
Mark Bao
e84a7d930f msm-mmrm: add para virtualization backend
Add para virtualization backend.

Change-Id: Ifa25e422c04ef4dafb152130f303d0a217429c32
Signed-off-by: Mark Bao <quic_mbao@quicinc.com>
2022-03-08 15:29:33 -08:00
Shivendra Kakrania
2fbec2424a mmrm: Remove QMAA dependency
QMAA dependency is causing dlkm compilation along with incorrect
copy of mmrm ko to vendor_dlkm.

Change-Id: If03359a70af0e64ce8f2bbba468d68ef15ae053b
Signed-off-by: Shivendra Kakrania <shiven@codeaurora.org>
2021-11-19 19:49:03 -08:00
mbao
3249416536 msm-mmrm: Add Kalama mmrm platform data
Add Kalama mmrm platform data.

Change-Id: I55228b60ab3eec909c070ab20edbf4125318409c
Signed-off-by: mbao <mbao@codeaurora.org>
2021-11-19 10:44:40 -08:00
qctecmdr
754a537d5c Merge "msm-mmrm: add max num hw block into device tree file" 2021-10-25 10:55:25 -07:00
Shivendra Kakrania
4b0b134192 mmrm: Adding support for api to check if mmrm is supported
Some of targets doesn't need MMRM but need binary compatibility
with targets which support MMRM.

A new api is added to support such scenarios & to ensure that
MMRM is disabled & MM clients can fall back to clk api.

Change-Id: I72514889bffc48174c18e1e764751d2f4595570e
Signed-off-by: Shivendra Kakrania <shiven@codeaurora.org>
2021-10-19 11:23:23 -07:00
mbao
61d63855a0 msm-mmrm: add max num hw block into device tree file
Add max num hw block into device tree file.

Change-Id: I9d57cf6cdd962bc470214c0cb93df09981f106bb
Signed-off-by: mbao <mbao@codeaurora.org>
2021-10-18 15:44:30 -07:00
qctecmdr
4758d42c05 Merge "mmrm: Print enabled mmrm client info" 2021-10-14 10:32:46 -07:00
Shivendra Kakrania
d5c40be33b mmrm: Fixing delta current for number of hw instances
While adjusting the voltage corner for all clients, number of
hw instances in not included. Also when calculating the old
current of a client number of hw blocks is not included.
Fixed the calculations to project the correct current calculation
when either overall voltage corner is adjested or corner is adjusted
for a client.

Change-Id: I4ee9bb02275fda61c72dce99f41dbf73b4cf8fc5
Signed-off-by: Shivendra Kakrania <shiven@codeaurora.org>
2021-10-12 10:14:44 -07:00
mbao
3ddc864248 mmrm: Print enabled mmrm client info
Print enabled mmrm client info during runtime.
This will be a helpful debugging feature to identy the
enabled clients, corresponding power info & aggregated numbers.

Change-Id: I01734843d28e7a21c622dcb1ff6263aa1c2c156c
Signed-off-by: mbao <mbao@codeaurora.org>
2021-10-11 15:25:21 -07:00
Karthikeyan Periasamy
6861e939bd Kalama-BU: add QMAA compliance to camera dlkms
CRs-Fixed: 2838945
Change-Id: I5aba1146a84c2215cc8ed880f3ade33a9b73bbb1
Signed-off-by: Mulugeta Engdaw <mengdaw@codeaurora.org>
Signed-off-by: Karthikeyan Periasamy <kperiasa@codeaurora.org>
2021-09-15 15:45:15 -07:00
Shivendra Kakrania
924ac6cd89 msm-mmrm: Update the number of blocks as per updated HSR
Updating the supported number of hw blocks as per HSR guidance.

Change-Id: I3f7f465aa28c35c112f51925beb7e945eb0c84a9
Signed-off-by: Shivendra Kakrania <shiven@codeaurora.org>
2021-08-27 15:23:40 -07:00
mbao
980eed84f0 msm-mmrm: narrow checking num hw block scenario
Don't check num hw block parameter, when set clk rate to 0.

Change-Id: I7f94a6413487f11156c5d1ec10467cd016a8700b
Signed-off-by: mbao <mbao@codeaurora.org>
2021-08-27 15:23:02 -07:00
Mahesh Kumar Sharma
34d809ec77 mmrm: remove throttled client properly
Ensure to remove throttled client only when
reentry is possible. Not doing so caused
throttled client removed from link list without
throttled client reentered.

Print the notifier processing time & check if
its taking more than expected.

Change-Id: Iee97cba0ee68713e7f17d4afae2ba327f7c6b8ea
Signed-off-by: Mahesh Kumar Sharma <smahesh@codeaurora.org>
2021-08-19 18:57:03 -07:00
mbao
a2cd8e12f0 msm-mmrm: Use sysfs for mmrm module
Add sysfs to provide debug variables.

Change-Id: I8dc64af4d0a4cc47bbe8dd135c90cda4d7e301ee
Signed-off-by: mbao <mbao@codeaurora.org>
2021-08-17 08:18:00 -07:00
Mahesh Kumar Sharma
91770b6061 mmrm: Fix KW error
Initialize variable before use.
Moved statement to correct block.

Change-Id: I6effe4a8d2363596250bbd663e68f1c6bea07589
Signed-off-by: Mahesh Kumar Sharma <smahesh@codeaurora.org>
2021-08-11 08:58:56 -07:00
Mahesh Kumar Sharma
b5fa8d8109 mmrm-driver: Update delta current correctly
Update delta current correctly after client
was throttled.

Change-Id: I3b51f8eb7f94d3659dea5dde6e16537fbc0de87d
Signed-off-by: Mahesh Kumar Sharma <smahesh@codeaurora.org>
2021-08-09 16:57:34 -07:00
mbao
aa373d648a msm-mmrm: Add support to number of hw blocks
Add number of hw blocks support for peak current calculation.
With this support multiple blocks of same clock can be accounted
for peak current.

Change-Id: I277636cedc4cda731fc845dcba3e742e840446d4
Signed-off-by: mbao <mbao@codeaurora.org>
2021-08-09 11:54:11 -07:00
Mahesh Kumar Sharma
a4bfe3f86a mmrm: Notify throttled clients to bring back
As voltage corners are shared among the clients
ranging from low to high priority. In order to
accomodate power requirement of high priority clients,
MMRM driver may throttle a client which is lower priority.

Added logic to bookkeep these clients and try to
reinstate them at later point of time.

Signed-off-by: Mahesh Kumar Sharma <smahesh@codeaurora.org>
2021-08-02 18:13:35 -07:00
Mahesh Kumar Sharma
053e1464ea mmrm: Enable throttling feature by default
Enable throttling feature by default.

Change-Id: Ic72d7b8d7df9899d65ad7ced7a4f21b82cf8c31c
Signed-off-by: Mahesh Kumar Sharma <smahesh@codeaurora.org>
2021-07-28 17:10:41 -07:00
Mahesh Kumar Sharma
b64ce683db mmrm: dump current state of clients when throttling
Dump current state of all registered clients when low
prority clients request can't be entertained.

Signed-off-by: Mahesh Kumar Sharma <smahesh@codeaurora.org>
2021-07-21 16:14:51 -07:00
Mahesh Kumar Sharma
bb30cd0803 msm_mmrm: Add support of power prints
In order to improve debugging of mmrm
issues, add support of MMRM power print and
remove some unnecessary logging or decrease
priority to low.

Signed-off-by: Mahesh Kumar Sharma <smahesh@codeaurora.org>
2021-07-21 15:37:25 -07:00
Mahesh Kumar Sharma
bd838c2746 msm_mmrm: Calculate corect adjusted level
Ensure to calculate correct adjusted level
when reuested level is lower than aggregate level.

Signed-off-by: Mahesh Kumar Sharma <smahesh@codeaurora.org>
2021-07-16 14:32:52 -07:00
Mahesh Kumar Sharma
af00e1b7ca msm_mmrm: Add support of new low voltage corners in mmrm driver
Add support of low priority voltage corners lowsvs and
svs in mmrm driver.
This logic maintains a list of clients which are to be
proritize to be throtlled to low power in order to satisfy
high priority client's power requiretment.

Change-Id: Ia7f912e41bbcff057c0732cc7c2b16e327c59fd8
Signed-off-by: Mahesh Kumar Sharma <smahesh@codeaurora.org>
2021-07-12 18:53:38 -07:00
mbao
3b8eae3aa1 msm_mmrm: Add registered mmrm client parameters output
if mmrm client was registered, client register will output dyn_pwr,
leak_pwr total pwr, and current Max for mmrm-test-module

Change-Id: I34aeef778f42f106780b72543a3458627ce09935
Signed-off-by: mbao <mbao@codeaurora.org>
2021-07-09 11:23:05 -07:00
Mahesh Kumar Sharma
e1ade39ea4 msm-mmrm: Control throttling feature via debugfs
Enable or disable throttling feature by writing
correct value to msm_mmrm debugfs.

Change-Id: If2b06e061ddd102c42d0f5517d3c0be4fc9f6669
Signed-off-by: Mahesh Kumar Sharma <smahesh@codeaurora.org>
2021-07-01 11:43:29 -07:00
Mahesh Kumar Sharma
e653ade312 msm-mmrm: Handle the resource request of high priority clients
Throttle low priority client to handle the resource request
of high priority clients. During peak overshoot due to HIGH priority
MMRM driver, identify the low priority victim core to be throttled to
honor high prority client request.

Change-Id: I30aa2793f2c36063cf3096ef86ed21cb87e1179f
Signed-off-by: "Mahesh Kumar Sharma <smahesh@codeaurora.org>"
2021-06-30 19:13:07 -07:00
mbao
b36ee3f5c0 msm-mmrm: Change csid output format to Hex
Change-Id: I175e6bfc25a8d28549b35dbbb986b46a3237338d
Signed-off-by: mbao <mbao@codeaurora.org>
2021-06-29 10:28:14 -07:00
mbao
93ac16226c mmrm: Fixed deregister issue
For error cases, updating only client register related entries.

Change-Id: I78703f15f7436aa28d280a2b753655681a4f13eb
Signed-off-by: mbao <mbao@codeaurora.org>
2021-06-14 18:50:26 -07:00
qctecmdr
21bc3dcd43 Merge "msm_mmrm: Added debug support for multiple register calls of same client" 2021-06-03 12:46:41 -07:00
mbao
3a6373a550 msm_mmrm: Added debug support for multiple register calls of same client
Added support to allow multiple register of same client so that mmrm
test app can be used after device is booted up.
This will also allow to test multiple concurrencies as well as
throttling feature.

Depends-on: 3630372
Change-Id: I19a2838f536d36db0629d9d64c962aba57c92d28
2021-06-02 20:59:58 -07:00
mbao
0b89bee6d0 msm-mmrm: check if mmrm driver has initialized properly, avoid bootup crashes
Change-Id: I973a52eca4ee4ce8283d0ad1b6576ec7f527d037
2021-05-27 19:10:04 -07:00
Chandan Uddaraju
caa0d033a2 msm-mmrm: enable mmrm driver to be part of recovery image
Display driver has a dependency on mmrm driver. For
display to come up in recovery mode, we also need to
enable mmrm driver. Add the needed changes to enable
mmrm dlkm to be part of recovery image.

Change-Id: I073b509f7c091e4d1272c2277cfc9f72e35e2a05
Signed-off-by: Chandan Uddaraju <chandanu@codeaurora.org>
2021-05-11 15:49:37 -07:00
Mahesh Kumar Sharma
ba97fa9a41 msm-mmrm: Update frequency and current during register
Query clock framework for frequency range.
Update current with frequency scaling.

Change-Id: Ibc2d51c2854ea3eb49fbfb60a30e466373291a23
Signed-off-by: Sebastian Dang <sebastiandang@codeaurora.org>
2021-04-23 16:19:36 -07:00
Mark Bao
36a7b6d1ee mmrm: Correct log levels
Avoid printing genuine logs as error.
2021-04-05 00:30:25 -07:00
Sebastian Dang
3ba6a9fb97 msm-mmrm: Update table entries using sw clk mgr
Add pointer to driver data from sw clk mgr.
Change current calculation signature to use sw clk mgr.
Refer to resource values from driver data for current
calculations.

Change-Id: I77402e44cb19978791489ecdee9aa433fcc2a974
Signed-off-by: Sebastian Dang <sebastiandang@codeaurora.org>
2021-03-17 15:37:05 -07:00
Sebastian Dang
cc7049dc06 msm-mmrm: Export module symvers as a module
Create rule for Module.symvers so that other
modules can access exported symbols.

Change-Id: I91b2ff5128bfd560446c92337d8ce9a949de0443
Signed-off-by: Sebastian Dang <sebastiandang@codeaurora.org>
2021-03-10 16:38:30 -08:00
Sebastian Dang
418d32ffbd msm-mmrm: Resolve minor bugs
Fix client ptr check so that null deference
cannot occur.

Change-Id: Ib8322e0b5671c1cf0c21ab1e5d336d2ccd4bad27
Signed-off-by: Sebastian Dang <sebastiandang@codeaurora.org>
2021-03-02 22:35:33 -08:00
Sebastian Dang
8c318da2c5 mmrm: Enable mmrm
Enable mmrm for all target platforms.

Change-Id: I31a6eec86d4ff694541872e38e562390e01d0957
2021-01-22 10:45:34 -08:00
Sebastian Dang
5d3981da84 mmrm: Add aggregated voltage corner.
Add aggregated voltage corner to peak data.
When calculating peak current, compare requested
voltage corner to the aggregated and adjust power
values accordingly.

Change-Id: I0b58b5dd5ce14b55ef438fe7cc38a8cb3369fe14
2021-01-12 11:44:11 -08:00
Linux Build Service Account
3bd7275dec Merge "mmrm: Enable mmrm driver compilation" into mmrm-kernel-waipio.lnx.1.0 2021-01-04 09:44:27 -08:00
Sebastian Dang
4a2b66b1b0 mmrm: Enable mmrm driver compilation
Add mmrm driver to board kernel modules.
Add mmrm driver to product packages.

Change-Id: Ib0e68fc1b0d509679408765ad4b0958ed00327cc
2020-12-23 11:20:16 -08:00
Sebastian Dang
0b4e6a075e mmrm: Add markings to conf.
Add markings as instructed by LOST.

Change-Id: I4eb436a356614c796ad79f331ebc17dc71f8965b
2020-12-22 10:02:54 -08:00
Sebastian Dang
53cf3e9ecb mmrm: Enable mmrm driver dlkm compilation
Add makefile, kbuild, and android.mk to compile
mmrm driver as an external kernel module.
Modify debugfs with new return type.

Change-Id: I370fac4d985bbe491be7fdab846eb3b60d6a3c4d
2020-12-09 17:18:12 -08:00
Sebastian Dang
7657a22ccf mmrm: Resolve for invalid voltage corner values
- When qcom_clk_get_voltage encounters an error,
return the error.
- When qcom_clk_get_voltage returns a level higher
than supported, return an error.
- Added warning debug level.
- Minor formatting changes.

Change-Id: I6d7147f6af83bff2d84ef40c3a11cfef7faca391
2020-12-01 10:38:41 -08:00
Sebastian Dang
641f2047ad mmrm: Convert power values
- Convert dynamic power to q16.
- Make minor changes to function return paths.

Change-Id: Id8f1fad440c8b048fce46493f72df2b6caf34263
2020-11-23 13:25:23 -08:00
Sebastian Dang
f99d39f27b mmrm: Update client set value.
- Query clk driver for voltage corner calculation.
- Use change in delta for peak calculation.
- For peak overshoot, return warning and skip updating clk rate.
- Check for reserve_only flag in client_data flags.
- Skip setting clk rate if flag is set.
- Skip duplicate calculations if clk rate is already set.

Change-Id: I589990e17874b935b3b90e25f85d105a589391cd
2020-11-19 12:03:58 -08:00
Sebastian Dang
b0855d507d mmrm: Implement debugfs and logging levels
Use debug_level file in debugfs to set
logging level.

Change-Id: I1e378437039ceb59c44ff51f4eb6240804aa5f53
2020-11-13 13:13:19 -08:00
Sebastian Dang
d46ec8fb1a mmrm: Validate inputs and internal calls.
- Validate inputs.
    - Check for valid return values.
    - Print correct log messages according to api call.
    - Export symbols for mmrm api.

Change-Id: I13d43688a9df53033cfd796a7b82a95506d6b244
2020-11-04 08:58:51 -08:00
Shivendra Kakrania
0b565216b2 mmrm: Adding Multimedia Resource Manager(MMRM) driver
Adding Multimedia Resource Manager(MMRM) driver for clk rate
admission control of multimedia clients.

Change-Id: I7109369b254793d1dceaf3a34002ad01d14bc40a
2020-11-03 09:17:48 -08:00
Git User
891b6ca43b Initial empty repository 2020-08-25 03:40:29 -07:00