On Tue, Sep 15, 2015 at 07:57:19PM +0300, Ville Syrjälä wrote:
On Tue, Sep 15, 2015 at 09:27:27AM -0700, Rafael Antognolli wrote:
On Tue, Sep 15, 2015 at 10:46:43AM +0300, Ville Syrjälä wrote:
On Mon, Sep 14, 2015 at 04:12:30PM -0700, Rafael Antognolli wrote:
This list will be used to get the aux channels registered through the helpers. Two functions are provided to register/unregister notifier listeners on the list, and another functiont to iterate over the list of aux channels.
Signed-off-by: Rafael Antognolli rafael.antognolli@intel.com
drivers/gpu/drm/drm_dp_helper.c | 71 +++++++++++++++++++++++++++++++++++++++++ include/drm/drm_dp_helper.h | 6 ++++ 2 files changed, 77 insertions(+)
diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c index 291734e..01a1489 100644 --- a/drivers/gpu/drm/drm_dp_helper.c +++ b/drivers/gpu/drm/drm_dp_helper.c @@ -710,6 +710,54 @@ static const struct i2c_algorithm drm_dp_i2c_algo = { .master_xfer = drm_dp_i2c_xfer, };
+struct drm_dp_aux_node {
- struct klist_node list;
- struct drm_dp_aux *aux;
+};
+static DEFINE_KLIST(drm_dp_aux_list, NULL, NULL);
+static BLOCKING_NOTIFIER_HEAD(aux_notifier);
+int drm_dp_aux_register_notifier(struct notifier_block *nb) +{
- return blocking_notifier_chain_register(&aux_notifier, nb);
+} +EXPORT_SYMBOL(drm_dp_aux_register_notifier);
Why is this notifier stuff needed? Why not just register/unregister the aux-dev directly?
I am not sure it's needed, I was just looking for the best way of informing aux-dev that a new aux channel was added.
By register/unregister the aux-dev directly, do you mean making this drm_dp_helper aware of the aux dev, when it's registered, and directly calling some callback to inform that new aux channels were added?
That was my thought, yes. It would mean the auxdev module can't be unloaded like i2c-dev, but I'm not sure that's a use case worth worrying about.
Yeah imo notifiers are evil because of locking inversion issues that usually grop up, and having a use-case to unload dp_aux-dev seems unlikely. Maybe we can do a Kconfig knob or something like that if some people want to make the dev nodes optional. -Daniel