Re: IPWireless serial modem has bandwidth limited to 56 kB/s

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Oliver,
just tested your patch and it works properly. I get over 100 kB/s too.

Thanks!

Best regards
Michal

2011/7/12 Oliver Neukum <oneukum@xxxxxxx>:
> Am Freitag, 8. Juli 2011, 17:55:59 schrieb Greg KH:
>> On Fri, Jul 08, 2011 at 03:28:00PM +0200, Michal Hybner wrote:
>
>> > Any advices how to solve this? If the bottleneck is really the buffer
>> > size, isn't it possible to set it somehow in the 'ipw' driver? Maybe
>> > it is simple to find, but I can't code :-(. Few days ago I found this
>> > patch[1] - maybe something similar could be done for 'ipw' driver too?
>> > 'lsusb -v' and 'lspci -v' attached.
>>
>> Yes, a patch like that one should help out a lot here, are you able to
>> test patches?
>>
>> If so, can you try the one below and let me know if it helps you out or
>> not?
>
> Hi,
>
> if you are testing, could you also test this patch?
>
>        Regards
>                Oliver
>
> From 2d487c10136f76cf3705881d34868e8592839cfe Mon Sep 17 00:00:00 2001
> From: Oliver Neukum <oliver@xxxxxxxxxx>
> Date: Tue, 12 Jul 2011 15:36:51 +0200
> Subject: [PATCH] USB: ipw: convert to usb-wwan framework
>
> This patch allows the ipw driver to use the multibuffer
> infrastructure of usb-wwan. This improves speed.
>
> Signed-off-by: Oliver Neukum<oneukum@xxxxxxx>
> ---
>  drivers/usb/serial/ipw.c |   33 +++++++++++++++++++++++++++++++--
>  1 files changed, 31 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/serial/ipw.c b/drivers/usb/serial/ipw.c
> index ca77e88..5170799 100644
> --- a/drivers/usb/serial/ipw.c
> +++ b/drivers/usb/serial/ipw.c
> @@ -47,6 +47,7 @@
>  #include <linux/usb.h>
>  #include <linux/usb/serial.h>
>  #include <linux/uaccess.h>
> +#include "usb-wwan.h"
>
>  /*
>  * Version Information
> @@ -185,7 +186,7 @@ static int ipw_open(struct tty_struct *tty, struct usb_serial_port *port)
>
>        /*--2: Start reading from the device */
>        dbg("%s: setting up bulk read callback", __func__);
> -       usb_serial_generic_open(tty, port);
> +       usb_wwan_open(tty, port);
>
>        /*--3: Tell the modem to open the floodgates on the rx bulk channel */
>        dbg("%s:asking modem for RxRead (RXBULK_ON)", __func__);
> @@ -219,6 +220,29 @@ static int ipw_open(struct tty_struct *tty, struct usb_serial_port *port)
>        return 0;
>  }
>
> +/* fake probe - only to allocate data structures */
> +static int ipw_probe(struct usb_serial *serial, const struct usb_device_id *id)
> +{
> +       struct usb_wwan_intf_private *data;
> +
> +       data = kzalloc(sizeof(struct usb_wwan_intf_private), GFP_KERNEL);
> +       if (!data)
> +               return -ENOMEM;
> +
> +       spin_lock_init(&data->susp_lock);
> +       usb_set_serial_data(serial, data);
> +       return 0;
> +}
> +
> +static void ipw_release(struct usb_serial *serial)
> +{
> +       struct usb_wwan_intf_private *data = usb_get_serial_data(serial);
> +
> +       usb_wwan_release(serial);
> +       usb_set_serial_data(serial, NULL);
> +       kfree(data);
> +}
> +
>  static void ipw_dtr_rts(struct usb_serial_port *port, int on)
>  {
>        struct usb_device *dev = port->serial->dev;
> @@ -285,7 +309,7 @@ static void ipw_close(struct usb_serial_port *port)
>                dev_err(&port->dev,
>                        "Disabling bulk RxRead failed (error = %d)\n", result);
>
> -       usb_serial_generic_close(port);
> +       usb_wwan_close(port);
>  }
>
>  static struct usb_serial_driver ipw_device = {
> @@ -297,9 +321,14 @@ static struct usb_serial_driver ipw_device = {
>        .usb_driver =           &usb_ipw_driver,
>        .id_table =             usb_ipw_ids,
>        .num_ports =            1,
> +       .disconnect =           usb_wwan_disconnect,
>        .open =                 ipw_open,
>        .close =                ipw_close,
> +       .probe =                ipw_probe,
> +       .attach =               usb_wwan_startup,
> +       .release =              ipw_release,
>        .dtr_rts =              ipw_dtr_rts,
> +       .write =                usb_wwan_write,
>  };
>
>
> --
> 1.7.1
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux