From 315d8c6caa3a149b83c9894e94da852a50310c2d Mon Sep 17 00:00:00 2001 From: Lakshmanan M Date: Thu, 8 Sep 2016 22:50:59 +0530 Subject: gpu: nvgpu: Add pmgr support This CL covers the following implementation, 1) Power Sensor Table parsing. 2) Power Topology Table parsing. 3) Add debugfs interface to get the current power(mW), current(mA) and voltage(uV) information from PMU. 4) Power Policy Table Parsing 5) Implement PMU boardobj interface for pmgr module. 6) Over current protection. JIRA DNVGPU-47 Change-Id: I620f4470aa704f1cc920e03947831440fbb0eb05 Signed-off-by: Lakshmanan M Reviewed-on: http://git-master/r/1217176 (cherry picked from commit ed56743c2ac8dc325c75f85a82271d2d5ed8d96a) Reviewed-on: http://git-master/r/1241952 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/boardobj/boardobjgrp.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'drivers/gpu/nvgpu/boardobj/boardobjgrp.h') diff --git a/drivers/gpu/nvgpu/boardobj/boardobjgrp.h b/drivers/gpu/nvgpu/boardobj/boardobjgrp.h index 6527bbdc..7baa5bea 100644 --- a/drivers/gpu/nvgpu/boardobj/boardobjgrp.h +++ b/drivers/gpu/nvgpu/boardobj/boardobjgrp.h @@ -254,6 +254,19 @@ struct boardobjgrp { #define BOARDOBJGRP_FOR_EACH(_pgrp, _ptype, _pobj, _index) \ BOARDOBJGRP_ITERATOR(_pgrp, _ptype, _pobj, _index, NULL) +#define BOARDOBJGRP_FOR_EACH_INDEX_IN_MASK(mask_width, index, mask) \ +{ \ + u##mask_width lcl_msk = (u##mask_width)(mask); \ + for (index = 0; lcl_msk != 0; index++, lcl_msk >>= 1) { \ + if (((u##mask_width)((u64)1) & lcl_msk) == 0) { \ + continue; \ + } + +#define BOARDOBJGRP_FOR_EACH_INDEX_IN_MASK_END \ + } \ +} + + /*! * Invalid UNIT_ID. Used to indicate that the implementing class has not set * @ref BOARDOBJGRP::unitId and, thus, certain BOARDOBJGRP PMU interfaces are -- cgit v1.2.2