lkml.org 
[lkml]   [2015]   [Jul]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.16.y-ckt 057/185] cdc-acm: Add support of ATOL FPrint fiscal printers
    Date
    3.16.7-ckt15 -stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Alexey Sokolov <sokolov@7pikes.com>

    commit 15bf722e6f6c0b884521a0363204532e849deb7f upstream.

    ATOL FPrint fiscal printers require usb_clear_halt to be executed
    to work properly. Add quirk to fix the issue.

    Signed-off-by: Alexey Sokolov <sokolov@7pikes.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
    ---
    drivers/usb/class/cdc-acm.c | 9 +++++++++
    drivers/usb/class/cdc-acm.h | 1 +
    2 files changed, 10 insertions(+)

    diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
    index a8946e88978e..54c79f7fdaf5 100644
    --- a/drivers/usb/class/cdc-acm.c
    +++ b/drivers/usb/class/cdc-acm.c
    @@ -1480,6 +1480,11 @@ skip_countries:
    goto alloc_fail8;
    }

    + if (quirks & CLEAR_HALT_CONDITIONS) {
    + usb_clear_halt(usb_dev, usb_rcvbulkpipe(usb_dev, epread->bEndpointAddress));
    + usb_clear_halt(usb_dev, usb_sndbulkpipe(usb_dev, epwrite->bEndpointAddress));
    + }
    +
    return 0;
    alloc_fail8:
    if (acm->country_codes) {
    @@ -1759,6 +1764,10 @@ static const struct usb_device_id acm_ids[] = {
    .driver_info = NO_UNION_NORMAL, /* reports zero length descriptor */
    },

    + { USB_DEVICE(0x2912, 0x0001), /* ATOL FPrint */
    + .driver_info = CLEAR_HALT_CONDITIONS,
    + },
    +
    /* Nokia S60 phones expose two ACM channels. The first is
    * a modem and is picked up by the standard AT-command
    * information below. The second is 'vendor-specific' but
    diff --git a/drivers/usb/class/cdc-acm.h b/drivers/usb/class/cdc-acm.h
    index d3251ebd09e2..9cca2e7280bb 100644
    --- a/drivers/usb/class/cdc-acm.h
    +++ b/drivers/usb/class/cdc-acm.h
    @@ -134,3 +134,4 @@ struct acm {
    #define NO_DATA_INTERFACE BIT(4)
    #define IGNORE_DEVICE BIT(5)
    #define QUIRK_CONTROL_LINE_STATE BIT(6)
    +#define CLEAR_HALT_CONDITIONS BIT(7)

    \
     
     \ /
      Last update: 2015-07-15 12:21    [W:3.939 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site