From: Greg KH <gregkh@suse.de>
To: MyungJoo Ham <myungjoo.ham@gmail.com>
Cc: linux-kernel@vger.kernel.org,
"Randy Dunlap" <rdunlap@xenotime.net>,
"Mike Lockwood" <lockwood@android.com>,
"Arve Hjønnevåg" <arve@android.com>,
"Kyungmin Park" <kyungmin.park@samsung.com>,
"Donggeun Kim" <dg77.kim@samsung.com>,
"Arnd Bergmann" <arnd@arndb.de>,
"Linus Walleij" <linus.walleij@linaro.org>,
"Dmitry Torokhov" <dmitry.torokhov@gmail.com>,
NeilBrown <neilb@suse.de>,
"Morten CHRISTIANSEN" <morten.christiansen@stericsson.com>,
"Mark Brown" <broonie@opensource.wolfsonmicro.com>,
android-kernel@googlegroups.com
Subject: Re: [PATCH v2 1/3] Extcon (external connector): import Android's switch class and modify.
Date: Fri, 16 Dec 2011 10:18:55 -0800 [thread overview]
Message-ID: <20111216181855.GA6332@suse.de> (raw)
In-Reply-To: <CAJ0PZbT-qrnr74ggQEYRjgSRqoRbW5dAxRwfjtrrDCykuLGtjQ@mail.gmail.com>
On Fri, Dec 16, 2011 at 02:38:38PM +0900, MyungJoo Ham wrote:
> On Thu, Dec 15, 2011 at 4:18 PM, Greg KH <gregkh@suse.de> wrote:
> > On Thu, Dec 15, 2011 at 02:41:38PM +0900, MyungJoo Ham wrote:
> >> On Thu, Dec 15, 2011 at 10:01 AM, Greg KH <gregkh@suse.de> wrote:
> >> >
> >> > Nice, but if we accept this, will someone also make the needed changes
> >> > to the Android userspace code to handle the user api changes that this
> >> > causes?
> >>
> >> I have no idea about how Android will react to this as I have no
> >> developmental experiences with Android.
> >> However, from the perspective of general userspace, this modification
> >> incurs path changes (/sys/class/switch/.... to /sys/class/extcon/...)
> >> only.
> >
> > Well, without such changes, any Android platform will still have to
> > include the switch code in their system, making this work a bit
> > pointless, right?
> >
> > Please look into changing this in userspace, if for no other reason than
> > to test that this kernel code works properly with the Android userspace
> > needs as well.
>
> 1. Kernel source with Android patch has "switch" class drivers at
> /drivers/switch, which are not compatible with "extcon" class.
> 2. Android userspace access /sys/class/switch/ nodes, which are
> compatible with extcon nodes.
>
> Not to interfere with Android kernel patches, not to be confused with
> incompatible Android switch class and its drivers, and to be
> compatible with Android userspace at the same time, we may put the
> device drivers located at Linux/drivers/extcon/ and let the class uses
> /sys/class/switch/*.
No, that's really not going to help as you changed the way the sysfs
files worked, right?
> I remember there were big no-es on using the name "switch" for these
> external connectors; however, would this userspace class name be fine?
> Or would it be fine to make the class name customizable? (let the
> device driver choose whether to be named "switch" or "extcon" or let
> the class define its location based on kernel config).
>
> In order to get some comments from Android kernel builders, I've added
> android-kernel@googlegroups.com.
Why can't you submit patches for the userspace Android code to use this
new api instead of their sys/class/switch/ code? If functionally it's
the same, it should be ok to do this, right?
> >> >> + kobject_uevent(&edev->dev->kobj, KOBJ_CHANGE);
> >> >
> >> > I really dislike using uevents, what is listening for them? Are you
> >> > hooked into udev's event chain in userspace to properly handle this? If
> >> > not, what is the point of sending them?
> >>
> >> It is to let userspace processes get notified for the events in extcon.
> >> Do you think sysfs_notify() would be better for this purpose?
> >
> > No, I don't think it does what you think it does :)
> >
> > What are you trying to accomplish here? And how would sysfs_notify()
> > accomplish that?
>
> Android has been "observing" kobject uevents. It has been observing
> the switch class kobject (&edev->dev->kobj) and that has not been
> changed from Android kernel.
> In Android, with "startObserving" method, one can let a function to be
> called with incoming UEvent.
> I haven't look into how "startObserving" is implemented. However, they
> do observe KOBJ_CHANGE at userspace. And this is not limted to
> Android.
It would be good to figure out how "observing" actually works here.
> Here, my intention is the same. It is to invoke a function in a user
> process that has registered to be invoked for a UEvent. If we are
> going to use other methods for this, we will also force userspace
> processes to change their methods to get events (at least for switch
> class and chargers) not from UEVENT.
>
> Maybe the userspace is abusing UEVENT/KOBJ_CHANGE, though... that's
> what userspace observes to get events from kernel often.
I don't mind using the kobject change call, I just want to be very
careful about it as there aren't many users of it in the kernel at the
moment, and very little userspace code that I know of that takes
advantage of it.
If the Android framework is using it, that's fine, it's one reason to
use it, but actually determining this would be a good thing for you to
do, right?
thanks,
greg k-h
next prev parent reply other threads:[~2011-12-16 18:19 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-14 10:28 [PATCH v2 0/3] introduce External Connector Class (extcon) MyungJoo Ham
2011-12-14 10:28 ` [PATCH v2 1/3] Extcon (external connector): import Android's switch class and modify MyungJoo Ham
2011-12-15 1:01 ` Greg KH
2011-12-15 5:41 ` MyungJoo Ham
2011-12-15 7:18 ` Greg KH
2011-12-16 5:38 ` MyungJoo Ham
2011-12-16 18:18 ` Greg KH [this message]
2011-12-14 10:28 ` [PATCH v2 2/3] Extcon: support notification based on the state changes MyungJoo Ham
2011-12-14 10:28 ` [PATCH v2 3/3] Extcon: support multiple states at a device MyungJoo Ham
2011-12-15 2:32 ` [PATCH v2 0/3] introduce External Connector Class (extcon) NeilBrown
2011-12-15 6:36 ` MyungJoo Ham
2011-12-15 20:20 ` NeilBrown
2011-12-15 6:51 ` Mark Brown
2011-12-18 7:15 ` NeilBrown
2011-12-20 1:01 ` Mark Brown
2011-12-20 5:58 ` NeilBrown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20111216181855.GA6332@suse.de \
--to=gregkh@suse.de \
--cc=android-kernel@googlegroups.com \
--cc=arnd@arndb.de \
--cc=arve@android.com \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=dg77.kim@samsung.com \
--cc=dmitry.torokhov@gmail.com \
--cc=kyungmin.park@samsung.com \
--cc=linus.walleij@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lockwood@android.com \
--cc=morten.christiansen@stericsson.com \
--cc=myungjoo.ham@gmail.com \
--cc=neilb@suse.de \
--cc=rdunlap@xenotime.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).