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:
Alistair Delva
2020-04-17 11:23:00 -07:00
parent 27ac6136bc
commit b572376bed
2 changed files with 59 additions and 0 deletions

View File

@@ -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)

View File

@@ -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