On Wed, Jan 25, 2017 at 10:39:17AM -0800, Guenter Roeck wrote: > On Mon, Jan 23, 2017 at 04:44:23PM +0200, Felipe Balbi wrote: > > > > Hi, > > > > Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> writes: > > > +static void typec_report_identity(struct device *dev) > > > +{ > > > + sysfs_notify(&dev->kobj, "identity", "id_header"); > > > + sysfs_notify(&dev->kobj, "identity", "cert_stat"); > > > + sysfs_notify(&dev->kobj, "identity", "product"); > > > > if you sysfs_notify() all three everytime this might cause issues for > > userspace pollers. What will happen is that you're gonna change > > e.g. id_header and threads polling id_header, cert_stat and product will > > be notified of what's supposed to be new data. Maybe this should know > > what it's notifying and only notify what actually changed. Seems like > > just passing one extra char * argument is enough: > > > > static void typec_report_identity(struct device *dev, const char *prop) > > { > > sysfs_notify(&dev->kobj, "identity", prop); > > } > > > I must admit that I am kind of lost here. In practice all three values are > provided by the PD protocol in a single message, meaning they are all updated > at the same time. The result of this code is that I have to call the function > three times, each time providing what I think should be a class-internal string > as parameter (the low level code should not really be concerned about the > sysfs attribute names). What exactly are we gaining from this ? Felipe, please correct me if I'm wrong, but I believe you just did not know that all the values are provided in a single message. Let's skip that API change in any case. Thanks guys, -- heikki -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html