<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/staging/greybus/module.c, branch v4.9</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>greybus: fix a leak on error in gb_module_create()</title>
<updated>2016-10-24T13:51:00+00:00</updated>
<author>
<name>Dan Carpenter</name>
<email>dan.carpenter@oracle.com</email>
</author>
<published>2016-10-14T19:18:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e866dd8aab76b6a0ee8428491e65fa5c83a6ae5a'/>
<id>e866dd8aab76b6a0ee8428491e65fa5c83a6ae5a</id>
<content type='text'>
We should release -&gt;interfaces[0] as well.

Fixes: b15d97d77017 ("greybus: core: add module abstraction")
Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Acked-by: Viresh Kumar &lt;viresh.kumar@linaro.org&gt;
Acked-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We should release -&gt;interfaces[0] as well.

Fixes: b15d97d77017 ("greybus: core: add module abstraction")
Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Acked-by: Viresh Kumar &lt;viresh.kumar@linaro.org&gt;
Acked-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>greybus: interface: prevent reactivation during removal</title>
<updated>2016-07-20T17:16:54+00:00</updated>
<author>
<name>Johan Hovold</name>
<email>johan@hovoldconsulting.com</email>
</author>
<published>2016-07-20T14:40:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=12169bc9143ed24ad7a5ea12a7c28d1dba891131'/>
<id>12169bc9143ed24ad7a5ea12a7c28d1dba891131</id>
<content type='text'>
Make sure to prevent an interface that is going away from being
reactivated.

This is needed to preemptively close a race between the upcoming feature
to reactivate a powered-down interface and physical removal (i.e.
module_removed event processing) as well as logical removal (e.g. the
current system-suspend hack).

Reviewed-by: Sandeep Patil &lt;sspatil@google.com&gt;
Signed-off-by: Johan Hovold &lt;johan@hovoldconsulting.com&gt;
Reviewed-by: Alex Elder &lt;elder@linaro.org&gt;
Reviewed-by: Viresh Kumar &lt;viresh.kumar@linaro.org&gt;
Reviewed-by: Patrick Titiano &lt;ptitiano@baylibre.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@google.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make sure to prevent an interface that is going away from being
reactivated.

This is needed to preemptively close a race between the upcoming feature
to reactivate a powered-down interface and physical removal (i.e.
module_removed event processing) as well as logical removal (e.g. the
current system-suspend hack).

Reviewed-by: Sandeep Patil &lt;sspatil@google.com&gt;
Signed-off-by: Johan Hovold &lt;johan@hovoldconsulting.com&gt;
Reviewed-by: Alex Elder &lt;elder@linaro.org&gt;
Reviewed-by: Viresh Kumar &lt;viresh.kumar@linaro.org&gt;
Reviewed-by: Patrick Titiano &lt;ptitiano@baylibre.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@google.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>greybus: interface: clean up ES3 activation-retry hack</title>
<updated>2016-07-20T17:16:54+00:00</updated>
<author>
<name>Johan Hovold</name>
<email>johan@hovoldconsulting.com</email>
</author>
<published>2016-07-20T14:40:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=3e93cb6abbc023aebf311618481263e000bf26fb'/>
<id>3e93cb6abbc023aebf311618481263e000bf26fb</id>
<content type='text'>
Clean up the ES3 activation retry-hack and isolate it in the interface
code.

This way the retry hack can be reused when we soon start allowing
interfaces to be reactivated after having been powered down.

Reviewed-by: Sandeep Patil &lt;sspatil@google.com&gt;
Signed-off-by: Johan Hovold &lt;johan@hovoldconsulting.com&gt;
Reviewed-by: Alex Elder &lt;elder@linaro.org&gt;
Reviewed-by: Viresh Kumar &lt;viresh.kumar@linaro.org&gt;
Reviewed-by: Patrick Titiano &lt;ptitiano@baylibre.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@google.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Clean up the ES3 activation retry-hack and isolate it in the interface
code.

This way the retry hack can be reused when we soon start allowing
interfaces to be reactivated after having been powered down.

Reviewed-by: Sandeep Patil &lt;sspatil@google.com&gt;
Signed-off-by: Johan Hovold &lt;johan@hovoldconsulting.com&gt;
Reviewed-by: Alex Elder &lt;elder@linaro.org&gt;
Reviewed-by: Viresh Kumar &lt;viresh.kumar@linaro.org&gt;
Reviewed-by: Patrick Titiano &lt;ptitiano@baylibre.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@google.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>greybus: interface: use an enum for interface type</title>
<updated>2016-07-20T17:16:54+00:00</updated>
<author>
<name>Johan Hovold</name>
<email>johan@hovoldconsulting.com</email>
</author>
<published>2016-07-20T14:40:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a212b7586712208804d3d51efa9fdf6e23b2480a'/>
<id>a212b7586712208804d3d51efa9fdf6e23b2480a</id>
<content type='text'>
Use an enum for the interface type instead of using the SVC protocol
values directly.

