This will be required to support Volta, where window ID != head.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
int ret;
ret = nv50_wndw_new_(func, drm->dev, DRM_PLANE_TYPE_PRIMARY,
- "base", head, format, &wndw);
+ "base", head, format, BIT(head), &wndw);
if (*pwndw = wndw, ret)
return ret;
int ret;
ret = nv50_wndw_new_(&curs507a_wndw, drm->dev, DRM_PLANE_TYPE_CURSOR,
- "curs", head, curs507a_format, &wndw);
+ "curs", head, curs507a_format, BIT(head), &wndw);
if (*pwndw = wndw, ret)
return ret;
int ret;
ret = nv50_wndw_new_(func, drm->dev, DRM_PLANE_TYPE_OVERLAY,
- "ovly", head, format, &wndw);
+ "ovly", head, format, BIT(head), &wndw);
if (*pwndw = wndw, ret)
return ret;
int
nv50_wndw_new_(const struct nv50_wndw_func *func, struct drm_device *dev,
enum drm_plane_type type, const char *name, int index,
- const u32 *format, struct nv50_wndw **pwndw)
+ const u32 *format, u32 heads, struct nv50_wndw **pwndw)
{
struct nv50_wndw *wndw;
int nformat;
for (nformat = 0; format[nformat]; nformat++);
- ret = drm_universal_plane_init(dev, &wndw->plane, 0, &nv50_wndw,
+ ret = drm_universal_plane_init(dev, &wndw->plane, heads, &nv50_wndw,
format, nformat, NULL,
type, "%s-%d", name, index);
if (ret) {
int nv50_wndw_new_(const struct nv50_wndw_func *, struct drm_device *,
enum drm_plane_type, const char *name, int index,
- const u32 *format, struct nv50_wndw **);
+ const u32 *format, u32 heads, struct nv50_wndw **);
void nv50_wndw_init(struct nv50_wndw *);
void nv50_wndw_fini(struct nv50_wndw *);
u32 nv50_wndw_flush_set(struct nv50_wndw *, u32 interlock,