media: pci: intel: ivsc: Add ACE submodule
authorWentong Wu <wentong.wu@intel.com>
Sat, 29 Jul 2023 11:52:54 +0000 (13:52 +0200)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Mon, 14 Aug 2023 18:27:55 +0000 (20:27 +0200)
commit78876f71b3e99d82bbc700674a6b05e7d429f4a2
tree2230152816b122dfaac50359193fabe629f3d75f
parent29006e196a5661d9afc8152fa2bf8a5347ac17b4
media: pci: intel: ivsc: Add ACE submodule

ACE is a submodule of IVSC which controls camera sensor's
ownership, belonging to host or IVSC. When IVSC owns camera
sensor, it is for algorithm computing. When host wants to
control camera sensor, ACE module needs to be informed of
ownership with defined interface.

The interface is via MEI. There is a separate MEI UUID, which
this driver uses to enumerate.

To switch ownership of camera sensor between IVSC and host,
the caller specifies the defined ownership information which
will be sent to firmware by sending MEI command.

Device link(device_link_add) is used to set the right camera
sensor ownership before accessing the sensor via I2C. With
DL_FLAG_PM_RUNTIME and DL_FLAG_RPM_ACTIVE, the supplier device
will be PM runtime resumed before the consumer(camera sensor).
So use runtime PM callbacks to transfer the ownership between
host and IVSC.

Signed-off-by: Wentong Wu <wentong.wu@intel.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/pci/intel/ivsc/Makefile
drivers/media/pci/intel/ivsc/mei_ace.c [new file with mode: 0644]