Contributors: 9
Author Tokens Token Proportion Commits Commit Proportion
Ville Syrjälä 115 35.60% 6 24.00%
Jani Nikula 88 27.24% 7 28.00%
Imre Deak 65 20.12% 2 8.00%
Jouni Högander 20 6.19% 2 8.00%
Anusha Srivatsa 18 5.57% 4 16.00%
Mohammed Thasleem 6 1.86% 1 4.00%
Kumar, Mahesh 6 1.86% 1 4.00%
Maarten Lankhorst 3 0.93% 1 4.00%
Mitul Golani 2 0.62% 1 4.00%
Total 323 25


/* SPDX-License-Identifier: MIT */
/*
 * Copyright © 2019 Intel Corporation
 */

#ifndef __INTEL_DMC_H__
#define __INTEL_DMC_H__

#include <linux/types.h>

enum pipe;
enum pipedmc_event_id;
struct drm_printer;
struct intel_crtc;
struct intel_crtc_state;
struct intel_display;
struct intel_dmc_snapshot;
struct intel_dsb;

void intel_dmc_init(struct intel_display *display);
void intel_dmc_load_program(struct intel_display *display);
void intel_dmc_wait_fw_load(struct intel_display *display);
void intel_dmc_disable_program(struct intel_display *display);
void intel_dmc_enable_pipe(const struct intel_crtc_state *crtc_state);
void intel_dmc_disable_pipe(const struct intel_crtc_state *crtc_state);
void intel_dmc_block_pkgc(struct intel_display *display, enum pipe pipe,
			  bool block);
void intel_dmc_configure_dc_balance_event(struct intel_display *display,
					  enum pipe pipe, bool enable);
void intel_dmc_start_pkgc_exit_at_start_of_undelayed_vblank(struct intel_display *display,
							    enum pipe pipe, bool enable);
void intel_dmc_fini(struct intel_display *display);
void intel_dmc_suspend(struct intel_display *display);
void intel_dmc_resume(struct intel_display *display);
bool intel_dmc_has_payload(struct intel_display *display);
void intel_dmc_debugfs_register(struct intel_display *display);

struct intel_dmc_snapshot *intel_dmc_snapshot_capture(struct intel_display *display);
void intel_dmc_snapshot_print(const struct intel_dmc_snapshot *snapshot, struct drm_printer *p);
void intel_dmc_update_dc6_allowed_count(struct intel_display *display, bool start_tracking);

void assert_main_dmc_loaded(struct intel_display *display);

void intel_pipedmc_irq_handler(struct intel_display *display, enum pipe pipe);
void intel_pipedmc_dcb_enable(struct intel_dsb *dsb, struct intel_crtc *crtc);
void intel_pipedmc_dcb_disable(struct intel_dsb *dsb, struct intel_crtc *crtc);

u32 intel_pipedmc_start_mmioaddr(struct intel_crtc *crtc);
void intel_pipedmc_enable_event(struct intel_crtc *crtc,
				enum pipedmc_event_id event);
void intel_pipedmc_disable_event(struct intel_crtc *crtc,
				 enum pipedmc_event_id event);

void intel_pipedmc_irq_handler(struct intel_display *display, enum pipe pipe);

#endif /* __INTEL_DMC_H__ */