[PATCH 06/14] drm/i915/gvt: Add GTT clear_pse operation

Zhenyu Wang zhenyuw at linux.intel.com
Fri Mar 23 03:22:18 UTC 2018


On 2018.03.15 15:05:05 +0800, changbin.du at intel.com wrote:
> From: Changbin Du <changbin.du at intel.com>
> 
> If we cannot setup 2M gtt page, we need split it into small pages.
>

Looks commit description doesn't match title and patch content.

> Signed-off-by: Changbin Du <changbin.du at intel.com>
> ---
>  drivers/gpu/drm/i915/gvt/gtt.c | 19 +++++++++++++++++++
>  drivers/gpu/drm/i915/gvt/gtt.h |  1 +
>  2 files changed, 20 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/gvt/gtt.c b/drivers/gpu/drm/i915/gvt/gtt.c
> index 05b724e..05f9bb6 100644
> --- a/drivers/gpu/drm/i915/gvt/gtt.c
> +++ b/drivers/gpu/drm/i915/gvt/gtt.c
> @@ -390,6 +390,24 @@ static bool gen8_gtt_test_pse(struct intel_gvt_gtt_entry *e)
>  	return !!(e->val64 & _PAGE_PSE);
>  }
>  
> +static void gen8_gtt_clear_pse(struct intel_gvt_gtt_entry *e)
> +{
> +	if (gen8_gtt_test_pse(e)) {
> +		switch (e->type) {
> +		case GTT_TYPE_PPGTT_PTE_2M_ENTRY:
> +			e->val64 &= ~_PAGE_PSE;
> +			e->type = GTT_TYPE_PPGTT_PDE_ENTRY;
> +			break;
> +		case GTT_TYPE_PPGTT_PTE_1G_ENTRY:
> +			e->type = GTT_TYPE_PPGTT_PDP_ENTRY;
> +			e->val64 &= ~_PAGE_PSE;
> +			break;
> +		default:
> +			WARN_ON(1);
> +		}
> +	}
> +}
> +
>  static bool gen8_gtt_test_ips(struct intel_gvt_gtt_entry *e)
>  {
>  	if (GEM_WARN_ON(e->type != GTT_TYPE_PPGTT_PDE_ENTRY))
> @@ -477,6 +495,7 @@ static struct intel_gvt_gtt_pte_ops gen8_gtt_pte_ops = {
>  	.set_present = gtt_entry_set_present,
>  	.test_present = gen8_gtt_test_present,
>  	.test_pse = gen8_gtt_test_pse,
> +	.clear_pse = gen8_gtt_clear_pse,
>  	.clear_ips = gen8_gtt_clear_ips,
>  	.test_ips = gen8_gtt_test_ips,
>  	.clear_64k_splited = gen8_gtt_clear_64k_splited,
> diff --git a/drivers/gpu/drm/i915/gvt/gtt.h b/drivers/gpu/drm/i915/gvt/gtt.h
> index 0122185..62f65b5 100644
> --- a/drivers/gpu/drm/i915/gvt/gtt.h
> +++ b/drivers/gpu/drm/i915/gvt/gtt.h
> @@ -63,6 +63,7 @@ struct intel_gvt_gtt_pte_ops {
>  	void (*clear_present)(struct intel_gvt_gtt_entry *e);
>  	void (*set_present)(struct intel_gvt_gtt_entry *e);
>  	bool (*test_pse)(struct intel_gvt_gtt_entry *e);
> +	void (*clear_pse)(struct intel_gvt_gtt_entry *e);
>  	bool (*test_ips)(struct intel_gvt_gtt_entry *e);
>  	void (*clear_ips)(struct intel_gvt_gtt_entry *e);
>  	bool (*test_64k_splited)(struct intel_gvt_gtt_entry *e);
> -- 
> 2.7.4
> 
> _______________________________________________
> intel-gvt-dev mailing list
> intel-gvt-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gvt-dev

-- 
Open Source Technology Center, Intel ltd.

$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/intel-gvt-dev/attachments/20180323/99df86ef/attachment-0001.sig>


More information about the intel-gvt-dev mailing list