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.kroge...@linux.intel.com> 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to