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=-17.0 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MIME_BASE64_TEXT,SPF_HELO_NONE,SPF_PASS, UNPARSEABLE_RELAY,USER_AGENT_GIT 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 A304EC4338F for ; Sun, 8 Aug 2021 12:52:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 833FD6101C for ; Sun, 8 Aug 2021 12:52:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231151AbhHHMwr (ORCPT ); Sun, 8 Aug 2021 08:52:47 -0400 Received: from Mailgw01.mediatek.com ([1.203.163.78]:57690 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S229504AbhHHMwp (ORCPT ); Sun, 8 Aug 2021 08:52:45 -0400 X-UUID: 7fd924373dcd493db720d2cf695dd651-20210808 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=IikVvIUeSb+jh61wDMjaX6eojRPDP/vletPDcFHAflw=; b=ILfxHA1YOhzjdFGlHZIupDenYQUEL7mQA9Jq9l4OcYP3Dr6B9ldhL4lwC4zj/7Sbvxy/xVgoFqjef5uRJuZayvw/SJZG+PJXMjb7cuHLmPT2VsEjDbprsWxdeWZOmsKA1zXp3j3uvfH9MwuLU7Rpa/DnIaIAWPtNbPHRP9p+6sE=; X-UUID: 7fd924373dcd493db720d2cf695dd651-20210808 Received: from mtkcas34.mediatek.inc [(172.27.4.253)] by mailgw01.mediatek.com (envelope-from ) (mailgw01.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 800935895; Sun, 08 Aug 2021 20:52:23 +0800 Received: from MTKCAS36.mediatek.inc (172.27.4.186) by MTKMBS33N1.mediatek.inc (172.27.4.75) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sun, 8 Aug 2021 20:52:21 +0800 Received: from mszsdclx1018.gcn.mediatek.inc (10.16.6.18) by MTKCAS36.mediatek.inc (172.27.4.170) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sun, 8 Aug 2021 20:52:20 +0800 From: Jitao Shi To: Thierry Reding , Sam Ravnborg , David Airlie , Daniel Vetter , Matthias Brugger , , CC: , , , , , , , , Jitao Shi Subject: [PATCH v2 1/3] drm/panel: seperate panel power control from panel prepare/unprepare Date: Sun, 8 Aug 2021 20:52:16 +0800 Message-ID: <20210808125218.63029-2-jitao.shi@mediatek.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210808125218.63029-1-jitao.shi@mediatek.com> References: <20210808125218.63029-1-jitao.shi@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-SNTS-SMTP: B35D5D73D01C234FA99BF0717794F6C11538A8AA4068D6E2E72C36C219BE30402000:8 X-MTK: N Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org U29tZSBkc2kgcGFuZWxzIHJlcXVpcmUgdGhlIGRzaSBsYW5lcyBrZWVwaW5nIGxvdyBiZWZvcmUg cGFuZWwgcG93ZXINCm9uLiBTbyBzZXBlcmF0ZSB0aGUgcGFuZWwgcG93ZXIgY29udHJvbCBhbmQg dGhlIGNvbW11bmljYXRpb24gd2l0aCBwYW5lbC4NCg0KQW5kIHB1dCB0aGUgcG93ZXIgY29udHJv bCBpbiBkcm1fcGFuZWxfcHJlcGFyZV9wb3dlciBhbmQNCmRybV9wYW5lbF91bnByZXBhcmVfcG93 ZXIuIFB1dCB0aGUgY29tbXVuaWNhdGlvbiB3aXRoIHBhbmVsIGluDQpkcm1fcGFuZWxfcHJlcGFy ZSBhbmQgZHJtX3BhbmVsX3VucHJlcGFyZS4NCg0KU2lnbmVkLW9mZi1ieTogSml0YW8gU2hpIDxq aXRhby5zaGlAbWVkaWF0ZWsuY29tPg0KLS0tDQogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9wYW5l bC5jIHwgMTcgKysrKysrKysrKysrKysrDQogZHJpdmVycy9ncHUvZHJtL2RybV9wYW5lbC5jICAg IHwgMzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KIGluY2x1ZGUvZHJtL2Ry bV9icmlkZ2UuaCAgICAgICB8ICAyICsrDQogaW5jbHVkZS9kcm0vZHJtX3BhbmVsLmggICAgICAg IHwgMTcgKysrKysrKysrKysrKysrDQogNCBmaWxlcyBjaGFuZ2VkLCA3NCBpbnNlcnRpb25zKCsp DQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3BhbmVsLmMgYi9kcml2ZXJz L2dwdS9kcm0vYnJpZGdlL3BhbmVsLmMNCmluZGV4IGM5MTZmNGI4OTA3ZS4uM2E4NDZhYzhlMjRj IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9wYW5lbC5jDQorKysgYi9kcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL3BhbmVsLmMNCkBAIC0xMzcsNiArMTM3LDIzIEBAIHN0YXRpYyBp bnQgcGFuZWxfYnJpZGdlX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLA0KIAly ZXR1cm4gZHJtX3BhbmVsX2dldF9tb2RlcyhwYW5lbF9icmlkZ2UtPnBhbmVsLCBjb25uZWN0b3Ip Ow0KIH0NCiANCitpbnQgcGFuZWxfYnJpZGdlX3ByZXBhcmVfcG93ZXIoc3RydWN0IGRybV9icmlk Z2UgKmJyaWRnZSkNCit7DQorCXN0cnVjdCBwYW5lbF9icmlkZ2UgKnBhbmVsX2JyaWRnZSA9IGRy bV9icmlkZ2VfdG9fcGFuZWxfYnJpZGdlKGJyaWRnZSk7DQorDQorCXJldHVybiBkcm1fcGFuZWxf cHJlcGFyZV9wb3dlcihwYW5lbF9icmlkZ2UtPnBhbmVsKTsNCit9DQorRVhQT1JUX1NZTUJPTChw YW5lbF9icmlkZ2VfcHJlcGFyZV9wb3dlcik7DQorDQoraW50IHBhbmVsX2JyaWRnZV91bnByZXBh cmVfcG93ZXIoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkNCit7DQorICAgICAgICBzdHJ1Y3Qg cGFuZWxfYnJpZGdlICpwYW5lbF9icmlkZ2UgPSBkcm1fYnJpZGdlX3RvX3BhbmVsX2JyaWRnZShi cmlkZ2UpOw0KKw0KKyAgICAgICAgcmV0dXJuIGRybV9wYW5lbF91bnByZXBhcmVfcG93ZXIocGFu ZWxfYnJpZGdlLT5wYW5lbCk7DQorfQ0KK0VYUE9SVF9TWU1CT0wocGFuZWxfYnJpZGdlX3VucHJl cGFyZV9wb3dlcik7DQorDQorDQogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNz IHBhbmVsX2JyaWRnZV9icmlkZ2VfZnVuY3MgPSB7DQogCS5hdHRhY2ggPSBwYW5lbF9icmlkZ2Vf YXR0YWNoLA0KIAkuZGV0YWNoID0gcGFuZWxfYnJpZGdlX2RldGFjaCwNCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX3BhbmVsLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BhbmVsLmMN CmluZGV4IGY2MzQzNzFjNzE3YS4uN2JiNTE4NWRiMTdkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9n cHUvZHJtL2RybV9wYW5lbC5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BhbmVsLmMNCkBA IC0xMTUsNiArMTE1LDI0IEBAIGludCBkcm1fcGFuZWxfcHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVs ICpwYW5lbCkNCiB9DQogRVhQT1JUX1NZTUJPTChkcm1fcGFuZWxfcHJlcGFyZSk7DQogDQorLyoq DQorICogZHJtX3BhbmVsX3ByZXBhcmVfcG93ZXIgLSBwb3dlciBvbiBhIHBhbmVsJ3MgcG93ZXIN CisgKiBAcGFuZWw6IERSTSBwYW5lbA0KKyAqDQorICogQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIHdp bGwgZW5hYmxlIHBvd2VyIGFuZCBkZWFzc2VydCBhbnkgcmVzZXQgc2lnbmFscyB0bw0KKyAqIHRo ZSBwYW5lbC4NCisgKg0KKyAqIFJldHVybjogMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJy b3IgY29kZSBvbiBmYWlsdXJlLg0KKyAqLw0KK2ludCBkcm1fcGFuZWxfcHJlcGFyZV9wb3dlcihz dHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkNCit7DQorCWlmIChwYW5lbCAmJiBwYW5lbC0+ZnVuY3Mg JiYgcGFuZWwtPmZ1bmNzLT5wcmVwYXJlX3Bvd2VyKQ0KKwkJcmV0dXJuIHBhbmVsLT5mdW5jcy0+ cHJlcGFyZV9wb3dlcihwYW5lbCk7DQorDQorCXJldHVybiBwYW5lbCA/IC1FTk9TWVMgOiAtRUlO VkFMOw0KK30NCitFWFBPUlRfU1lNQk9MKGRybV9wYW5lbF9wcmVwYXJlX3Bvd2VyKTsNCisNCiAv KioNCiAgKiBkcm1fcGFuZWxfdW5wcmVwYXJlIC0gcG93ZXIgb2ZmIGEgcGFuZWwNCiAgKiBAcGFu ZWw6IERSTSBwYW5lbA0KQEAgLTEzOCw2ICsxNTYsMjYgQEAgaW50IGRybV9wYW5lbF91bnByZXBh cmUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpDQogfQ0KIEVYUE9SVF9TWU1CT0woZHJtX3BhbmVs X3VucHJlcGFyZSk7DQogDQorLyoqDQorICogZHJtX3BhbmVsX3VucHJlcGFyZV9wb3dlciAtIHBv d2VyIG9mZiBhIHBhbmVsDQorICogQHBhbmVsOiBEUk0gcGFuZWwNCisgKg0KKyAqIENhbGxpbmcg dGhpcyBmdW5jdGlvbiB3aWxsIGNvbXBsZXRlbHkgcG93ZXIgb2ZmIGEgcGFuZWwgKGFzc2VydCB0 aGUgcGFuZWwncw0KKyAqIHJlc2V0LCB0dXJuIG9mZiBwb3dlciBzdXBwbGllcywgLi4uKS4gQWZ0 ZXIgdGhpcyBmdW5jdGlvbiBoYXMgY29tcGxldGVkLCBpdA0KKyAqIGlzIHVzdWFsbHkgbm8gbG9u Z2VyIHBvc3NpYmxlIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIHBhbmVsIHVudGlsIGFub3RoZXIN CisgKiBjYWxsIHRvIGRybV9wYW5lbF9wcmVwYXJlX3Bvd2VyIGFuZCBkcm1fcGFuZWxfcHJlcGFy ZSgpLg0KKyAqDQorICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBj b2RlIG9uIGZhaWx1cmUuDQorICovDQoraW50IGRybV9wYW5lbF91bnByZXBhcmVfcG93ZXIoc3Ry dWN0IGRybV9wYW5lbCAqcGFuZWwpDQorew0KKwlpZiAocGFuZWwgJiYgcGFuZWwtPmZ1bmNzICYm IHBhbmVsLT5mdW5jcy0+dW5wcmVwYXJlX3Bvd2VyKQ0KKwkJcmV0dXJuIHBhbmVsLT5mdW5jcy0+ dW5wcmVwYXJlX3Bvd2VyKHBhbmVsKTsNCisNCisJcmV0dXJuIHBhbmVsID8gLUVOT1NZUyA6IC1F SU5WQUw7DQorfQ0KK0VYUE9SVF9TWU1CT0woZHJtX3BhbmVsX3VucHJlcGFyZV9wb3dlcik7DQor DQogLyoqDQogICogZHJtX3BhbmVsX2VuYWJsZSAtIGVuYWJsZSBhIHBhbmVsDQogICogQHBhbmVs OiBEUk0gcGFuZWwNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fYnJpZGdlLmggYi9pbmNs dWRlL2RybS9kcm1fYnJpZGdlLmgNCmluZGV4IDIxOTVkYWEyODlkMi4uY2M5NGM5ZGE0N2Q4IDEw MDY0NA0KLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2JyaWRnZS5oDQorKysgYi9pbmNsdWRlL2RybS9k cm1fYnJpZGdlLmgNCkBAIC04OTIsNiArODkyLDggQEAgc3RydWN0IGRybV9icmlkZ2UgKmRldm1f ZHJtX3BhbmVsX2JyaWRnZV9hZGRfdHlwZWQoc3RydWN0IGRldmljZSAqZGV2LA0KIAkJCQkJCSAg IHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLA0KIAkJCQkJCSAgIHUzMiBjb25uZWN0b3JfdHlwZSk7 DQogc3RydWN0IGRybV9jb25uZWN0b3IgKmRybV9wYW5lbF9icmlkZ2VfY29ubmVjdG9yKHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UpOw0KK2ludCBwYW5lbF9icmlkZ2VfcHJlcGFyZV9wb3dlcihz dHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsNCitpbnQgcGFuZWxfYnJpZGdlX3VucHJlcGFyZV9w b3dlcihzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsNCiAjZW5kaWYNCiANCiAjZW5kaWYNCmRp ZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fcGFuZWwuaCBiL2luY2x1ZGUvZHJtL2RybV9wYW5l bC5oDQppbmRleCAzMzYwNWMzZjBlYmEuLjQ4ZTgzNzEyYWQ0NCAxMDA2NDQNCi0tLSBhL2luY2x1 ZGUvZHJtL2RybV9wYW5lbC5oDQorKysgYi9pbmNsdWRlL2RybS9kcm1fcGFuZWwuaA0KQEAgLTY4 LDYgKzY4LDEzIEBAIGVudW0gZHJtX3BhbmVsX29yaWVudGF0aW9uOw0KICAqIGZ1bmN0aW9uYWxp dHkgdG8gZW5hYmxlL2Rpc2FibGUgYmFja2xpZ2h0Lg0KICAqLw0KIHN0cnVjdCBkcm1fcGFuZWxf ZnVuY3Mgew0KKwkvKioNCisJICogQHByZXBhcmVfcG93ZXI6DQorCSAqDQorCSAqIFR1cm4gb24g cGFuZWwgcG93ZXIuDQorCSAqLw0KKwlpbnQgKCpwcmVwYXJlX3Bvd2VyKShzdHJ1Y3QgZHJtX3Bh bmVsICpwYW5lbCk7DQorDQogCS8qKg0KIAkgKiBAcHJlcGFyZToNCiAJICoNCkBAIC0xMTUsNiAr MTIyLDEzIEBAIHN0cnVjdCBkcm1fcGFuZWxfZnVuY3Mgew0KIAlpbnQgKCpnZXRfbW9kZXMpKHN0 cnVjdCBkcm1fcGFuZWwgKnBhbmVsLA0KIAkJCSBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yKTsNCiANCisJLyoqDQorCSAqIEB1bnByZXBhcmVfcG93ZXI6DQorCSAqDQorCSAqIFR1cm4g b2ZmIHBhbmVsX3Bvd2VyLg0KKwkgKi8NCisJaW50ICgqdW5wcmVwYXJlX3Bvd2VyKShzdHJ1Y3Qg ZHJtX3BhbmVsICpwYW5lbCk7DQorDQogCS8qKg0KIAkgKiBAZ2V0X3RpbWluZ3M6DQogCSAqDQpA QCAtMTgwLDYgKzE5NCw5IEBAIHZvaWQgZHJtX3BhbmVsX2luaXQoc3RydWN0IGRybV9wYW5lbCAq cGFuZWwsIHN0cnVjdCBkZXZpY2UgKmRldiwNCiB2b2lkIGRybV9wYW5lbF9hZGQoc3RydWN0IGRy bV9wYW5lbCAqcGFuZWwpOw0KIHZvaWQgZHJtX3BhbmVsX3JlbW92ZShzdHJ1Y3QgZHJtX3BhbmVs ICpwYW5lbCk7DQogDQoraW50IGRybV9wYW5lbF9wcmVwYXJlX3Bvd2VyKHN0cnVjdCBkcm1fcGFu ZWwgKnBhbmVsKTsNCitpbnQgZHJtX3BhbmVsX3VucHJlcGFyZV9wb3dlcihzdHJ1Y3QgZHJtX3Bh bmVsICpwYW5lbCk7DQorDQogaW50IGRybV9wYW5lbF9wcmVwYXJlKHN0cnVjdCBkcm1fcGFuZWwg KnBhbmVsKTsNCiBpbnQgZHJtX3BhbmVsX3VucHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5l bCk7DQogDQotLSANCjIuMjUuMQ0K 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=-17.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, USER_AGENT_GIT 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 C7003C432BE for ; Sun, 8 Aug 2021 12:52:44 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7EF7360F9E for ; Sun, 8 Aug 2021 12:52:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 7EF7360F9E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=39ZS3n9TUXomTYA6sFssjujEFZBF0QpgqOr66r/aSPs=; b=d7XRUKPl37aVd4 WQMLR7a5XP1zSzInQoEgnVTOgtna1xgdZh8BXJzNq0tu7xQP8Jn+h9x59aBTZgzV22Vp6PTIN2l3x 74YjorBlqU6fFnXJaD+qmAEXjStjxK1SYjmhHjwi0BKPNI3TIzNQd8efjDO/Bsz31WCpE3JdhaHqp XldY+wUPRYTsGzca8uGaYWYHsF7xcZc56K5Z/lz3jP6iBigGalQgr/u8/g+A8wVKQaF70R4CLXAtS cSnKs5dTRAvesQIlwSXZ6+Tr84q4yIcsqJcXtlIkxa20gODtJGG+f6zMkYeg3KPUAwWwyLmqkB20K wu1xHHl937vrMHG8uCQw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mCiI5-00Fqss-V1; Sun, 08 Aug 2021 12:52:33 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mCiI1-00Fqs1-2k for linux-mediatek@lists.infradead.org; Sun, 08 Aug 2021 12:52:32 +0000 X-UUID: df692ad20a094dd099246b2f8cb586a9-20210808 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=IikVvIUeSb+jh61wDMjaX6eojRPDP/vletPDcFHAflw=; b=ILfxHA1YOhzjdFGlHZIupDenYQUEL7mQA9Jq9l4OcYP3Dr6B9ldhL4lwC4zj/7Sbvxy/xVgoFqjef5uRJuZayvw/SJZG+PJXMjb7cuHLmPT2VsEjDbprsWxdeWZOmsKA1zXp3j3uvfH9MwuLU7Rpa/DnIaIAWPtNbPHRP9p+6sE=; X-UUID: df692ad20a094dd099246b2f8cb586a9-20210808 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1100144064; Sun, 08 Aug 2021 05:52:26 -0700 Received: from MTKMBS33N1.mediatek.inc (172.27.4.75) by MTKMBS62DR.mediatek.inc (172.29.94.18) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sun, 8 Aug 2021 05:52:24 -0700 Received: from MTKCAS36.mediatek.inc (172.27.4.186) by MTKMBS33N1.mediatek.inc (172.27.4.75) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sun, 8 Aug 2021 20:52:21 +0800 Received: from mszsdclx1018.gcn.mediatek.inc (10.16.6.18) by MTKCAS36.mediatek.inc (172.27.4.170) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sun, 8 Aug 2021 20:52:20 +0800 From: Jitao Shi To: Thierry Reding , Sam Ravnborg , David Airlie , Daniel Vetter , Matthias Brugger , , CC: , , , , , , , , Jitao Shi Subject: [PATCH v2 1/3] drm/panel: seperate panel power control from panel prepare/unprepare Date: Sun, 8 Aug 2021 20:52:16 +0800 Message-ID: <20210808125218.63029-2-jitao.shi@mediatek.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210808125218.63029-1-jitao.shi@mediatek.com> References: <20210808125218.63029-1-jitao.shi@mediatek.com> MIME-Version: 1.0 X-TM-SNTS-SMTP: B35D5D73D01C234FA99BF0717794F6C11538A8AA4068D6E2E72C36C219BE30402000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210808_055230_592281_ACA719E3 X-CRM114-Status: GOOD ( 13.44 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org Some dsi panels require the dsi lanes keeping low before panel power on. So seperate the panel power control and the communication with panel. And put the power control in drm_panel_prepare_power and drm_panel_unprepare_power. Put the communication with panel in drm_panel_prepare and drm_panel_unprepare. Signed-off-by: Jitao Shi --- drivers/gpu/drm/bridge/panel.c | 17 +++++++++++++++ drivers/gpu/drm/drm_panel.c | 38 ++++++++++++++++++++++++++++++++++ include/drm/drm_bridge.h | 2 ++ include/drm/drm_panel.h | 17 +++++++++++++++ 4 files changed, 74 insertions(+) diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c index c916f4b8907e..3a846ac8e24c 100644 --- a/drivers/gpu/drm/bridge/panel.c +++ b/drivers/gpu/drm/bridge/panel.c @@ -137,6 +137,23 @@ static int panel_bridge_get_modes(struct drm_bridge *bridge, return drm_panel_get_modes(panel_bridge->panel, connector); } +int panel_bridge_prepare_power(struct drm_bridge *bridge) +{ + struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge); + + return drm_panel_prepare_power(panel_bridge->panel); +} +EXPORT_SYMBOL(panel_bridge_prepare_power); + +int panel_bridge_unprepare_power(struct drm_bridge *bridge) +{ + struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge); + + return drm_panel_unprepare_power(panel_bridge->panel); +} +EXPORT_SYMBOL(panel_bridge_unprepare_power); + + static const struct drm_bridge_funcs panel_bridge_bridge_funcs = { .attach = panel_bridge_attach, .detach = panel_bridge_detach, diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c index f634371c717a..7bb5185db17d 100644 --- a/drivers/gpu/drm/drm_panel.c +++ b/drivers/gpu/drm/drm_panel.c @@ -115,6 +115,24 @@ int drm_panel_prepare(struct drm_panel *panel) } EXPORT_SYMBOL(drm_panel_prepare); +/** + * drm_panel_prepare_power - power on a panel's power + * @panel: DRM panel + * + * Calling this function will enable power and deassert any reset signals to + * the panel. + * + * Return: 0 on success or a negative error code on failure. + */ +int drm_panel_prepare_power(struct drm_panel *panel) +{ + if (panel && panel->funcs && panel->funcs->prepare_power) + return panel->funcs->prepare_power(panel); + + return panel ? -ENOSYS : -EINVAL; +} +EXPORT_SYMBOL(drm_panel_prepare_power); + /** * drm_panel_unprepare - power off a panel * @panel: DRM panel @@ -138,6 +156,26 @@ int drm_panel_unprepare(struct drm_panel *panel) } EXPORT_SYMBOL(drm_panel_unprepare); +/** + * drm_panel_unprepare_power - power off a panel + * @panel: DRM panel + * + * Calling this function will completely power off a panel (assert the panel's + * reset, turn off power supplies, ...). After this function has completed, it + * is usually no longer possible to communicate with the panel until another + * call to drm_panel_prepare_power and drm_panel_prepare(). + * + * Return: 0 on success or a negative error code on failure. + */ +int drm_panel_unprepare_power(struct drm_panel *panel) +{ + if (panel && panel->funcs && panel->funcs->unprepare_power) + return panel->funcs->unprepare_power(panel); + + return panel ? -ENOSYS : -EINVAL; +} +EXPORT_SYMBOL(drm_panel_unprepare_power); + /** * drm_panel_enable - enable a panel * @panel: DRM panel diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h index 2195daa289d2..cc94c9da47d8 100644 --- a/include/drm/drm_bridge.h +++ b/include/drm/drm_bridge.h @@ -892,6 +892,8 @@ struct drm_bridge *devm_drm_panel_bridge_add_typed(struct device *dev, struct drm_panel *panel, u32 connector_type); struct drm_connector *drm_panel_bridge_connector(struct drm_bridge *bridge); +int panel_bridge_prepare_power(struct drm_bridge *bridge); +int panel_bridge_unprepare_power(struct drm_bridge *bridge); #endif #endif diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h index 33605c3f0eba..48e83712ad44 100644 --- a/include/drm/drm_panel.h +++ b/include/drm/drm_panel.h @@ -68,6 +68,13 @@ enum drm_panel_orientation; * functionality to enable/disable backlight. */ struct drm_panel_funcs { + /** + * @prepare_power: + * + * Turn on panel power. + */ + int (*prepare_power)(struct drm_panel *panel); + /** * @prepare: * @@ -115,6 +122,13 @@ struct drm_panel_funcs { int (*get_modes)(struct drm_panel *panel, struct drm_connector *connector); + /** + * @unprepare_power: + * + * Turn off panel_power. + */ + int (*unprepare_power)(struct drm_panel *panel); + /** * @get_timings: * @@ -180,6 +194,9 @@ void drm_panel_init(struct drm_panel *panel, struct device *dev, void drm_panel_add(struct drm_panel *panel); void drm_panel_remove(struct drm_panel *panel); +int drm_panel_prepare_power(struct drm_panel *panel); +int drm_panel_unprepare_power(struct drm_panel *panel); + int drm_panel_prepare(struct drm_panel *panel); int drm_panel_unprepare(struct drm_panel *panel); -- 2.25.1 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek