On Wed, 18 May 2016 16:21:58 +0200 Gerd Hoffmann <kraxel@xxxxxxxxxx> wrote: > On Di, 2016-05-17 at 14:19 -0600, Alex Williamson wrote: > > +static int igd_gen(VFIOPCIDevice *vdev) > > +{ > > + if ((vdev->device_id & 0xfff) == 0xa84) { > > + return 8; /* Broxton */ > > + } > > + > > + switch (vdev->device_id & 0xff00) { > > + /* Old, untested, unavailable, unknown */ > > + case 0x0000: > > + case 0x2500: > > + case 0x2700: > > + case 0x2900: > > + case 0x2a00: > > + case 0x2e00: > > + case 0x3500: > > + case 0xa000: > > + return -1; > > + /* SandyBridge, IvyBridge, ValleyView, Haswell */ > > + case 0x0100: > > + case 0x0400: > > + case 0x0a00: > > + case 0x0c00: > > + case 0x0d00: > > + case 0x0f00: > > + return 6; > > + /* BroadWell, CherryView, SkyLake, KabyLake */ > > + case 0x1600: > > + case 0x1900: > > + case 0x2200: > > + case 0x5900: > > + return 8; > > + } > > + > > + return 8; /* Assume newer is compatible */ > > +} > > + > > This link: > https://github.com/01org/Igvtg-qemu/commit/ea32e6769004d6eb98d2dbd859d81bf1885c6ad2#diff-9d4d99332b83a7de33cbeed489d60448R920 > > happened to land in my inbox these days. It provides a bunch of > functions called is_$codename() and intel_gen_version(). Looks more > complete to me. Maybe we should pick up them and find a place in the > qemu source tree where both vfio and intel-vgpu (and maybe xen device > assignment too) can share those functions? Yeah, I used to have something more similar to that, this was an attempt to simplify since I know I'm already dealing with an Intel VGA device. That let's me not care that some of the device IDs I'll match won't be IGD devices because they'll never get to this filter. For me the is_sandbridge() and is_ivybridge() tests simplifies to that single first case of 0x0100. All of is_haswell() is covered by the next four lines, is_broadwell() and is_skylake() the first two in the next section. So I think I have those sufficiently covered and I add a few more, but it's entirely possible that there's no VT-d support on those extras, I didn't lookup ark specs for every processor in the series. I'm all for re-using a common function once we have more than one user, but I think for now this is simple and does the job. Thanks, Alex -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html