mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-23 09:57:08 +03:00
gpu: nvgpu: removed linux includes from CSS HAL
- removed inclusion of linux includes. - replaced with nvgpu/*.h's - reformated the function signature of "css_hw_get_pending_snapshot" and "css_hw_get_overflow_status" be global instead of static. - added get_pending_snapshot and get_overflow_status to ops->css. JIRA: VQRM-3699 Change-Id: I177904c263e143b414924c2c28ad6fd3cfd00132 Signed-off-by: Antony Clince Alex <aalex@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1732783 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
4d94b32d01
commit
d27d9ff7a8
@@ -22,9 +22,6 @@
|
|||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/dma-mapping.h>
|
|
||||||
#include <linux/dma-buf.h>
|
|
||||||
|
|
||||||
#include <nvgpu/bitops.h>
|
#include <nvgpu/bitops.h>
|
||||||
#include <nvgpu/kmem.h>
|
#include <nvgpu/kmem.h>
|
||||||
#include <nvgpu/lock.h>
|
#include <nvgpu/lock.h>
|
||||||
@@ -61,14 +58,14 @@
|
|||||||
#define CSS_MAX_PERFMON_IDS 256
|
#define CSS_MAX_PERFMON_IDS 256
|
||||||
|
|
||||||
/* reports whether the hw queue overflowed */
|
/* reports whether the hw queue overflowed */
|
||||||
static inline bool css_hw_get_overflow_status(struct gk20a *g)
|
bool css_hw_get_overflow_status(struct gk20a *g)
|
||||||
{
|
{
|
||||||
const u32 st = perf_pmasys_control_membuf_status_overflowed_f();
|
const u32 st = perf_pmasys_control_membuf_status_overflowed_f();
|
||||||
return st == (gk20a_readl(g, perf_pmasys_control_r()) & st);
|
return st == (gk20a_readl(g, perf_pmasys_control_r()) & st);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* returns how many pending snapshot entries are pending */
|
/* returns how many pending snapshot entries are pending */
|
||||||
static inline u32 css_hw_get_pending_snapshots(struct gk20a *g)
|
u32 css_hw_get_pending_snapshots(struct gk20a *g)
|
||||||
{
|
{
|
||||||
return gk20a_readl(g, perf_pmasys_mem_bytes_r()) /
|
return gk20a_readl(g, perf_pmasys_mem_bytes_r()) /
|
||||||
sizeof(struct gk20a_cs_snapshot_fifo_entry);
|
sizeof(struct gk20a_cs_snapshot_fifo_entry);
|
||||||
@@ -245,7 +242,7 @@ static void css_gr_free_shared_data(struct gr_gk20a *gr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static struct gk20a_cs_snapshot_client*
|
struct gk20a_cs_snapshot_client*
|
||||||
css_gr_search_client(struct nvgpu_list_node *clients, u32 perfmon)
|
css_gr_search_client(struct nvgpu_list_node *clients, u32 perfmon)
|
||||||
{
|
{
|
||||||
struct gk20a_cs_snapshot_client *client;
|
struct gk20a_cs_snapshot_client *client;
|
||||||
|
|||||||
@@ -129,6 +129,8 @@ struct gk20a_cs_snapshot {
|
|||||||
struct gk20a_cs_snapshot_fifo_entry *hw_get;
|
struct gk20a_cs_snapshot_fifo_entry *hw_get;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bool css_hw_get_overflow_status(struct gk20a *g);
|
||||||
|
u32 css_hw_get_pending_snapshots(struct gk20a *g);
|
||||||
void css_hw_set_handled_snapshots(struct gk20a *g, u32 done);
|
void css_hw_set_handled_snapshots(struct gk20a *g, u32 done);
|
||||||
int css_hw_enable_snapshot(struct channel_gk20a *ch,
|
int css_hw_enable_snapshot(struct channel_gk20a *ch,
|
||||||
struct gk20a_cs_snapshot_client *cs_client);
|
struct gk20a_cs_snapshot_client *cs_client);
|
||||||
@@ -140,5 +142,7 @@ u32 css_gr_release_perfmon_ids(struct gk20a_cs_snapshot *data,
|
|||||||
u32 count);
|
u32 count);
|
||||||
int css_hw_check_data_available(struct channel_gk20a *ch, u32 *pending,
|
int css_hw_check_data_available(struct channel_gk20a *ch, u32 *pending,
|
||||||
bool *hw_overflow);
|
bool *hw_overflow);
|
||||||
|
struct gk20a_cs_snapshot_client*
|
||||||
|
css_gr_search_client(struct nvgpu_list_node *clients, u32 perfmon);
|
||||||
|
|
||||||
#endif /* CSS_GR_GK20A_H */
|
#endif /* CSS_GR_GK20A_H */
|
||||||
|
|||||||
@@ -1185,6 +1185,8 @@ struct gpu_ops {
|
|||||||
u32 count);
|
u32 count);
|
||||||
int (*detach_snapshot)(struct channel_gk20a *ch,
|
int (*detach_snapshot)(struct channel_gk20a *ch,
|
||||||
struct gk20a_cs_snapshot_client *client);
|
struct gk20a_cs_snapshot_client *client);
|
||||||
|
bool (*get_overflow_status)(struct gk20a *g);
|
||||||
|
u32 (*get_pending_snapshots)(struct gk20a *g);
|
||||||
} css;
|
} css;
|
||||||
#endif
|
#endif
|
||||||
struct {
|
struct {
|
||||||
|
|||||||
@@ -625,6 +625,8 @@ static const struct gpu_ops gm20b_ops = {
|
|||||||
.set_handled_snapshots = css_hw_set_handled_snapshots,
|
.set_handled_snapshots = css_hw_set_handled_snapshots,
|
||||||
.allocate_perfmon_ids = css_gr_allocate_perfmon_ids,
|
.allocate_perfmon_ids = css_gr_allocate_perfmon_ids,
|
||||||
.release_perfmon_ids = css_gr_release_perfmon_ids,
|
.release_perfmon_ids = css_gr_release_perfmon_ids,
|
||||||
|
.get_overflow_status = css_hw_get_overflow_status,
|
||||||
|
.get_pending_snapshots = css_hw_get_pending_snapshots,
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
.falcon = {
|
.falcon = {
|
||||||
|
|||||||
@@ -742,6 +742,8 @@ static const struct gpu_ops gp106_ops = {
|
|||||||
.set_handled_snapshots = css_hw_set_handled_snapshots,
|
.set_handled_snapshots = css_hw_set_handled_snapshots,
|
||||||
.allocate_perfmon_ids = css_gr_allocate_perfmon_ids,
|
.allocate_perfmon_ids = css_gr_allocate_perfmon_ids,
|
||||||
.release_perfmon_ids = css_gr_release_perfmon_ids,
|
.release_perfmon_ids = css_gr_release_perfmon_ids,
|
||||||
|
.get_overflow_status = css_hw_get_overflow_status,
|
||||||
|
.get_pending_snapshots = css_hw_get_pending_snapshots,
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
.xve = {
|
.xve = {
|
||||||
|
|||||||
@@ -672,6 +672,8 @@ static const struct gpu_ops gp10b_ops = {
|
|||||||
.set_handled_snapshots = css_hw_set_handled_snapshots,
|
.set_handled_snapshots = css_hw_set_handled_snapshots,
|
||||||
.allocate_perfmon_ids = css_gr_allocate_perfmon_ids,
|
.allocate_perfmon_ids = css_gr_allocate_perfmon_ids,
|
||||||
.release_perfmon_ids = css_gr_release_perfmon_ids,
|
.release_perfmon_ids = css_gr_release_perfmon_ids,
|
||||||
|
.get_overflow_status = css_hw_get_overflow_status,
|
||||||
|
.get_pending_snapshots = css_hw_get_pending_snapshots,
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
.falcon = {
|
.falcon = {
|
||||||
|
|||||||
@@ -832,6 +832,8 @@ static const struct gpu_ops gv100_ops = {
|
|||||||
.set_handled_snapshots = gv11b_css_hw_set_handled_snapshots,
|
.set_handled_snapshots = gv11b_css_hw_set_handled_snapshots,
|
||||||
.allocate_perfmon_ids = css_gr_allocate_perfmon_ids,
|
.allocate_perfmon_ids = css_gr_allocate_perfmon_ids,
|
||||||
.release_perfmon_ids = css_gr_release_perfmon_ids,
|
.release_perfmon_ids = css_gr_release_perfmon_ids,
|
||||||
|
.get_overflow_status = gv11b_css_hw_get_overflow_status,
|
||||||
|
.get_pending_snapshots = gv11b_css_hw_get_pending_snapshots,
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
.xve = {
|
.xve = {
|
||||||
|
|||||||
@@ -22,9 +22,6 @@
|
|||||||
* DEALINGS IN THE SOFTWARE.
|
* DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/dma-mapping.h>
|
|
||||||
#include <linux/dma-buf.h>
|
|
||||||
|
|
||||||
#include <nvgpu/bitops.h>
|
#include <nvgpu/bitops.h>
|
||||||
#include <nvgpu/kmem.h>
|
#include <nvgpu/kmem.h>
|
||||||
#include <nvgpu/lock.h>
|
#include <nvgpu/lock.h>
|
||||||
@@ -33,7 +30,9 @@
|
|||||||
#include <nvgpu/sizes.h>
|
#include <nvgpu/sizes.h>
|
||||||
#include <nvgpu/enabled.h>
|
#include <nvgpu/enabled.h>
|
||||||
#include <nvgpu/log.h>
|
#include <nvgpu/log.h>
|
||||||
|
#include <nvgpu/nvgpu_mem.h>
|
||||||
#include <nvgpu/bug.h>
|
#include <nvgpu/bug.h>
|
||||||
|
#include <nvgpu/dma.h>
|
||||||
|
|
||||||
#include "gk20a/gk20a.h"
|
#include "gk20a/gk20a.h"
|
||||||
#include "gk20a/css_gr_gk20a.h"
|
#include "gk20a/css_gr_gk20a.h"
|
||||||
@@ -44,14 +43,14 @@
|
|||||||
|
|
||||||
|
|
||||||
/* reports whether the hw queue overflowed */
|
/* reports whether the hw queue overflowed */
|
||||||
static inline bool css_hw_get_overflow_status(struct gk20a *g)
|
bool gv11b_css_hw_get_overflow_status(struct gk20a *g)
|
||||||
{
|
{
|
||||||
const u32 st = perf_pmasys_control_membuf_status_overflowed_f();
|
const u32 st = perf_pmasys_control_membuf_status_overflowed_f();
|
||||||
return st == (gk20a_readl(g, perf_pmasys_control_r()) & st);
|
return st == (gk20a_readl(g, perf_pmasys_control_r()) & st);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* returns how many pending snapshot entries are pending */
|
/* returns how many pending snapshot entries are pending */
|
||||||
static inline u32 css_hw_get_pending_snapshots(struct gk20a *g)
|
u32 gv11b_css_hw_get_pending_snapshots(struct gk20a *g)
|
||||||
{
|
{
|
||||||
return gk20a_readl(g, perf_pmasys_mem_bytes_r()) /
|
return gk20a_readl(g, perf_pmasys_mem_bytes_r()) /
|
||||||
sizeof(struct gk20a_cs_snapshot_fifo_entry);
|
sizeof(struct gk20a_cs_snapshot_fifo_entry);
|
||||||
@@ -74,7 +73,7 @@ static void gv11b_css_hw_reset_streaming(struct gk20a *g)
|
|||||||
perf_pmasys_control_membuf_clear_status_doit_f());
|
perf_pmasys_control_membuf_clear_status_doit_f());
|
||||||
|
|
||||||
/* pointing all pending snapshots as handled */
|
/* pointing all pending snapshots as handled */
|
||||||
gv11b_css_hw_set_handled_snapshots(g, css_hw_get_pending_snapshots(g));
|
gv11b_css_hw_set_handled_snapshots(g, gv11b_css_hw_get_pending_snapshots(g));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* informs hw how many snapshots have been processed (frees up fifo space) */
|
/* informs hw how many snapshots have been processed (frees up fifo space) */
|
||||||
@@ -199,10 +198,10 @@ int gv11b_css_hw_check_data_available(struct channel_gk20a *ch, u32 *pending,
|
|||||||
if (!css->hw_snapshot)
|
if (!css->hw_snapshot)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
*pending = css_hw_get_pending_snapshots(g);
|
*pending = gv11b_css_hw_get_pending_snapshots(g);
|
||||||
if (!*pending)
|
if (!*pending)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
*hw_overflow = css_hw_get_overflow_status(g);
|
*hw_overflow = gv11b_css_hw_get_overflow_status(g);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,5 +31,8 @@ void gv11b_css_hw_disable_snapshot(struct gr_gk20a *gr);
|
|||||||
int gv11b_css_hw_check_data_available(struct channel_gk20a *ch, u32 *pending,
|
int gv11b_css_hw_check_data_available(struct channel_gk20a *ch, u32 *pending,
|
||||||
bool *hw_overflow);
|
bool *hw_overflow);
|
||||||
void gv11b_css_hw_set_handled_snapshots(struct gk20a *g, u32 done);
|
void gv11b_css_hw_set_handled_snapshots(struct gk20a *g, u32 done);
|
||||||
|
bool gv11b_css_hw_get_overflow_status(struct gk20a *g);
|
||||||
|
u32 gv11b_css_hw_get_pending_snapshots(struct gk20a *g);
|
||||||
|
|
||||||
|
|
||||||
#endif /* CSS_GR_GV11B_H */
|
#endif /* CSS_GR_GV11B_H */
|
||||||
|
|||||||
@@ -761,6 +761,8 @@ static const struct gpu_ops gv11b_ops = {
|
|||||||
.set_handled_snapshots = gv11b_css_hw_set_handled_snapshots,
|
.set_handled_snapshots = gv11b_css_hw_set_handled_snapshots,
|
||||||
.allocate_perfmon_ids = css_gr_allocate_perfmon_ids,
|
.allocate_perfmon_ids = css_gr_allocate_perfmon_ids,
|
||||||
.release_perfmon_ids = css_gr_release_perfmon_ids,
|
.release_perfmon_ids = css_gr_release_perfmon_ids,
|
||||||
|
.get_overflow_status = gv11b_css_hw_get_overflow_status,
|
||||||
|
.get_pending_snapshots = gv11b_css_hw_get_pending_snapshots,
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
.falcon = {
|
.falcon = {
|
||||||
|
|||||||
Reference in New Issue
Block a user