media: v4l2-async: Pass notifier pointer to match functions
The notifier is useful to match functions to access information about the device matching a subdev. This will be used to print messages using the correct struct device and driver name. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo+renesas@jmondi.org> Tested-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
b98158d837
commit
3e33392a95
@ -50,7 +50,8 @@ static int v4l2_async_notifier_call_complete(struct v4l2_async_notifier *n)
|
||||
return n->ops->complete(n);
|
||||
}
|
||||
|
||||
static bool match_i2c(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
|
||||
static bool match_i2c(struct v4l2_async_notifier *notifier,
|
||||
struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
|
||||
{
|
||||
#if IS_ENABLED(CONFIG_I2C)
|
||||
struct i2c_client *client = i2c_verify_client(sd->dev);
|
||||
@ -63,13 +64,14 @@ static bool match_i2c(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
|
||||
#endif
|
||||
}
|
||||
|
||||
static bool match_devname(struct v4l2_subdev *sd,
|
||||
struct v4l2_async_subdev *asd)
|
||||
static bool match_devname(struct v4l2_async_notifier *notifier,
|
||||
struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
|
||||
{
|
||||
return !strcmp(asd->match.device_name, dev_name(sd->dev));
|
||||
}
|
||||
|
||||
static bool match_fwnode(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
|
||||
static bool match_fwnode(struct v4l2_async_notifier *notifier,
|
||||
struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
|
||||
{
|
||||
struct fwnode_handle *other_fwnode;
|
||||
struct fwnode_handle *dev_fwnode;
|
||||
@ -115,7 +117,8 @@ static bool match_fwnode(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
|
||||
return dev_fwnode == other_fwnode;
|
||||
}
|
||||
|
||||
static bool match_custom(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
|
||||
static bool match_custom(struct v4l2_async_notifier *notifier,
|
||||
struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
|
||||
{
|
||||
if (!asd->match.custom.match)
|
||||
/* Match always */
|
||||
@ -132,7 +135,8 @@ static struct v4l2_async_subdev *
|
||||
v4l2_async_find_match(struct v4l2_async_notifier *notifier,
|
||||
struct v4l2_subdev *sd)
|
||||
{
|
||||
bool (*match)(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd);
|
||||
bool (*match)(struct v4l2_async_notifier *notifier,
|
||||
struct v4l2_subdev *sd, struct v4l2_async_subdev *asd);
|
||||
struct v4l2_async_subdev *asd;
|
||||
|
||||
list_for_each_entry(asd, ¬ifier->waiting, list) {
|
||||
@ -157,7 +161,7 @@ v4l2_async_find_match(struct v4l2_async_notifier *notifier,
|
||||
}
|
||||
|
||||
/* match cannot be NULL here */
|
||||
if (match(sd, asd))
|
||||
if (match(notifier, sd, asd))
|
||||
return asd;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user