<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/misc/mei/client.c, branch linux-4.2.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.2.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.2.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2015-06-14T02:48:02Z</updated>
<entry>
<title>mei: me: wait for power gating exit confirmation</title>
<updated>2015-06-14T02:48:02Z</updated>
<author>
<name>Alexander Usyskin</name>
</author>
<published>2015-06-13T05:51:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3dc196eae1db548f05e53e5875ff87b8ff79f249'/>
<id>urn:sha1:3dc196eae1db548f05e53e5875ff87b8ff79f249</id>
<content type='text'>
Fix the hbm power gating state machine so it will wait till it receives
confirmation interrupt for the PG_ISOLATION_EXIT message.

In process of the suspend flow the devices first have to exit from the
power gating state (runtime pm resume).
If we do not handle the confirmation interrupt after sending
PG_ISOLATION_EXIT message, we may receive it already after the suspend
flow has changed the device state and interrupt will be interpreted as a
spurious event, consequently link reset will be invoked which will
prevent the device from completing the suspend flow

kernel: [6603] mei_reset:136: mei_me 0000:00:16.0: powering down: end of reset
kernel: [476] mei_me_irq_thread_handler:643: mei_me 0000:00:16.0: function called after ISR to handle the interrupt processing.
kernel: mei_me 0000:00:16.0: FW not ready: resetting

Cc: &lt;stable@vger.kernel.org&gt; #3.18+
Cc: Gabriele Mazzotta &lt;gabriele.mzt@gmail.com&gt;
Link: https://bugzilla.kernel.org/show_bug.cgi?id=86241
Link: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=770397
Tested-by: Gabriele Mazzotta &lt;gabriele.mzt@gmail.com&gt;
Signed-off-by: Alexander Usyskin &lt;alexander.usyskin@intel.com&gt;
Signed-off-by: Tomas Winkler &lt;tomas.winkler@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>mei: reset flow control on the last client disconnection</title>
<updated>2015-06-14T02:48:02Z</updated>
<author>
<name>Alexander Usyskin</name>
</author>
<published>2015-06-13T18:18:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c241e9b1d9ee7292d708d2298bc87f1455aad0c7'/>
<id>urn:sha1:c241e9b1d9ee7292d708d2298bc87f1455aad0c7</id>
<content type='text'>
The FW resets the flow control for single buffer clients when the last
host client disconnects, also the driver has to follow this policy and
zero the flow control counter in such case.

Cc: &lt;stable@vger.kernel.org&gt; #4.1
Signed-off-by: Alexander Usyskin &lt;alexander.usyskin@intel.com&gt;
Signed-off-by: Tomas Winkler &lt;tomas.winkler@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>mei: request autosuspend at the end of write</title>
<updated>2015-05-24T18:15:53Z</updated>
<author>
<name>Alexander Usyskin</name>
</author>
<published>2015-05-07T12:53:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a1809d38900cff016b2bac9d82766f7420f8eb5d'/>
<id>urn:sha1:a1809d38900cff016b2bac9d82766f7420f8eb5d</id>
<content type='text'>
On longer non-blocking write might not complete at the end of
autosuspend expiration, therefore we request autosuspend
again on the write completion.

Signed-off-by: Alexander Usyskin &lt;alexander.usyskin@intel.com&gt;
Signed-off-by: Tomas Winkler &lt;tomas.winkler@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>mei: consume flow control on the first chunk of writing</title>
<updated>2015-05-24T18:15:53Z</updated>
<author>
<name>Alexander Usyskin</name>
</author>
<published>2015-05-07T12:53:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b8b730357967ac2ec49dcffd2dc2b354f0fdd011'/>
<id>urn:sha1:b8b730357967ac2ec49dcffd2dc2b354f0fdd011</id>
<content type='text'>
Consume the write flow control on the first chunk of the write instead
of on the buffer completion.
We can safely assume that the consequent chunks have the flow control
granted.

This addresses two issues:

1. Blocks other callbacks from the same client riding on the client's
flow control and prevents interleaving of messages as FW cannot distinguish
between two messages from the same client.

2. Fixes single buffer flow control arbitration in a clean way, without
connection/disconnection book keeping

Signed-off-by: Alexander Usyskin &lt;alexander.usyskin@intel.com&gt;
Signed-off-by: Tomas Winkler &lt;tomas.winkler@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>mei: support for fixed address clients</title>
<updated>2015-05-24T18:13:48Z</updated>
<author>
<name>Alexander Usyskin</name>
</author>
<published>2015-05-04T06:43:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1df629ef4d553cc2bebde565462b36465521284f'/>
<id>urn:sha1:1df629ef4d553cc2bebde565462b36465521284f</id>
<content type='text'>
Fixed address is simplified FW client that doesn't require
connection and doesn't support flow control.
So it can be only one host client per fixed FW client.
Fixed client access is available only for drivers on mei bus,
connection from user-space is blocked.

