[media] smiapp: Add register diversion quirk
Add a quirk for diverting registers for on some sensors, even the standard registers are not where they can be expected to be found. Add a quirk to to help using such sensors. smiapp_write_no_quirk() and smiapp_read_no_quirk() functions are provided for the use of quirk implementations. Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
This commit is contained in:

committato da
Mauro Carvalho Chehab

parent
03efb2a067
commit
6f7481b668
@@ -35,6 +35,17 @@ struct smiapp_sensor;
|
||||
* @post_poweron: Called always after the sensor has been fully powered on.
|
||||
* @pre_streamon: Called just before streaming is enabled.
|
||||
* @post_streamon: Called right after stopping streaming.
|
||||
* @reg_access: Register access quirk. The quirk may divert the access
|
||||
* to another register, or no register at all.
|
||||
*
|
||||
* @write: Is this read (false) or write (true) access?
|
||||
* @reg: Pointer to the register to access
|
||||
* @value: Register value, set by the caller on write, or
|
||||
* by the quirk on read
|
||||
*
|
||||
* @return: 0 on success, -ENOIOCTLCMD if no register
|
||||
* access may be done by the caller (default read
|
||||
* value is zero), else negative error code on error
|
||||
*/
|
||||
struct smiapp_quirk {
|
||||
int (*limits)(struct smiapp_sensor *sensor);
|
||||
@@ -42,6 +53,8 @@ struct smiapp_quirk {
|
||||
int (*pre_streamon)(struct smiapp_sensor *sensor);
|
||||
int (*post_streamoff)(struct smiapp_sensor *sensor);
|
||||
unsigned long (*pll_flags)(struct smiapp_sensor *sensor);
|
||||
int (*reg_access)(struct smiapp_sensor *sensor, bool write, u32 *reg,
|
||||
u32 *val);
|
||||
unsigned long flags;
|
||||
};
|
||||
|
||||
|
Fai riferimento in un nuovo problema
Block a user