mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 11:50:43 +09:00
ANDROID: GKI: Add 'dsc_info' to struct drm_dp_mst_port
Resolves an abi diff. Also adds setter/getter functions which are also exported. Bug: 152417756 Signed-off-by: Alistair Delva <adelva@google.com> Change-Id: Ieb567ae1915446720ed2e77651a9a49f1e295360
This commit is contained in:
@@ -1810,6 +1810,42 @@ int drm_dp_send_power_updown_phy(struct drm_dp_mst_topology_mgr *mgr,
|
||||
}
|
||||
EXPORT_SYMBOL(drm_dp_send_power_updown_phy);
|
||||
|
||||
int drm_dp_mst_get_dsc_info(struct drm_dp_mst_topology_mgr *mgr,
|
||||
struct drm_dp_mst_port *port,
|
||||
struct drm_dp_mst_dsc_info *dsc_info)
|
||||
{
|
||||
if (!dsc_info)
|
||||
return -EINVAL;
|
||||
|
||||
port = drm_dp_get_validated_port_ref(mgr, port);
|
||||
if (!port)
|
||||
return -EINVAL;
|
||||
|
||||
memcpy(dsc_info, &port->dsc_info, sizeof(struct drm_dp_mst_dsc_info));
|
||||
drm_dp_put_port(port);
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(drm_dp_mst_get_dsc_info);
|
||||
|
||||
int drm_dp_mst_update_dsc_info(struct drm_dp_mst_topology_mgr *mgr,
|
||||
struct drm_dp_mst_port *port,
|
||||
struct drm_dp_mst_dsc_info *dsc_info)
|
||||
{
|
||||
if (!dsc_info)
|
||||
return -EINVAL;
|
||||
|
||||
port = drm_dp_get_validated_port_ref(mgr, port);
|
||||
if (!port)
|
||||
return -EINVAL;
|
||||
|
||||
memcpy(&port->dsc_info, dsc_info, sizeof(struct drm_dp_mst_dsc_info));
|
||||
drm_dp_put_port(port);
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(drm_dp_mst_update_dsc_info);
|
||||
|
||||
static int drm_dp_create_payload_step1(struct drm_dp_mst_topology_mgr *mgr,
|
||||
int id,
|
||||
struct drm_dp_payload *payload)
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#include <drm/drm_atomic.h>
|
||||
|
||||
struct drm_dp_mst_branch;
|
||||
struct drm_dp_mst_port;
|
||||
|
||||
/**
|
||||
* struct drm_dp_vcpi - Virtual Channel Payload Identifier
|
||||
@@ -42,6 +43,18 @@ struct drm_dp_vcpi {
|
||||
int num_slots;
|
||||
};
|
||||
|
||||
struct drm_dp_mst_dsc_dpcd_cache {
|
||||
bool valid;
|
||||
bool use_parent_dpcd;
|
||||
u8 dsc_dpcd[16];
|
||||
};
|
||||
|
||||
struct drm_dp_mst_dsc_info {
|
||||
bool dsc_support;
|
||||
struct drm_dp_mst_port *dsc_port;
|
||||
struct drm_dp_mst_dsc_dpcd_cache dsc_dpcd_cache;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct drm_dp_mst_port - MST port
|
||||
* @kref: reference count for this port.
|
||||
@@ -100,6 +113,8 @@ struct drm_dp_mst_port {
|
||||
bool has_audio;
|
||||
|
||||
bool fec_capable;
|
||||
|
||||
struct drm_dp_mst_dsc_info dsc_info;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -637,4 +652,12 @@ int drm_dp_atomic_release_vcpi_slots(struct drm_atomic_state *state,
|
||||
int drm_dp_send_power_updown_phy(struct drm_dp_mst_topology_mgr *mgr,
|
||||
struct drm_dp_mst_port *port, bool power_up);
|
||||
|
||||
int drm_dp_mst_get_dsc_info(struct drm_dp_mst_topology_mgr *mgr,
|
||||
struct drm_dp_mst_port *port,
|
||||
struct drm_dp_mst_dsc_info *dsc_info);
|
||||
|
||||
int drm_dp_mst_update_dsc_info(struct drm_dp_mst_topology_mgr *mgr,
|
||||
struct drm_dp_mst_port *port,
|
||||
struct drm_dp_mst_dsc_info *dsc_info);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user