All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Wu, Wentong" <wentong.wu@intel.com>
To: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: "mchehab@kernel.org" <mchehab@kernel.org>,
	"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
	"Pandruvada, Srinivas" <srinivas.pandruvada@intel.com>,
	"pierre-louis.bossart@linux.intel.com" 
	<pierre-louis.bossart@linux.intel.com>,
	"Wang, Zhifeng" <zhifeng.wang@intel.com>,
	"Ye, Xiang" <xiang.ye@intel.com>,
	"Qiu, Tian Shu" <tian.shu.qiu@intel.com>,
	"Cao, Bingbu" <bingbu.cao@intel.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Hans de Goede <hdegoede@redhat.com>
Subject: RE: [PATCH v2 0/3] media: pci: intel: ivsc: Add driver of Intel Visual Sensing Controller(IVSC)
Date: Fri, 3 Mar 2023 06:10:23 +0000	[thread overview]
Message-ID: <DM6PR11MB43161891523B407883E9B4488DB39@DM6PR11MB4316.namprd11.prod.outlook.com> (raw)
In-Reply-To: <Y/8qJzScTfFucpP9@kekkonen.localdomain>

> -----Original Message-----
> From: Sakari Ailus <sakari.ailus@linux.intel.com>
> Sent: Wednesday, March 1, 2023 6:34 PM
> 
> Hi Wentong,
> 
> On Mon, Feb 13, 2023 at 10:23:44AM +0800, Wentong Wu wrote:
> > Intel Visual Sensing Controller (IVSC), codenamed "Clover Falls", is a
> > companion chip designed to provide secure and low power vision
> > capability to IA platforms. IVSC is available in existing commercial
> > platforms from multiple OEMs.
> >
> > The primary use case of IVSC is to bring in context awareness. IVSC
> > interfaces directly with the platform main camera sensor via a CSI-2
> > link and processes the image data with the embedded AI engine. The
> > detected events are sent over I2C to ISH (Intel Sensor Hub) for
> > additional data fusion from multiple sensors. The fusion results are
> > used to implement advanced use cases like:
> >  - Face detection to unlock screen
> >  - Detect user presence to manage backlight setting or waking up
> > system
> >
> > Since the Image Processing Unit(IPU) used on the host processor needs
> > to configure the CSI-2 link in normal camera usages, the CSI-2 link
> > and camera sensor can only be used in mutually-exclusive ways by host
> > IPU and IVSC. By default the IVSC owns the CSI-2 link and camera
> > sensor. The IPU driver can take ownership of the CSI-2 link and camera
> > sensor using interfaces provided by this IVSC driver.
> >
> > Switching ownership requires an interface with two different hardware
> > modules inside IVSC. The software interface to these modules is via
> > Intel MEI (The Intel Management Engine) commands. These two hardware
> > modules have two different MEI UUIDs to enumerate. These hardware
> modules are:
> >  - ACE (Algorithm Context Engine): This module is for algorithm
> > computing when IVSC owns camera sensor. Also ACE module controls
> > camera sensor's ownership. This hardware module is used to set ownership of
> camera sensor.
> >  - CSI (Camera Serial Interface): This module is used to route camera
> > sensor data either to IVSC or to host for IPU driver and application.
> >
> > IVSC also provides a privacy mode. When privacy mode is turned on,
> > camera sensor can't be used. This means that both ACE and host IPU
> > can't get image data. And when this mode is turned on, host IPU driver
> > is informed via a registered callback, so that user can be notified.
> >
> > In summary, to acquire ownership of camera by IPU driver, first ACE
> > module needs to be informed of ownership and then to setup MIPI CSI-2
> > link for the camera sensor and IPU.
> 
> I thought this for a while and did some research, and I can suggest the
> following:

Thanks a lot

> 
> - The IVSC sub-device implements a control for privacy (V4L2_CID_PRIVACY
>   is a good fit).

Agree, thanks

> 
> - Camera sensor access needs to be requested from IVSC before accessing the
>   sensor via I²C. The IVSC ownership control needs to be in the right
>   setting for this to work, and device links can be used for that purpose
>   (see device_link_add()). With DL_FLAG_PM_RUNTIME and
> DL_FLAG_RPM_ACTIVE,
>   the supplier devices will be PM runtime resumed before the consumer
>   (camera sensor). As these devices are purely virtual on host side and has
>   no power state as such, you can use runtime PM callbacks to transfer the
>   ownership.
> 

That's pretty cool, and the device link will be setup during mei_ace's probe with
device_link_add, but we should guarantee there is no i2c transfer during sensor
driver's probe. And most of upstream sensor drivers don't initial i2c transfer
during probe, but I have no idea what will be like for our upstreaming sensor drivers.

> - The CSI-2 configuration should take place when streaming starts on the
>   sensor (as well as IVSC).

