mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 04:33:26 +02:00
i2c: mux: mlxcpld: Add callback to notify mux creation completion
Add notification to inform caller that mux objects array has been created. It allows to user, invoked platform device registration for "i2c-mux-mlxcpld" driver, to be notified that mux infrastructure is available, and thus some devices could be connected to this infrastructure. Signed-off-by: Vadim Pasternak <vadimp@nvidia.com> Acked-by: Peter Rosin <peda@axentia.se> Signed-off-by: Wolfram Sang <wsa@kernel.org>
This commit is contained in:
committed by
Wolfram Sang
parent
699c050654
commit
a39bd92e92
@@ -159,6 +159,10 @@ static int mlxcpld_mux_probe(struct platform_device *pdev)
|
|||||||
goto virt_reg_failed;
|
goto virt_reg_failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Notify caller when all channels' adapters are created. */
|
||||||
|
if (pdata->completion_notify)
|
||||||
|
pdata->completion_notify(pdata->handle, muxc->parent, muxc->adapter);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
virt_reg_failed:
|
virt_reg_failed:
|
||||||
|
@@ -15,12 +15,17 @@
|
|||||||
* @num_adaps - number of adapters
|
* @num_adaps - number of adapters
|
||||||
* @sel_reg_addr - mux select register offset in CPLD space
|
* @sel_reg_addr - mux select register offset in CPLD space
|
||||||
* @reg_size: register size in bytes
|
* @reg_size: register size in bytes
|
||||||
|
* @handle: handle to be passed by callback
|
||||||
|
* @completion_notify: callback to notify when all the adapters are created
|
||||||
*/
|
*/
|
||||||
struct mlxcpld_mux_plat_data {
|
struct mlxcpld_mux_plat_data {
|
||||||
int *chan_ids;
|
int *chan_ids;
|
||||||
int num_adaps;
|
int num_adaps;
|
||||||
int sel_reg_addr;
|
int sel_reg_addr;
|
||||||
u8 reg_size;
|
u8 reg_size;
|
||||||
|
void *handle;
|
||||||
|
int (*completion_notify)(void *handle, struct i2c_adapter *parent,
|
||||||
|
struct i2c_adapter *adapters[]);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _LINUX_I2C_MLXCPLD_H */
|
#endif /* _LINUX_I2C_MLXCPLD_H */
|
||||||
|
Reference in New Issue
Block a user