Merge 3.8-rc4 into char-misc-next
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 18 Jan 2013 17:31:04 +0000 (09:31 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 18 Jan 2013 17:31:04 +0000 (09:31 -0800)
This brings in all of the mei and other fixes that are needed to continue
development in this branch.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1  2 
MAINTAINERS
drivers/misc/mei/amthif.c

diff --combined MAINTAINERS
index 01bee6aadb48cd8b2be6d6260d08d84dba7a1d53,3105c4868c4e2c29258b299657cb1ea864666aa1..18b1602e6888af98e9ca2d53fdeadb36d638fcf5
@@@ -228,7 -228,7 +228,7 @@@ S: Maintaine
  F:    drivers/platform/x86/acerhdf.c
  
  ACER WMI LAPTOP EXTRAS
- M:    Joey Lee <jlee@novell.com>
+ M:    "Lee, Chun-Yi" <jlee@suse.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    drivers/platform/x86/acer-wmi.c
@@@ -648,7 -648,7 +648,7 @@@ F: arch/arm
  
  ARM SUB-ARCHITECTURES
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- S:    MAINTAINED
+ S:    Maintained
  F:    arch/arm/mach-*/
  F:    arch/arm/plat-*/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc.git
@@@ -1351,6 -1351,14 +1351,14 @@@ W:    http://wireless.kernel.org/en/users/
  S:    Supported
  F:    drivers/net/wireless/ath/ath9k/
  
+ WILOCITY WIL6210 WIRELESS DRIVER
+ M:    Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
+ L:    linux-wireless@vger.kernel.org
+ L:    wil6210@qca.qualcomm.com
+ S:    Supported
+ W:    http://wireless.kernel.org/en/users/Drivers/wil6210
+ F:    drivers/net/wireless/ath/wil6210/
  CARL9170 LINUX COMMUNITY WIRELESS DRIVER
  M:    Christian Lamparter <chunkeey@googlemail.com>
  L:    linux-wireless@vger.kernel.org
@@@ -1964,9 -1972,9 +1972,9 @@@ S:      Maintaine
  F:    drivers/usb/host/ohci-ep93xx.c
  
  CIRRUS LOGIC CS4270 SOUND DRIVER
- M:    Timur Tabi <timur@freescale.com>
+ M:    Timur Tabi <timur@tabi.org>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
- S:    Supported
+ S:    Odd Fixes
  F:    sound/soc/codecs/cs4270*
  
  CLEANCACHE API
@@@ -3183,9 -3191,9 +3191,9 @@@ F:      include/uapi/video
  F:    include/uapi/linux/fb.h
  
  FREESCALE DIU FRAMEBUFFER DRIVER
- M:    Timur Tabi <timur@freescale.com>
+ M:    Timur Tabi <timur@tabi.org>
  L:    linux-fbdev@vger.kernel.org
- S:    Supported
+ S:    Maintained
  F:    drivers/video/fsl-diu-fb.*
  
  FREESCALE DMA DRIVER
@@@ -3220,9 -3228,8 +3228,8 @@@ F:      drivers/net/ethernet/freescale/fs_en
  F:    include/linux/fs_enet_pd.h
  
  FREESCALE QUICC ENGINE LIBRARY
- M:    Timur Tabi <timur@freescale.com>
  L:    linuxppc-dev@lists.ozlabs.org
- S:    Supported
+ S:    Orphan
  F:    arch/powerpc/sysdev/qe_lib/
  F:    arch/powerpc/include/asm/*qe.h
  
@@@ -3241,16 -3248,16 +3248,16 @@@ S:   Maintaine
  F:    drivers/net/ethernet/freescale/ucc_geth*
  
  FREESCALE QUICC ENGINE UCC UART DRIVER
- M:    Timur Tabi <timur@freescale.com>
+ M:    Timur Tabi <timur@tabi.org>
  L:    linuxppc-dev@lists.ozlabs.org
- S:    Supported
+ S:    Maintained
  F:    drivers/tty/serial/ucc_uart.c
  
  FREESCALE SOC SOUND DRIVERS
- M:    Timur Tabi <timur@freescale.com>
+ M:    Timur Tabi <timur@tabi.org>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  L:    linuxppc-dev@lists.ozlabs.org
- S:    Supported
+ S:    Maintained
  F:    sound/soc/fsl/fsl*
  F:    sound/soc/fsl/mpc8610_hpcd.c
  
@@@ -5077,7 -5084,7 +5084,7 @@@ S:      Maintaine
  F:    drivers/media/radio/radio-mr800.c
  
  MSI LAPTOP SUPPORT
- M:    "Lee, Chun-Yi" <jlee@novell.com>
+ M:    "Lee, Chun-Yi" <jlee@suse.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    drivers/platform/x86/msi-laptop.c
@@@ -5394,13 -5401,6 +5401,13 @@@ S:    Maintaine
  F:    Documentation/scsi/NinjaSCSI.txt
  F:    drivers/scsi/nsp32*
  
 +NTB DRIVER
 +M:    Jon Mason <jon.mason@intel.com>
 +S:    Supported
 +F:    drivers/ntb/
 +F:    drivers/net/ntb_netdev.c
 +F:    include/linux/ntb.h
 +
  NTFS FILESYSTEM
  M:    Anton Altaparmakov <anton@tuxera.com>
  L:    linux-ntfs-dev@lists.sourceforge.net
@@@ -5514,8 -5514,7 +5521,7 @@@ M:      Benoît Cousson <b-cousson@ti.com
  M:    Paul Walmsley <paul@pwsan.com>
  L:    linux-omap@vger.kernel.org
  S:    Maintained
- F:    arch/arm/mach-omap2/omap_hwmod.c
- F:    arch/arm/plat-omap/include/plat/omap_hwmod.h
+ F:    arch/arm/mach-omap2/omap_hwmod.*
  
  OMAP HWMOD DATA FOR OMAP4-BASED DEVICES
  M:    Benoît Cousson <b-cousson@ti.com>
@@@ -7341,7 -7340,7 +7347,7 @@@ S:      Odd Fixe
  F:    drivers/staging/speakup/
  
  STAGING - TI DSP BRIDGE DRIVERS
- M:    Omar Ramirez Luna <omar.ramirez@ti.com>
+ M:    Omar Ramirez Luna <omar.ramirez@copitl.com>
  S:    Odd Fixes
  F:    drivers/staging/tidspbridge/
  
@@@ -8533,7 -8532,7 +8539,7 @@@ F:      Documentation/x86
  F:    arch/x86/
  
  X86 PLATFORM DRIVERS
- M:    Matthew Garrett <mjg@redhat.com>
+ M:    Matthew Garrett <matthew.garrett@nebula.com>
  L:    platform-driver-x86@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mjg59/platform-drivers-x86.git
  S:    Maintained
index 7199e8369f1e492eedc69067f5079028f80e9411,e40ffd9502d17eddaf7f41618d3f33d41b8012af..263ed4ccd6f2b476d9d622bee7c2d33526e399b5
  #include <linux/jiffies.h>
  #include <linux/uaccess.h>
  
 +#include <linux/mei.h>
  
  #include "mei_dev.h"
 -#include "hw.h"
 -#include <linux/mei.h>
 -#include "interface.h"
 +#include "hbm.h"
 +#include "hw-me.h"
 +#include "client.h"
  
 -const uuid_le mei_amthi_guid  = UUID_LE(0x12f80028, 0xb4b7, 0x4b2d, 0xac,
 -                                              0xa8, 0x46, 0xe0, 0xff, 0x65,
 -                                              0x81, 0x4c);
 +const uuid_le mei_amthif_guid  = UUID_LE(0x12f80028, 0xb4b7, 0x4b2d,
 +                                       0xac, 0xa8, 0x46, 0xe0,
 +                                       0xff, 0x65, 0x81, 0x4c);
  
  /**
   * mei_amthif_reset_params - initializes mei device iamthif
@@@ -65,24 -64,22 +65,24 @@@ void mei_amthif_reset_params(struct mei
   * @dev: the device structure
   *
   */
 -void mei_amthif_host_init(struct mei_device *dev)
 +int mei_amthif_host_init(struct mei_device *dev)
  {
 -      int i;
 +      struct mei_cl *cl = &dev->iamthif_cl;
        unsigned char *msg_buf;
 +      int ret, i;
 +
 +      dev->iamthif_state = MEI_IAMTHIF_IDLE;
  
 -      mei_cl_init(&dev->iamthif_cl, dev);
 -      dev->iamthif_cl.state = MEI_FILE_DISCONNECTED;
 +      mei_cl_init(cl, dev);
  
 -      /* find ME amthi client */
 -      i = mei_me_cl_link(dev, &dev->iamthif_cl,
 -                          &mei_amthi_guid, MEI_IAMTHIF_HOST_CLIENT_ID);
 +      i = mei_me_cl_by_uuid(dev, &mei_amthif_guid);
        if (i < 0) {
 -              dev_info(&dev->pdev->dev, "failed to find iamthif client.\n");
 -              return;
 +              dev_info(&dev->pdev->dev, "amthif: failed to find the client\n");
 +              return -ENOENT;
        }
  
 +      cl->me_client_id = dev->me_clients[i].client_id;
 +
        /* Assign iamthif_mtu to the value received from ME  */
  
        dev->iamthif_mtu = dev->me_clients[i].props.max_msg_length;
        msg_buf = kcalloc(dev->iamthif_mtu,
                        sizeof(unsigned char), GFP_KERNEL);
        if (!msg_buf) {
 -              dev_dbg(&dev->pdev->dev, "memory allocation for ME message buffer failed.\n");
 -              return;
 +              dev_err(&dev->pdev->dev, "amthif: memory allocation for ME message buffer failed.\n");
 +              return -ENOMEM;
        }
  
        dev->iamthif_msg_buf = msg_buf;
  
 -      if (mei_connect(dev, &dev->iamthif_cl)) {
 -              dev_dbg(&dev->pdev->dev, "Failed to connect to AMTHI client\n");
 -              dev->iamthif_cl.state = MEI_FILE_DISCONNECTED;
 -              dev->iamthif_cl.host_client_id = 0;
 +      ret = mei_cl_link(cl, MEI_IAMTHIF_HOST_CLIENT_ID);
 +
 +      if (ret < 0) {
 +              dev_err(&dev->pdev->dev, "amthif: failed link client\n");
 +              return -ENOENT;
 +      }
 +
 +      cl->state = MEI_FILE_CONNECTING;
 +
 +      if (mei_hbm_cl_connect_req(dev, cl)) {
 +              dev_dbg(&dev->pdev->dev, "amthif: Failed to connect to ME client\n");
 +              cl->state = MEI_FILE_DISCONNECTED;
 +              cl->host_client_id = 0;
        } else {
 -              dev->iamthif_cl.timer_count = MEI_CONNECT_TIMEOUT;
 +              cl->timer_count = MEI_CONNECT_TIMEOUT;
        }
 +      return 0;
  }
  
  /**
@@@ -181,10 -168,10 +181,10 @@@ int mei_amthif_read(struct mei_device *
        i = mei_me_cl_by_id(dev, dev->iamthif_cl.me_client_id);
  
        if (i < 0) {
 -              dev_dbg(&dev->pdev->dev, "amthi client not found.\n");
 +              dev_dbg(&dev->pdev->dev, "amthif client not found.\n");
                return -ENODEV;
        }
 -      dev_dbg(&dev->pdev->dev, "checking amthi data\n");
 +      dev_dbg(&dev->pdev->dev, "checking amthif data\n");
        cb = mei_amthif_find_read_list_entry(dev, file);
  
        /* Check for if we can block or not*/
                return -EAGAIN;
  
  
 -      dev_dbg(&dev->pdev->dev, "waiting for amthi data\n");
 +      dev_dbg(&dev->pdev->dev, "waiting for amthif data\n");
        while (cb == NULL) {
                /* unlock the Mutex */
                mutex_unlock(&dev->device_lock);
                wait_ret = wait_event_interruptible(dev->iamthif_cl.wait,
                        (cb = mei_amthif_find_read_list_entry(dev, file)));
  
+               /* Locking again the Mutex */
+               mutex_lock(&dev->device_lock);
                if (wait_ret)
                        return -ERESTARTSYS;
  
                dev_dbg(&dev->pdev->dev, "woke up from sleep\n");
-               /* Locking again the Mutex */
-               mutex_lock(&dev->device_lock);
        }
  
  
 -      dev_dbg(&dev->pdev->dev, "Got amthi data\n");
 +      dev_dbg(&dev->pdev->dev, "Got amthif data\n");
        dev->iamthif_timer = 0;
  
        if (cb) {
                timeout = cb->read_time +
                        mei_secs_to_jiffies(MEI_IAMTHIF_READ_TIMER);
 -              dev_dbg(&dev->pdev->dev, "amthi timeout = %lud\n",
 +              dev_dbg(&dev->pdev->dev, "amthif timeout = %lud\n",
                                timeout);
  
                if  (time_after(jiffies, timeout)) {
 -                      dev_dbg(&dev->pdev->dev, "amthi Time out\n");
 +                      dev_dbg(&dev->pdev->dev, "amthif Time out\n");
                        /* 15 sec for the message has expired */
                        list_del(&cb->list);
                        rets = -ETIMEDOUT;
                 * remove message from deletion list
                 */
  
 -      dev_dbg(&dev->pdev->dev, "amthi cb->response_buffer size - %d\n",
 +      dev_dbg(&dev->pdev->dev, "amthif cb->response_buffer size - %d\n",
            cb->response_buffer.size);
 -      dev_dbg(&dev->pdev->dev, "amthi cb->buf_idx - %lu\n", cb->buf_idx);
 +      dev_dbg(&dev->pdev->dev, "amthif cb->buf_idx - %lu\n", cb->buf_idx);
  
        /* length is being turncated to PAGE_SIZE, however,
         * the buf_idx may point beyond */
                }
        }
  free:
 -      dev_dbg(&dev->pdev->dev, "free amthi cb memory.\n");
 +      dev_dbg(&dev->pdev->dev, "free amthif cb memory.\n");
        *offset = 0;
        mei_io_cb_free(cb);
  out:
@@@ -282,7 -269,7 +282,7 @@@ static int mei_amthif_send_cmd(struct m
        if (!dev || !cb)
                return -ENODEV;
  
 -      dev_dbg(&dev->pdev->dev, "write data to amthi client.\n");
 +      dev_dbg(&dev->pdev->dev, "write data to amthif client.\n");
  
        dev->iamthif_state = MEI_IAMTHIF_WRITING;
        dev->iamthif_current_cb = cb;
        memcpy(dev->iamthif_msg_buf, cb->request_buffer.data,
               cb->request_buffer.size);
  
 -      ret = mei_flow_ctrl_creds(dev, &dev->iamthif_cl);
 +      ret = mei_cl_flow_ctrl_creds(&dev->iamthif_cl);
        if (ret < 0)
                return ret;
  
                mei_hdr.reserved = 0;
                dev->iamthif_msg_buf_index += mei_hdr.length;
                if (mei_write_message(dev, &mei_hdr,
 -                                      (unsigned char *)(dev->iamthif_msg_buf),
 -                                      mei_hdr.length))
 +                                      (unsigned char *)dev->iamthif_msg_buf))
                        return -ENODEV;
  
                if (mei_hdr.msg_complete) {
 -                      if (mei_flow_ctrl_reduce(dev, &dev->iamthif_cl))
 +                      if (mei_cl_flow_ctrl_reduce(&dev->iamthif_cl))
                                return -ENODEV;
                        dev->iamthif_flow_control_pending = true;
                        dev->iamthif_state = MEI_IAMTHIF_FLOW_CONTROL;
 -                      dev_dbg(&dev->pdev->dev, "add amthi cb to write waiting list\n");
 +                      dev_dbg(&dev->pdev->dev, "add amthif cb to write waiting list\n");
                        dev->iamthif_current_cb = cb;
                        dev->iamthif_file_object = cb->file_object;
                        list_add_tail(&cb->list, &dev->write_waiting_list.list);
                } else {
 -                      dev_dbg(&dev->pdev->dev, "message does not complete, so add amthi cb to write list.\n");
 +                      dev_dbg(&dev->pdev->dev, "message does not complete, so add amthif cb to write list.\n");
                        list_add_tail(&cb->list, &dev->write_list.list);
                }
        } else {
@@@ -395,7 -383,7 +395,7 @@@ void mei_amthif_run_next_cmd(struct mei
        dev->iamthif_timer = 0;
        dev->iamthif_file_object = NULL;
  
 -      dev_dbg(&dev->pdev->dev, "complete amthi cmd_list cb.\n");
 +      dev_dbg(&dev->pdev->dev, "complete amthif cmd_list cb.\n");
  
        list_for_each_entry_safe(pos, next, &dev->amthif_cmd_list.list, list) {
                list_del(&pos->list);
                        status = mei_amthif_send_cmd(dev, pos);
                        if (status) {
                                dev_dbg(&dev->pdev->dev,
 -                                      "amthi write failed status = %d\n",
 +                                      "amthif write failed status = %d\n",
                                                status);
                                return;
                        }
@@@ -424,7 -412,7 +424,7 @@@ unsigned int mei_amthif_poll(struct mei
        if (dev->iamthif_state == MEI_IAMTHIF_READ_COMPLETE &&
                dev->iamthif_file_object == file) {
                mask |= (POLLIN | POLLRDNORM);
 -              dev_dbg(&dev->pdev->dev, "run next amthi cb\n");
 +              dev_dbg(&dev->pdev->dev, "run next amthif cb\n");
                mei_amthif_run_next_cmd(dev);
        }
        return mask;
  int mei_amthif_irq_write_complete(struct mei_device *dev, s32 *slots,
                        struct mei_cl_cb *cb, struct mei_cl_cb *cmpl_list)
  {
 -      struct mei_msg_hdr *mei_hdr;
 +      struct mei_msg_hdr mei_hdr;
        struct mei_cl *cl = cb->cl;
        size_t len = dev->iamthif_msg_buf_size - dev->iamthif_msg_buf_index;
        size_t msg_slots = mei_data2slots(len);
  
 -      mei_hdr = (struct mei_msg_hdr *)&dev->wr_msg_buf[0];
 -      mei_hdr->host_addr = cl->host_client_id;
 -      mei_hdr->me_addr = cl->me_client_id;
 -      mei_hdr->reserved = 0;
 +      mei_hdr.host_addr = cl->host_client_id;
 +      mei_hdr.me_addr = cl->me_client_id;
 +      mei_hdr.reserved = 0;
  
        if (*slots >= msg_slots) {
 -              mei_hdr->length = len;
 -              mei_hdr->msg_complete = 1;
 +              mei_hdr.length = len;
 +              mei_hdr.msg_complete = 1;
        /* Split the message only if we can write the whole host buffer */
        } else if (*slots == dev->hbuf_depth) {
                msg_slots = *slots;
                len = (*slots * sizeof(u32)) - sizeof(struct mei_msg_hdr);
 -              mei_hdr->length = len;
 -              mei_hdr->msg_complete = 0;
 +              mei_hdr.length = len;
 +              mei_hdr.msg_complete = 0;
        } else {
                /* wait for next time the host buffer is empty */
                return 0;
        }
  
 -      dev_dbg(&dev->pdev->dev, "msg: len = %d complete = %d\n",
 -                      mei_hdr->length, mei_hdr->msg_complete);
 +      dev_dbg(&dev->pdev->dev, MEI_HDR_FMT,  MEI_HDR_PRM(&mei_hdr));
  
        *slots -=  msg_slots;
 -      if (mei_write_message(dev, mei_hdr,
 -              dev->iamthif_msg_buf + dev->iamthif_msg_buf_index,
 -              mei_hdr->length)) {
 +      if (mei_write_message(dev, &mei_hdr,
 +              dev->iamthif_msg_buf + dev->iamthif_msg_buf_index)) {
                        dev->iamthif_state = MEI_IAMTHIF_IDLE;
                        cl->status = -ENODEV;
                        list_del(&cb->list);
                        return -ENODEV;
        }
  
 -      if (mei_flow_ctrl_reduce(dev, cl))
 +      if (mei_cl_flow_ctrl_reduce(cl))
                return -ENODEV;
  
 -      dev->iamthif_msg_buf_index += mei_hdr->length;
 +      dev->iamthif_msg_buf_index += mei_hdr.length;
        cl->status = 0;
  
 -      if (mei_hdr->msg_complete) {
 +      if (mei_hdr.msg_complete) {
                dev->iamthif_state = MEI_IAMTHIF_FLOW_CONTROL;
                dev->iamthif_flow_control_pending = true;
  
 -              /* save iamthif cb sent to amthi client */
 +              /* save iamthif cb sent to amthif client */
                cb->buf_idx = dev->iamthif_msg_buf_index;
                dev->iamthif_current_cb = cb;
  
  
  /**
   * mei_amthif_irq_read_message - read routine after ISR to
 - *                    handle the read amthi message
 + *                    handle the read amthif message
   *
   * @complete_list: An instance of our list structure
   * @dev: the device structure
 - * @mei_hdr: header of amthi message
 + * @mei_hdr: header of amthif message
   *
   * returns 0 on success, <0 on failure.
   */
@@@ -531,10 -522,10 +531,10 @@@ int mei_amthif_irq_read_message(struct 
                return 0;
  
        dev_dbg(&dev->pdev->dev,
 -                      "amthi_message_buffer_index =%d\n",
 +                      "amthif_message_buffer_index =%d\n",
                        mei_hdr->length);
  
 -      dev_dbg(&dev->pdev->dev, "completed amthi read.\n ");
 +      dev_dbg(&dev->pdev->dev, "completed amthif read.\n ");
        if (!dev->iamthif_current_cb)
                return -ENODEV;
  
        cb->read_time = jiffies;
        if (dev->iamthif_ioctl && cb->cl == &dev->iamthif_cl) {
                /* found the iamthif cb */
 -              dev_dbg(&dev->pdev->dev, "complete the amthi read cb.\n ");
 -              dev_dbg(&dev->pdev->dev, "add the amthi read cb to complete.\n ");
 +              dev_dbg(&dev->pdev->dev, "complete the amthif read cb.\n ");
 +              dev_dbg(&dev->pdev->dev, "add the amthif read cb to complete.\n ");
                list_add_tail(&cb->list, &complete_list->list);
        }
        return 0;
@@@ -572,7 -563,7 +572,7 @@@ int mei_amthif_irq_read(struct mei_devi
                return -EMSGSIZE;
        }
        *slots -= mei_data2slots(sizeof(struct hbm_flow_control));
 -      if (mei_send_flow_control(dev, &dev->iamthif_cl)) {
 +      if (mei_hbm_cl_flow_control_req(dev, &dev->iamthif_cl)) {
                dev_dbg(&dev->pdev->dev, "iamthif flow control failed\n");
                return -EIO;
        }
@@@ -602,7 -593,7 +602,7 @@@ void mei_amthif_complete(struct mei_dev
                                dev->iamthif_msg_buf,
                                dev->iamthif_msg_buf_index);
                list_add_tail(&cb->list, &dev->amthif_rd_complete_list.list);
 -              dev_dbg(&dev->pdev->dev, "amthi read completed\n");
 +              dev_dbg(&dev->pdev->dev, "amthif read completed\n");
                dev->iamthif_timer = jiffies;
                dev_dbg(&dev->pdev->dev, "dev->iamthif_timer = %ld\n",
                                dev->iamthif_timer);
                mei_amthif_run_next_cmd(dev);
        }
  
 -      dev_dbg(&dev->pdev->dev, "completing amthi call back.\n");
 +      dev_dbg(&dev->pdev->dev, "completing amthif call back.\n");
        wake_up_interruptible(&dev->iamthif_cl.wait);
  }
  
@@@ -644,8 -635,7 +644,8 @@@ static bool mei_clear_list(struct mei_d
                        if (dev->iamthif_current_cb == cb_pos) {
                                dev->iamthif_current_cb = NULL;
                                /* send flow control to iamthif client */
 -                              mei_send_flow_control(dev, &dev->iamthif_cl);
 +                              mei_hbm_cl_flow_control_req(dev,
 +                                                      &dev->iamthif_cl);
                        }
                        /* free all allocated buffers */
                        mei_io_cb_free(cb_pos);
@@@ -716,11 -706,11 +716,11 @@@ int mei_amthif_release(struct mei_devic
        if (dev->iamthif_file_object == file &&
            dev->iamthif_state != MEI_IAMTHIF_IDLE) {
  
 -              dev_dbg(&dev->pdev->dev, "amthi canceled iamthif state %d\n",
 +              dev_dbg(&dev->pdev->dev, "amthif canceled iamthif state %d\n",
                    dev->iamthif_state);
                dev->iamthif_canceled = true;
                if (dev->iamthif_state == MEI_IAMTHIF_READ_COMPLETE) {
 -                      dev_dbg(&dev->pdev->dev, "run next amthi iamthif cb\n");
 +                      dev_dbg(&dev->pdev->dev, "run next amthif iamthif cb\n");
                        mei_amthif_run_next_cmd(dev);
                }
        }