Suggested-by: Viresh Kumar &lt;viresh.kumar@linaro.org&gt;
Signed-off-by: Johan Hovold &lt;johan@hovoldconsulting.com&gt;
Reviewed-by: Alex Elder &lt;elder@linaro.org&gt;
Reviewed-by: Viresh Kumar &lt;viresh.kumar@linaro.org&gt;
Reviewed-by: Sandeep Patil &lt;sspatil@google.com&gt;
Reviewed-by: Patrick Titiano &lt;ptitiano@baylibre.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@google.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use an enum for the interface type instead of using the SVC protocol
values directly.

Suggested-by: Viresh Kumar &lt;viresh.kumar@linaro.org&gt;
Signed-off-by: Johan Hovold &lt;johan@hovoldconsulting.com&gt;
Reviewed-by: Alex Elder &lt;elder@linaro.org&gt;
Reviewed-by: Viresh Kumar &lt;viresh.kumar@linaro.org&gt;
Reviewed-by: Sandeep Patil &lt;sspatil@google.com&gt;
Reviewed-by: Patrick Titiano &lt;ptitiano@baylibre.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@google.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>greybus: module: suppress activation error message for dummy interfaces</title>
<updated>2016-07-20T02:06:34+00:00</updated>
<author>
<name>Johan Hovold</name>
<email>johan@hovoldconsulting.com</email>
</author>
<published>2016-07-19T13:24:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=6633d80afbeecd91d5d786d6fbb32cdb8bc0a567'/>
<id>6633d80afbeecd91d5d786d6fbb32cdb8bc0a567</id>
<content type='text'>
We currently handle dummy interfaces by deactivating them using
activation error paths, but we don't want the corresponding
module_inserted error message to be printed.

Signed-off-by: Johan Hovold &lt;johan@hovoldconsulting.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@google.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We currently handle dummy interfaces by deactivating them using
activation error paths, but we don't want the corresponding
module_inserted error message to be printed.

Signed-off-by: Johan Hovold &lt;johan@hovoldconsulting.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@google.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>greybus: fix tracepoint-related whitespace issues</title>
<updated>2016-05-27T19:26:31+00:00</updated>
<author>
<name>Johan Hovold</name>
<email>johan@hovoldconsulting.com</email>
</author>
<published>2016-05-27T16:23:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=dacf3eb7f3c1c474a55f7c24eef39011784d558c'/>
<id>dacf3eb7f3c1c474a55f7c24eef39011784d558c</id>
<content type='text'>
Fix some whitespace issues introduced by the recent tracepoint changes.

Signed-off-by: Johan Hovold &lt;johan@hovoldconsulting.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@google.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix some whitespace issues introduced by the recent tracepoint changes.

Signed-off-by: Johan Hovold &lt;johan@hovoldconsulting.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@google.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>greybus: tracing: add module traces</title>
<updated>2016-05-27T05:37:19+00:00</updated>
<author>
<name>Alex Elder</name>
<email>elder@linaro.org</email>
</author>
<published>2016-05-24T04:05:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=5451ea0e99cb7d58cbf90c7785cb50cc322a4434'/>
<id>5451ea0e99cb7d58cbf90c7785cb50cc322a4434</id>
<content type='text'>
Define a new gb_module trace point event class, used to trace events
associated with the module abstraction.  Define four basic trace
points for this--creation time, drop of last reference, before
registring interfaces and after de-registering them.

Signed-off-by: Alex Elder &lt;elder@linaro.org&gt;
Reviewed-by: Bryan O'Donoghue &lt;bryan.odonoghue@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@google.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Define a new gb_module trace point event class, used to trace events
associated with the module abstraction.  Define four basic trace
points for this--creation time, drop of last reference, before
registring interfaces and after de-registering them.

Signed-off-by: Alex Elder &lt;elder@linaro.org&gt;
Reviewed-by: Bryan O'Donoghue &lt;bryan.odonoghue@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@google.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>greybus: interface: retry enumeration of UniPro-only modules</title>
<updated>2016-05-19T01:59:22+00:00</updated>
<author>
<name>Jeffrey Carlyle</name>
<email>jcarlyle@google.com</email>
</author>
<published>2016-05-19T01:55:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e16715c135d80aafea867849f938b080d4f4eadb'/>
<id>e16715c135d80aafea867849f938b080d4f4eadb</id>
<content type='text'>
Greybus modules will sometimes fail to send the mailbox poke and
erroneously be enumerated as UniPro-only modules. The root cause for
this on the module side is not fully understand, but it seems that this
may be due to "the bootrom bug:" a known problem with the bootrom where
linkup will occasionally fail because of a race condition.

Before the new hotplug code was implemented in the firmware, the SVC
would retry enumeration of modules that did not send the mailbox poke;
this patch ports that functionality to the AP.

