Date: Mon, 4 Oct 2010 19:16:29 +0300 From: Mike Barnard <mike.barnardq@gmail.com> To: Hans Petter Selasky <hselasky@c2i.net> Cc: freebsd-usb@freebsd.org Subject: Re: Alcatel X220L 3G Modem Message-ID: <AANLkTikY83zD=YbeL%2BNhK6=07jQb%2BG2mMeWfZzkEp__C@mail.gmail.com> In-Reply-To: <201010041223.25628.hselasky@c2i.net> References: <AANLkTi=unn0RVGMB-x6BQv1R7nWeUw%2B1b_Xd_8oo5HaO@mail.gmail.com> <201010041223.25628.hselasky@c2i.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Oct 4, 2010 at 1:23 PM, Hans Petter Selasky <hselasky@c2i.net>wrote: > On Monday 04 October 2010 10:52:06 Mike Barnard wrote: > > Hi, > > > > I have myself an Alcatel X220L HSPA modem that is not detected under > > FreeBSD 8.1-RC1. When plugged in, get this: > > Look at the u3g driver. Maybe you need to add the idVendor and idProduct > there, and an autoinstall quirk. > > I have patched up u3g.c and usbdevs and I get the same dump as in my first email when I plug in the device. root@trinity# diff -u usbdevs.original usbdevs --- usbdevs.original 2010-06-14 17:00:13.000000000 +0300 +++ usbdevs 2010-10-04 18:22:53.000000000 +0300 @@ -576,6 +576,7 @@ vendor SIEMENS3 0x11f5 Siemens vendor PROLIFIC2 0x11f6 Prolific vendor ALCATEL 0x11f7 Alcatel +vendor ALCATEL3G 0x1bbb Alcatel USBModem vendor UNKNOWN3 0x1233 Unknown vendor vendor TSUNAMI 0x1241 Tsunami vendor PHEENET 0x124a Pheenet @@ -876,6 +877,9 @@ /* AKS products */ product AKS USBHASP 0x0001 USB-HASP 0.06 +/* Alcatel Lucent Products */ +product ALCATEL X220L 0xf000 HSPA Modem + /* Alcor Micro, Inc. products */ product ALCOR2 KBD_HUB 0x2802 Kbd Hub and u3g diffs look like this: root@trinity# diff -u u3g.c.original u3g.c --- u3g.c.original 2010-06-14 17:00:12.000000000 +0300 +++ u3g.c 2010-10-04 19:13:44.000000000 +0300 @@ -93,6 +93,7 @@ #define U3GINIT_WAIT 7 /* Device reappears after a delay */ #define U3GINIT_SAEL_M460 8 /* Requires vendor init */ #define U3GINIT_HUAWEISCSI 9 /* Requires Huawei SCSI init command */ +#define U3GINIT_ALCATEL 10 /* Requires Alcatel init command */ enum { U3G_BULK_WR, @@ -184,6 +185,7 @@ U3G_DEV(ACERP, H10, 0), U3G_DEV(AIRPLUS, MCD650, 0), U3G_DEV(AIRPRIME, PC5220, 0), + U3G_DEV(ALCATEL, X220L, U3GINIT_ALCATEL), U3G_DEV(ALINK, 3G, 0), U3G_DEV(ALINK, 3GU, 0), U3G_DEV(ALINK, DWM652U5, 0), @@ -542,6 +544,24 @@ return (0); } +static int +u3g_alcatel_init(struct usb_device *udev) +{ + struct usb_device_request req; + + req.bmRequestType = UT_WRITE_DEVICE; + req.bRequest = UR_SET_FEATURE; + USETW(req.wValue, UF_DEVICE_REMOTE_WAKEUP); + USETW(req.wIndex, UHF_PORT_SUSPEND); + USETW(req.wLength, 0); + + if (usbd_do_request_flags(udev, NULL, &req, + NULL, 0, NULL, USB_MS_HZ)) { + /* ignore any errors */ + } + return (0); +} + static void u3g_sael_m460_init(struct usb_device *udev) { @@ -655,6 +675,12 @@ case U3GINIT_HUAWEISCSI: error = usb_msc_eject(udev, 0, MSC_EJECT_HUAWEI); break; + case U3GINIT_ALCATEL: + error = u3g_alcatel_init(udev); + break; + case U3GINIT_ALCATELSCSI: + error = usb_msc_eject(udev, 0, MSC_EJECT_ALCATEL); + break; case U3GINIT_SCSIEJECT: error = usb_msc_eject(udev, 0, MSC_EJECT_STOPUNIT); break; I may have done something wrong... any pointers are most welcome -- Mike Of course, you might discount this possibility, but remember that one in a million chances happen 99% of the time. ------------------------------------------------------------
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTikY83zD=YbeL%2BNhK6=07jQb%2BG2mMeWfZzkEp__C>