
Ensure that the driver is handling DSC and FEC enablement properly. FEC can now be independently enabled without DSC. FEC configuration is also now performed after link training in order to avoid link training failures as per the DP spec. Consequently, DSC can now be left on during compliance testing. For DSC use-cases, ensure that the minimum supported bpp is set to 24, as required by the DSC spec. CRs-Fixed: 2517994 Change-Id: I40339585da5b4e51251a3be7119b6959954954d7 Signed-off-by: Fuad Hossain <fhossain@codeaurora.org>
49 regels
1.4 KiB
C
49 regels
1.4 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copyright (c) 2012-2019, The Linux Foundation. All rights reserved.
|
|
*/
|
|
|
|
#ifndef _DP_CTRL_H_
|
|
#define _DP_CTRL_H_
|
|
|
|
#include "dp_aux.h"
|
|
#include "dp_panel.h"
|
|
#include "dp_link.h"
|
|
#include "dp_parser.h"
|
|
#include "dp_power.h"
|
|
#include "dp_catalog.h"
|
|
|
|
struct dp_ctrl {
|
|
int (*init)(struct dp_ctrl *dp_ctrl, bool flip, bool reset);
|
|
void (*deinit)(struct dp_ctrl *dp_ctrl);
|
|
int (*on)(struct dp_ctrl *dp_ctrl, bool mst_mode, bool fec_en,
|
|
bool dsc_en, bool shallow);
|
|
void (*off)(struct dp_ctrl *dp_ctrl);
|
|
void (*abort)(struct dp_ctrl *dp_ctrl);
|
|
void (*isr)(struct dp_ctrl *dp_ctrl);
|
|
bool (*handle_sink_request)(struct dp_ctrl *dp_ctrl);
|
|
void (*process_phy_test_request)(struct dp_ctrl *dp_ctrl);
|
|
int (*link_maintenance)(struct dp_ctrl *dp_ctrl);
|
|
int (*stream_on)(struct dp_ctrl *dp_ctrl, struct dp_panel *panel);
|
|
void (*stream_off)(struct dp_ctrl *dp_ctrl, struct dp_panel *panel);
|
|
void (*stream_pre_off)(struct dp_ctrl *dp_ctrl, struct dp_panel *panel);
|
|
void (*set_mst_channel_info)(struct dp_ctrl *dp_ctrl,
|
|
enum dp_stream_id strm,
|
|
u32 ch_start_slot, u32 ch_tot_slots);
|
|
};
|
|
|
|
struct dp_ctrl_in {
|
|
struct device *dev;
|
|
struct dp_panel *panel;
|
|
struct dp_aux *aux;
|
|
struct dp_link *link;
|
|
struct dp_parser *parser;
|
|
struct dp_power *power;
|
|
struct dp_catalog_ctrl *catalog;
|
|
};
|
|
|
|
struct dp_ctrl *dp_ctrl_get(struct dp_ctrl_in *in);
|
|
void dp_ctrl_put(struct dp_ctrl *dp_ctrl);
|
|
|
|
#endif /* _DP_CTRL_H_ */
|