mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-23 01:50:07 +03:00
FMON/Clock Mon detects for fault in a particular clock domain. For this we need to poll a specified master register to know if there is any fault. If this is set we scan all the available clock domains to see which domain is faulted and the type of fault. This CL will have all required common functions to monitor different clock domains registers. Bug 2182063 NVGPU-3846 Change-Id: I6a2bdb65335eaeef995eb163d480ee722c230311 Signed-off-by: Abdul Salam <absalam@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/2170887 Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
46 lines
2.0 KiB
C
46 lines
2.0 KiB
C
/*
|
|
* Copyright (c) 2016-2019, NVIDIA CORPORATION. All rights reserved.
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
* copy of this software and associated documentation files (the "Software"),
|
|
* to deal in the Software without restriction, including without limitation
|
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
* and/or sell copies of the Software, and to permit persons to whom the
|
|
* Software is furnished to do so, subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be included in
|
|
* all copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
* DEALINGS IN THE SOFTWARE.
|
|
*/
|
|
#ifndef CLK_TU104_H
|
|
#define CLK_TU104_H
|
|
|
|
#include <nvgpu/lock.h>
|
|
#include <nvgpu/gk20a.h>
|
|
|
|
u32 tu104_get_rate_cntr(struct gk20a *g, struct namemap_cfg *c);
|
|
int tu104_init_clk_support(struct gk20a *g);
|
|
u32 tu104_crystal_clk_hz(struct gk20a *g);
|
|
unsigned long tu104_clk_measure_freq(struct gk20a *g, u32 api_domain);
|
|
void tu104_suspend_clk_support(struct gk20a *g);
|
|
int tu104_clk_domain_get_f_points(
|
|
struct gk20a *g,
|
|
u32 clkapidomain,
|
|
u32 *pfpointscount,
|
|
u16 *pfreqpointsinmhz);
|
|
unsigned long tu104_clk_maxrate(struct gk20a *g, u32 api_domain);
|
|
void tu104_get_change_seq_time(struct gk20a *g, s64 *change_time);
|
|
void tu104_change_host_clk_source(struct gk20a *g);
|
|
bool nvgpu_clk_mon_check_master_fault_status(struct gk20a *g);
|
|
int nvgpu_clk_mon_check_status(struct gk20a *g, struct
|
|
clk_domains_mon_status_params *clk_mon_status);
|
|
|
|
#endif /* CLK_TU104_H */
|