IPU driver should make sure start sensor streaming first and then IVSC sub-dev,
which will match the command downloading sequence required by firmware. 

> 
> - Device links need to be set up via IPU bridge which now is called  CIO2
>   bridge (cio2-bridge.c).

Reviewing the code

> 
> Any questions, comments?
> 
> --
> Kind regards,
> 
> Sakari Ailus

      parent reply	other threads:[~2023-03-03  6:10 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-13  2:23 [PATCH v2 0/3] media: pci: intel: ivsc: Add driver of Intel Visual Sensing Controller(IVSC) Wentong Wu
2023-02-13  2:23 ` [PATCH v2 1/3] media: pci: intel: ivsc: Add CSI submodule Wentong Wu
2023-02-14 21:32   ` Sakari Ailus
2023-02-13  2:23 ` [PATCH v2 2/3] media: pci: intel: ivsc: Add ACE submodule Wentong Wu
2023-02-13  2:23 ` [PATCH v2 3/3] media: pci: intel: ivsc: Add acquire/release API for ivsc Wentong Wu
2023-02-14 16:06   ` Sakari Ailus
2023-02-15  9:03     ` Hans de Goede
2023-02-15  9:45       ` Laurent Pinchart
2023-02-17  6:10         ` Wu, Wentong
2023-02-17 11:19           ` Laurent Pinchart
2023-02-20  3:50             ` Wu, Wentong
2023-02-20  8:36               ` Sakari Ailus
2023-02-20  8:57                 ` Wu, Wentong
2023-02-20  9:03                   ` Hans de Goede
2023-03-01  0:09                     ` Laurent Pinchart
2023-02-28  6:42             ` Wu, Wentong
2023-02-28  6:35     ` Wu, Wentong
2023-02-28  8:23       ` Sakari Ailus
2023-03-01  7:26         ` Wu, Wentong
2023-03-01 11:11           ` Sakari Ailus
2023-02-13  3:20 ` [PATCH v2 0/3] media: pci: intel: ivsc: Add driver of Intel Visual Sensing Controller(IVSC) Pandruvada, Srinivas
2023-02-14  6:34   ` Wu, Wentong
     [not found] ` <20230213034202.2926-1-hdanton@sina.com>
2023-02-14  6:25   ` [PATCH v2 1/3] media: pci: intel: ivsc: Add CSI submodule Wu, Wentong
     [not found]   ` <20230214083533.3410-1-hdanton@sina.com>
2023-02-14 12:40     ` Wu, Wentong
     [not found]     ` <20230214235405.3587-1-hdanton@sina.com>
2023-02-17  5:52       ` Wu, Wentong
     [not found]       ` <20230217062815.1682-1-hdanton@sina.com>
2023-02-17  7:37         ` Wu, Wentong
2023-02-15  9:43 ` [PATCH v2 0/3] media: pci: intel: ivsc: Add driver of Intel Visual Sensing Controller(IVSC) Laurent Pinchart
2023-02-15 12:09   ` Bingbu Cao
2023-02-16 13:12     ` Sakari Ailus
2023-02-17  1:43       ` Bingbu Cao
2023-02-17  6:28         ` Wu, Wentong
2023-02-17 10:49           ` Sakari Ailus
2023-02-20  3:45             ` Wu, Wentong
2023-02-17  6:20   ` Wu, Wentong
2023-02-17 11:12     ` Laurent Pinchart
2023-02-20  4:00       ` Wu, Wentong
2023-03-01 10:34 ` Sakari Ailus
2023-03-01 10:41   ` Hans de Goede
2023-03-07  8:17     ` Wu, Wentong
2023-03-07  8:30       ` Sakari Ailus
2023-03-07  8:40         ` Wu, Wentong
2023-03-07  9:10           ` Hans de Goede
2023-03-09  1:08             ` Wu, Wentong
2023-03-09  9:28               ` Hans de Goede
2023-03-09 13:21                 ` Wu, Wentong
2023-03-09 15:24                   ` Hans de Goede
2023-03-16  2:58                     ` Wu, Wentong
2023-03-16  9:03                       ` Hans de Goede
2023-03-17  7:30                         ` Wu, Wentong
2023-03-17  8:58                           ` Sakari Ailus
2023-03-19 13:09                             ` Wu, Wentong
2023-03-16  8:11                     ` Wu, Wentong
2023-03-16  8:37                       ` Hans de Goede
2023-03-03  6:10   ` Wu, Wentong [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DM6PR11MB43161891523B407883E9B4488DB39@DM6PR11MB4316.namprd11.prod.outlook.com \
    --to=wentong.wu@intel.com \
    --cc=bingbu.cao@intel.com \
    --cc=hdegoede@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=sakari.ailus@linux.intel.com \
    --cc=srinivas.pandruvada@intel.com \
    --cc=tian.shu.qiu@intel.com \
    --cc=xiang.ye@intel.com \
    --cc=zhifeng.wang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.