Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp1303289ybt; Thu, 2 Jul 2020 01:58:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwdGLCf3QuEv2rsPncWUTwBEvpaLjvE1Ya8OiFZ0wRv/WJwOTpo6AFuCwljuSwyvIETeNvJ X-Received: by 2002:a17:907:2489:: with SMTP id zg9mr25278860ejb.48.1593680279977; Thu, 02 Jul 2020 01:57:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593680279; cv=none; d=google.com; s=arc-20160816; b=Eze1TsdCW/MP9JCR2dhdVmQsKby1/11HJfkKMjJSt6XxMnEhPVoOijos9Qf0bkBdem xdC0GLYAh72+cpa5d++lvssLUUn3gOURdCVHuX9iNb8gKMms4cHaUmXwyYuV9BmX7xaz FUMWN6h/sanVovJK/IpugcHD3X5iezpBmMhnoaj7zaAypPKfTZu+rgAxD5IJ9vDwsnGv mW5bvauztnrx4OzxqbSXKPxHMDQlF7cxzECAfXE5W07jyCt032p46LyGnvHtjG1/HbMD jpuNOE82QurYy4MwAzCd+OOEpYR6F7G9hq8q2mJQYml5n9w3VpqXxtlP9nSbLyjkdzqg fahg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject:cc :to:from; bh=lrjKf5a4/QQd+R6LTGhOaZSd5wjgPMqFPfeqsnGjiYY=; b=bk/W+NkzIZrvxylhIc2UuTXb/xobbuwRGSq2GTZEcvL3+Ge+mzRqQOHbzQIur/m9Z+ DX9genzP4A+EmakgVyAk/cK7O+JQhrbPNcLlOBzDJreGt06uXHEp7xstEAdcg36keQhm EddSQzAHWML45FWQlNLTnOXna7/eEjI/5WkNExTGVv3PUWnpn/z55sj10XkfvWV394uY thlXwZOmiPaYuDaF2roazkVtVyByrwJlEEljBC37NaKoC41ZUIN0SpfYbEJ44b9chK6d p482P13aRINNYPnN3fRs2p1Kl8yTqVK2t7eKJVFTn2xp/RpYjePukNP7iPjsdc70icpm Xp2w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id be27si5725847edb.50.2020.07.02.01.57.36; Thu, 02 Jul 2020 01:57:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727900AbgGBI4a (ORCPT + 99 others); Thu, 2 Jul 2020 04:56:30 -0400 Received: from szxga05-in.huawei.com ([45.249.212.191]:6801 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726862AbgGBI4a (ORCPT ); Thu, 2 Jul 2020 04:56:30 -0400 Received: from DGGEMS414-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id DC9D7E2B65F69A5A6435; Thu, 2 Jul 2020 16:56:27 +0800 (CST) Received: from localhost.localdomain (10.69.192.56) by DGGEMS414-HUB.china.huawei.com (10.3.19.214) with Microsoft SMTP Server id 14.3.487.0; Thu, 2 Jul 2020 16:56:17 +0800 From: Tian Tao To: , , , , , , , , , CC: Subject: [PATCH v3] drm/hisilicon: Code refactoring for hibmc_drv_vdac Date: Thu, 2 Jul 2020 16:54:41 +0800 Message-ID: <1593680081-60313-1-git-send-email-tiantao6@hisilicon.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.69.192.56] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org code refactoring for hibmc_drv_vdac.c, no actual function changes. v2: remove the debug message. v3: embedding connector and encoder in struct hibmc_drm_private. Signed-off-by: Tian Tao --- drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.h | 2 + drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c | 52 +++++------------------- 2 files changed, 13 insertions(+), 41 deletions(-) diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.h b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.h index 50a0c1f..6097687 100644 --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.h +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.h @@ -29,6 +29,8 @@ struct hibmc_drm_private { /* drm */ struct drm_device *dev; + struct drm_encoder encoder; + struct drm_connector connector; bool mode_config_initialized; }; diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c index 678ac2e..2ca69c3 100644 --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c @@ -52,32 +52,6 @@ static const struct drm_connector_funcs hibmc_connector_funcs = { .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, }; -static struct drm_connector * -hibmc_connector_init(struct hibmc_drm_private *priv) -{ - struct drm_device *dev = priv->dev; - struct drm_connector *connector; - int ret; - - connector = devm_kzalloc(dev->dev, sizeof(*connector), GFP_KERNEL); - if (!connector) { - DRM_ERROR("failed to alloc memory when init connector\n"); - return ERR_PTR(-ENOMEM); - } - - ret = drm_connector_init(dev, connector, - &hibmc_connector_funcs, - DRM_MODE_CONNECTOR_VGA); - if (ret) { - DRM_ERROR("failed to init connector: %d\n", ret); - return ERR_PTR(ret); - } - drm_connector_helper_add(connector, - &hibmc_connector_helper_funcs); - - return connector; -} - static void hibmc_encoder_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode, struct drm_display_mode *adj_mode) @@ -105,23 +79,10 @@ static const struct drm_encoder_funcs hibmc_encoder_funcs = { int hibmc_vdac_init(struct hibmc_drm_private *priv) { struct drm_device *dev = priv->dev; - struct drm_encoder *encoder; - struct drm_connector *connector; + struct drm_encoder *encoder = &priv->encoder; + struct drm_connector *connector = &priv->connector; int ret; - connector = hibmc_connector_init(priv); - if (IS_ERR(connector)) { - DRM_ERROR("failed to create connector: %ld\n", - PTR_ERR(connector)); - return PTR_ERR(connector); - } - - encoder = devm_kzalloc(dev->dev, sizeof(*encoder), GFP_KERNEL); - if (!encoder) { - DRM_ERROR("failed to alloc memory when init encoder\n"); - return -ENOMEM; - } - encoder->possible_crtcs = 0x1; ret = drm_encoder_init(dev, encoder, &hibmc_encoder_funcs, DRM_MODE_ENCODER_DAC, NULL); @@ -131,6 +92,15 @@ int hibmc_vdac_init(struct hibmc_drm_private *priv) } drm_encoder_helper_add(encoder, &hibmc_encoder_helper_funcs); + + ret = drm_connector_init(dev, connector, &hibmc_connector_funcs, + DRM_MODE_CONNECTOR_VGA); + if (ret) { + DRM_ERROR("failed to init connector: %d\n", ret); + return ret; + } + drm_connector_helper_add(connector, &hibmc_connector_helper_funcs); + drm_connector_attach_encoder(connector, encoder); return 0; -- 2.7.4