[Intel-gfx] [PATCH 1/1] drm/i915/mtl: enable local stolen memory

Matt Roper matthew.d.roper at intel.com
Tue Sep 20 20:40:52 UTC 2022


On Tue, Sep 20, 2022 at 06:57:46PM +0200, Andi Shyti wrote:
> Hi Aravind,
> 
> > +static int get_mtl_gms_size(struct intel_uncore *uncore)
> > +{
> > +	u16 ggc, gms;
> > +
> > +	ggc = intel_uncore_read16(uncore, _MMIO(0x108040));
> > +
> > +	/* check GGMS, should be fixed 0x3 (8MB) */
> > +	if ((ggc & 0xc0) != 0xc0)
> > +		return -EIO;
> > +
> > +	/* return valid GMS value, -EIO if invalid */
> > +	gms = ggc >> 8;
> > +	switch (gms) {
> > +	case 0x0 ... 0x10:
> > +		return gms * 32;
> > +	case 0x20:
> > +		return 1024;
> > +	case 0x30:
> > +		return 1536;
> > +	case 0x40:
> > +		return 2048;
> > +	case 0xf0 ... 0xfe:
> 
> just a bit puzzled by the fact that case ranges are not standard
> and are supported only by GCC, unless, of course, I miss
> something. Do we still want to use them as they are widely used
> around the kernel?

i915 already has 17 other uses of this notation and the DRM subsystem in
general has about 50 today.  So it's not super common, but I think it
should be okay to use.  I believe clang supports this language extension
as well and the coding style doc doesn't say anything one way or the
other.


Matt

> 
> Andi
> 
> > +		return (gms - 0xf0 + 1) * 4;
> > +	default:
> > +		return -EIO;
> > +	}
> > +}

-- 
Matt Roper
Graphics Software Engineer
VTT-OSGC Platform Enablement
Intel Corporation


More information about the dri-devel mailing list