~ubuntu-branches/ubuntu/wily/linux-ti-omap4/wily

« back to all changes in this revision

Viewing changes to drivers/usb/serial/cypress_m8.c

  • Committer: Package Import Robot
  • Author(s): Paolo Pisati, Paolo Pisati
  • Date: 2013-07-11 18:35:20 UTC
  • Revision ID: package-import@ubuntu.com-20130711183520-htnf1x4y5r11hndr
Tags: 3.5.0-229.42
* Release Tracking Bug
  - LP: #1199276

[ Paolo Pisati ]

* [Config] CONFIG_ATH9K_LEGACY_RATE_CONTROL is not set

Show diffs side-by-side

added added

removed removed

Lines of Context:
70
70
static const struct usb_device_id id_table_cyphidcomrs232[] = {
71
71
        { USB_DEVICE(VENDOR_ID_CYPRESS, PRODUCT_ID_CYPHIDCOM) },
72
72
        { USB_DEVICE(VENDOR_ID_POWERCOM, PRODUCT_ID_UPS) },
 
73
        { USB_DEVICE(VENDOR_ID_FRWD, PRODUCT_ID_CYPHIDCOM_FRWD) },
73
74
        { }                                             /* Terminating entry */
74
75
};
75
76
 
83
84
        { USB_DEVICE(VENDOR_ID_DELORME, PRODUCT_ID_EARTHMATEUSB_LT20) },
84
85
        { USB_DEVICE(VENDOR_ID_CYPRESS, PRODUCT_ID_CYPHIDCOM) },
85
86
        { USB_DEVICE(VENDOR_ID_POWERCOM, PRODUCT_ID_UPS) },
 
87
        { USB_DEVICE(VENDOR_ID_FRWD, PRODUCT_ID_CYPHIDCOM_FRWD) },
86
88
        { USB_DEVICE(VENDOR_ID_DAZZLE, PRODUCT_ID_CA42) },
87
89
        { }                                             /* Terminating entry */
88
90
};
235
237
 * Cypress serial helper functions
236
238
 *****************************************************************************/
237
239
 
 
240
/* FRWD Dongle hidcom needs to skip reset and speed checks */
 
241
static inline bool is_frwd(struct usb_device *dev)
 
242
{
 
243
        return ((le16_to_cpu(dev->descriptor.idVendor) == VENDOR_ID_FRWD) &&
 
244
                (le16_to_cpu(dev->descriptor.idProduct) == PRODUCT_ID_CYPHIDCOM_FRWD));
 
245
}
238
246
 
239
247
static int analyze_baud_rate(struct usb_serial_port *port, speed_t new_rate)
240
248
{
244
252
        if (unstable_bauds)
245
253
                return new_rate;
246
254
 
 
255
        /* FRWD Dongle uses 115200 bps */
 
256
        if (is_frwd(port->serial->dev))
 
257
                return new_rate;
 
258
 
247
259
        /*
248
260
         * The general purpose firmware for the Cypress M8 allows for
249
261
         * a maximum speed of 57600bps (I have no idea whether DeLorme
452
464
                return -ENOMEM;
453
465
        }
454
466
 
455
 
        usb_reset_configuration(serial->dev);
 
467
        /* Skip reset for FRWD device. It is a workaound:
 
468
           device hangs if it receives SET_CONFIGURE in Configured
 
469
           state. */
 
470
        if (!is_frwd(serial->dev))
 
471
                usb_reset_configuration(serial->dev);
456
472
 
457
473
        priv->cmd_ctrl = 0;
458
474
        priv->line_control = 0;