Signed-off-by: Alexander Usyskin &lt;alexander.usyskin@intel.com&gt;
Signed-off-by: Tomas Winkler &lt;tomas.winkler@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>mei: fix flow control for single buffer clients</title>
<updated>2015-05-24T18:13:48Z</updated>
<author>
<name>Alexander Usyskin</name>
</author>
<published>2015-05-04T06:43:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a03d77f6ed7dc74d6244e4d8681ba669d7c414aa'/>
<id>urn:sha1:a03d77f6ed7dc74d6244e4d8681ba669d7c414aa</id>
<content type='text'>
For ME clients that use single receiving buffer
the driver tracks credentials on mei_me_clients structure
for all connections. The driver needs to book keep the shared
resource correctly and track the connections, particularly
the credit has to be cleaned when there is no active connection
to a particular me client. This solves issue when subsequent
connection will not get an ill impression that it can write.

We add active connection counter the particular ME client and
when the counter reach zero, we clear the credits.

Signed-off-by: Alexander Usyskin &lt;alexander.usyskin@intel.com&gt;
Signed-off-by: Tomas Winkler &lt;tomas.winkler@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>mei: add a reference from the host client to the me client</title>
<updated>2015-05-24T18:13:10Z</updated>
<author>
<name>Alexander Usyskin</name>
</author>
<published>2015-05-04T06:43:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d49ed64a6e3f73975b7eb570c4ea8f37e87d7e5d'/>
<id>urn:sha1:d49ed64a6e3f73975b7eb570c4ea8f37e87d7e5d</id>
<content type='text'>
Keep a pointer to associated me client in the host client object to
eliminate me client searches. Check if the me client is active in the
firmware by checking if its is linked on the me clients list
Add accessors for the me client properties from host client.

Signed-off-by: Alexander Usyskin &lt;alexander.usyskin@intel.com&gt;
Signed-off-by: Tomas Winkler &lt;tomas.winkler@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>mei: revamp client connection</title>
<updated>2015-05-24T18:13:10Z</updated>
<author>
<name>Tomas Winkler</name>
</author>
<published>2015-05-04T06:43:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0c53357ca4b3a03aafc211de663e84dba7c628e2'/>
<id>urn:sha1:0c53357ca4b3a03aafc211de663e84dba7c628e2</id>
<content type='text'>
Simplify connect state machine by changing the logic around
Connection request in progress - only check if we have a callback in
relevant queue.
Extract common code into mei_cl_send_connect() function

Signed-off-by: Tomas Winkler &lt;tomas.winkler@intel.com&gt;
Signed-off-by: Alexander Usyskin &lt;alexander.usyskin@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>mei: revamp client disconnection flow</title>
<updated>2015-05-24T18:13:10Z</updated>
<author>
<name>Tomas Winkler</name>
</author>
<published>2015-05-04T06:43:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3c66618295ca5fb0fde32e60e5f26557a5fcad5e'/>
<id>urn:sha1:3c66618295ca5fb0fde32e60e5f26557a5fcad5e</id>
<content type='text'>
Split disconnected state into two parts first reception disconnect
response from the firmware and second actually setting of disconnected
state.  Book keeping data are needed for processing and after firmware
disconnected the client and are cleaned when setting the disconnected
state in mei_cl_set_disconneted() function.
Add mei_cl_send_disconnect to reduce code duplication.

Signed-off-by: Tomas Winkler &lt;tomas.winkler@intel.com&gt;
Signed-off-by: Alexander Usyskin &lt;alexander.usyskin@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>mei: use mei_cl_is_connected consistently</title>
<updated>2015-04-03T14:18:56Z</updated>
<author>
<name>Tomas Winkler</name>
</author>
<published>2015-03-26T22:27:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f3de9b635d93a3d268adda428e1df94091506a42'/>
<id>urn:sha1:f3de9b635d93a3d268adda428e1df94091506a42</id>
<content type='text'>
Replace open coded check for cl-&gt;state !=/== MEI_FILE_CONNECTED
with mei_cl_is_connected function.

Note that cl-&gt;state != MEI_FILE_CONNECTED is not the same
as cl-&gt;state == MEI_FILE_DISCONNECTED

Signed-off-by: Tomas Winkler &lt;tomas.winkler@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
</feed>
