Skip to content

Commit

Permalink
mei: pxp: support matching with a gfx discrete card
Browse files Browse the repository at this point in the history
With on-boards graphics card, both i915 and MEI
are in the same device hierarchy with the same parent,
while for discrete gfx card the MEI is its child device.
Adjust the match function for that scenario
by matching MEI parent device with i915.

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Vitaly Lubart <vitaly.lubart@intel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: Alan Previn <alan.previn.teres.alexis@intel.com>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20220928004145.745803-7-daniele.ceraolospurio@intel.com
  • Loading branch information
tomasbw authored and dceraolo committed Oct 3, 2022
1 parent c728912 commit bd58904
Showing 1 changed file with 10 additions and 3 deletions.
13 changes: 10 additions & 3 deletions drivers/misc/mei/pxp/mei_pxp.c
Original file line number Diff line number Diff line change
Expand Up @@ -156,17 +156,24 @@ static int mei_pxp_component_match(struct device *dev, int subcomponent,
{
struct device *base = data;

if (!dev)
return 0;

if (!dev->driver || strcmp(dev->driver->name, "i915") ||
subcomponent != I915_COMPONENT_PXP)
return 0;

base = base->parent;
if (!base)
if (!base) /* mei device */
return 0;

base = base->parent;
dev = dev->parent;
base = base->parent; /* pci device */
/* for dgfx */
if (base && dev == base)
return 1;

/* for pch */
dev = dev->parent;
return (base && dev && dev == base);
}

Expand Down

0 comments on commit bd58904

Please sign in to comment.