diff mbox series

[libdrm,v2,5/5] intel: get gen once for gen >= 9

Message ID 20180829003532.22878-6-lucas.demarchi@intel.com (mailing list archive)
State New, archived
Headers show
Series intel: rework how we add PCI IDs | expand

Commit Message

Lucas De Marchi Aug. 29, 2018, 12:35 a.m. UTC
We don't need to call IS_GEN() for each gen >= 9: we can rather use the
new intel_is_genx() helper to iterate the pciids array once.

Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
 intel/intel_bufmgr_gem.c | 8 +-------
 intel/intel_decode.c     | 8 ++------
 2 files changed, 3 insertions(+), 13 deletions(-)

Comments

Chris Wilson Aug. 29, 2018, 2:31 p.m. UTC | #1
Quoting Lucas De Marchi (2018-08-29 01:35:32)
> We don't need to call IS_GEN() for each gen >= 9: we can rather use the
> new intel_is_genx() helper to iterate the pciids array once.
> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
> ---
>  intel/intel_bufmgr_gem.c | 8 +-------
>  intel/intel_decode.c     | 8 ++------
>  2 files changed, 3 insertions(+), 13 deletions(-)
> 
> diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c
> index 8c3a4b20..d6587b76 100644
> --- a/intel/intel_bufmgr_gem.c
> +++ b/intel/intel_bufmgr_gem.c
> @@ -3656,13 +3656,7 @@ drm_intel_bufmgr_gem_init(int fd, int batch_size)
>                 bufmgr_gem->gen = 7;
>         else if (IS_GEN8(bufmgr_gem->pci_device))
>                 bufmgr_gem->gen = 8;
> -       else if (IS_GEN9(bufmgr_gem->pci_device))
> -               bufmgr_gem->gen = 9;
> -       else if (IS_GEN10(bufmgr_gem->pci_device))
> -               bufmgr_gem->gen = 10;
> -       else if (IS_GEN11(bufmgr_gem->pci_device))
> -               bufmgr_gem->gen = 11;
> -       else {
> +       else if (!intel_get_genx(bufmgr_gem->pci_device, &bufmgr_gem->gen)) {
>                 free(bufmgr_gem);
>                 bufmgr_gem = NULL;
>                 goto exit;

And while you are here, don't exit for an unknown gen, just pretend it's
a future one. i915_pciids.h should contain *all* ids, even reserved, for
exactly this reason. (The same behaviour is relied on elsewhere so that
we don't get caught out by some one retrospectively introducing a new
chip. Don't even get started on the abuse of pci-id for sub-gen
encoding...)
-Chris
Lucas De Marchi Sept. 5, 2018, 6:01 p.m. UTC | #2
On Wed, Aug 29, 2018 at 03:31:11PM +0100, Chris Wilson wrote:
> Quoting Lucas De Marchi (2018-08-29 01:35:32)
> > We don't need to call IS_GEN() for each gen >= 9: we can rather use the
> > new intel_is_genx() helper to iterate the pciids array once.
> > 
> > Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
> > ---
> >  intel/intel_bufmgr_gem.c | 8 +-------
> >  intel/intel_decode.c     | 8 ++------
> >  2 files changed, 3 insertions(+), 13 deletions(-)
> > 
> > diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c
> > index 8c3a4b20..d6587b76 100644
> > --- a/intel/intel_bufmgr_gem.c
> > +++ b/intel/intel_bufmgr_gem.c
> > @@ -3656,13 +3656,7 @@ drm_intel_bufmgr_gem_init(int fd, int batch_size)
> >                 bufmgr_gem->gen = 7;
> >         else if (IS_GEN8(bufmgr_gem->pci_device))
> >                 bufmgr_gem->gen = 8;
> > -       else if (IS_GEN9(bufmgr_gem->pci_device))
> > -               bufmgr_gem->gen = 9;
> > -       else if (IS_GEN10(bufmgr_gem->pci_device))
> > -               bufmgr_gem->gen = 10;
> > -       else if (IS_GEN11(bufmgr_gem->pci_device))
> > -               bufmgr_gem->gen = 11;
> > -       else {
> > +       else if (!intel_get_genx(bufmgr_gem->pci_device, &bufmgr_gem->gen)) {
> >                 free(bufmgr_gem);
> >                 bufmgr_gem = NULL;
> >                 goto exit;
> 
> And while you are here, don't exit for an unknown gen, just pretend it's
> a future one. i915_pciids.h should contain *all* ids, even reserved, for
> exactly this reason. (The same behaviour is relied on elsewhere so that
> we don't get caught out by some one retrospectively introducing a new
> chip. Don't even get started on the abuse of pci-id for sub-gen
> encoding...)

This can be done as a separate series, otherwise we will just start
shoving a lot of things on top of this series and never get it merged.

Lucas De Marchi
diff mbox series

Patch

diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c
index 8c3a4b20..d6587b76 100644
--- a/intel/intel_bufmgr_gem.c
+++ b/intel/intel_bufmgr_gem.c
@@ -3656,13 +3656,7 @@  drm_intel_bufmgr_gem_init(int fd, int batch_size)
 		bufmgr_gem->gen = 7;
 	else if (IS_GEN8(bufmgr_gem->pci_device))
 		bufmgr_gem->gen = 8;
-	else if (IS_GEN9(bufmgr_gem->pci_device))
-		bufmgr_gem->gen = 9;
-	else if (IS_GEN10(bufmgr_gem->pci_device))
-		bufmgr_gem->gen = 10;
-	else if (IS_GEN11(bufmgr_gem->pci_device))
-		bufmgr_gem->gen = 11;
-	else {
+	else if (!intel_get_genx(bufmgr_gem->pci_device, &bufmgr_gem->gen)) {
 		free(bufmgr_gem);
 		bufmgr_gem = NULL;
 		goto exit;
diff --git a/intel/intel_decode.c b/intel/intel_decode.c
index b24861b1..0ff095bc 100644
--- a/intel/intel_decode.c
+++ b/intel/intel_decode.c
@@ -3823,12 +3823,8 @@  drm_intel_decode_context_alloc(uint32_t devid)
 	ctx->devid = devid;
 	ctx->out = stdout;
 
-	if (IS_GEN11(devid))
-		ctx->gen = 11;
-	else if (IS_GEN10(devid))
-		ctx->gen = 10;
-	else if (IS_GEN9(devid))
-		ctx->gen = 9;
+	if (intel_get_genx(devid, &ctx->gen))
+		;
 	else if (IS_GEN8(devid))
 		ctx->gen = 8;
 	else if (IS_GEN7(devid))