From patchwork Mon May 16 13:19:32 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mika Kahola X-Patchwork-Id: 9110371 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id E20F79FB33 for ; Tue, 17 May 2016 08:09:00 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 9816F201EF for ; Tue, 17 May 2016 08:08:58 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 864A6202FE for ; Tue, 17 May 2016 08:08:56 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 07DD96E63A; Tue, 17 May 2016 08:08:45 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 0C21B6E42D; Mon, 16 May 2016 13:19:52 +0000 (UTC) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga103.fm.intel.com with ESMTP; 16 May 2016 06:19:51 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.24,627,1455004800"; d="scan'208";a="982011304" Received: from sorvi.fi.intel.com ([10.237.72.50]) by fmsmga002.fm.intel.com with ESMTP; 16 May 2016 06:19:51 -0700 From: Mika Kahola To: dri-devel@lists.freedesktop.org Subject: [PATCH v2 6/7] drm: Read DPCD receiver capability for DP to Wireless Converter Date: Mon, 16 May 2016 16:19:32 +0300 Message-Id: <1463404773-5167-7-git-send-email-mika.kahola@intel.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1463404773-5167-1-git-send-email-mika.kahola@intel.com> References: <1463404773-5167-1-git-send-email-mika.kahola@intel.com> X-Mailman-Approved-At: Tue, 17 May 2016 08:08:36 +0000 Cc: daniel.vetter@intel.com, intel-gfx@lists.freedesktop.org, jim.bish@intel.com X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-5.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Read from DPCD receiver capability field for the DP to Wireless converter. The only supported wireless technology on DP1.3 spec is WiGig display extension. If WiGig display extension is present, then read out the - number of wde tx on device - the number of wde txs that can be concurrently active Signed-off-by: Mika Kahola --- drivers/gpu/drm/drm_dp_helper.c | 7 +++++++ include/drm/drm_dp_helper.h | 13 +++++++++++++ 2 files changed, 20 insertions(+) diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c index f98e4be..2c91771 100644 --- a/drivers/gpu/drm/drm_dp_helper.c +++ b/drivers/gpu/drm/drm_dp_helper.c @@ -468,6 +468,13 @@ int drm_dp_bd(struct drm_dp_aux *aux, struct drm_dp_bd *bd) bd->dfp.dual_mode.tmds_clk = info[1] * 2500; bd->dfp.dual_mode.bpc = info[2] & DP_DS_VGA_MAX_BPC_MASK; bd->dfp.dual_mode.frame_seq_to_frame_pack = info[3] & FRAME_SEQ_TO_FRAME_PACK; + } else if (bd->type & DP_DS_PORT_TYPE_WIRELESS) { + bd->dfp.wireless.wireless_tech = info[1] & DP_DS_WIRELESS_TECH_MASK; + + if (bd->dfp.wireless.wireless_tech == 0x0) { + bd->dfp.wireless.number_of_wde_tx_on_device = info[2] & WIRELESS_MASK; + bd->dfp.wireless.wde_tx_concurrency_cap = (info[2]>>2) & WIRELESS_MASK; + } } } diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h index c12c64b..a9d278d 100644 --- a/include/drm/drm_dp_helper.h +++ b/include/drm/drm_dp_helper.h @@ -229,6 +229,9 @@ # define YCBCR420_PASS_THROUGH (1<<2) # define YCBCR444_TO_YCBCR422 (1<<3) # define YCBCR444_TO_YCBCR420 (1<<4) +/* offset 3 for Wireless */ +# define DP_DS_WIRELESS_TECH_MASK 0xf +# define WIRELESS_MASK 3 /* link configuration */ #define DP_LINK_BW_SET 0x100 @@ -850,6 +853,15 @@ struct drm_dp_dual_mode { }; /* + * DP to Wireless + */ +struct drm_dp_wireless { + int wireless_tech; + int number_of_wde_tx_on_device; + int wde_tx_concurrency_cap; +}; + +/* * Branch device */ struct drm_dp_bd { @@ -861,6 +873,7 @@ struct drm_dp_bd { struct drm_dp_dvi dvi; struct drm_dp_hdmi hdmi; struct drm_dp_dual_mode dual_mode; + struct drm_dp_wireless wireless; } dfp; };