Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp3228942ybi; Mon, 17 Jun 2019 19:46:01 -0700 (PDT) X-Google-Smtp-Source: APXvYqyUZ4PlhBQ95bvC0hSCnPeP/82jK14hH8iqom8zYblJEqT/kmVYu40W06ohgr4V1uhBKhRB X-Received: by 2002:a65:6210:: with SMTP id d16mr452402pgv.180.1560825960965; Mon, 17 Jun 2019 19:46:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560825960; cv=none; d=google.com; s=arc-20160816; b=D5q8QVk2lOjLIP89h2va4ZgrL/wFEOkljc8bj5XTimoFe2/3yKm2BajIa+p6DrAve5 wq5w5ftlHRwtlMZJd5Sd7GoU7iU/LaUEiqC9WRKfAyQaa+crjo4pbsE/LqRJXSW05p2r y49DYupTNuPOp0hV/YzYz0yif+zxNTzbe0MeEDDqdp2l8aV9p2RDtyGva+PyitQ5j2BO 10vSWZkARBNwHRYOvQCV/YyWJurdu6DbO9NOtRQr/Olj4nAq2SJCoDxslOtaGsOHzbZn /7/S97xdGIc4JthRdtyPrc08WWZq7fK/7iyZ234NSWNBLX7NXVbySw3NVICL0NKIUWdJ B9rA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=8KPbeBe1Izb/oXnubNpoebguldEg1IGhY2Zsm9jUIkc=; b=kwRrYAz9rHmOLI4RBalJR0E5aueUp5Jf0GaYwafwC+jlpABJXDPm1D9KYzztaMR0jM 7BPmYUJDxYyg+5w5Kd1hFFvPhdCXwkwQBVhSGd1PtvTT16rFC+tUZyCVzM9TZu0Yoa/z iMspYd/tHWDFtEHJccflenhzhXk4SvTubyx37QcoGml4DTmhVc+SKGS0oa7o5NfltAeE 7xOf5bWbenUXh22A8vV92THByBztw91Q3eOx5rpRmhveuclPSo+Q4r140yMpxPsVCbLn ywEunNELuJMPlOsqd2VkjiXEE9cxd5BLbAtvVQKWqRjJGuEfU27h29zMRNSWntXPUT2e 9ZjA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=jIFUNwNO; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k193si12844735pgc.473.2019.06.17.19.45.46; Mon, 17 Jun 2019 19:46:00 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=jIFUNwNO; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727909AbfFRCpf (ORCPT + 99 others); Mon, 17 Jun 2019 22:45:35 -0400 Received: from mail-qt1-f193.google.com ([209.85.160.193]:39048 "EHLO mail-qt1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725829AbfFRCpf (ORCPT ); Mon, 17 Jun 2019 22:45:35 -0400 Received: by mail-qt1-f193.google.com with SMTP id i34so8188884qta.6 for ; Mon, 17 Jun 2019 19:45:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=8KPbeBe1Izb/oXnubNpoebguldEg1IGhY2Zsm9jUIkc=; b=jIFUNwNOQDgYQ+LupPGr48TtotyUTjpb9+gsc7h4cEidc+lFsVhBVavMi2fttyL6WP DhlEaZjRsstTTIy5yBGjHeOCYwTJ00hChejyepsRC62T+97ppWDMd82ovALdPSWhspQZ dN5zOURRRWDX/bR2dJgk9XcQk/lmme5KMkfF+M6mNIqTcT2QGxOZWCNKyOVhl5vkjBk/ VEtFeuF7NabIwp29c+dvSP+T3tCc8S3tt8l4WH8mOS7hkv5ccyXXTbT/5FD7H1NWSFS3 19XD6SZyefb/WdclBRaO8rHi/pTalTXZBMJpqaieCp8iFjmTrn0oY/43ufre+HGdId0C XEWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=8KPbeBe1Izb/oXnubNpoebguldEg1IGhY2Zsm9jUIkc=; b=gC7XDEgWut4VYDpG5GZ8wca1dgf0uGIyzEA28mPK1jbe1bGfQoCqfBreXUiCQibi6M 3booLWmxXbNG2jJIuDf13oYopkKFC65rj7ePlRHeQRxbspqnOHURFqqoDC/9LkPUuOhY a4D3PYpUWRYSC1aqx6d6tbCnDYVb67X8x5VxK00ljlyBKYQ6A2Mcugx/jLU8yG1gmI/p 7sU96G8+DXhtL6/Xp2nXKoWXoxNbL6u5asVZO/J6PreB3EARJuhA0jT9AYZwipBeHs5W gpknzcyq6zxBolWQcke8ul2WWfELOikfSn6Z5TWkGUNmWVGnuKl5knxNYMZIDAZ231Vq J/1Q== X-Gm-Message-State: APjAAAUuL9C6InNzpIeBKsvUIguQFpxGKm2Mq1rqFPGmfBgkKUAX874J mQHEGXLOD9uYNe8hf0cLsZs= X-Received: by 2002:ac8:4442:: with SMTP id m2mr17809198qtn.107.1560825933887; Mon, 17 Jun 2019 19:45:33 -0700 (PDT) Received: from smtp.gmail.com ([187.121.151.146]) by smtp.gmail.com with ESMTPSA id s64sm7140356qkb.56.2019.06.17.19.45.31 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Mon, 17 Jun 2019 19:45:33 -0700 (PDT) Date: Mon, 17 Jun 2019 23:45:29 -0300 From: Rodrigo Siqueira To: Brian Starkey , Liviu Dudau , Daniel Vetter , Haneen Mohammed , Simon Ser Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH V2 4/5] drm/vkms: Use index instead of 0 in possible crtc Message-ID: <971da2ede86d11357e6822409bef23cb03869f83.1560820888.git.rodrigosiqueiramelo@gmail.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20180716 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When vkms calls drm_universal_plane_init(), it sets 0 for the possible_crtcs parameter which works well for a single encoder and connector; however, this approach is not flexible and does not fit well for vkms. This commit adds an index parameter for vkms_plane_init() which makes code flexible and enables vkms to support other DRM features. Signed-off-by: Rodrigo Siqueira --- drivers/gpu/drm/vkms/vkms_drv.c | 2 +- drivers/gpu/drm/vkms/vkms_drv.h | 4 ++-- drivers/gpu/drm/vkms/vkms_output.c | 6 +++--- drivers/gpu/drm/vkms/vkms_plane.c | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/vkms/vkms_drv.c b/drivers/gpu/drm/vkms/vkms_drv.c index cc53ef88a331..966b3d653189 100644 --- a/drivers/gpu/drm/vkms/vkms_drv.c +++ b/drivers/gpu/drm/vkms/vkms_drv.c @@ -127,7 +127,7 @@ static int vkms_modeset_init(struct vkms_device *vkmsdev) dev->mode_config.preferred_depth = 24; dev->mode_config.helper_private = &vkms_mode_config_helpers; - return vkms_output_init(vkmsdev); + return vkms_output_init(vkmsdev, 0); } static int __init vkms_init(void) diff --git a/drivers/gpu/drm/vkms/vkms_drv.h b/drivers/gpu/drm/vkms/vkms_drv.h index 8d628d18105e..ad63dbe5e994 100644 --- a/drivers/gpu/drm/vkms/vkms_drv.h +++ b/drivers/gpu/drm/vkms/vkms_drv.h @@ -115,10 +115,10 @@ bool vkms_get_vblank_timestamp(struct drm_device *dev, unsigned int pipe, int *max_error, ktime_t *vblank_time, bool in_vblank_irq); -int vkms_output_init(struct vkms_device *vkmsdev); +int vkms_output_init(struct vkms_device *vkmsdev, int index); struct drm_plane *vkms_plane_init(struct vkms_device *vkmsdev, - enum drm_plane_type type); + enum drm_plane_type type, int index); /* Gem stuff */ struct drm_gem_object *vkms_gem_create(struct drm_device *dev, diff --git a/drivers/gpu/drm/vkms/vkms_output.c b/drivers/gpu/drm/vkms/vkms_output.c index 56fb5c2a2315..fb1941a6522c 100644 --- a/drivers/gpu/drm/vkms/vkms_output.c +++ b/drivers/gpu/drm/vkms/vkms_output.c @@ -35,7 +35,7 @@ static const struct drm_connector_helper_funcs vkms_conn_helper_funcs = { .get_modes = vkms_conn_get_modes, }; -int vkms_output_init(struct vkms_device *vkmsdev) +int vkms_output_init(struct vkms_device *vkmsdev, int index) { struct vkms_output *output = &vkmsdev->output; struct drm_device *dev = &vkmsdev->drm; @@ -45,12 +45,12 @@ int vkms_output_init(struct vkms_device *vkmsdev) struct drm_plane *primary, *cursor = NULL; int ret; - primary = vkms_plane_init(vkmsdev, DRM_PLANE_TYPE_PRIMARY); + primary = vkms_plane_init(vkmsdev, DRM_PLANE_TYPE_PRIMARY, index); if (IS_ERR(primary)) return PTR_ERR(primary); if (enable_cursor) { - cursor = vkms_plane_init(vkmsdev, DRM_PLANE_TYPE_CURSOR); + cursor = vkms_plane_init(vkmsdev, DRM_PLANE_TYPE_CURSOR, index); if (IS_ERR(cursor)) { ret = PTR_ERR(cursor); goto err_cursor; diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c index 8cf40297cf56..3f8e8b53f3bb 100644 --- a/drivers/gpu/drm/vkms/vkms_plane.c +++ b/drivers/gpu/drm/vkms/vkms_plane.c @@ -176,7 +176,7 @@ static const struct drm_plane_helper_funcs vkms_primary_helper_funcs = { }; struct drm_plane *vkms_plane_init(struct vkms_device *vkmsdev, - enum drm_plane_type type) + enum drm_plane_type type, int index) { struct drm_device *dev = &vkmsdev->drm; const struct drm_plane_helper_funcs *funcs; @@ -198,7 +198,7 @@ struct drm_plane *vkms_plane_init(struct vkms_device *vkmsdev, funcs = &vkms_primary_helper_funcs; } - ret = drm_universal_plane_init(dev, plane, 0, + ret = drm_universal_plane_init(dev, plane, 1 << index, &vkms_plane_funcs, formats, nformats, NULL, type, NULL); -- 2.21.0