lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 2 Mar 2017 16:16:17 +0200
From:   Sakari Ailus <sakari.ailus@....fi>
To:     Pavel Machek <pavel@....cz>
Cc:     sre@...nel.org, pali.rohar@...il.com, linux-media@...r.kernel.org,
        linux-kernel@...r.kernel.org, laurent.pinchart@...asonboard.com,
        mchehab@...nel.org, ivo.g.dimitrov.75@...il.com
Subject: Re: subdevice config into pointer (was Re: [PATCH 1/4] v4l2:
 device_register_subdev_nodes: allow calling multiple times)

Hi Pavel,

On Thu, Mar 02, 2017 at 10:07:27AM +0100, Pavel Machek wrote:
> Hi!
> 
> > Making the sub-device bus configuration a pointer should be in a separate
> > patch. It makes sense since the entire configuration is not valid for all
> > sub-devices attached to the ISP anymore. I think it originally was a
> > separate patch, but they probably have been merged at some point. I can't
> > find it right now anyway.
> 
> Something like this?
> 									Pavel
> 
> commit df9141c66678b549fac9d143bd55ed0b242cf36e
> Author: Pavel <pavel@....cz>
> Date:   Wed Mar 1 13:27:56 2017 +0100
> 
>     Turn bus in struct isp_async_subdev into pointer; some of our subdevs
>     (flash, focus) will not need bus configuration.
> 
> Signed-off-by: Pavel Machek <pavel@....cz>

I applied this to the ccp2 branch with an improved patch description.

> 
> diff --git a/drivers/media/platform/omap3isp/isp.c b/drivers/media/platform/omap3isp/isp.c
> index 8a456d4..36bd359 100644
> --- a/drivers/media/platform/omap3isp/isp.c
> +++ b/drivers/media/platform/omap3isp/isp.c
> @@ -2030,12 +2030,18 @@ enum isp_of_phy {
>  static int isp_fwnode_parse(struct device *dev, struct fwnode_handle *fwn,
>  			    struct isp_async_subdev *isd)
>  {
> -	struct isp_bus_cfg *buscfg = &isd->bus;
> +	struct isp_bus_cfg *buscfg;
>  	struct v4l2_fwnode_endpoint vfwn;
>  	unsigned int i;
>  	int ret;
>  	bool csi1 = false;
>  
> +	buscfg = devm_kzalloc(dev, sizeof(*isd->bus), GFP_KERNEL);
> +	if (!buscfg)
> +		return -ENOMEM;
> +
> +	isd->bus = buscfg;
> +
>  	ret = v4l2_fwnode_endpoint_parse(fwn, &vfwn);
>  	if (ret)
>  		return ret;
> @@ -2246,7 +2252,7 @@ static int isp_subdev_notifier_bound(struct v4l2_async_notifier *async,
>  		container_of(asd, struct isp_async_subdev, asd);
>  
>  	isd->sd = subdev;
> -	isd->sd->host_priv = &isd->bus;
> +	isd->sd->host_priv = isd->bus;
>  
>  	return 0;
>  }
> diff --git a/drivers/media/platform/omap3isp/isp.h b/drivers/media/platform/omap3isp/isp.h
> index 7e6f663..c0b9d1d 100644
> --- a/drivers/media/platform/omap3isp/isp.h
> +++ b/drivers/media/platform/omap3isp/isp.h
> @@ -228,7 +228,7 @@ struct isp_device {
>  
>  struct isp_async_subdev {
>  	struct v4l2_subdev *sd;
> -	struct isp_bus_cfg bus;
> +	struct isp_bus_cfg *bus;
>  	struct v4l2_async_subdev asd;
>  };
>  
> diff --git a/drivers/media/platform/omap3isp/ispcsiphy.c b/drivers/media/platform/omap3isp/ispcsiphy.c
> index f20abe8..be23408 100644
> --- a/drivers/media/platform/omap3isp/ispcsiphy.c
> +++ b/drivers/media/platform/omap3isp/ispcsiphy.c
> @@ -202,7 +202,7 @@ static int omap3isp_csiphy_config(struct isp_csiphy *phy)
>  		struct isp_async_subdev *isd =
>  			container_of(pipe->external->asd,
>  				     struct isp_async_subdev, asd);
> -		buscfg = &isd->bus;
> +		buscfg = isd->bus;
>  	}
>  
>  	if (buscfg->interface == ISP_INTERFACE_CCP2B_PHY1
> 
> 

-- 
Regards,

Sakari Ailus
e-mail: sakari.ailus@....fi	XMPP: sailus@...iisi.org.uk

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