Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp24424imm; Tue, 7 Aug 2018 13:11:38 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfasBEAdrrfMVXIqp1KdvjXrBOpBJlH0t7NzSDkmXW1b9s95EGRDpOZaL137llgn/rzghvP X-Received: by 2002:a17:902:6f02:: with SMTP id w2-v6mr18800166plk.216.1533672698409; Tue, 07 Aug 2018 13:11:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533672698; cv=none; d=google.com; s=arc-20160816; b=xugadCWzE90DYuHmWy+za76GKc3zqS21F40w6eAMQiPPpLBkNcasLc/lIz3wHxNzj0 lVwpNyOOAyJM3JchLNmIvH2/qKp4PyW/2mMp7AXp/BRMyQRhIDkl6BCxDZixUm3zMmIF +EB/nfsdZUpreuAEoeJ9YmjPY5BeBqQhRnX+uJJLaW0cBQ+X/I67ysiolcDjMDcL0Xak jHWLoQEKlTEQMHvfXEH7c2JF/+FHd2eYQn6x+lOvmUfMvzH0KSF0Qx0UIshMvb7UaxdK nw1BMowghpNpDQUT+x39HygzjzdacRJJcNz7agJ++fAAJwMmdYeDVMSY/XMfjkq4H3rR 8Ztg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=Rj9K4QmYkvBy3XmxRyEZXRfKGcRGVkXCQhS0uhKGk3Y=; b=NWjCQv4f+TzZszdt1dYQU72Ix53YTW3CEgcZnaYC9rszQUd3kC4WBVFJ1ogI4sWdi3 PQVAz8Gh2iHA/eP0iB6j1pZ1NhP+P0UjEbSaF1dJx0TGPrbIjCmC/6savJOIEV9P7uuU ZeFGYl1Y1tLIcHv0GWOL4xv43/26CMPw/9Y7vmmRBdq9SVPfgg0Ab51PJSgVkDcsStRt ae7Zn4HdoX3OtwkixPb1nMzA+yb48/x95abloRwdzEaMWDYg9q1XqveuRSTUH6DGbBDe 6Fm/PXNeNTsTFqZy89m8clggSTkMH7MTI7C+SJi5c7LQ1ci/RI2ZG+KPVuxxHB15ihW+ bDfw== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a4-v6si2216530pgl.9.2018.08.07.13.11.23; Tue, 07 Aug 2018 13:11:38 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390458AbeHGV4T (ORCPT + 99 others); Tue, 7 Aug 2018 17:56:19 -0400 Received: from leonov.paulk.fr ([185.233.101.22]:39950 "EHLO leonov.paulk.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390010AbeHGV4T (ORCPT ); Tue, 7 Aug 2018 17:56:19 -0400 Received: from gagarine.paulk.fr (gagarine [192.168.1.127]) by leonov.paulk.fr (Postfix) with ESMTPS id 2271CBFAEF for ; Tue, 7 Aug 2018 21:40:24 +0200 (CEST) Received: by gagarine.paulk.fr (Postfix, from userid 114) id 24E3FC0ED8; Tue, 7 Aug 2018 21:40:23 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on gagarine.paulk.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable autolearn_force=no version=3.4.1 Received: from localhost.localdomain (collins [192.168.1.129]) by gagarine.paulk.fr (Postfix) with ESMTP id 72150BFB30; Tue, 7 Aug 2018 21:39:40 +0200 (CEST) From: Paul Kocialkowski To: dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Maxime Ripard , David Airlie , Chen-Yu Tsai , linux-sunxi@googlegroups.com, Paul Kocialkowski Subject: [PATCH] drm/sun4i: Avoid failing to init fbdev without any connector Date: Tue, 7 Aug 2018 21:39:19 +0200 Message-Id: <20180807193919.4800-1-contact@paulk.fr> X-Mailer: git-send-email 2.18.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Initializing and registering fbdev requires at least one DRM connector and will fail otherwise. In order to support headless setups (for instance for GPU rendering with the GBM backend, where a DRI card node is required to provide GEM memory reservation), add a check on the number of registered connectors before initializing fbdev. Signed-off-by: Paul Kocialkowski --- drivers/gpu/drm/sun4i/sun4i_framebuffer.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/sun4i/sun4i_framebuffer.c b/drivers/gpu/drm/sun4i/sun4i_framebuffer.c index 5f29850ef8ac..19a265e4a93a 100644 --- a/drivers/gpu/drm/sun4i/sun4i_framebuffer.c +++ b/drivers/gpu/drm/sun4i/sun4i_framebuffer.c @@ -49,6 +49,8 @@ static struct drm_mode_config_helper_funcs sun4i_de_mode_config_helpers = { int sun4i_framebuffer_init(struct drm_device *drm) { + int ret; + drm_mode_config_reset(drm); drm->mode_config.max_width = 8192; @@ -57,7 +59,13 @@ int sun4i_framebuffer_init(struct drm_device *drm) drm->mode_config.funcs = &sun4i_de_mode_config_funcs; drm->mode_config.helper_private = &sun4i_de_mode_config_helpers; - return drm_fb_cma_fbdev_init(drm, 32, 0); + if (drm->mode_config.num_connector > 0) { + ret = drm_fb_cma_fbdev_init(drm, 32, 0); + if (ret) + return ret; + } + + return 0; } void sun4i_framebuffer_free(struct drm_device *drm) -- 2.18.0