Signed-off-by: Jeffrey Carlyle &lt;jcarlyle@google.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@google.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Greybus modules will sometimes fail to send the mailbox poke and
erroneously be enumerated as UniPro-only modules. The root cause for
this on the module side is not fully understand, but it seems that this
may be due to "the bootrom bug:" a known problem with the bootrom where
linkup will occasionally fail because of a race condition.

Before the new hotplug code was implemented in the firmware, the SVC
would retry enumeration of modules that did not send the mailbox poke;
this patch ports that functionality to the AP.

Signed-off-by: Jeffrey Carlyle &lt;jcarlyle@google.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@google.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>greybus: module: implement controlled module removal</title>
<updated>2016-04-25T18:08:30+00:00</updated>
<author>
<name>Johan Hovold</name>
<email>johan@hovoldconsulting.com</email>
</author>
<published>2016-04-23T16:47:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=36602a2981c85de7b0b8600eb12cbad3d80eacd9'/>
<id>36602a2981c85de7b0b8600eb12cbad3d80eacd9</id>
<content type='text'>
Implement controlled module removal through a new module attribute
"eject".

When a non-zero argument is written to the attribute, all interfaces of
the module are disabled (e.g. bundles are deregistered) and deactivated
(e.g. powered off) before instructing the SVC to physically eject the
module.

Note that the module device is not deregistered until the SVC has
reported the physical removal of all of its interfaces.

A new interface mutex is added to enforce interface state-change
serialisation.

Signed-off-by: Johan Hovold &lt;johan@hovoldconsulting.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@google.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implement controlled module removal through a new module attribute
"eject".

When a non-zero argument is written to the attribute, all interfaces of
the module are disabled (e.g. bundles are deregistered) and deactivated
(e.g. powered off) before instructing the SVC to physically eject the
module.

Note that the module device is not deregistered until the SVC has
reported the physical removal of all of its interfaces.

A new interface mutex is added to enforce interface state-change
serialisation.

Signed-off-by: Johan Hovold &lt;johan@hovoldconsulting.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@google.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>greybus: core: add module abstraction</title>
<updated>2016-04-25T18:08:30+00:00</updated>
<author>
<name>Johan Hovold</name>
<email>johan@hovoldconsulting.com</email>
</author>
<published>2016-04-23T16:47:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b15d97d77017dc168c74c5e9aacfe14ff74dcbe9'/>
<id>b15d97d77017dc168c74c5e9aacfe14ff74dcbe9</id>
<content type='text'>
Add Greybus module abstraction that will be used to implement controlled
module removal (eject) and represent module geometry.

Greybus module devices correspond to physical modules and have one or
more interfaces. Modules have an id that is identical to the id of their
primary interface, which in turn is the interface with lowest numbered
id. The module name is constructed from the bus and module id:

        &lt;bus_id&gt;-&lt;module_id&gt;

Interfaces, bundles, and control devices are consequently renamed as

        &lt;bus_id&gt;-&lt;module_id&gt;.&lt;interface_id&gt;
        &lt;bus_id&gt;-&lt;module_id&gt;.&lt;interface_id&gt;.&lt;bundle_id&gt;
        &lt;bus_id&gt;-&lt;module_id&gt;.&lt;interface_id&gt;.ctrl

As before, interface ids (and therefore in a sense now also module ids)
correspond to physical interface positions on the frame.

Modules have the following attributes:

        module_id
        num_interfaces

where module_id is the id of the module and num_interface the number of
interfaces the module has.

Note that until SVC module-size detection has been implemented, all
interfaces are considered to be part of 1x2 modules. Specifically, the
two interfaces of a 2x2 module will be presented as two 1x2 modules for
now.

Signed-off-by: Johan Hovold &lt;johan@hovoldconsulting.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@google.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add Greybus module abstraction that will be used to implement controlled
module removal (eject) and represent module geometry.

Greybus module devices correspond to physical modules and have one or
more interfaces. Modules have an id that is identical to the id of their
primary interface, which in turn is the interface with lowest numbered
id. The module name is constructed from the bus and module id:

        &lt;bus_id&gt;-&lt;module_id&gt;

Interfaces, bundles, and control devices are consequently renamed as

        &lt;bus_id&gt;-&lt;module_id&gt;.&lt;interface_id&gt;
        &lt;bus_id&gt;-&lt;module_id&gt;.&lt;interface_id&gt;.&lt;bundle_id&gt;
        &lt;bus_id&gt;-&lt;module_id&gt;.&lt;interface_id&gt;.ctrl

As before, interface ids (and therefore in a sense now also module ids)
correspond to physical interface positions on the frame.

Modules have the following attributes:

        module_id
        num_interfaces

where module_id is the id of the module and num_interface the number of
interfaces the module has.

Note that until SVC module-size detection has been implemented, all
interfaces are considered to be part of 1x2 modules. Specifically, the
two interfaces of a 2x2 module will be presented as two 1x2 modules for
now.

Signed-off-by: Johan Hovold &lt;johan@hovoldconsulting.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@google.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
