#
7c47d2ca |
| 27-Jan-2017 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: return error on notification request to a disconnected client
Request for a notification from a disconnected client will be ignored silently by the FW but the caller should know that the operat
mei: return error on notification request to a disconnected client
Request for a notification from a disconnected client will be ignored silently by the FW but the caller should know that the operation hasn't succeeded.
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
5d882460 |
| 27-Jan-2017 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: bus: prevent hardware module unload if device on bus is active
The hardware module should not be unloaded if the bus has active devices. Get get_/put_ bus parent module upon client device conne
mei: bus: prevent hardware module unload if device on bus is active
The hardware module should not be unloaded if the bus has active devices. Get get_/put_ bus parent module upon client device connection/disconnection, to prevent the hardware managing module to disappear underneath.
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
669c256c |
| 20-Jan-2017 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: make mei_cl_set_disconnected static
mei_cl_set_disconnected is used only in client.c, so make it local to the file and mark static.
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.co
mei: make mei_cl_set_disconnected static
mei_cl_set_disconnected is used only in client.c, so make it local to the file and mark static.
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
29fe7d59 |
| 20-Jan-2017 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: make mei_io_list_flush static
mei_io_list_flush is used only in client.c so make it local to the file and mark static.
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off
mei: make mei_io_list_flush static
mei_io_list_flush is used only in client.c so make it local to the file and mark static.
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
e09ee853 |
| 14-Dec-2016 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: move write cb to completion on credentials failures
The credentials handling was pushed to the write handlers but error handling wasn't done properly. Move write callbacks to completion queue t
mei: move write cb to completion on credentials failures
The credentials handling was pushed to the write handlers but error handling wasn't done properly. Move write callbacks to completion queue to destroy them and to notify a blocked writer about the failure
Fixes: 136698e535cd1 (mei: push credentials inside the irq write handler) Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
d5f8e166 |
| 24-Nov-2016 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: request async autosuspend at the end of enumeration
pm_runtime_autosuspend can take synchronous or asynchronous paths, Because we are calling pm_runtime_mark_last_busy just before this most of
mei: request async autosuspend at the end of enumeration
pm_runtime_autosuspend can take synchronous or asynchronous paths, Because we are calling pm_runtime_mark_last_busy just before this most of the cases it takes the asynchronous way. However, when the FW or driver resets during already running runtime suspend, the call will result in calling to the driver's rpm callback and results in a deadlock on device_lock. The simplest fix is to replace pm_runtime_autosuspend with asynchronous pm_request_autosuspend.
Cc: <stable@vger.kernel.org> # 4.4+ Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
7c7a6077 |
| 16-Nov-2016 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: bus: split RX and async notification callbacks
Split callbacks for RX and async notification events on mei bus to eliminate synchronization problems and to open way for RX optimizations.
Signe
mei: bus: split RX and async notification callbacks
Split callbacks for RX and async notification events on mei bus to eliminate synchronization problems and to open way for RX optimizations.
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
bd47b526 |
| 16-Nov-2016 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: introduce host client uninitialized state
Introduce a new host client state, MEI_FILE_UNINITIALIZED, to distinguish client objects that was unlinked, but not destroyed and can be linked again.
mei: introduce host client uninitialized state
Introduce a new host client state, MEI_FILE_UNINITIALIZED, to distinguish client objects that was unlinked, but not destroyed and can be linked again.
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
967b274e |
| 11-Nov-2016 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: fix parameter rename KDoc
Parameter renaming to fop_type was not reflected in KDoc
Fixes: 3030dc0564594 (mei: add wrapper for queuing control commands) Signed-off-by: Alexander Usyskin <alexan
mei: fix parameter rename KDoc
Parameter renaming to fop_type was not reflected in KDoc
Fixes: 3030dc0564594 (mei: add wrapper for queuing control commands) Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
e0cb6b2f |
| 08-Nov-2016 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: enable to set the internal flag for client write
Prepare the client write functions to set the internal flag in message header. Carry both blocking and internal modes inside the transmit cb, an
mei: enable to set the internal flag for client write
Prepare the client write functions to set the internal flag in message header. Carry both blocking and internal modes inside the transmit cb, and call internal bus function __mei_cl_send() with send mode bit mask. The Internal flag should be added only on messages generated by the driver.
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
1892fc2e |
| 25-Sep-2016 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: stop the stall timer worker if not needed
The stall timer worker checks periodically if there is a stalled i/o transaction. The issue with the current implementation is that the timer is tickin
mei: stop the stall timer worker if not needed
The stall timer worker checks periodically if there is a stalled i/o transaction. The issue with the current implementation is that the timer is ticking also when there is no pending i/o transaction. This patch provides a simple change that prevents rescheduling of the delayed work when there is no pending i/o.
Cc: Andy Lutomirski <luto@kernel.org> Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
9d27e73c |
| 25-Jul-2016 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: amthif: drop mei_amthif_read
mei_amthif_read have only one difference from mei_read, it is not calling mei_read_start(). Make mei_read_start return immediately for amthif client and drop the sp
mei: amthif: drop mei_amthif_read
mei_amthif_read have only one difference from mei_read, it is not calling mei_read_start(). Make mei_read_start return immediately for amthif client and drop the special mei_amthif_read function.
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
3030dc05 |
| 25-Jul-2016 |
Tomas Winkler <tomas.winkler@intel.com> |
mei: add wrapper for queuing control commands.
Enclose the boiler plate code of allocating a control/hbm command cb and enqueueing it onto ctrl_wr.list in a convenient wrapper mei_cl_enqueue_ctrl_wr
mei: add wrapper for queuing control commands.
Enclose the boiler plate code of allocating a control/hbm command cb and enqueueing it onto ctrl_wr.list in a convenient wrapper mei_cl_enqueue_ctrl_wr_cb().
This is a preparatory patch for enabling consecutive reads.
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
4034b81b |
| 25-Jul-2016 |
Tomas Winkler <tomas.winkler@intel.com> |
mei: use consistent naming for TX control flow credits
With the introduction of the receive control flow credits prefixed with rx_ we add tx_ prefix to the variables and function used for tracking t
mei: use consistent naming for TX control flow credits
With the introduction of the receive control flow credits prefixed with rx_ we add tx_ prefix to the variables and function used for tracking the transmit control flow credits.
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
46978ada |
| 25-Jul-2016 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: rx flow control counter
Use RX flow control counter in the host client structure to track the number of simultaneous outstanding reads. This eliminates search in queues and makes ground for ena
mei: rx flow control counter
Use RX flow control counter in the host client structure to track the number of simultaneous outstanding reads. This eliminates search in queues and makes ground for enabling for parallel read.
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
e51dfa5a |
| 25-Jul-2016 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: prepare read cb for fixed address clients on the receive path only.
The read callbacks for the fixed address clients, that don't have flow control are built now on the receive path. In order to
mei: prepare read cb for fixed address clients on the receive path only.
The read callbacks for the fixed address clients, that don't have flow control are built now on the receive path. In order to have a single allocation place we remove the allocation from the read request.
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
a808c80c |
| 16-Jun-2016 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: add read callback on demand for fixed_address clients
The Fixed address clients do not work with the flow control, and the packet RX callback was allocated upon TX with anticipation of a follow
mei: add read callback on demand for fixed_address clients
The Fixed address clients do not work with the flow control, and the packet RX callback was allocated upon TX with anticipation of a following RX. This won't work if the clients with unsolicited Rx. Rather than preparing read callback upon a write we allocate one directly on the reciev path if one doesn't exists.
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
aab3b1a3 |
| 24-May-2016 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: drop mei_io_cb_alloc_buf
mei_io_cb_alloc_buf have a single caller :mei_cl_alloc_cb. After amthif stopped using it, the code can be integrated into the caller and the function can be dropped.
S
mei: drop mei_io_cb_alloc_buf
mei_io_cb_alloc_buf have a single caller :mei_cl_alloc_cb. After amthif stopped using it, the code can be integrated into the caller and the function can be dropped.
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
69f1804a |
| 09-May-2016 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: don't use wake_up_interruptible for wr_ctrl
wr_ctrl waiters are none interruptible, so should be waken up with call to wake_up and not to wake_up_interruptible.
This fixes commit: 7ff4bdd ("me
mei: don't use wake_up_interruptible for wr_ctrl
wr_ctrl waiters are none interruptible, so should be waken up with call to wake_up and not to wake_up_interruptible.
This fixes commit: 7ff4bdd ("mei: fix waiting for wr_ctrl for corner cases.")
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
7ff4bdd4 |
| 20-Apr-2016 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: fix waiting for wr_ctrl for corner cases.
A control message reply may not be received if either a link reset has occurred or disconnection is initiated by the FW. In the both cases the client s
mei: fix waiting for wr_ctrl for corner cases.
A control message reply may not be received if either a link reset has occurred or disconnection is initiated by the FW. In the both cases the client state will be set straight to DISCONNECTED and the driver will wait till timeout. Adding DISCONNECTED state in the waiting condition will release the client from the stall.
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
4a8eaa96 |
| 20-Apr-2016 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: don't clean control queues on notify request timeout
Timeout on notify request is not a fatal condition, and actually cleaning control queues will disrupt other control flows of the same client
mei: don't clean control queues on notify request timeout
Timeout on notify request is not a fatal condition, and actually cleaning control queues will disrupt other control flows of the same client.
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
6a8d648c |
| 17-Apr-2016 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: fix NULL dereferencing during FW initiated disconnection
In the case when disconnection is initiated from the FW the driver is flushing items from the write control list while iterating over it
mei: fix NULL dereferencing during FW initiated disconnection
In the case when disconnection is initiated from the FW the driver is flushing items from the write control list while iterating over it:
mei_irq_write_handler() list_for_each_entry_safe(ctrl_wr_list) <-- outer loop mei_cl_irq_disconnect_rsp() mei_cl_set_disconnected() mei_io_list_flush(ctrl_wr_list) <-- destorying list
We move the list flushing to the completion routine.
Cc: <stable@vger.kernel.org> #4.2+ Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
35bf7692 |
| 17-Feb-2016 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: fix format string in debug prints
buf_idx type was changed to size_t, and few places missed out to change the print format from %ld to %zu. Use also uz for buf.size which is also of size_t
Fix
mei: fix format string in debug prints
buf_idx type was changed to size_t, and few places missed out to change the print format from %ld to %zu. Use also uz for buf.size which is also of size_t
Fixes: commit 56988f22e097 ("mei: fix possible integer overflow issue")'
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
6cbb097f |
| 10-Feb-2016 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: fix double freeing of a cb during link reset
Fix double freeing of the cb that can happen if link reset kicks in the middle of blocked write from a device on the cl bus.
Free cb inside mei_cl
mei: fix double freeing of a cb during link reset
Fix double freeing of the cb that can happen if link reset kicks in the middle of blocked write from a device on the cl bus.
Free cb inside mei_cl_write function on failure and drop cb free operation from callers, during a link reset the mei_cl_write function returns with an error, but the caller doesn't know if the cb was already queued or not so it doesn't know if the cb will be freed upon queue reclaim or it has to free it itself.
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
025fb792 |
| 07-Feb-2016 |
Alexander Usyskin <alexander.usyskin@intel.com> |
mei: split amthif client init from end of clients enumeration
The amthif FW client can appear after the end of client enumeration. Amthif host client initialization is done now at FW client discover
mei: split amthif client init from end of clients enumeration
The amthif FW client can appear after the end of client enumeration. Amthif host client initialization is done now at FW client discovery time.
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|