mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-15 17:06:45 +07:00
drm: rcar-du: Recognize "renesas,vsps" in addition to "vsps"
The Renesas-specific "vsps" property lacks a vendor prefix.
Add a "renesas," prefix to comply with DT best practises.
Retain backward compatibility with old DTBs by falling back to "vsps"
when needed.
Fixes: 6d62ef3ac3
("drm: rcar-du: Expose the VSP1 compositor through KMS planes")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
This commit is contained in:
parent
c81456d245
commit
7b627ce80f
@ -544,6 +544,7 @@ static int rcar_du_properties_init(struct rcar_du_device *rcdu)
|
||||
static int rcar_du_vsps_init(struct rcar_du_device *rcdu)
|
||||
{
|
||||
const struct device_node *np = rcdu->dev->of_node;
|
||||
const char *vsps_prop_name = "renesas,vsps";
|
||||
struct of_phandle_args args;
|
||||
struct {
|
||||
struct device_node *np;
|
||||
@ -559,15 +560,21 @@ static int rcar_du_vsps_init(struct rcar_du_device *rcdu)
|
||||
* entry contains a pointer to the VSP DT node and a bitmask of the
|
||||
* connected DU CRTCs.
|
||||
*/
|
||||
cells = of_property_count_u32_elems(np, "vsps") / rcdu->num_crtcs - 1;
|
||||
ret = of_property_count_u32_elems(np, vsps_prop_name);
|
||||
if (ret < 0) {
|
||||
/* Backward compatibility with old DTBs. */
|
||||
vsps_prop_name = "vsps";
|
||||
ret = of_property_count_u32_elems(np, vsps_prop_name);
|
||||
}
|
||||
cells = ret / rcdu->num_crtcs - 1;
|
||||
if (cells > 1)
|
||||
return -EINVAL;
|
||||
|
||||
for (i = 0; i < rcdu->num_crtcs; ++i) {
|
||||
unsigned int j;
|
||||
|
||||
ret = of_parse_phandle_with_fixed_args(np, "vsps", cells, i,
|
||||
&args);
|
||||
ret = of_parse_phandle_with_fixed_args(np, vsps_prop_name,
|
||||
cells, i, &args);
|
||||
if (ret < 0)
|
||||
goto error;
|
||||
|
||||
@ -589,8 +596,8 @@ static int rcar_du_vsps_init(struct rcar_du_device *rcdu)
|
||||
|
||||
/*
|
||||
* Store the VSP pointer and pipe index in the CRTC. If the
|
||||
* second cell of the 'vsps' specifier isn't present, default
|
||||
* to 0 to remain compatible with older DT bindings.
|
||||
* second cell of the 'renesas,vsps' specifier isn't present,
|
||||
* default to 0 to remain compatible with older DT bindings.
|
||||
*/
|
||||
rcdu->crtcs[i].vsp = &rcdu->vsps[j];
|
||||
rcdu->crtcs[i].vsp_pipe = cells >= 1 ? args.args[0] : 0;
|
||||
|
Loading…
Reference in New Issue
Block a user