From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2 4/4] drm/fb-helper: improve documentation and print warnings Date: Fri, 7 Sep 2018 21:46:59 +0200 Message-ID: <20180907194659.GC7176@phenom.ffwll.local> References: <20180906221810.20170-1-peter@lekensteyn.nl> <20180906221810.20170-5-peter@lekensteyn.nl> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) by gabe.freedesktop.org (Postfix) with ESMTPS id 79BEC6E191 for ; Fri, 7 Sep 2018 19:47:03 +0000 (UTC) Received: by mail-ed1-x541.google.com with SMTP id z27-v6so12316883edb.10 for ; Fri, 07 Sep 2018 12:47:03 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180906221810.20170-5-peter@lekensteyn.nl> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Peter Wu Cc: Gerd Hoffmann , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBTZXAgMDcsIDIwMTggYXQgMTI6MTg6MTBBTSArMDIwMCwgUGV0ZXIgV3Ugd3JvdGU6 Cj4gQ2xhcmlmeSB0aGUgcmVsYXRpb24gYmV0d2VlbiBkcm1fZmJfaGVscGVyX2ZiZGV2X3NldHVw L3RlYXJkb3duLiBDbGFyaWZ5Cj4gcmVxdWlyZW1lbnRzIGZvciB0aGUgbmV3IGdlbmVyaWMgZmJk ZXYgZW11bGF0aW9uIEFQSSBhbmQgbG9nIHNvbWUgbW9yZQo+IGRldGFpbHMgaW4gY2FzZSB0aGUg ZHJpdmVyIGRvZXMgc29tZXRoaW5nIHdyb25nLiBGaXggcmVsYXRlZCB0eXBvcy4KPiAKPiBDYzog Tm9yYWxmIFRyw7hubmVzIDxub3JhbGZAdHJvbm5lcy5vcmc+Cj4gU2lnbmVkLW9mZi1ieTogUGV0 ZXIgV3UgPHBldGVyQGxla2Vuc3RleW4ubmw+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1f ZmJfaGVscGVyLmMgfCAyNSArKysrKysrKysrKysrKysrKysrLS0tLS0tCj4gIDEgZmlsZSBjaGFu Z2VkLCAxOSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9o ZWxwZXIuYwo+IGluZGV4IDRiMGRkMjBiY2NiOC4uN2Y5MmZmMTczOTg2IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2ZiX2hlbHBlci5jCj4gQEAgLTI4MjEsNyArMjgyMSw5IEBAIEVYUE9SVF9TWU1CT0woZHJt X2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50KTsKPiAgICogVGhlIGNhbGxlciBtdXN0IHRvIHByb3Zp ZGUgYSAmZHJtX2ZiX2hlbHBlcl9mdW5jcy0+ZmJfcHJvYmUgY2FsbGJhY2sKPiAgICogZnVuY3Rp b24uCj4gICAqCj4gLSAqIFNlZSBhbHNvOiBkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKCkK PiArICogVXNlIGRybV9mYl9oZWxwZXJfZmJkZXZfdGVhcmRvd24oKSB0byBkZXN0cm95IHRoZSBm YmRldi4KPiArICoKPiArICogU2VlIGFsc286IGRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWco KSwgZHJtX2ZiZGV2X2dlbmVyaWNfc2V0dXAoKS4KPiAgICoKPiAgICogUmV0dXJuczoKPiAgICog WmVybyBvbiBzdWNjZXNzIG9yIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KPiBAQCAt MzAzNyw3ICszMDM5LDcgQEAgc3RhdGljIHN0cnVjdCBmYl9kZWZlcnJlZF9pbyBkcm1fZmJkZXZf ZGVmaW8gPSB7Cj4gICAqIEBmYl9oZWxwZXI6IGZiZGV2IGhlbHBlciBzdHJ1Y3R1cmUKPiAgICog QHNpemVzOiBkZXNjcmliZXMgZmJkZXYgc2l6ZSBhbmQgc2Nhbm91dCBzdXJmYWNlIHNpemUKPiAg ICoKPiAtICogVGhpcyBmdW5jdGlvbiB1c2VzIHRoZSBjbGllbnQgQVBJIHRvIGNyYXRlIGEgZnJh bWVidWZmZXIgYmFja2VkIGJ5IGEgZHVtYiBidWZmZXIuCj4gKyAqIFRoaXMgZnVuY3Rpb24gdXNl cyB0aGUgY2xpZW50IEFQSSB0byBjcmVhdGUgYSBmcmFtZWJ1ZmZlciBiYWNrZWQgYnkgYSBkdW1i IGJ1ZmZlci4KPiAgICoKPiAgICogVGhlIF9zeXNfIHZlcnNpb25zIGFyZSB1c2VkIGZvciAmZmJf b3BzLmZiX3JlYWQsIGZiX3dyaXRlLCBmYl9maWxscmVjdCwKPiAgICogZmJfY29weWFyZWEsIGZi X2ltYWdlYmxpdC4KPiBAQCAtMzE2NSw4ICszMTY3LDEwIEBAIHN0YXRpYyBpbnQgZHJtX2ZiZGV2 X2NsaWVudF9ob3RwbHVnKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KQo+ICAJaWYgKGRl di0+ZmJfaGVscGVyKQo+ICAJCXJldHVybiBkcm1fZmJfaGVscGVyX2hvdHBsdWdfZXZlbnQoZGV2 LT5mYl9oZWxwZXIpOwo+ICAKPiAtCWlmICghZGV2LT5tb2RlX2NvbmZpZy5udW1fY29ubmVjdG9y KQo+ICsJaWYgKCFkZXYtPm1vZGVfY29uZmlnLm51bV9jb25uZWN0b3IpIHsKPiArCQlEUk1fREVW X0RFQlVHKGRldi0+ZGV2LCAiTm8gY29ubmVjdG9ycyBmb3VuZCwgd2lsbCBub3QgY3JlYXRlIGZy YW1lYnVmZmVyIVxuIik7Cj4gIAkJcmV0dXJuIDA7Cj4gKwl9Cj4gIAo+ICAJcmV0ID0gZHJtX2Zi X2hlbHBlcl9mYmRldl9zZXR1cChkZXYsIGZiX2hlbHBlciwgJmRybV9mYl9oZWxwZXJfZ2VuZXJp Y19mdW5jcywKPiAgCQkJCQlmYl9oZWxwZXItPnByZWZlcnJlZF9icHAsIDApOwo+IEBAIC0zMTg3 LDEzICszMTkxLDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NsaWVudF9mdW5jcyBkcm1f ZmJkZXZfY2xpZW50X2Z1bmNzID0gewo+ICB9Owo+ICAKPiAgLyoqCj4gLSAqIGRybV9mYl9oZWxw ZXJfZ2VuZXJpY19mYmRldl9zZXR1cCgpIC0gU2V0dXAgZ2VuZXJpYyBmYmRldiBlbXVsYXRpb24K PiArICogZHJtX2ZiZGV2X2dlbmVyaWNfc2V0dXAoKSAtIFNldHVwIGdlbmVyaWMgZmJkZXYgZW11 bGF0aW9uCgpIbSwgZHJtX2ZiX2hlbHBlcl8gd291bGQgYmUgdGhlIE9DRCBwcmVmaXggd2UgdXNl IGV2ZXJ5d2hlcmUsIGJ1dCBiZXR0ZXIKdG8gbWFrZSB0aGUgZG9jcyBtYXRjaCB0aGUgY29kZS4g RmVlbCBmcmVlIHRvIHRocm93IGEgcmVuYW1lIHBhdGNoIG9uIHRvcC4KCj4gICAqIEBkZXY6IERS TSBkZXZpY2UKPiAgICogQHByZWZlcnJlZF9icHA6IFByZWZlcnJlZCBiaXRzIHBlciBwaXhlbCBm b3IgdGhlIGRldmljZS4KPiAgICogICAgICAgICAgICAgICAgIEBkZXYtPm1vZGVfY29uZmlnLnBy ZWZlcnJlZF9kZXB0aCBpcyB1c2VkIGlmIHRoaXMgaXMgemVyby4KPiAgICoKPiAgICogVGhpcyBm dW5jdGlvbiBzZXRzIHVwIGdlbmVyaWMgZmJkZXYgZW11bGF0aW9uIGZvciBkcml2ZXJzIHRoYXQg c3VwcG9ydHMKPiAtICogZHVtYiBidWZmZXJzIHdpdGggYSB2aXJ0dWFsIGFkZHJlc3MgYW5kIHRo YXQgY2FuIGJlIG1tYXAnZWQuCj4gKyAqIGR1bWIgYnVmZmVycyB3aXRoIGEgdmlydHVhbCBhZGRy ZXNzIGFuZCB0aGF0IGNhbiBiZSBtbWFwJ2VkLiBJZiB0aGUgZHJpdmVyCj4gKyAqIGRvZXMgbm90 IHN1cHBvcnQgdGhlc2UgZnVuY3Rpb25zLCBpdCBjb3VsZCB1c2UgZHJtX2ZiX2hlbHBlcl9mYmRl dl9zZXR1cCgpLgo+ICsgKiBUaGlzIGZ1bmN0aW9uIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBkZXZp Y2VzIGNyZWF0ZWQgdXNpbmcgZHJtX2Rldl9yZWdpc3RlcigpLgoKVGhpcyBsYXN0IGxpbmUgaXMg bWlzbGVhZGluZywgc2luY2UgZXZlcnkgZHJtIGRldmljZSBpcyBjYWxsZWQgd2l0aApkcm1fZGV2 X3JlZ2lzdGVyKCkuIEl0J3MganVzdCBub3QgYWxsIGNhbGxlZCBieSBkcml2ZXIgY29kZSBkaXJl Y3RseS4KV2l0aCB0aGlzIGxpbmUgcmVtb3ZlZDoKClJldmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVy IDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgoKSSdsbCBsZWF2ZSBpdCB0byBHZXJkIHRvIGFwcGx5 IHRoaXMgYWxsLgotRGFuaWVsCgoKPiAgICoKPiAgICogUmVzdG9yZSwgaG90cGx1ZyBldmVudHMg YW5kIHRlYXJkb3duIGFyZSBhbGwgdGFrZW4gY2FyZSBvZi4gRHJpdmVycyB0aGF0IGRvCj4gICAq IHN1c3BlbmQvcmVzdW1lIG5lZWQgdG8gY2FsbCBkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kX3Vu bG9ja2VkKCkgdGhlbXNlbHZlcy4KPiBAQCAtMzIwNiw2ICszMjEyLDggQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1fY2xpZW50X2Z1bmNzIGRybV9mYmRldl9jbGllbnRfZnVuY3MgPSB7Cj4gICAq IFRoaXMgZnVuY3Rpb24gaXMgc2FmZSB0byBjYWxsIGV2ZW4gd2hlbiB0aGVyZSBhcmUgbm8gY29u bmVjdG9ycyBwcmVzZW50Lgo+ICAgKiBTZXR1cCB3aWxsIGJlIHJldHJpZWQgb24gdGhlIG5leHQg aG90cGx1ZyBldmVudC4KPiAgICoKPiArICogVGhlIGZiZGV2IGlzIGRlc3Ryb3llZCBieSBkcm1f ZGV2X3VucmVnaXN0ZXIoKS4KPiArICoKPiAgICogUmV0dXJuczoKPiAgICogWmVybyBvbiBzdWNj ZXNzIG9yIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KPiAgICovCj4gQEAgLTMyMTQs NiArMzIyMiw4IEBAIGludCBkcm1fZmJkZXZfZ2VuZXJpY19zZXR1cChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB1bnNpZ25lZCBpbnQgcHJlZmVycmVkX2JwcCkKPiAgCXN0cnVjdCBkcm1fZmJfaGVs cGVyICpmYl9oZWxwZXI7Cj4gIAlpbnQgcmV0Owo+ICAKPiArCVdBUk4oZGV2LT5mYl9oZWxwZXIs ICJmYl9oZWxwZXIgaXMgYWxyZWFkeSBzZXQhXG4iKTsKPiArCj4gIAlpZiAoIWRybV9mYmRldl9l bXVsYXRpb24pCj4gIAkJcmV0dXJuIDA7Cj4gIAo+IEBAIC0zMjI0LDEyICszMjM0LDE1IEBAIGlu dCBkcm1fZmJkZXZfZ2VuZXJpY19zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25l ZCBpbnQgcHJlZmVycmVkX2JwcCkKPiAgCXJldCA9IGRybV9jbGllbnRfbmV3KGRldiwgJmZiX2hl bHBlci0+Y2xpZW50LCAiZmJkZXYiLCAmZHJtX2ZiZGV2X2NsaWVudF9mdW5jcyk7Cj4gIAlpZiAo cmV0KSB7Cj4gIAkJa2ZyZWUoZmJfaGVscGVyKTsKPiArCQlEUk1fREVWX0VSUk9SKGRldi0+ZGV2 LCAiRmFpbGVkIHRvIHJlZ2lzdGVyIGNsaWVudDogJWRcbiIsIHJldCk7Cj4gIAkJcmV0dXJuIHJl dDsKPiAgCX0KPiAgCj4gIAlmYl9oZWxwZXItPnByZWZlcnJlZF9icHAgPSBwcmVmZXJyZWRfYnBw Owo+ICAKPiAtCWRybV9mYmRldl9jbGllbnRfaG90cGx1ZygmZmJfaGVscGVyLT5jbGllbnQpOwo+ ICsJcmV0ID0gZHJtX2ZiZGV2X2NsaWVudF9ob3RwbHVnKCZmYl9oZWxwZXItPmNsaWVudCk7Cj4g KwlpZiAocmV0KQo+ICsJCURSTV9ERVZfREVCVUcoZGV2LT5kZXYsICJjbGllbnQgaG90cGx1ZyBy ZXQ9JWRcbiIsIHJldCk7Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAtLSAKPiAyLjE4LjAKPiAK PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKCi0t IApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRw Oi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.1 required=3.0 tests=DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS,T_DKIM_INVALID, USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F3F8FC4321E for ; Fri, 7 Sep 2018 19:47:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 800AC20855 for ; Fri, 7 Sep 2018 19:47:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="R2F10+Lk" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 800AC20855 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726370AbeIHA3a (ORCPT ); Fri, 7 Sep 2018 20:29:30 -0400 Received: from mail-ed1-f67.google.com ([209.85.208.67]:45557 "EHLO mail-ed1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725987AbeIHA3a (ORCPT ); Fri, 7 Sep 2018 20:29:30 -0400 Received: by mail-ed1-f67.google.com with SMTP id p52-v6so12284251eda.12 for ; Fri, 07 Sep 2018 12:47:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=sender:date:from:to:cc:subject:message-id:mail-followup-to :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=JesxdWZrp1dQvyHPGstha9mnSPRY2smCWTjdT81MrXw=; b=R2F10+LkHdlxZwHJPOxusZlUZi+RYxvBV4lOIhr8p8+Q6+SIZ44DNyeKY9mDC3KzZP vQhuEFvibvVelPFMosSmbO78CIxY1wDJHqFwOoHvbncUjjurn1+tLvdDZ5jvMbrMPEQl lUEpuRQjm7PpPW7Dzkkw/ycEzScQ7ZBFlHzNk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=JesxdWZrp1dQvyHPGstha9mnSPRY2smCWTjdT81MrXw=; b=Y4pZHaIPcb9iKymGrt6c7wuAFtHBEVQqQQktU5aFvNUKk8mhS2A6YW+tK9aFH3cZN6 guBiiS/g5Sk7QTgFglXDz9sUapoje9hDjchI++RrSmgWx8Bmb38CiUmV6iVQWQNK1naw pEHF7bb1hcwEIGwOqHhv/iB00EPxbIji3mL90hfh2S/zhRYjudbPv6+hLEoobSR0XRR1 nvp0AC4m3opSxUx5PXDfMb8MpB6LQVuNjZikxFQXfWN7E0ais9VX+fDduRbxKu1PcVTT FOQ5JR/KKinxD3HhDZaINCg0SspV1R3WpCvXs3wks3t6ImQEqKiProk1A/3Wf8htDRqo /U8A== X-Gm-Message-State: APzg51A/sNCEFWWQx0Wpx5WrGqaAbXp1a1oKyTpvh/ELRMXE4uTC4kAT dpvd6bq3suWfiWKiC9ZonW9UvA== X-Google-Smtp-Source: ANB0VdYu29TIXV3fNzROmBb/rDswJIddPBYG82TbEaUk5dXANFh0EICMgOIwT1c78ZRl+SAPpqE9Aw== X-Received: by 2002:a50:8c45:: with SMTP id p63-v6mr10792581edp.84.1536349622049; Fri, 07 Sep 2018 12:47:02 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:569e:0:3106:d637:d723:e855]) by smtp.gmail.com with ESMTPSA id s36-v6sm5348406edb.56.2018.09.07.12.47.00 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 07 Sep 2018 12:47:01 -0700 (PDT) Date: Fri, 7 Sep 2018 21:46:59 +0200 From: Daniel Vetter To: Peter Wu Cc: Gerd Hoffmann , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org Subject: Re: [PATCH v2 4/4] drm/fb-helper: improve documentation and print warnings Message-ID: <20180907194659.GC7176@phenom.ffwll.local> Mail-Followup-To: Peter Wu , Gerd Hoffmann , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org References: <20180906221810.20170-1-peter@lekensteyn.nl> <20180906221810.20170-5-peter@lekensteyn.nl> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20180906221810.20170-5-peter@lekensteyn.nl> X-Operating-System: Linux phenom 4.17.0-3-amd64 User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Sep 07, 2018 at 12:18:10AM +0200, Peter Wu wrote: > Clarify the relation between drm_fb_helper_fbdev_setup/teardown. Clarify > requirements for the new generic fbdev emulation API and log some more > details in case the driver does something wrong. Fix related typos. > > Cc: Noralf Trønnes > Signed-off-by: Peter Wu > --- > drivers/gpu/drm/drm_fb_helper.c | 25 +++++++++++++++++++------ > 1 file changed, 19 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c > index 4b0dd20bccb8..7f92ff173986 100644 > --- a/drivers/gpu/drm/drm_fb_helper.c > +++ b/drivers/gpu/drm/drm_fb_helper.c > @@ -2821,7 +2821,9 @@ EXPORT_SYMBOL(drm_fb_helper_hotplug_event); > * The caller must to provide a &drm_fb_helper_funcs->fb_probe callback > * function. > * > - * See also: drm_fb_helper_initial_config() > + * Use drm_fb_helper_fbdev_teardown() to destroy the fbdev. > + * > + * See also: drm_fb_helper_initial_config(), drm_fbdev_generic_setup(). > * > * Returns: > * Zero on success or negative error code on failure. > @@ -3037,7 +3039,7 @@ static struct fb_deferred_io drm_fbdev_defio = { > * @fb_helper: fbdev helper structure > * @sizes: describes fbdev size and scanout surface size > * > - * This function uses the client API to crate a framebuffer backed by a dumb buffer. > + * This function uses the client API to create a framebuffer backed by a dumb buffer. > * > * The _sys_ versions are used for &fb_ops.fb_read, fb_write, fb_fillrect, > * fb_copyarea, fb_imageblit. > @@ -3165,8 +3167,10 @@ static int drm_fbdev_client_hotplug(struct drm_client_dev *client) > if (dev->fb_helper) > return drm_fb_helper_hotplug_event(dev->fb_helper); > > - if (!dev->mode_config.num_connector) > + if (!dev->mode_config.num_connector) { > + DRM_DEV_DEBUG(dev->dev, "No connectors found, will not create framebuffer!\n"); > return 0; > + } > > ret = drm_fb_helper_fbdev_setup(dev, fb_helper, &drm_fb_helper_generic_funcs, > fb_helper->preferred_bpp, 0); > @@ -3187,13 +3191,15 @@ static const struct drm_client_funcs drm_fbdev_client_funcs = { > }; > > /** > - * drm_fb_helper_generic_fbdev_setup() - Setup generic fbdev emulation > + * drm_fbdev_generic_setup() - Setup generic fbdev emulation Hm, drm_fb_helper_ would be the OCD prefix we use everywhere, but better to make the docs match the code. Feel free to throw a rename patch on top. > * @dev: DRM device > * @preferred_bpp: Preferred bits per pixel for the device. > * @dev->mode_config.preferred_depth is used if this is zero. > * > * This function sets up generic fbdev emulation for drivers that supports > - * dumb buffers with a virtual address and that can be mmap'ed. > + * dumb buffers with a virtual address and that can be mmap'ed. If the driver > + * does not support these functions, it could use drm_fb_helper_fbdev_setup(). > + * This function can only be used with devices created using drm_dev_register(). This last line is misleading, since every drm device is called with drm_dev_register(). It's just not all called by driver code directly. With this line removed: Reviewed-by: Daniel Vetter I'll leave it to Gerd to apply this all. -Daniel > * > * Restore, hotplug events and teardown are all taken care of. Drivers that do > * suspend/resume need to call drm_fb_helper_set_suspend_unlocked() themselves. > @@ -3206,6 +3212,8 @@ static const struct drm_client_funcs drm_fbdev_client_funcs = { > * This function is safe to call even when there are no connectors present. > * Setup will be retried on the next hotplug event. > * > + * The fbdev is destroyed by drm_dev_unregister(). > + * > * Returns: > * Zero on success or negative error code on failure. > */ > @@ -3214,6 +3222,8 @@ int drm_fbdev_generic_setup(struct drm_device *dev, unsigned int preferred_bpp) > struct drm_fb_helper *fb_helper; > int ret; > > + WARN(dev->fb_helper, "fb_helper is already set!\n"); > + > if (!drm_fbdev_emulation) > return 0; > > @@ -3224,12 +3234,15 @@ int drm_fbdev_generic_setup(struct drm_device *dev, unsigned int preferred_bpp) > ret = drm_client_new(dev, &fb_helper->client, "fbdev", &drm_fbdev_client_funcs); > if (ret) { > kfree(fb_helper); > + DRM_DEV_ERROR(dev->dev, "Failed to register client: %d\n", ret); > return ret; > } > > fb_helper->preferred_bpp = preferred_bpp; > > - drm_fbdev_client_hotplug(&fb_helper->client); > + ret = drm_fbdev_client_hotplug(&fb_helper->client); > + if (ret) > + DRM_DEV_DEBUG(dev->dev, "client hotplug ret=%d\n", ret); > > return 0; > } > -- > 2.18.0 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch