Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752141AbdFNJvV convert rfc822-to-8bit (ORCPT ); Wed, 14 Jun 2017 05:51:21 -0400 Received: from mga03.intel.com ([134.134.136.65]:60709 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750743AbdFNJuT (ORCPT ); Wed, 14 Jun 2017 05:50:19 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.39,340,1493708400"; d="scan'208";a="1141153273" From: "Chen, Xiaoguang" To: Zhenyu Wang CC: "alex.williamson@redhat.com" , "kraxel@redhat.com" , "chris@chris-wilson.co.uk" , "intel-gfx@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" , "Lv, Zhiyuan" , "intel-gvt-dev@lists.freedesktop.org" , "Wang, Zhi A" , "Tian, Kevin" Subject: RE: [PATCH v8 3/6] drm/i915/gvt: Frame buffer decoder support for GVT-g Thread-Topic: [PATCH v8 3/6] drm/i915/gvt: Frame buffer decoder support for GVT-g Thread-Index: AQHS4O0Bm449/aDKU0u0r5VpEk2IsqIjnBKAgACIEGA= Date: Wed, 14 Jun 2017 09:50:07 +0000 Message-ID: References: <1496991042-2265-1-git-send-email-xiaoguang.chen@intel.com> <1496991042-2265-4-git-send-email-xiaoguang.chen@intel.com> <20170614093845.3r5kgryn5o6jh2ik@zhen-hp.sh.intel.com> In-Reply-To: <20170614093845.3r5kgryn5o6jh2ik@zhen-hp.sh.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 10.0.102.7 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3393 Lines: 99 >-----Original Message----- >From: Zhenyu Wang [mailto:zhenyuw@linux.intel.com] >Sent: Wednesday, June 14, 2017 5:39 PM >To: Chen, Xiaoguang >Cc: alex.williamson@redhat.com; kraxel@redhat.com; chris@chris-wilson.co.uk; >intel-gfx@lists.freedesktop.org; linux-kernel@vger.kernel.org; >zhenyuw@linux.intel.com; Lv, Zhiyuan ; intel-gvt- >dev@lists.freedesktop.org; Wang, Zhi A ; Tian, Kevin > >Subject: Re: [PATCH v8 3/6] drm/i915/gvt: Frame buffer decoder support for GVT- >g > >On 2017.06.09 14:50:39 +0800, Xiaoguang Chen wrote: >> decode frambuffer attributes of primary, cursor and sprite plane >> >> Signed-off-by: Xiaoguang Chen > >... > >> +/** >> + * intel_vgpu_decode_primary_plane - Decode primary plane >> + * @vgpu: input vgpu >> + * @plane: primary plane to save decoded info >> + * This function is called for decoding plane >> + * >> + * Returns: >> + * 0 on success, non-zero if failed. >> + */ >> +int intel_vgpu_decode_primary_plane(struct intel_vgpu *vgpu, >> + struct intel_vgpu_primary_plane_format *plane) { >> + u32 val, fmt; >> + struct drm_i915_private *dev_priv = vgpu->gvt->dev_priv; >> + int pipe; >> + >> + pipe = get_active_pipe(vgpu); >> + if (pipe >= I915_MAX_PIPES) >> + return -ENODEV; >> + >> + val = vgpu_vreg(vgpu, DSPCNTR(pipe)); >> + plane->enabled = !!(val & DISPLAY_PLANE_ENABLE); >> + if (!plane->enabled) >> + return -ENODEV; >> + >> + if (IS_SKYLAKE(dev_priv)) { >> + plane->tiled = (val & PLANE_CTL_TILED_MASK) >> >> + _PLANE_CTL_TILED_SHIFT; >> + fmt = skl_format_to_drm( >> + val & PLANE_CTL_FORMAT_MASK, >> + val & PLANE_CTL_ORDER_RGBX, >> + val & PLANE_CTL_ALPHA_MASK, >> + val & PLANE_CTL_YUV422_ORDER_MASK); >> + plane->bpp = skl_pixel_formats[fmt].bpp; >> + plane->drm_format = skl_pixel_formats[fmt].drm_format; >> + } else { >> + plane->tiled = !!(val & DISPPLANE_TILED); >> + fmt = (val & DISPPLANE_PIXFORMAT_MASK) >> >_PRI_PLANE_FMT_SHIFT; >> + plane->bpp = bdw_pixel_formats[fmt].bpp; >> + plane->drm_format = bdw_pixel_formats[fmt].drm_format; >> + } >> + >> + if (!skl_pixel_formats[fmt].bpp && !bdw_pixel_formats[fmt].bpp) { >> + gvt_vgpu_err("Non-supported pixel format (0x%x)\n", fmt); >> + return -EINVAL; >> + } > >Is this correct? shouldn't be plane->bpp as last time comment? Yes. But use plane->bpp is more concisely. Will change. > >> diff --git a/include/uapi/drm/drm_fourcc.h >> b/include/uapi/drm/drm_fourcc.h index 55e3010..400759f 100644 >> --- a/include/uapi/drm/drm_fourcc.h >> +++ b/include/uapi/drm/drm_fourcc.h >> @@ -161,6 +161,12 @@ extern "C" { >> #define DRM_FORMAT_YUV444 fourcc_code('Y', 'U', '2', '4') /* non- >subsampled Cb (1) and Cr (2) planes */ >> #define DRM_FORMAT_YVU444 fourcc_code('Y', 'V', '2', '4') /* non- >subsampled Cr (1) and Cb (2) planes */ >> >> +/* >> + * Intel GVT-g plane format definition */ #define >> +DRM_FORMAT_XRGB161616_GVT fourcc_code('X', 'R', '4', '8') /* [63:0] >> +x:R:G:B 16:16:16:16 little endian */ #define >> +DRM_FORMAT_XBGR161616_GVT fourcc_code('X', 'B', '4', '8') /* [63:0] >> +x:B:G:R 16:16:16:16 little endian */ >> + >> > >This should be a seperate patch and not need GVT postfix for format definition. OK. > >-- >Open Source Technology Center, Intel ltd. > >$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827