From 6512edec48b2ccfe9bb969ce26ebbbcd49de6c4b Mon Sep 17 00:00:00 2001 From: Deepa Dinamani Date: Wed, 21 Oct 2015 18:42:37 -0700 Subject: [PATCH] staging: ft1000: remove obsolete driver Remove support for Qleadtek Flash-OFDM modems. Telecom carrier is discontinuing service for the radio technology. See http://www.gtigroup.org/news/ind/2015-08-18/6996.html. Suggested-by: Arnd Bergmann Signed-off-by: Deepa Dinamani Acked-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/Kconfig | 2 - drivers/staging/Makefile | 1 - drivers/staging/ft1000/Kconfig | 22 - drivers/staging/ft1000/Makefile | 3 - drivers/staging/ft1000/TODO | 9 - drivers/staging/ft1000/ft1000-pcmcia/Makefile | 2 - drivers/staging/ft1000/ft1000-pcmcia/boot.h | 158 -- drivers/staging/ft1000/ft1000-pcmcia/ft1000.h | 70 - .../staging/ft1000/ft1000-pcmcia/ft1000.img | Bin 305770 -> 0 bytes .../staging/ft1000/ft1000-pcmcia/ft1000_cs.c | 158 -- .../ft1000/ft1000-pcmcia/ft1000_dnld.c | 762 ------ .../staging/ft1000/ft1000-pcmcia/ft1000_hw.c | 2068 ----------------- drivers/staging/ft1000/ft1000-usb/Makefile | 3 - .../staging/ft1000/ft1000-usb/ft1000_debug.c | 789 ------- .../ft1000/ft1000-usb/ft1000_download.c | 1058 --------- drivers/staging/ft1000/ft1000-usb/ft1000_hw.c | 1586 ------------- .../staging/ft1000/ft1000-usb/ft1000_ioctl.h | 123 - .../staging/ft1000/ft1000-usb/ft1000_usb.c | 248 -- .../staging/ft1000/ft1000-usb/ft1000_usb.h | 150 -- drivers/staging/ft1000/ft1000-usb/ft3000.img | Bin 280414 -> 0 bytes drivers/staging/ft1000/ft1000.h | 366 --- 21 files changed, 7578 deletions(-) delete mode 100644 drivers/staging/ft1000/Kconfig delete mode 100644 drivers/staging/ft1000/Makefile delete mode 100644 drivers/staging/ft1000/TODO delete mode 100644 drivers/staging/ft1000/ft1000-pcmcia/Makefile delete mode 100644 drivers/staging/ft1000/ft1000-pcmcia/boot.h delete mode 100644 drivers/staging/ft1000/ft1000-pcmcia/ft1000.h delete mode 100644 drivers/staging/ft1000/ft1000-pcmcia/ft1000.img delete mode 100644 drivers/staging/ft1000/ft1000-pcmcia/ft1000_cs.c delete mode 100644 drivers/staging/ft1000/ft1000-pcmcia/ft1000_dnld.c delete mode 100644 drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c delete mode 100644 drivers/staging/ft1000/ft1000-usb/Makefile delete mode 100644 drivers/staging/ft1000/ft1000-usb/ft1000_debug.c delete mode 100644 drivers/staging/ft1000/ft1000-usb/ft1000_download.c delete mode 100644 drivers/staging/ft1000/ft1000-usb/ft1000_hw.c delete mode 100644 drivers/staging/ft1000/ft1000-usb/ft1000_ioctl.h delete mode 100644 drivers/staging/ft1000/ft1000-usb/ft1000_usb.c delete mode 100644 drivers/staging/ft1000/ft1000-usb/ft1000_usb.h delete mode 100644 drivers/staging/ft1000/ft1000-usb/ft3000.img delete mode 100644 drivers/staging/ft1000/ft1000.h diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig index 39d950584c9f..5d3b86a33857 100644 --- a/drivers/staging/Kconfig +++ b/drivers/staging/Kconfig @@ -62,8 +62,6 @@ source "drivers/staging/xgifb/Kconfig" source "drivers/staging/emxx_udc/Kconfig" -source "drivers/staging/ft1000/Kconfig" - source "drivers/staging/speakup/Kconfig" source "drivers/staging/ste_rmi4/Kconfig" diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile index e4f33d91872b..30918edef5e3 100644 --- a/drivers/staging/Makefile +++ b/drivers/staging/Makefile @@ -25,7 +25,6 @@ obj-$(CONFIG_IIO) += iio/ obj-$(CONFIG_FB_SM750) += sm750fb/ obj-$(CONFIG_FB_XGI) += xgifb/ obj-$(CONFIG_USB_EMXX) += emxx_udc/ -obj-$(CONFIG_FT1000) += ft1000/ obj-$(CONFIG_SPEAKUP) += speakup/ obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4) += ste_rmi4/ obj-$(CONFIG_MFD_NVEC) += nvec/ diff --git a/drivers/staging/ft1000/Kconfig b/drivers/staging/ft1000/Kconfig deleted file mode 100644 index c54b4e83d6e9..000000000000 --- a/drivers/staging/ft1000/Kconfig +++ /dev/null @@ -1,22 +0,0 @@ -config FT1000 - tristate "Drivers for Flarion ft1000 devices" - -if FT1000 - -config FT1000_USB - tristate "Driver for ft1000 usb devices." - depends on USB - depends on NET - help - Say Y if you want to have support for Qleadtek FLASH-OFDM USB Modem [LR7F04], - Qleadtek Express Card or Leadtek Multi-band modem HSDPA. - -config FT1000_PCMCIA - tristate "Driver for ft1000 pcmcia device." - depends on PCMCIA - depends on NET - help - Say Y if you want to have support for Flarion card also called - Multimedia Net Card. - -endif diff --git a/drivers/staging/ft1000/Makefile b/drivers/staging/ft1000/Makefile deleted file mode 100644 index 3e987770a142..000000000000 --- a/drivers/staging/ft1000/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -obj-$(CONFIG_FT1000_USB) += ft1000-usb/ -obj-$(CONFIG_FT1000_PCMCIA) += ft1000-pcmcia/ - diff --git a/drivers/staging/ft1000/TODO b/drivers/staging/ft1000/TODO deleted file mode 100644 index 1d346bc4f443..000000000000 --- a/drivers/staging/ft1000/TODO +++ /dev/null @@ -1,9 +0,0 @@ -TODO: - - checkpatch.pl cleanups - - coding style - - sparse fixes - - adapt to latest usb and pcmcia api changes - - change firmware loading for usb driver to proper kernel method (request_firmware) - -Please send patches to Greg Kroah-Hartman and -Cc: Marek Belisko diff --git a/drivers/staging/ft1000/ft1000-pcmcia/Makefile b/drivers/staging/ft1000/ft1000-pcmcia/Makefile deleted file mode 100644 index 715de3f00e33..000000000000 --- a/drivers/staging/ft1000/ft1000-pcmcia/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -obj-$(CONFIG_FT1000_PCMCIA) = ft1000_pcmcia.o -ft1000_pcmcia-y := ft1000_hw.o ft1000_dnld.o ft1000_cs.o diff --git a/drivers/staging/ft1000/ft1000-pcmcia/boot.h b/drivers/staging/ft1000/ft1000-pcmcia/boot.h deleted file mode 100644 index e4a698528520..000000000000 --- a/drivers/staging/ft1000/ft1000-pcmcia/boot.h +++ /dev/null @@ -1,158 +0,0 @@ -/*--------------------------------------------------------------------------- - FT1000 driver for Flarion Flash OFDM NIC Device - - Copyright (C) 2002 Flarion Technologies, All rights reserved. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your option) any - later version. This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License along with this program; if not, write to the - Free Software Foundation, Inc., 59 Temple Place - - Suite 330, Boston, MA 02111-1307, USA. - --------------------------------------------------------------------------- - - File: boot.h - - Description: boatloader - - History: - 1/11/05 Whc Ported to Linux. - - ---------------------------------------------------------------------------*/ -#ifndef _BOOTH_ -#define _BOOTH_ - -/* Official bootloader */ -static unsigned char bootimage[] = { - 0x00, 0x00, 0x01, 0x5E, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0xD7, - 0x00, 0x00, 0x01, 0x5E, 0x46, 0xB3, - 0xE6, 0x02, 0x00, 0x98, 0xE6, 0x8C, - 0x00, 0x98, 0xFB, 0x92, 0xFF, 0xFF, - 0x98, 0xFB, 0x94, 0xFF, 0xFF, 0x98, - 0xFB, 0x06, 0x08, 0x00, 0x98, 0xFB, - 0x96, 0x84, 0x00, 0x98, 0xFB, 0x08, - 0x1C, 0x00, 0x98, 0xFB, 0x51, 0x25, - 0x10, 0x1C, 0x00, 0xE6, 0x51, 0x01, - 0x07, 0xFD, 0x4C, 0xFF, 0x20, 0xF5, - 0x51, 0x02, 0x20, 0x08, 0x00, 0x4C, - 0xFF, 0x20, 0x3C, 0x00, 0xC0, 0x64, - 0x98, 0xC0, 0x66, 0x98, 0xC0, 0x68, - 0x98, 0xC0, 0x6A, 0x98, 0xC0, 0x6C, - 0x98, 0x90, 0x08, 0x90, 0x09, 0x90, - 0x0A, 0x90, 0x0B, 0x90, 0x0C, 0x90, - 0x0D, 0x90, 0x0E, 0x90, 0x0F, 0x90, - 0x04, 0x90, 0x06, 0xFB, 0x51, 0x22, - 0x16, 0x08, 0x03, 0xFB, 0x51, 0x52, - 0x16, 0x08, 0x04, 0xFB, 0x51, 0x24, - 0x2B, 0x08, 0x06, 0xFB, 0x51, 0x54, - 0x2B, 0x08, 0x07, 0xFB, 0x51, 0x24, - 0x2B, 0x08, 0x09, 0xFB, 0x51, 0x54, - 0x2B, 0x08, 0x0A, 0xFB, 0x51, 0x12, - 0x16, 0x08, 0x0C, 0xFB, 0x51, 0x52, - 0x16, 0x08, 0x0D, 0x78, 0x00, 0x00, - 0x00, 0x16, 0x00, 0x00, 0xEC, 0x31, - 0xAE, 0x00, 0x00, 0x81, 0x4C, 0x0F, - 0xE6, 0x43, 0xFF, 0xEC, 0x31, 0x4E, - 0x00, 0x00, 0x91, 0xEC, 0x31, 0xAE, - 0x00, 0x00, 0x91, 0x4C, 0x0F, 0xE6, - 0x43, 0xFF, 0xEC, 0x31, 0x5E, 0x00, - 0x00, 0xA1, 0xEB, 0x31, 0x08, 0x00, - 0x00, 0xA6, 0xEB, 0x31, 0x08, 0x00, - 0x00, 0xAC, 0x3C, 0x00, 0xEB, 0x31, - 0x08, 0x00, 0x00, 0xA8, 0x76, 0xFE, - 0xFE, 0x08, 0xEB, 0x31, 0x08, 0x20, - 0x00, 0x00, 0x76, 0xFF, 0xFF, 0x18, - 0xED, 0x31, 0x08, 0x20, 0x00, 0x00, - 0x26, 0x10, 0x04, 0x10, 0xF5, 0x3C, - 0x01, 0x3C, 0x00, 0x08, 0x01, 0x12, - 0x3C, 0x11, 0x3C, 0x00, 0x08, 0x01, - 0x0B, 0x08, 0x00, 0x6D, 0xEC, 0x31, - 0xAE, 0x20, 0x00, 0x06, 0xED, 0x4D, - 0x08, 0x00, 0x00, 0x67, 0x80, 0x6F, - 0x00, 0x01, 0x0B, 0x6F, 0x00, 0x02, - 0x2E, 0x76, 0xEE, 0x01, 0x48, 0x06, - 0x01, 0x39, 0xED, 0x4D, 0x18, 0x00, - 0x02, 0xED, 0x4D, 0x08, 0x00, 0x04, - 0x14, 0x06, 0xA4, 0xED, 0x31, 0x22, - 0x00, 0x00, 0xAC, 0x76, 0xEE, 0x07, - 0x48, 0x6D, 0x22, 0x01, 0x1E, 0x08, - 0x01, 0x58, 0xEB, 0x31, 0x08, 0x00, - 0x00, 0xAC, 0x06, 0xFF, 0xBA, 0x3C, - 0x00, 0xEB, 0x31, 0x08, 0x20, 0x00, - 0x04, 0x3C, 0x30, 0xEB, 0x31, 0x08, - 0x20, 0x00, 0x02, 0x3C, 0x10, 0xEB, - 0x31, 0x08, 0x20, 0x00, 0x00, 0xED, - 0x31, 0x08, 0x20, 0x00, 0x00, 0x04, - 0x10, 0xF7, 0xED, 0x31, 0x08, 0x00, - 0x00, 0xA2, 0x91, 0x00, 0x9C, 0x3C, - 0x80, 0xEB, 0x31, 0x08, 0x20, 0x00, - 0x04, 0x3C, 0x20, 0xEB, 0x31, 0x08, - 0x20, 0x00, 0x02, 0x3C, 0x10, 0xEB, - 0x31, 0x08, 0x20, 0x00, 0x00, 0xED, - 0x31, 0x08, 0x20, 0x00, 0x00, 0x04, - 0x10, 0xF7, 0xED, 0x31, 0x08, 0x20, - 0x00, 0x04, 0x42, 0x10, 0x90, 0x08, - 0xEC, 0x31, 0xAE, 0x20, 0x00, 0x06, - 0xA4, 0x41, 0x08, 0x00, 0xB6, 0xED, - 0x41, 0x28, 0x7D, 0xFF, 0xFF, 0x22, - 0xB3, 0x40, 0x98, 0x2A, 0x32, 0xEB, - 0x41, 0x28, 0xB4, 0x43, 0xFC, 0x05, - 0xFF, 0xE6, 0xA0, 0x31, 0x20, 0x00, - 0x06, 0xEB, 0x31, 0x08, 0x20, 0x00, - 0x04, 0x3C, 0x20, 0xEB, 0x31, 0x08, - 0x20, 0x00, 0x02, 0x3C, 0x10, 0xEB, - 0x31, 0x08, 0x20, 0x00, 0x00, 0xED, - 0x31, 0x08, 0x20, 0x00, 0x00, 0x04, - 0x10, 0xF7, 0xED, 0x31, 0x08, 0x20, - 0x00, 0x04, 0x42, 0x10, 0x90, 0x08, - 0xEC, 0x31, 0xAE, 0x20, 0x00, 0x06, - 0xA4, 0x41, 0x08, 0x00, 0x68, 0xED, - 0x41, 0x28, 0x7D, 0xFF, 0xFF, 0x22, - 0xB3, 0x40, 0x98, 0x2A, 0x32, 0xEB, - 0x41, 0x28, 0xB4, 0x43, 0xFC, 0x05, - 0xFF, 0xE6, 0x48, 0x04, 0xEB, 0x31, - 0x08, 0x20, 0x00, 0x04, 0xEB, 0x31, - 0x18, 0x20, 0x00, 0x02, 0x3C, 0x11, - 0xEB, 0x31, 0x18, 0x20, 0x00, 0x00, - 0xED, 0x31, 0x08, 0x20, 0x00, 0x00, - 0x04, 0x10, 0xF7, 0xED, 0x31, 0x08, - 0x20, 0x00, 0x02, 0x66, 0x00, 0x6F, - 0x00, 0x01, 0x16, 0x76, 0xEE, 0x06, - 0x48, 0x4A, 0x1E, 0x48, 0x04, 0xED, - 0x31, 0x08, 0x20, 0x00, 0x04, 0xEB, - 0x31, 0x08, 0x00, 0x00, 0xA4, 0x48, - 0x04, 0xED, 0x31, 0x08, 0x20, 0x00, - 0x04, 0xEB, 0x31, 0x08, 0x00, 0x00, - 0xA2, 0x48, 0x04, 0x20, 0x20, 0x4A, - 0x7C, 0x46, 0x82, 0x50, 0x05, 0x50, - 0x15, 0xB5, 0x1E, 0x98, 0xED, 0x31, - 0x08, 0x00, 0x00, 0xA8, 0x10, 0x47, - 0x3B, 0x2C, 0x01, 0xDB, 0x40, 0x11, - 0x98, 0xC1, 0x1E, 0x98, 0x10, 0x07, - 0x30, 0xF9, 0x40, 0x07, 0x18, 0x98, - 0x2A, 0x10, 0xEB, 0x31, 0x08, 0x00, - 0x00, 0xA8, 0xA4, 0x1E, 0x98, 0xBB, - 0x1E, 0x98, 0x50, 0x14, 0x50, 0x04, - 0x46, 0x83, 0x48, 0x04, 0x02, 0x01, - 0x00, 0x50, 0x05, 0x50, 0x15, 0x10, - 0x87, 0x3F, 0x90, 0x2B, 0x18, 0x01, - 0x00, 0xC0, 0x31, 0x00, 0x00, 0xAE, - 0xDF, 0x41, 0x00, 0x08, 0x00, 0x1A, - 0x42, 0x11, 0x67, 0x01, 0xDF, 0x41, - 0x02, 0x08, 0x00, 0x10, 0x42, 0x11, - 0x62, 0x01, 0xB4, 0x43, 0x4A, 0x68, - 0x50, 0x14, 0x50, 0x04, 0x24, 0x10, - 0x48, 0x04, 0xF2, 0x31, 0x00, 0x01, - 0x00, 0x00, 0xAE, 0xF6, 0x31, 0x00, - 0x01, 0x00, 0x00, 0xAE, 0x62, 0xE4, - 0xE5, 0x61, 0x04, 0x48, 0x04, 0xE5, - 0x63, 0x05, 0x48, 0x04, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00 -}; - -#endif diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h b/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h deleted file mode 100644 index e1861cf5de73..000000000000 --- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h +++ /dev/null @@ -1,70 +0,0 @@ -/*--------------------------------------------------------------------------- - FT1000 driver for Flarion Flash OFDM NIC Device - - Copyright (C) 2002 Flarion Technologies, All rights reserved. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your option) any - later version. This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License along with this program; if not, write to the - Free Software Foundation, Inc., 59 Temple Place - - Suite 330, Boston, MA 02111-1307, USA. - --------------------------------------------------------------------------- - Description: Common structures and defines - ---------------------------------------------------------------------------*/ -#ifndef _FT1000H_ -#define _FT1000H_ - -#include "../ft1000.h" - -#define FT1000_DRV_VER 0x01010300 - -#define FT1000_DPRAM_BASE 0x0000 /* Dual Port RAM starting offset */ - -/* - * Maximum number of occurrence of pseudo header errors before resetting PC - * Card. - */ -#define MAX_PH_ERR 300 - -#define SUCCESS 0x00 -#define FAILURE 0x01 - -struct ft1000_pcmcia { - int PktIntfErr; - u16 packetseqnum; - void *link; -}; - -struct pcmcia_device; -struct net_device; -struct net_device *init_ft1000_card(struct pcmcia_device *link, - void *ft1000_reset); -void stop_ft1000_card(struct net_device *dev); -int card_download(struct net_device *dev, const u8 *pFileStart, - size_t FileLength); - -u16 ft1000_read_dpram(struct net_device *dev, int offset); -void card_bootload(struct net_device *dev); -u16 ft1000_read_dpram_mag_16(struct net_device *dev, int offset, int Index); -u32 ft1000_read_dpram_mag_32(struct net_device *dev, int offset); -void ft1000_write_dpram_mag_32(struct net_device *dev, int offset, u32 value); - -/* Read the value of a given ASIC register. */ -static inline u16 ft1000_read_reg(struct net_device *dev, u16 offset) -{ - return inw(dev->base_addr + offset); -} - -/* Set the value of a given ASIC register. */ -static inline void ft1000_write_reg(struct net_device *dev, u16 offset, - u16 value) -{ - outw(value, dev->base_addr + offset); -} - -#endif diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000.img b/drivers/staging/ft1000/ft1000-pcmcia/ft1000.img deleted file mode 100644 index aad3c80d07c83c6564918cba5b74c3048f1bba24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 305770 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�XrI&qP^M)!PtzO~Y^f%P#EceEC)}OEKjDH!;Tb{z(aK#~5^vQ}R z6MszUV&V>3rn!!7X5#k>=Vkvdn%_2 z(GT`&I9Z$bSO}bm)cu*wz#}AC`Ln3z>du`~9=TZx8-6|9&Fp*VTf&RWrw^QsoSk)N zqJ4Du(LMirm6l&A6S>A1w@-IMy;K3$QPFwtdE(_ZC>?(>`So4LhGV75eBU(YGA!eY;}hEr)Z%NP02`fL$!O3iJT!G}w$#1<>b-kYISa%p!_*j;nyieIyp zf0bU!uQyBGjsl|QA+uO(+NEXdp{7&Fb1 zIdy^C+>m1i7I)5ztYJA@I#06tMzqft&wW4dam4WR?Y1o{`uNz~p*}QJ{czoO=BQP6 ztvk;!>(59E=@fWn*Szb)q}B2TM>{XAlyix$zK~p?aN&jdEMdko^J)uxmp;*M<(LqZ z!MWu96Yi-$R?ke@bEREy?S#P08{XPGB{E!_PrsV+OsS(QO{eEZ?5_16oa_a1%MxDv zxqoVA{J9AweD`B6*@vZM{|xqd&882!t*p|0Mpe$h+1dCsQVMHSO8LQ#tZS=9Zre6B2dW7If=*EM47yKKl0I_rz;!lolRMJy?F-K=#oOj zc1zQ`sw3Yro?ob`KPvmb!;!J`(BmrJcULZEe7vK{t@yph^XiVS(|$)H!_L*S1sJM^ zi3K~n)k+ZPFynrCJLyiZ$*p~sPwL*As;U3Zh}^v2DD`QopAmNtzxndoh{)<2!5$BT zvwv_dm676<`NDbk`7tXe4XQlVnJ@< zZ^rXltuLm$aBY74ulk5SyTjf@SN7=#_ABSQil5v)S^ap;;YssZ4}UwpW8PYZ(+e5b z>n#<39eTv;$ubw0(`A2`hT6a9$Q9Q>lVHWXk=@D_u}XMy$hJ? z7wg9{<=QKQ#sduERCl&jyz4T#SQcWxS-niH|7?HY`iYS*&*uK~=>PdxOw%VyCfQ+S zn08Hcpji;pk#j%)OsRXEvPm;=x7hKm(O<Nd>UNqBN zO6O*f;oY6;D~@Zj93Fl1sLR#ff&2X+HIZt~`_Y{G~T87qvcVzCSE%t&Hc_K0&kl3!8bm zVrDgJ9X@r)OIE!rn)h}+tCjA*1-6>r4{Ryb-!!Rt*ndZ&ENq-^Gdx?*<-Vej|MMm3C22)!%zM7mS|m1)e+Gp4Ng^0d3#GH+*P*GmigJ627W`x}=1v_3BLKSI3nnbJ$4OLh6@ zlr4qM>MUAw=c;+T>_@@Ok6M8Xr`4yGE|#&n*P_j2D92JP7;##5%DUP~RX%%z?Vm<- z9(kB3#!ysz*Zrc?7uVqb8(0tRsa|D$YSJa8(8co{Gxu#@Si_vVJ1uUe+3t3yJ;FbG z6<&P5Z}4X831f?Z9dbX}V>kaYdZ|3$@#$CAu&oTbVshaX4__Ctoz9*il4Z7e8f(tt zS5>R_|7LQ~jNvZky5XL>UeM&(g0oN8IllUIbNSKQcMLDfr32q=>|$o@xfhe^nk0B% zcCk>)-dTMw-$!&W552ITy?(nYqsT7)Uxyx5^{>4b;o|JF-bU%dV^+TQGf7+J-|=#n zC|Q`Yo{^nqN5 zI5wVm9IiI+D%VBpo2<|NKM|g}XGi0rQ}4=}x;buF=R|MalKGTV;D>#d$HFSV_=ZtoGe?lYW`4?=A0hm%8DwEPYyN)r*_w&)x8LG3Hd- zyISS?&jz)(Z@mTf%W{5LGi4ud^YH9m*UH2@uarWsMkJM)WpTOlh z@m{~_e7Ssowe=aCZBKoTH;8RyidFxgP`f|fPggIqmuahf^o~tC?w!|K^5f_HlH==6 ze!O={NH6@#re(7?ZOeK8-$7L

m-a@4ZgD{YwR8;^Wrn?0b7H#xKm*Tq5n{|D8$! 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%0ABXA)fl_G%3oeB%Wj1D7u?*t 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 PLIVJm0?C0yP(lm. Portions created by David A. Hinds. - - This file was modified to support the Flarion Flash OFDM NIC Device - by Wai Chan (w.chan@flarion.com). - - Port for kernel 2.6 created by Patrik Ostrihon (patrik.ostrihon@pwc.sk) - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your option) any - later version. This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License along with this program; if not, write to the - Free Software Foundation, Inc., 59 Temple Place - - Suite 330, Boston, MA 02111-1307, USA. - -----------------------------------------------------------------------------*/ - -#include -#include -#include -#include -#include -#include - -/*====================================================================*/ - -MODULE_AUTHOR("Wai Chan"); -MODULE_DESCRIPTION("FT1000 PCMCIA driver"); -MODULE_LICENSE("GPL"); - -/*====================================================================*/ - -static int ft1000_config(struct pcmcia_device *link); -static void ft1000_detach(struct pcmcia_device *link); -static int ft1000_attach(struct pcmcia_device *link); - -#include "ft1000.h" - -/*====================================================================*/ - -static void ft1000_reset(struct pcmcia_device *link) -{ - pcmcia_reset_card(link->socket); -} - -static int ft1000_attach(struct pcmcia_device *link) -{ - link->priv = NULL; - link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO; - - return ft1000_config(link); -} - -static void ft1000_detach(struct pcmcia_device *link) -{ - struct net_device *dev = link->priv; - - if (dev) - stop_ft1000_card(dev); - - pcmcia_disable_device(link); - free_netdev(dev); -} - -static int ft1000_confcheck(struct pcmcia_device *link, void *priv_data) -{ - return pcmcia_request_io(link); -} - -/*====================================================================== - - ft1000_config() is scheduled to run after a CARD_INSERTION event - is received, to configure the PCMCIA socket, and to make the - device available to the system. - - ======================================================================*/ - -static int ft1000_config(struct pcmcia_device *link) -{ - int ret; - - dev_dbg(&link->dev, "ft1000_cs: ft1000_config(0x%p)\n", link); - - /* setup IO window */ - ret = pcmcia_loop_config(link, ft1000_confcheck, NULL); - if (ret) { - dev_err(&link->dev, "Could not configure pcmcia\n"); - return -ENODEV; - } - - /* configure device */ - ret = pcmcia_enable_device(link); - if (ret) { - dev_err(&link->dev, "Could not enable pcmcia\n"); - goto failed; - } - - link->priv = init_ft1000_card(link, &ft1000_reset); - if (!link->priv) { - dev_err(&link->dev, "Could not register as network device\n"); - goto failed; - } - - /* Finally, report what we've done */ - - return 0; -failed: - pcmcia_disable_device(link); - return -ENODEV; -} - -static int ft1000_suspend(struct pcmcia_device *link) -{ - struct net_device *dev = link->priv; - - if (link->open) - netif_device_detach(dev); - return 0; -} - -static int ft1000_resume(struct pcmcia_device *link) -{ - return 0; -} - -/*====================================================================*/ - -static const struct pcmcia_device_id ft1000_ids[] = { - PCMCIA_DEVICE_MANF_CARD(0x02cc, 0x0100), - PCMCIA_DEVICE_MANF_CARD(0x02cc, 0x1000), - PCMCIA_DEVICE_MANF_CARD(0x02cc, 0x1300), - PCMCIA_DEVICE_NULL, -}; - -MODULE_DEVICE_TABLE(pcmcia, ft1000_ids); - -static struct pcmcia_driver ft1000_cs_driver = { - .owner = THIS_MODULE, - .name = "ft1000_cs", - .probe = ft1000_attach, - .remove = ft1000_detach, - .id_table = ft1000_ids, - .suspend = ft1000_suspend, - .resume = ft1000_resume, -}; - -module_pcmcia_driver(ft1000_cs_driver); diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_dnld.c b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_dnld.c deleted file mode 100644 index 612ac0bd3756..000000000000 --- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_dnld.c +++ /dev/null @@ -1,762 +0,0 @@ -/*--------------------------------------------------------------------------- - FT1000 driver for Flarion Flash OFDM NIC Device - - Copyright (C) 2002 Flarion Technologies, All rights reserved. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your option) any - later version. This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License along with this program; if not, write to the - Free Software Foundation, Inc., 59 Temple Place - - Suite 330, Boston, MA 02111-1307, USA. - -------------------------------------------------------------------------- - - Description: This module will handshake with the DSP bootloader to - download the DSP runtime image. - - ---------------------------------------------------------------------------*/ - -#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - -#define __KERNEL_SYSCALLS__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "ft1000.h" -#include "boot.h" - -#define MAX_DSP_WAIT_LOOPS 100 -#define DSP_WAIT_SLEEP_TIME 1 /* 1 millisecond */ - -#define MAX_LENGTH 0x7f0 - -#define DWNLD_MAG_HANDSHAKE_LOC 0x00 -#define DWNLD_MAG_TYPE_LOC 0x01 -#define DWNLD_MAG_SIZE_LOC 0x02 -#define DWNLD_MAG_PS_HDR_LOC 0x03 - -#define DWNLD_HANDSHAKE_LOC 0x02 -#define DWNLD_TYPE_LOC 0x04 -#define DWNLD_SIZE_MSW_LOC 0x06 -#define DWNLD_SIZE_LSW_LOC 0x08 -#define DWNLD_PS_HDR_LOC 0x0A - -#define HANDSHAKE_TIMEOUT_VALUE 0xF1F1 -#define HANDSHAKE_RESET_VALUE 0xFEFE /* When DSP requests startover */ -#define HANDSHAKE_DSP_BL_READY 0xFEFE /* At start DSP writes this when bootloader ready */ -#define HANDSHAKE_DRIVER_READY 0xFFFF /* Driver writes after receiving 0xFEFE */ -#define HANDSHAKE_SEND_DATA 0x0000 /* DSP writes this when ready for more data */ - -#define HANDSHAKE_REQUEST 0x0001 /* Request from DSP */ -#define HANDSHAKE_RESPONSE 0x0000 /* Satisfied DSP request */ - -#define REQUEST_CODE_LENGTH 0x0000 -#define REQUEST_RUN_ADDRESS 0x0001 -#define REQUEST_CODE_SEGMENT 0x0002 /* In WORD count */ -#define REQUEST_DONE_BL 0x0003 -#define REQUEST_DONE_CL 0x0004 -#define REQUEST_VERSION_INFO 0x0005 -#define REQUEST_CODE_BY_VERSION 0x0006 -#define REQUEST_MAILBOX_DATA 0x0007 -#define REQUEST_FILE_CHECKSUM 0x0008 - -#define STATE_START_DWNLD 0x01 -#define STATE_BOOT_DWNLD 0x02 -#define STATE_CODE_DWNLD 0x03 -#define STATE_DONE_DWNLD 0x04 -#define STATE_SECTION_PROV 0x05 -#define STATE_DONE_PROV 0x06 -#define STATE_DONE_FILE 0x07 - -struct dsp_file_hdr { - u32 version_id; /* Version ID of this image format. */ - u32 package_id; /* Package ID of code release. */ - u32 build_date; /* Date/time stamp when file was built. */ - u32 commands_offset; /* Offset to attached commands in Pseudo Hdr format. */ - u32 loader_offset; /* Offset to bootloader code. */ - u32 loader_code_address; /* Start address of bootloader. */ - u32 loader_code_end; /* Where bootloader code ends. */ - u32 loader_code_size; - u32 version_data_offset; /* Offset were scrambled version data begins. */ - u32 version_data_size; /* Size, in words, of scrambled version data. */ - u32 nDspImages; /* Number of DSP images in file. */ -} __packed; - -struct dsp_image_info { - u32 coff_date; /* Date/time when DSP Coff image was built. */ - u32 begin_offset; /* Offset in file where image begins. */ - u32 end_offset; /* Offset in file where image begins. */ - u32 run_address; /* On chip Start address of DSP code. */ - u32 image_size; /* Size of image. */ - u32 version; /* Embedded version # of DSP code. */ - unsigned short checksum; /* Dsp File checksum */ - unsigned short pad1; -} __packed; - -void card_bootload(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - unsigned long flags; - u32 *pdata; - u32 size; - u32 i; - u32 templong; - - netdev_dbg(dev, "card_bootload is called\n"); - - pdata = (u32 *)bootimage; - size = sizeof(bootimage); - - /* check for odd word */ - if (size & 0x0003) - size += 4; - - /* Provide mutual exclusive access while reading ASIC registers. */ - spin_lock_irqsave(&info->dpram_lock, flags); - - /* need to set i/o base address initially and hardware will autoincrement */ - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, FT1000_DPRAM_BASE); - /* write bytes */ - for (i = 0; i < (size >> 2); i++) { - templong = *pdata++; - outl(templong, dev->base_addr + FT1000_REG_MAG_DPDATA); - } - - spin_unlock_irqrestore(&info->dpram_lock, flags); -} - -static u16 get_handshake(struct net_device *dev, u16 expected_value) -{ - struct ft1000_info *info = netdev_priv(dev); - u16 handshake; - u32 tempx; - int loopcnt; - - loopcnt = 0; - while (loopcnt < MAX_DSP_WAIT_LOOPS) { - if (info->AsicID == ELECTRABUZZ_ID) { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - DWNLD_HANDSHAKE_LOC); - - handshake = ft1000_read_reg(dev, FT1000_REG_DPRAM_DATA); - } else { - tempx = - ntohl(ft1000_read_dpram_mag_32 - (dev, DWNLD_MAG_HANDSHAKE_LOC)); - handshake = (u16)tempx; - } - - if ((handshake == expected_value) - || (handshake == HANDSHAKE_RESET_VALUE)) { - return handshake; - } - loopcnt++; - mdelay(DSP_WAIT_SLEEP_TIME); - - } - - return HANDSHAKE_TIMEOUT_VALUE; - -} - -static void put_handshake(struct net_device *dev, u16 handshake_value) -{ - struct ft1000_info *info = netdev_priv(dev); - u32 tempx; - - if (info->AsicID == ELECTRABUZZ_ID) { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - DWNLD_HANDSHAKE_LOC); - ft1000_write_reg(dev, FT1000_REG_DPRAM_DATA, handshake_value); /* Handshake */ - } else { - tempx = (u32)handshake_value; - tempx = ntohl(tempx); - ft1000_write_dpram_mag_32(dev, DWNLD_MAG_HANDSHAKE_LOC, tempx); /* Handshake */ - } -} - -static u16 get_request_type(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - u16 request_type; - u32 tempx; - - if (info->AsicID == ELECTRABUZZ_ID) { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, DWNLD_TYPE_LOC); - request_type = ft1000_read_reg(dev, FT1000_REG_DPRAM_DATA); - } else { - tempx = ft1000_read_dpram_mag_32(dev, DWNLD_MAG_TYPE_LOC); - tempx = ntohl(tempx); - request_type = (u16)tempx; - } - - return request_type; - -} - -static long get_request_value(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - long value; - u16 w_val; - - if (info->AsicID == ELECTRABUZZ_ID) { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - DWNLD_SIZE_MSW_LOC); - - w_val = ft1000_read_reg(dev, FT1000_REG_DPRAM_DATA); - - value = (long)(w_val << 16); - - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - DWNLD_SIZE_LSW_LOC); - - w_val = ft1000_read_reg(dev, FT1000_REG_DPRAM_DATA); - - value = (long)(value | w_val); - } else { - value = ft1000_read_dpram_mag_32(dev, DWNLD_MAG_SIZE_LOC); - value = ntohl(value); - } - - return value; - -} - -static void put_request_value(struct net_device *dev, long lvalue) -{ - struct ft1000_info *info = netdev_priv(dev); - u16 size; - u32 tempx; - - if (info->AsicID == ELECTRABUZZ_ID) { - size = (u16) (lvalue >> 16); - - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - DWNLD_SIZE_MSW_LOC); - - ft1000_write_reg(dev, FT1000_REG_DPRAM_DATA, size); - - size = (u16) (lvalue); - - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - DWNLD_SIZE_LSW_LOC); - - ft1000_write_reg(dev, FT1000_REG_DPRAM_DATA, size); - } else { - tempx = ntohl(lvalue); - ft1000_write_dpram_mag_32(dev, DWNLD_MAG_SIZE_LOC, tempx); /* Handshake */ - } - -} - -static u16 hdr_checksum(struct pseudo_hdr *pHdr) -{ - u16 *usPtr = (u16 *)pHdr; - u16 chksum; - - chksum = (((((usPtr[0] ^ usPtr[1]) ^ usPtr[2]) ^ usPtr[3]) ^ - usPtr[4]) ^ usPtr[5]) ^ usPtr[6]; - - return chksum; -} - -int card_download(struct net_device *dev, const u8 *pFileStart, - size_t FileLength) -{ - struct ft1000_info *info = netdev_priv(dev); - int Status = SUCCESS; - u32 uiState; - u16 handshake; - struct pseudo_hdr *pHdr; - u16 usHdrLength; - long word_length; - u16 request; - u16 temp; - struct prov_record *pprov_record; - u8 *pbuffer; - struct dsp_file_hdr *pFileHdr5; - struct dsp_image_info *pDspImageInfoV6 = NULL; - long requested_version; - bool bGoodVersion = false; - struct drv_msg *pMailBoxData; - u16 *pUsData = NULL; - u16 *pUsFile = NULL; - u8 *pUcFile = NULL; - u8 *pBootEnd = NULL; - u8 *pCodeEnd = NULL; - int imageN; - long file_version; - long loader_code_address = 0; - long loader_code_size = 0; - long run_address = 0; - long run_size = 0; - unsigned long flags; - unsigned long templong; - unsigned long image_chksum = 0; - - file_version = *(long *)pFileStart; - if (file_version != 6) { - pr_err("unsupported firmware version %ld\n", file_version); - Status = FAILURE; - } - - uiState = STATE_START_DWNLD; - - pFileHdr5 = (struct dsp_file_hdr *)pFileStart; - - pUsFile = (u16 *) ((long)pFileStart + pFileHdr5->loader_offset); - pUcFile = (u8 *) ((long)pFileStart + pFileHdr5->loader_offset); - pBootEnd = (u8 *) ((long)pFileStart + pFileHdr5->loader_code_end); - loader_code_address = pFileHdr5->loader_code_address; - loader_code_size = pFileHdr5->loader_code_size; - bGoodVersion = false; - - while ((Status == SUCCESS) && (uiState != STATE_DONE_FILE)) { - - switch (uiState) { - case STATE_START_DWNLD: - - handshake = get_handshake(dev, HANDSHAKE_DSP_BL_READY); - - if (handshake == HANDSHAKE_DSP_BL_READY) - put_handshake(dev, HANDSHAKE_DRIVER_READY); - else - Status = FAILURE; - - uiState = STATE_BOOT_DWNLD; - - break; - - case STATE_BOOT_DWNLD: - handshake = get_handshake(dev, HANDSHAKE_REQUEST); - if (handshake == HANDSHAKE_REQUEST) { - /* - * Get type associated with the request. - */ - request = get_request_type(dev); - switch (request) { - case REQUEST_RUN_ADDRESS: - put_request_value(dev, - loader_code_address); - break; - case REQUEST_CODE_LENGTH: - put_request_value(dev, - loader_code_size); - break; - case REQUEST_DONE_BL: - /* Reposition ptrs to beginning of code section */ - pUsFile = (u16 *) ((long)pBootEnd); - pUcFile = (u8 *) ((long)pBootEnd); - uiState = STATE_CODE_DWNLD; - break; - case REQUEST_CODE_SEGMENT: - word_length = get_request_value(dev); - if (word_length > MAX_LENGTH) { - Status = FAILURE; - break; - } - if ((word_length * 2 + (long)pUcFile) > - (long)pBootEnd) { - /* - * Error, beyond boot code range. - */ - Status = FAILURE; - break; - } - /* Provide mutual exclusive access while reading ASIC registers. */ - spin_lock_irqsave(&info->dpram_lock, - flags); - /* - * Position ASIC DPRAM auto-increment pointer. - */ - outw(DWNLD_MAG_PS_HDR_LOC, - dev->base_addr + - FT1000_REG_DPRAM_ADDR); - if (word_length & 0x01) - word_length++; - word_length = word_length / 2; - - for (; word_length > 0; word_length--) { /* In words */ - templong = *pUsFile++; - templong |= - (*pUsFile++ << 16); - pUcFile += 4; - outl(templong, - dev->base_addr + - FT1000_REG_MAG_DPDATAL); - } - spin_unlock_irqrestore(&info-> - dpram_lock, - flags); - break; - default: - Status = FAILURE; - break; - } - put_handshake(dev, HANDSHAKE_RESPONSE); - } else { - Status = FAILURE; - } - - break; - - case STATE_CODE_DWNLD: - handshake = get_handshake(dev, HANDSHAKE_REQUEST); - if (handshake == HANDSHAKE_REQUEST) { - /* - * Get type associated with the request. - */ - request = get_request_type(dev); - switch (request) { - case REQUEST_FILE_CHECKSUM: - netdev_dbg(dev, - "ft1000_dnld: REQUEST_FOR_CHECKSUM\n"); - put_request_value(dev, image_chksum); - break; - case REQUEST_RUN_ADDRESS: - if (bGoodVersion) { - put_request_value(dev, - run_address); - } else { - Status = FAILURE; - break; - } - break; - case REQUEST_CODE_LENGTH: - if (bGoodVersion) { - put_request_value(dev, - run_size); - } else { - Status = FAILURE; - break; - } - break; - case REQUEST_DONE_CL: - /* Reposition ptrs to beginning of provisioning section */ - pUsFile = (u16 *) ((long)pFileStart + pFileHdr5->commands_offset); - pUcFile = (u8 *) ((long)pFileStart + pFileHdr5->commands_offset); - uiState = STATE_DONE_DWNLD; - break; - case REQUEST_CODE_SEGMENT: - if (!bGoodVersion) { - Status = FAILURE; - break; - } - word_length = get_request_value(dev); - if (word_length > MAX_LENGTH) { - Status = FAILURE; - break; - } - if ((word_length * 2 + (long)pUcFile) > - (long)pCodeEnd) { - /* - * Error, beyond boot code range. - */ - Status = FAILURE; - break; - } - /* - * Position ASIC DPRAM auto-increment pointer. - */ - outw(DWNLD_MAG_PS_HDR_LOC, - dev->base_addr + - FT1000_REG_DPRAM_ADDR); - if (word_length & 0x01) - word_length++; - word_length = word_length / 2; - - for (; word_length > 0; word_length--) { /* In words */ - templong = *pUsFile++; - templong |= - (*pUsFile++ << 16); - pUcFile += 4; - outl(templong, - dev->base_addr + - FT1000_REG_MAG_DPDATAL); - } - break; - - case REQUEST_MAILBOX_DATA: - /* Convert length from byte count to word count. Make sure we round up. */ - word_length = - (long)(info->DSPInfoBlklen + 1) / 2; - put_request_value(dev, word_length); - pMailBoxData = - (struct drv_msg *)&info->DSPInfoBlk[0]; - pUsData = - (u16 *)&pMailBoxData->data[0]; - /* Provide mutual exclusive access while reading ASIC registers. */ - spin_lock_irqsave(&info->dpram_lock, - flags); - if (file_version == 5) { - /* - * Position ASIC DPRAM auto-increment pointer. - */ - ft1000_write_reg(dev, - FT1000_REG_DPRAM_ADDR, - DWNLD_PS_HDR_LOC); - - for (; word_length > 0; word_length--) { /* In words */ - temp = ntohs(*pUsData); - ft1000_write_reg(dev, - FT1000_REG_DPRAM_DATA, - temp); - pUsData++; - } - } else { - /* - * Position ASIC DPRAM auto-increment pointer. - */ - outw(DWNLD_MAG_PS_HDR_LOC, - dev->base_addr + - FT1000_REG_DPRAM_ADDR); - if (word_length & 0x01) - word_length++; - - word_length = word_length / 2; - - for (; word_length > 0; word_length--) { /* In words */ - templong = *pUsData++; - templong |= - (*pUsData++ << 16); - outl(templong, - dev->base_addr + - FT1000_REG_MAG_DPDATAL); - } - } - spin_unlock_irqrestore(&info-> - dpram_lock, - flags); - break; - - case REQUEST_VERSION_INFO: - word_length = - pFileHdr5->version_data_size; - put_request_value(dev, word_length); - pUsFile = - (u16 *) ((long)pFileStart + - pFileHdr5-> - version_data_offset); - /* Provide mutual exclusive access while reading ASIC registers. */ - spin_lock_irqsave(&info->dpram_lock, - flags); - /* - * Position ASIC DPRAM auto-increment pointer. - */ - outw(DWNLD_MAG_PS_HDR_LOC, - dev->base_addr + - FT1000_REG_DPRAM_ADDR); - if (word_length & 0x01) - word_length++; - word_length = word_length / 2; - - for (; word_length > 0; word_length--) { /* In words */ - templong = - ntohs(*pUsFile++); - temp = - ntohs(*pUsFile++); - templong |= - (temp << 16); - outl(templong, - dev->base_addr + - FT1000_REG_MAG_DPDATAL); - } - spin_unlock_irqrestore(&info-> - dpram_lock, - flags); - break; - - case REQUEST_CODE_BY_VERSION: - bGoodVersion = false; - requested_version = - get_request_value(dev); - pDspImageInfoV6 = - (struct dsp_image_info *) ((long) - pFileStart - + - sizeof - (struct dsp_file_hdr)); - for (imageN = 0; - imageN < - pFileHdr5->nDspImages; - imageN++) { - temp = (u16) - (pDspImageInfoV6-> - version); - templong = temp; - temp = (u16) - (pDspImageInfoV6-> - version >> 16); - templong |= - (temp << 16); - if (templong == - requested_version) { - bGoodVersion = - true; - pUsFile = - (u16 - *) ((long) - pFileStart - + - pDspImageInfoV6-> - begin_offset); - pUcFile = - (u8 - *) ((long) - pFileStart - + - pDspImageInfoV6-> - begin_offset); - pCodeEnd = - (u8 - *) ((long) - pFileStart - + - pDspImageInfoV6-> - end_offset); - run_address = - pDspImageInfoV6-> - run_address; - run_size = - pDspImageInfoV6-> - image_size; - image_chksum = - (u32) - pDspImageInfoV6-> - checksum; - netdev_dbg(dev, - "ft1000_dnld: image_chksum = 0x%8x\n", - (unsigned - int) - image_chksum); - break; - } - pDspImageInfoV6++; - } - if (!bGoodVersion) { - /* - * Error, beyond boot code range. - */ - Status = FAILURE; - break; - } - break; - - default: - Status = FAILURE; - break; - } - put_handshake(dev, HANDSHAKE_RESPONSE); - } else { - Status = FAILURE; - } - - break; - - case STATE_DONE_DWNLD: - if (((unsigned long)(pUcFile) - (unsigned long) pFileStart) >= - (unsigned long)FileLength) { - uiState = STATE_DONE_FILE; - break; - } - - pHdr = (struct pseudo_hdr *)pUsFile; - - if (pHdr->portdest == 0x80 /* DspOAM */ - && (pHdr->portsrc == 0x00 /* Driver */ - || pHdr->portsrc == 0x10 /* FMM */)) { - uiState = STATE_SECTION_PROV; - } else { - netdev_dbg(dev, - "Download error: Bad Port IDs in Pseudo Record\n"); - netdev_dbg(dev, "\t Port Source = 0x%2.2x\n", - pHdr->portsrc); - netdev_dbg(dev, "\t Port Destination = 0x%2.2x\n", - pHdr->portdest); - Status = FAILURE; - } - - break; - - case STATE_SECTION_PROV: - - pHdr = (struct pseudo_hdr *)pUcFile; - - if (pHdr->checksum == hdr_checksum(pHdr)) { - if (pHdr->portdest != 0x80 /* Dsp OAM */) { - uiState = STATE_DONE_PROV; - break; - } - usHdrLength = ntohs(pHdr->length); /* Byte length for PROV records */ - - /* Get buffer for provisioning data */ - pbuffer = - kmalloc(usHdrLength + sizeof(struct pseudo_hdr), - GFP_ATOMIC); - if (pbuffer) { - memcpy(pbuffer, pUcFile, - (u32) (usHdrLength + - sizeof(struct pseudo_hdr))); - /* link provisioning data */ - pprov_record = - kmalloc(sizeof(struct prov_record), - GFP_ATOMIC); - if (pprov_record) { - pprov_record->pprov_data = - pbuffer; - list_add_tail(&pprov_record-> - list, - &info->prov_list); - /* Move to next entry if available */ - pUcFile = - (u8 *)((unsigned long) pUcFile + - (unsigned long) ((usHdrLength + 1) & 0xFFFFFFFE) + sizeof(struct pseudo_hdr)); - if ((unsigned long) (pUcFile) - - (unsigned long) (pFileStart) >= - (unsigned long)FileLength) { - uiState = - STATE_DONE_FILE; - } - } else { - kfree(pbuffer); - Status = FAILURE; - } - } else { - Status = FAILURE; - } - } else { - /* Checksum did not compute */ - Status = FAILURE; - } - - break; - - case STATE_DONE_PROV: - uiState = STATE_DONE_FILE; - break; - - default: - Status = FAILURE; - break; - } /* End Switch */ - - } /* End while */ - - return Status; - -} diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c deleted file mode 100644 index eecfa377054d..000000000000 --- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c +++ /dev/null @@ -1,2068 +0,0 @@ -/*--------------------------------------------------------------------------- - FT1000 driver for Flarion Flash OFDM NIC Device - - Copyright (C) 2002 Flarion Technologies, All rights reserved. - Copyright (C) 2006 Patrik Ostrihon, All rights reserved. - Copyright (C) 2006 ProWeb Consulting, a.s, All rights reserved. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your option) any - later version. This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License along with this program; if not, write to the - Free Software Foundation, Inc., 59 Temple Place - - Suite 330, Boston, MA 02111-1307, USA. - -------------------------------------------------------------------------*/ - -#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include -#include - -#include -#include "ft1000.h" - -static const struct firmware *fw_entry; - -static void ft1000_hbchk(u_long data); -static struct timer_list poll_timer = { - .function = ft1000_hbchk -}; - -static u16 cmdbuffer[1024]; -static u8 tempbuffer[1600]; -static u8 ft1000_card_present; -static u8 flarion_ft1000_cnt; - -static irqreturn_t ft1000_interrupt(int irq, void *dev_id); -static void ft1000_enable_interrupts(struct net_device *dev); -static void ft1000_disable_interrupts(struct net_device *dev); - -/* new kernel */ -MODULE_AUTHOR(""); -MODULE_DESCRIPTION("Support for Flarion Flash OFDM NIC Device. Support for PCMCIA when used with ft1000_cs."); -MODULE_LICENSE("GPL"); -MODULE_SUPPORTED_DEVICE("FT1000"); - -#define MAX_RCV_LOOP 100 - -/*--------------------------------------------------------------------------- - - Function: ft1000_read_fifo_len - Description: This function will read the ASIC Uplink FIFO status register - which will return the number of bytes remaining in the Uplink FIFO. - Sixteen bytes are subtracted to make sure that the ASIC does not - reach its threshold. - Input: - dev - network device structure - Output: - value - number of bytes available in the ASIC Uplink FIFO. - - -------------------------------------------------------------------------*/ -static inline u16 ft1000_read_fifo_len(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - - if (info->AsicID == ELECTRABUZZ_ID) - return (ft1000_read_reg(dev, FT1000_REG_UFIFO_STAT) - 16); - else - return (ft1000_read_reg(dev, FT1000_REG_MAG_UFSR) - 16); -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_read_dpram - Description: This function will read the specific area of dpram - (Electrabuzz ASIC only) - Input: - dev - device structure - offset - index of dpram - Output: - value - value of dpram - - -------------------------------------------------------------------------*/ -u16 ft1000_read_dpram(struct net_device *dev, int offset) -{ - struct ft1000_info *info = netdev_priv(dev); - unsigned long flags; - u16 data; - - /* Provide mutual exclusive access while reading ASIC registers. */ - spin_lock_irqsave(&info->dpram_lock, flags); - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, offset); - data = ft1000_read_reg(dev, FT1000_REG_DPRAM_DATA); - spin_unlock_irqrestore(&info->dpram_lock, flags); - - return data; -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_write_dpram - Description: This function will write to a specific area of dpram - (Electrabuzz ASIC only) - Input: - dev - device structure - offset - index of dpram - value - value to write - Output: - none. - - -------------------------------------------------------------------------*/ -static inline void ft1000_write_dpram(struct net_device *dev, - int offset, u16 value) -{ - struct ft1000_info *info = netdev_priv(dev); - unsigned long flags; - - /* Provide mutual exclusive access while reading ASIC registers. */ - spin_lock_irqsave(&info->dpram_lock, flags); - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, offset); - ft1000_write_reg(dev, FT1000_REG_DPRAM_DATA, value); - spin_unlock_irqrestore(&info->dpram_lock, flags); -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_read_dpram_mag_16 - Description: This function will read the specific area of dpram - (Magnemite ASIC only) - Input: - dev - device structure - offset - index of dpram - Output: - value - value of dpram - - -------------------------------------------------------------------------*/ -u16 ft1000_read_dpram_mag_16(struct net_device *dev, int offset, int Index) -{ - struct ft1000_info *info = netdev_priv(dev); - unsigned long flags; - u16 data; - - /* Provide mutual exclusive access while reading ASIC registers. */ - spin_lock_irqsave(&info->dpram_lock, flags); - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, offset); - /* check if we want to read upper or lower 32-bit word */ - if (Index) - data = ft1000_read_reg(dev, FT1000_REG_MAG_DPDATAL); - else - data = ft1000_read_reg(dev, FT1000_REG_MAG_DPDATAH); - - spin_unlock_irqrestore(&info->dpram_lock, flags); - - return data; -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_write_dpram_mag_16 - Description: This function will write to a specific area of dpram - (Magnemite ASIC only) - Input: - dev - device structure - offset - index of dpram - value - value to write - Output: - none. - - -------------------------------------------------------------------------*/ -static inline void ft1000_write_dpram_mag_16(struct net_device *dev, - int offset, u16 value, int Index) -{ - struct ft1000_info *info = netdev_priv(dev); - unsigned long flags; - - /* Provide mutual exclusive access while reading ASIC registers. */ - spin_lock_irqsave(&info->dpram_lock, flags); - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, offset); - if (Index) - ft1000_write_reg(dev, FT1000_REG_MAG_DPDATAL, value); - else - ft1000_write_reg(dev, FT1000_REG_MAG_DPDATAH, value); - - spin_unlock_irqrestore(&info->dpram_lock, flags); -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_read_dpram_mag_32 - Description: This function will read the specific area of dpram - (Magnemite ASIC only) - Input: - dev - device structure - offset - index of dpram - Output: - value - value of dpram - - -------------------------------------------------------------------------*/ -u32 ft1000_read_dpram_mag_32(struct net_device *dev, int offset) -{ - struct ft1000_info *info = netdev_priv(dev); - unsigned long flags; - u32 data; - - /* Provide mutual exclusive access while reading ASIC registers. */ - spin_lock_irqsave(&info->dpram_lock, flags); - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, offset); - data = inl(dev->base_addr + FT1000_REG_MAG_DPDATAL); - spin_unlock_irqrestore(&info->dpram_lock, flags); - - return data; -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_write_dpram_mag_32 - Description: This function will write to a specific area of dpram - (Magnemite ASIC only) - Input: - dev - device structure - offset - index of dpram - value - value to write - Output: - none. - - -------------------------------------------------------------------------*/ -void ft1000_write_dpram_mag_32(struct net_device *dev, int offset, u32 value) -{ - struct ft1000_info *info = netdev_priv(dev); - unsigned long flags; - - /* Provide mutual exclusive access while reading ASIC registers. */ - spin_lock_irqsave(&info->dpram_lock, flags); - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, offset); - outl(value, dev->base_addr + FT1000_REG_MAG_DPDATAL); - spin_unlock_irqrestore(&info->dpram_lock, flags); -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_enable_interrupts - Description: This function will enable interrupts base on the current - interrupt mask. - Input: - dev - device structure - Output: - None. - - -------------------------------------------------------------------------*/ -static void ft1000_enable_interrupts(struct net_device *dev) -{ - u16 tempword; - - ft1000_write_reg(dev, FT1000_REG_SUP_IMASK, ISR_DEFAULT_MASK); - tempword = ft1000_read_reg(dev, FT1000_REG_SUP_IMASK); - pr_debug("current interrupt enable mask = 0x%x\n", tempword); -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_disable_interrupts - Description: This function will disable all interrupts. - Input: - dev - device structure - Output: - None. - - -------------------------------------------------------------------------*/ -static void ft1000_disable_interrupts(struct net_device *dev) -{ - u16 tempword; - - ft1000_write_reg(dev, FT1000_REG_SUP_IMASK, ISR_MASK_ALL); - tempword = ft1000_read_reg(dev, FT1000_REG_SUP_IMASK); - pr_debug("current interrupt enable mask = 0x%x\n", tempword); -} - -/*--------------------------------------------------------------------------- - Function: ft1000_read_dsp_timer - Description: This function reads the DSP timer and stores its value in the - DSP_TIME field of the ft1000_info struct passed as argument - Input: - dev - device structure - info - ft1000_info structure - Output: - None. - - -------------------------------------------------------------------------*/ -static void ft1000_read_dsp_timer(struct net_device *dev, - struct ft1000_info *info) -{ - if (info->AsicID == ELECTRABUZZ_ID) { - info->DSP_TIME[0] = ft1000_read_dpram(dev, FT1000_DSP_TIMER0); - info->DSP_TIME[1] = ft1000_read_dpram(dev, FT1000_DSP_TIMER1); - info->DSP_TIME[2] = ft1000_read_dpram(dev, FT1000_DSP_TIMER2); - info->DSP_TIME[3] = ft1000_read_dpram(dev, FT1000_DSP_TIMER3); - } else { - info->DSP_TIME[0] = - ft1000_read_dpram_mag_16(dev, FT1000_MAG_DSP_TIMER0, - FT1000_MAG_DSP_TIMER0_INDX); - info->DSP_TIME[1] = - ft1000_read_dpram_mag_16(dev, FT1000_MAG_DSP_TIMER1, - FT1000_MAG_DSP_TIMER1_INDX); - info->DSP_TIME[2] = - ft1000_read_dpram_mag_16(dev, FT1000_MAG_DSP_TIMER2, - FT1000_MAG_DSP_TIMER2_INDX); - info->DSP_TIME[3] = - ft1000_read_dpram_mag_16(dev, FT1000_MAG_DSP_TIMER3, - FT1000_MAG_DSP_TIMER3_INDX); - } -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_reset_asic - Description: This function will call the Card Service function to reset the - ASIC. - Input: - dev - device structure - Output: - none - - -------------------------------------------------------------------------*/ -static void ft1000_reset_asic(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - struct ft1000_pcmcia *pcmcia = info->priv; - u16 tempword; - - (*info->ft1000_reset) (pcmcia->link); - - /* - * Let's use the register provided by the Magnemite ASIC to reset the - * ASIC and DSP. - */ - if (info->AsicID == MAGNEMITE_ID) { - ft1000_write_reg(dev, FT1000_REG_RESET, - DSP_RESET_BIT | ASIC_RESET_BIT); - } - mdelay(1); - if (info->AsicID == ELECTRABUZZ_ID) { - /* set watermark to -1 in order to not generate an interrupt */ - ft1000_write_reg(dev, FT1000_REG_WATERMARK, 0xffff); - } else { - /* set watermark to -1 in order to not generate an interrupt */ - ft1000_write_reg(dev, FT1000_REG_MAG_WATERMARK, 0xffff); - } - /* clear interrupts */ - tempword = ft1000_read_reg(dev, FT1000_REG_SUP_ISR); - pr_debug("interrupt status register = 0x%x\n", tempword); - ft1000_write_reg(dev, FT1000_REG_SUP_ISR, tempword); - tempword = ft1000_read_reg(dev, FT1000_REG_SUP_ISR); - pr_debug("interrupt status register = 0x%x\n", tempword); - -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_reset_card - Description: This function will reset the card - Input: - dev - device structure - Output: - status - false (card reset fail) - true (card reset successful) - - -------------------------------------------------------------------------*/ -static int ft1000_reset_card(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - u16 tempword; - int i; - unsigned long flags; - struct prov_record *ptr; - struct prov_record *tmp; - - info->CardReady = 0; - info->ProgConStat = 0; - info->squeseqnum = 0; - ft1000_disable_interrupts(dev); - - /* del_timer(&poll_timer); */ - - /* Make sure we free any memory reserve for provisioning */ - list_for_each_entry_safe(ptr, tmp, &info->prov_list, list) { - pr_debug("deleting provisioning record\n"); - list_del(&ptr->list); - kfree(ptr->pprov_data); - kfree(ptr); - } - - if (info->AsicID == ELECTRABUZZ_ID) { - pr_debug("resetting DSP\n"); - ft1000_write_reg(dev, FT1000_REG_RESET, DSP_RESET_BIT); - } else { - pr_debug("resetting ASIC and DSP\n"); - ft1000_write_reg(dev, FT1000_REG_RESET, - DSP_RESET_BIT | ASIC_RESET_BIT); - } - - /* Copy DSP session record into info block if this is not a coldstart */ - if (ft1000_card_present == 1) { - spin_lock_irqsave(&info->dpram_lock, flags); - if (info->AsicID == ELECTRABUZZ_ID) { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - FT1000_DPRAM_RX_BASE); - for (i = 0; i < MAX_DSP_SESS_REC; i++) { - info->DSPSess.Rec[i] = - ft1000_read_reg(dev, - FT1000_REG_DPRAM_DATA); - } - } else { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - FT1000_DPRAM_MAG_RX_BASE); - for (i = 0; i < MAX_DSP_SESS_REC / 2; i++) { - info->DSPSess.MagRec[i] = - inl(dev->base_addr - + FT1000_REG_MAG_DPDATA); - } - } - spin_unlock_irqrestore(&info->dpram_lock, flags); - } - - pr_debug("resetting ASIC\n"); - mdelay(10); - /* reset ASIC */ - ft1000_reset_asic(dev); - - pr_debug("downloading dsp image\n"); - - if (info->AsicID == MAGNEMITE_ID) { - /* Put dsp in reset and take ASIC out of reset */ - pr_debug("Put DSP in reset and take ASIC out of reset\n"); - ft1000_write_reg(dev, FT1000_REG_RESET, DSP_RESET_BIT); - - /* Setting MAGNEMITE ASIC to big endian mode */ - ft1000_write_reg(dev, FT1000_REG_SUP_CTRL, HOST_INTF_BE); - /* Download bootloader */ - card_bootload(dev); - - /* Take DSP out of reset */ - ft1000_write_reg(dev, FT1000_REG_RESET, 0); - /* FLARION_DSP_ACTIVE; */ - mdelay(10); - pr_debug("Take DSP out of reset\n"); - - /* - * Wait for 0xfefe indicating dsp ready before starting - * download - */ - for (i = 0; i < 50; i++) { - tempword = ft1000_read_dpram_mag_16(dev, - FT1000_MAG_DPRAM_FEFE, - FT1000_MAG_DPRAM_FEFE_INDX); - if (tempword == 0xfefe) - break; - mdelay(20); - } - - if (i == 50) { - pr_debug("No FEFE detected from DSP\n"); - return false; - } - - } else { - /* Take DSP out of reset */ - ft1000_write_reg(dev, FT1000_REG_RESET, ~DSP_RESET_BIT); - mdelay(10); - } - - if (card_download(dev, fw_entry->data, fw_entry->size)) { - pr_debug("card download unsuccessful\n"); - return false; - } - pr_debug("card download successful\n"); - - mdelay(10); - - if (info->AsicID == ELECTRABUZZ_ID) { - /* - * Need to initialize the FIFO length counter to zero in order - * to sync up with the DSP - */ - info->fifo_cnt = 0; - ft1000_write_dpram(dev, FT1000_FIFO_LEN, info->fifo_cnt); - /* Initialize DSP heartbeat area to ho */ - ft1000_write_dpram(dev, FT1000_HI_HO, ho); - tempword = ft1000_read_dpram(dev, FT1000_HI_HO); - pr_debug("hi_ho value = 0x%x\n", tempword); - } else { - /* Initialize DSP heartbeat area to ho */ - ft1000_write_dpram_mag_16(dev, FT1000_MAG_HI_HO, ho_mag, - FT1000_MAG_HI_HO_INDX); - tempword = - ft1000_read_dpram_mag_16(dev, FT1000_MAG_HI_HO, - FT1000_MAG_HI_HO_INDX); - pr_debug("hi_ho value = 0x%x\n", tempword); - } - - info->CardReady = 1; - ft1000_enable_interrupts(dev); - - /* Schedule heartbeat process to run every 2 seconds */ - /* poll_timer.expires = jiffies + (2*HZ); */ - /* poll_timer.data = (u_long)dev; */ - /* add_timer(&poll_timer); */ - - return true; - -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_chkcard - Description: This function will check if the device is presently available on - the system. - Input: - dev - device structure - Output: - status - false (device is not present) - true (device is present) - - -------------------------------------------------------------------------*/ -static int ft1000_chkcard(struct net_device *dev) -{ - u16 tempword; - - /* - * Mask register is used to check for device presence since it is never - * set to zero. - */ - tempword = ft1000_read_reg(dev, FT1000_REG_SUP_IMASK); - if (tempword == 0) { - pr_debug("IMASK = 0 Card not detected\n"); - return false; - } - /* - * The system will return the value of 0xffff for the version register - * if the device is not present. - */ - tempword = ft1000_read_reg(dev, FT1000_REG_ASIC_ID); - if (tempword == 0xffff) { - pr_debug("Version = 0xffff Card not detected\n"); - return false; - } - return true; -} - - -/*--------------------------------------------------------------------------- - - Function: ft1000_hbchk - Description: This function will perform the heart beat check of the DSP as - well as the ASIC. - Input: - dev - device structure - Output: - none - - -------------------------------------------------------------------------*/ -static void ft1000_hbchk(u_long data) -{ - struct net_device *dev = (struct net_device *)data; - - struct ft1000_info *info; - u16 tempword; - - info = netdev_priv(dev); - - if (info->CardReady == 1) { - /* Perform dsp heartbeat check */ - if (info->AsicID == ELECTRABUZZ_ID) { - tempword = ft1000_read_dpram(dev, FT1000_HI_HO); - } else { - tempword = - ntohs(ft1000_read_dpram_mag_16 - (dev, FT1000_MAG_HI_HO, - FT1000_MAG_HI_HO_INDX)); - } - pr_debug("hi_ho value = 0x%x\n", tempword); - /* Let's perform another check if ho is not detected */ - if (tempword != ho) { - if (info->AsicID == ELECTRABUZZ_ID) - tempword = ft1000_read_dpram(dev, FT1000_HI_HO); - else - tempword = ntohs(ft1000_read_dpram_mag_16(dev, - FT1000_MAG_HI_HO, - FT1000_MAG_HI_HO_INDX)); - } - if (tempword != ho) { - pr_info("heartbeat failed - no ho detected\n"); - ft1000_read_dsp_timer(dev, info); - info->DrvErrNum = DSP_HB_INFO; - if (ft1000_reset_card(dev) == 0) { - pr_info("Hardware Failure Detected - PC Card disabled\n"); - info->ProgConStat = 0xff; - return; - } - /* Schedule this module to run every 2 seconds */ - poll_timer.expires = jiffies + (2*HZ); - poll_timer.data = (u_long)dev; - add_timer(&poll_timer); - return; - } - - tempword = ft1000_read_reg(dev, FT1000_REG_DOORBELL); - /* Let's check doorbell again if fail */ - if (tempword & FT1000_DB_HB) - tempword = ft1000_read_reg(dev, FT1000_REG_DOORBELL); - - if (tempword & FT1000_DB_HB) { - pr_info("heartbeat doorbell not clear by firmware\n"); - ft1000_read_dsp_timer(dev, info); - info->DrvErrNum = DSP_HB_INFO; - if (ft1000_reset_card(dev) == 0) { - pr_info("Hardware Failure Detected - PC Card disabled\n"); - info->ProgConStat = 0xff; - return; - } - /* Schedule this module to run every 2 seconds */ - poll_timer.expires = jiffies + (2*HZ); - poll_timer.data = (u_long)dev; - add_timer(&poll_timer); - return; - } - /* - * Set dedicated area to hi and ring appropriate doorbell - * according to hi/ho heartbeat protocol - */ - if (info->AsicID == ELECTRABUZZ_ID) { - ft1000_write_dpram(dev, FT1000_HI_HO, hi); - } else { - ft1000_write_dpram_mag_16(dev, FT1000_MAG_HI_HO, hi_mag, - FT1000_MAG_HI_HO_INDX); - } - - if (info->AsicID == ELECTRABUZZ_ID) { - tempword = ft1000_read_dpram(dev, FT1000_HI_HO); - } else { - tempword = - ntohs(ft1000_read_dpram_mag_16 - (dev, FT1000_MAG_HI_HO, - FT1000_MAG_HI_HO_INDX)); - } - /* Let's write hi again if fail */ - if (tempword != hi) { - if (info->AsicID == ELECTRABUZZ_ID) - ft1000_write_dpram(dev, FT1000_HI_HO, hi); - else - ft1000_write_dpram_mag_16(dev, FT1000_MAG_HI_HO, - hi_mag, FT1000_MAG_HI_HO_INDX); - - if (info->AsicID == ELECTRABUZZ_ID) - tempword = ft1000_read_dpram(dev, FT1000_HI_HO); - else - tempword = ntohs(ft1000_read_dpram_mag_16(dev, - FT1000_MAG_HI_HO, - FT1000_MAG_HI_HO_INDX)); - } - - if (tempword != hi) { - pr_info("heartbeat failed - cannot write hi into DPRAM\n"); - ft1000_read_dsp_timer(dev, info); - info->DrvErrNum = DSP_HB_INFO; - if (ft1000_reset_card(dev) == 0) { - pr_info("Hardware Failure Detected - PC Card disabled\n"); - info->ProgConStat = 0xff; - return; - } - /* Schedule this module to run every 2 seconds */ - poll_timer.expires = jiffies + (2*HZ); - poll_timer.data = (u_long)dev; - add_timer(&poll_timer); - return; - } - ft1000_write_reg(dev, FT1000_REG_DOORBELL, FT1000_DB_HB); - - } - - /* Schedule this module to run every 2 seconds */ - poll_timer.expires = jiffies + (2 * HZ); - poll_timer.data = (u_long)dev; - add_timer(&poll_timer); -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_send_cmd - Description: - Input: - Output: - - -------------------------------------------------------------------------*/ -static void ft1000_send_cmd(struct net_device *dev, u16 *ptempbuffer, int size, - u16 qtype) -{ - struct ft1000_info *info = netdev_priv(dev); - int i; - u16 tempword; - unsigned long flags; - - size += sizeof(struct pseudo_hdr); - /* check for odd byte and increment to 16-bit word align value */ - if ((size & 0x0001)) - size++; - pr_debug("total length = %d\n", size); - pr_debug("length = %d\n", ntohs(*ptempbuffer)); - /* - * put message into slow queue area - * All messages are in the form total_len + pseudo header + message body - */ - spin_lock_irqsave(&info->dpram_lock, flags); - - /* Make sure SLOWQ doorbell is clear */ - tempword = ft1000_read_reg(dev, FT1000_REG_DOORBELL); - i = 0; - while (tempword & FT1000_DB_DPRAM_TX) { - mdelay(10); - i++; - if (i == 10) { - spin_unlock_irqrestore(&info->dpram_lock, flags); - return; - } - tempword = ft1000_read_reg(dev, FT1000_REG_DOORBELL); - } - - if (info->AsicID == ELECTRABUZZ_ID) { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - FT1000_DPRAM_TX_BASE); - /* Write total length to dpram */ - ft1000_write_reg(dev, FT1000_REG_DPRAM_DATA, size); - /* Write pseudo header and messgae body */ - for (i = 0; i < (size >> 1); i++) { - pr_debug("data %d = 0x%x\n", i, *ptempbuffer); - tempword = htons(*ptempbuffer++); - ft1000_write_reg(dev, FT1000_REG_DPRAM_DATA, tempword); - } - } else { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - FT1000_DPRAM_MAG_TX_BASE); - /* Write total length to dpram */ - ft1000_write_reg(dev, FT1000_REG_MAG_DPDATAH, htons(size)); - /* Write pseudo header and messgae body */ - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - FT1000_DPRAM_MAG_TX_BASE + 1); - for (i = 0; i < (size >> 2); i++) { - pr_debug("data = 0x%x\n", *ptempbuffer); - outw(*ptempbuffer++, - dev->base_addr + FT1000_REG_MAG_DPDATAL); - pr_debug("data = 0x%x\n", *ptempbuffer); - outw(*ptempbuffer++, - dev->base_addr + FT1000_REG_MAG_DPDATAH); - } - pr_debug("data = 0x%x\n", *ptempbuffer); - outw(*ptempbuffer++, dev->base_addr + FT1000_REG_MAG_DPDATAL); - pr_debug("data = 0x%x\n", *ptempbuffer); - outw(*ptempbuffer++, dev->base_addr + FT1000_REG_MAG_DPDATAH); - } - spin_unlock_irqrestore(&info->dpram_lock, flags); - - /* ring doorbell to notify DSP that we have a message ready */ - ft1000_write_reg(dev, FT1000_REG_DOORBELL, FT1000_DB_DPRAM_TX); -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_receive_cmd - Description: This function will read a message from the dpram area. - Input: - dev - network device structure - pbuffer - caller supply address to buffer - pnxtph - pointer to next pseudo header - Output: - Status = 0 (unsuccessful) - = 1 (successful) - - -------------------------------------------------------------------------*/ -static bool ft1000_receive_cmd(struct net_device *dev, u16 *pbuffer, - int maxsz, u16 *pnxtph) -{ - struct ft1000_info *info = netdev_priv(dev); - u16 size; - u16 *ppseudohdr; - int i; - u16 tempword; - unsigned long flags; - - if (info->AsicID == ELECTRABUZZ_ID) { - size = ft1000_read_dpram(dev, *pnxtph) - + sizeof(struct pseudo_hdr); - } else { - size = ntohs(ft1000_read_dpram_mag_16(dev, FT1000_MAG_PH_LEN, - FT1000_MAG_PH_LEN_INDX)) - + sizeof(struct pseudo_hdr); - } - if (size > maxsz) { - pr_debug("Invalid command length = %d\n", size); - return false; - } - ppseudohdr = (u16 *)pbuffer; - spin_lock_irqsave(&info->dpram_lock, flags); - if (info->AsicID == ELECTRABUZZ_ID) { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - FT1000_DPRAM_RX_BASE + 2); - for (i = 0; i <= (size >> 1); i++) { - tempword = - ft1000_read_reg(dev, FT1000_REG_DPRAM_DATA); - *pbuffer++ = ntohs(tempword); - } - } else { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - FT1000_DPRAM_MAG_RX_BASE); - *pbuffer = inw(dev->base_addr + FT1000_REG_MAG_DPDATAH); - pr_debug("received data = 0x%x\n", *pbuffer); - pbuffer++; - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - FT1000_DPRAM_MAG_RX_BASE + 1); - for (i = 0; i <= (size >> 2); i++) { - *pbuffer = - inw(dev->base_addr + - FT1000_REG_MAG_DPDATAL); - pbuffer++; - *pbuffer = - inw(dev->base_addr + - FT1000_REG_MAG_DPDATAH); - pbuffer++; - } - /* copy odd aligned word */ - *pbuffer = inw(dev->base_addr + FT1000_REG_MAG_DPDATAL); - pr_debug("received data = 0x%x\n", *pbuffer); - pbuffer++; - *pbuffer = inw(dev->base_addr + FT1000_REG_MAG_DPDATAH); - pr_debug("received data = 0x%x\n", *pbuffer); - pbuffer++; - } - if (size & 0x0001) { - /* copy odd byte from fifo */ - tempword = ft1000_read_reg(dev, FT1000_REG_DPRAM_DATA); - *pbuffer = ntohs(tempword); - } - spin_unlock_irqrestore(&info->dpram_lock, flags); - - /* - * Check if pseudo header checksum is good - * Calculate pseudo header checksum - */ - tempword = *ppseudohdr++; - for (i = 1; i < 7; i++) - tempword ^= *ppseudohdr++; - if (tempword != *ppseudohdr) { - pr_debug("Pseudo header checksum mismatch\n"); - /* Drop this message */ - return false; - } - return true; -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_proc_drvmsg - Description: This function will process the various driver messages. - Input: - dev - device structure - pnxtph - pointer to next pseudo header - Output: - none - - -------------------------------------------------------------------------*/ -static void ft1000_proc_drvmsg(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - u16 msgtype; - u16 tempword; - struct media_msg *pmediamsg; - struct dsp_init_msg *pdspinitmsg; - struct drv_msg *pdrvmsg; - u16 len; - u16 i; - struct prov_record *ptr; - struct pseudo_hdr *ppseudo_hdr; - u16 *pmsg; - struct timeval tv; - union { - u8 byte[2]; - u16 wrd; - } convert; - - if (info->AsicID == ELECTRABUZZ_ID) - tempword = FT1000_DPRAM_RX_BASE+2; - else - tempword = FT1000_DPRAM_MAG_RX_BASE; - - if (ft1000_receive_cmd(dev, &cmdbuffer[0], MAX_CMD_SQSIZE, &tempword)) { - - /* - * Get the message type which is total_len + PSEUDO header - * + msgtype + message body - */ - pdrvmsg = (struct drv_msg *)&cmdbuffer[0]; - msgtype = ntohs(pdrvmsg->type); - pr_debug("Command message type = 0x%x\n", msgtype); - switch (msgtype) { - case DSP_PROVISION: - pr_debug("Got a provisioning request message from DSP\n"); - mdelay(25); - while (list_empty(&info->prov_list) == 0) { - pr_debug("Sending a provisioning message\n"); - /* Make sure SLOWQ doorbell is clear */ - tempword = ft1000_read_reg(dev, - FT1000_REG_DOORBELL); - i = 0; - while (tempword & FT1000_DB_DPRAM_TX) { - mdelay(5); - i++; - if (i == 10) - break; - } - ptr = list_entry(info->prov_list.next, - struct prov_record, list); - len = *(u16 *)ptr->pprov_data; - len = htons(len); - - pmsg = (u16 *)ptr->pprov_data; - ppseudo_hdr = (struct pseudo_hdr *)pmsg; - /* Insert slow queue sequence number */ - ppseudo_hdr->seq_num = info->squeseqnum++; - ppseudo_hdr->portsrc = 0; - /* Calculate new checksum */ - ppseudo_hdr->checksum = *pmsg++; - pr_debug("checksum = 0x%x\n", - ppseudo_hdr->checksum); - for (i = 1; i < 7; i++) { - ppseudo_hdr->checksum ^= *pmsg++; - pr_debug("checksum = 0x%x\n", - ppseudo_hdr->checksum); - } - - ft1000_send_cmd(dev, (u16 *)ptr->pprov_data, - len, SLOWQ_TYPE); - list_del(&ptr->list); - kfree(ptr->pprov_data); - kfree(ptr); - } - /* - * Indicate adapter is ready to take application - * messages after all provisioning messages are sent - */ - info->CardReady = 1; - break; - case MEDIA_STATE: - pmediamsg = (struct media_msg *)&cmdbuffer[0]; - if (info->ProgConStat != 0xFF) { - if (pmediamsg->state) { - pr_debug("Media is up\n"); - if (info->mediastate == 0) { - netif_carrier_on(dev); - netif_wake_queue(dev); - info->mediastate = 1; - do_gettimeofday(&tv); - info->ConTm = tv.tv_sec; - } - } else { - pr_debug("Media is down\n"); - if (info->mediastate == 1) { - info->mediastate = 0; - netif_carrier_off(dev); - netif_stop_queue(dev); - info->ConTm = 0; - } - } - } else { - pr_debug("Media is down\n"); - if (info->mediastate == 1) { - info->mediastate = 0; - netif_carrier_off(dev); - netif_stop_queue(dev); - info->ConTm = 0; - } - } - break; - case DSP_INIT_MSG: - pdspinitmsg = (struct dsp_init_msg *)&cmdbuffer[0]; - memcpy(info->DspVer, pdspinitmsg->DspVer, DSPVERSZ); - pr_debug("DSPVER = 0x%2x 0x%2x 0x%2x 0x%2x\n", - info->DspVer[0], info->DspVer[1], - info->DspVer[2], info->DspVer[3]); - memcpy(info->HwSerNum, pdspinitmsg->HwSerNum, - HWSERNUMSZ); - memcpy(info->Sku, pdspinitmsg->Sku, SKUSZ); - memcpy(info->eui64, pdspinitmsg->eui64, EUISZ); - dev->dev_addr[0] = info->eui64[0]; - dev->dev_addr[1] = info->eui64[1]; - dev->dev_addr[2] = info->eui64[2]; - dev->dev_addr[3] = info->eui64[5]; - dev->dev_addr[4] = info->eui64[6]; - dev->dev_addr[5] = info->eui64[7]; - - if (ntohs(pdspinitmsg->length) == - (sizeof(struct dsp_init_msg) - 20)) { - memcpy(info->ProductMode, - pdspinitmsg->ProductMode, MODESZ); - memcpy(info->RfCalVer, pdspinitmsg->RfCalVer, - CALVERSZ); - memcpy(info->RfCalDate, pdspinitmsg->RfCalDate, - CALDATESZ); - pr_debug("RFCalVer = 0x%2x 0x%2x\n", - info->RfCalVer[0], info->RfCalVer[1]); - } - - break; - case DSP_STORE_INFO: - pr_debug("Got DSP_STORE_INFO\n"); - tempword = ntohs(pdrvmsg->length); - info->DSPInfoBlklen = tempword; - if (tempword < (MAX_DSP_SESS_REC - 4)) { - pmsg = (u16 *)&pdrvmsg->data[0]; - for (i = 0; i < ((tempword + 1) / 2); i++) { - pr_debug("dsp info data = 0x%x\n", - *pmsg); - info->DSPInfoBlk[i + 10] = *pmsg++; - } - } - break; - case DSP_GET_INFO: - pr_debug("Got DSP_GET_INFO\n"); - /* - * copy dsp info block to dsp - * allow any outstanding ioctl to finish - */ - mdelay(10); - tempword = ft1000_read_reg(dev, FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) { - mdelay(10); - tempword = ft1000_read_reg(dev, - FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) - mdelay(10); - } - - if ((tempword & FT1000_DB_DPRAM_TX) == 0) { - /* - * Put message into Slow Queue - * Form Pseudo header - */ - pmsg = (u16 *)info->DSPInfoBlk; - ppseudo_hdr = (struct pseudo_hdr *)pmsg; - ppseudo_hdr->length = - htons(info->DSPInfoBlklen + 4); - ppseudo_hdr->source = 0x10; - ppseudo_hdr->destination = 0x20; - ppseudo_hdr->portdest = 0; - ppseudo_hdr->portsrc = 0; - ppseudo_hdr->sh_str_id = 0; - ppseudo_hdr->control = 0; - ppseudo_hdr->rsvd1 = 0; - ppseudo_hdr->rsvd2 = 0; - ppseudo_hdr->qos_class = 0; - /* Insert slow queue sequence number */ - ppseudo_hdr->seq_num = info->squeseqnum++; - /* Insert application id */ - ppseudo_hdr->portsrc = 0; - /* Calculate new checksum */ - ppseudo_hdr->checksum = *pmsg++; - for (i = 1; i < 7; i++) - ppseudo_hdr->checksum ^= *pmsg++; - - info->DSPInfoBlk[8] = 0x7200; - info->DSPInfoBlk[9] = - htons(info->DSPInfoBlklen); - ft1000_send_cmd(dev, info->DSPInfoBlk, - (u16)(info->DSPInfoBlklen+4), - 0); - } - - break; - case GET_DRV_ERR_RPT_MSG: - pr_debug("Got GET_DRV_ERR_RPT_MSG\n"); - /* - * copy driver error message to dsp - * allow any outstanding ioctl to finish - */ - mdelay(10); - tempword = ft1000_read_reg(dev, FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) { - mdelay(10); - tempword = ft1000_read_reg(dev, - FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) - mdelay(10); - } - - if ((tempword & FT1000_DB_DPRAM_TX) == 0) { - /* - * Put message into Slow Queue - * Form Pseudo header - */ - pmsg = (u16 *)&tempbuffer[0]; - ppseudo_hdr = (struct pseudo_hdr *)pmsg; - ppseudo_hdr->length = htons(0x0012); - ppseudo_hdr->source = 0x10; - ppseudo_hdr->destination = 0x20; - ppseudo_hdr->portdest = 0; - ppseudo_hdr->portsrc = 0; - ppseudo_hdr->sh_str_id = 0; - ppseudo_hdr->control = 0; - ppseudo_hdr->rsvd1 = 0; - ppseudo_hdr->rsvd2 = 0; - ppseudo_hdr->qos_class = 0; - /* Insert slow queue sequence number */ - ppseudo_hdr->seq_num = info->squeseqnum++; - /* Insert application id */ - ppseudo_hdr->portsrc = 0; - /* Calculate new checksum */ - ppseudo_hdr->checksum = *pmsg++; - for (i = 1; i < 7; i++) - ppseudo_hdr->checksum ^= *pmsg++; - - pmsg = (u16 *)&tempbuffer[16]; - *pmsg++ = htons(RSP_DRV_ERR_RPT_MSG); - *pmsg++ = htons(0x000e); - *pmsg++ = htons(info->DSP_TIME[0]); - *pmsg++ = htons(info->DSP_TIME[1]); - *pmsg++ = htons(info->DSP_TIME[2]); - *pmsg++ = htons(info->DSP_TIME[3]); - convert.byte[0] = info->DspVer[0]; - convert.byte[1] = info->DspVer[1]; - *pmsg++ = convert.wrd; - convert.byte[0] = info->DspVer[2]; - convert.byte[1] = info->DspVer[3]; - *pmsg++ = convert.wrd; - *pmsg++ = htons(info->DrvErrNum); - - ft1000_send_cmd(dev, (u16 *)&tempbuffer[0], - (u16)(0x0012), 0); - info->DrvErrNum = 0; - } - - break; - default: - break; - } - } -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_parse_dpram_msg - Description: This function will parse the message received from the DSP - via the DPRAM interface. - Input: - dev - device structure - Output: - status - FAILURE - SUCCESS - - -------------------------------------------------------------------------*/ -static int ft1000_parse_dpram_msg(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - u16 doorbell; - u16 portid; - u16 nxtph; - u16 total_len; - int i = 0; - unsigned long flags; - - doorbell = ft1000_read_reg(dev, FT1000_REG_DOORBELL); - pr_debug("Doorbell = 0x%x\n", doorbell); - - if (doorbell & FT1000_ASIC_RESET_REQ) { - /* Copy DSP session record from info block */ - spin_lock_irqsave(&info->dpram_lock, flags); - if (info->AsicID == ELECTRABUZZ_ID) { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - FT1000_DPRAM_RX_BASE); - for (i = 0; i < MAX_DSP_SESS_REC; i++) { - ft1000_write_reg(dev, FT1000_REG_DPRAM_DATA, - info->DSPSess.Rec[i]); - } - } else { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - FT1000_DPRAM_MAG_RX_BASE); - for (i = 0; i < MAX_DSP_SESS_REC / 2; i++) { - outl(info->DSPSess.MagRec[i], - dev->base_addr + FT1000_REG_MAG_DPDATA); - } - } - spin_unlock_irqrestore(&info->dpram_lock, flags); - - /* clear ASIC RESET request */ - ft1000_write_reg(dev, FT1000_REG_DOORBELL, - FT1000_ASIC_RESET_REQ); - pr_debug("Got an ASIC RESET Request\n"); - ft1000_write_reg(dev, FT1000_REG_DOORBELL, - FT1000_ASIC_RESET_DSP); - - if (info->AsicID == MAGNEMITE_ID) { - /* Setting MAGNEMITE ASIC to big endian mode */ - ft1000_write_reg(dev, FT1000_REG_SUP_CTRL, - HOST_INTF_BE); - } - } - - if (doorbell & FT1000_DSP_ASIC_RESET) { - pr_debug("Got a dsp ASIC reset message\n"); - ft1000_write_reg(dev, FT1000_REG_DOORBELL, - FT1000_DSP_ASIC_RESET); - udelay(200); - return SUCCESS; - } - - if (doorbell & FT1000_DB_DPRAM_RX) { - pr_debug("Got a slow queue message\n"); - nxtph = FT1000_DPRAM_RX_BASE + 2; - if (info->AsicID == ELECTRABUZZ_ID) { - total_len = - ft1000_read_dpram(dev, FT1000_DPRAM_RX_BASE); - } else { - total_len = - ntohs(ft1000_read_dpram_mag_16 - (dev, FT1000_MAG_TOTAL_LEN, - FT1000_MAG_TOTAL_LEN_INDX)); - } - pr_debug("total length = %d\n", total_len); - if ((total_len < MAX_CMD_SQSIZE) - && (total_len > sizeof(struct pseudo_hdr))) { - total_len += nxtph; - /* - * ft1000_read_reg will return a value that needs to be - * byteswap in order to get DSP_QID_OFFSET. - */ - if (info->AsicID == ELECTRABUZZ_ID) { - portid = (ft1000_read_dpram(dev, DSP_QID_OFFSET - + FT1000_DPRAM_RX_BASE + 2) - >> 8) & 0xff; - } else { - portid = - ft1000_read_dpram_mag_16 - (dev, FT1000_MAG_PORT_ID, - FT1000_MAG_PORT_ID_INDX) & 0xff; - } - pr_debug("DSP_QID = 0x%x\n", portid); - - if (portid == DRIVERID) { - /* - * We are assumming one driver message from the - * DSP at a time. - */ - ft1000_proc_drvmsg(dev); - } - } - ft1000_write_reg(dev, FT1000_REG_DOORBELL, FT1000_DB_DPRAM_RX); - } - - if (doorbell & FT1000_DB_COND_RESET) { - /* Reset ASIC and DSP */ - ft1000_read_dsp_timer(dev, info); - info->DrvErrNum = DSP_CONDRESET_INFO; - pr_debug("DSP conditional reset requested\n"); - ft1000_reset_card(dev); - ft1000_write_reg(dev, FT1000_REG_DOORBELL, - FT1000_DB_COND_RESET); - } - /* let's clear any unexpected doorbells from DSP */ - doorbell = - doorbell & ~(FT1000_DB_DPRAM_RX | FT1000_ASIC_RESET_REQ | - FT1000_DB_COND_RESET | 0xff00); - if (doorbell) { - pr_debug("Clearing unexpected doorbell = 0x%x\n", doorbell); - ft1000_write_reg(dev, FT1000_REG_DOORBELL, doorbell); - } - - return SUCCESS; - -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_flush_fifo - Description: This function will flush one packet from the downlink - FIFO. - Input: - dev - device structure - drv_err - driver error causing the flush fifo - Output: - None. - - -------------------------------------------------------------------------*/ -static void ft1000_flush_fifo(struct net_device *dev, u16 DrvErrNum) -{ - struct ft1000_info *info = netdev_priv(dev); - struct ft1000_pcmcia *pcmcia = info->priv; - u16 i; - u32 templong; - u16 tempword; - - if (pcmcia->PktIntfErr > MAX_PH_ERR) { - ft1000_read_dsp_timer(dev, info); - info->DrvErrNum = DrvErrNum; - ft1000_reset_card(dev); - return; - } - /* Flush corrupted pkt from FIFO */ - i = 0; - do { - if (info->AsicID == ELECTRABUZZ_ID) { - tempword = - ft1000_read_reg(dev, FT1000_REG_DFIFO); - tempword = - ft1000_read_reg(dev, FT1000_REG_DFIFO_STAT); - } else { - templong = - inl(dev->base_addr + FT1000_REG_MAG_DFR); - tempword = - inw(dev->base_addr + FT1000_REG_MAG_DFSR); - } - i++; - /* - * This should never happen unless the ASIC is broken. - * We must reset to recover. - */ - if ((i > 2048) || (tempword == 0)) { - ft1000_read_dsp_timer(dev, info); - if (tempword == 0) { - /* - * Let's check if ASIC reads are still ok by - * reading the Mask register which is never zero - * at this point of the code. - */ - tempword = - inw(dev->base_addr + - FT1000_REG_SUP_IMASK); - if (tempword == 0) { - /* - * This indicates that we can not - * communicate with the ASIC - */ - info->DrvErrNum = FIFO_FLUSH_BADCNT; - } else { - /* - * Let's assume that we really flush - * the FIFO - */ - pcmcia->PktIntfErr++; - return; - } - } else { - info->DrvErrNum = FIFO_FLUSH_MAXLIMIT; - } - return; - } - tempword = inw(dev->base_addr + FT1000_REG_SUP_STAT); - } while ((tempword & 0x03) != 0x03); - if (info->AsicID == ELECTRABUZZ_ID) { - i++; - pr_debug("Flushing FIFO complete = %x\n", tempword); - /* Flush last word in FIFO. */ - tempword = ft1000_read_reg(dev, FT1000_REG_DFIFO); - /* Update FIFO counter for DSP */ - i = i * 2; - pr_debug("Flush Data byte count to dsp = %d\n", i); - info->fifo_cnt += i; - ft1000_write_dpram(dev, FT1000_FIFO_LEN, - info->fifo_cnt); - } else { - pr_debug("Flushing FIFO complete = %x\n", tempword); - /* Flush last word in FIFO */ - templong = inl(dev->base_addr + FT1000_REG_MAG_DFR); - tempword = inw(dev->base_addr + FT1000_REG_SUP_STAT); - pr_debug("FT1000_REG_SUP_STAT = 0x%x\n", tempword); - tempword = inw(dev->base_addr + FT1000_REG_MAG_DFSR); - pr_debug("FT1000_REG_MAG_DFSR = 0x%x\n", tempword); - } - if (DrvErrNum) - pcmcia->PktIntfErr++; -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_copy_up_pkt - Description: This function will pull Flarion packets out of the Downlink - FIFO and convert it to an ethernet packet. The ethernet packet will - then be deliver to the TCP/IP stack. - Input: - dev - device structure - Output: - status - FAILURE - SUCCESS - - -------------------------------------------------------------------------*/ -static int ft1000_copy_up_pkt(struct net_device *dev) -{ - u16 tempword; - struct ft1000_info *info = netdev_priv(dev); - u16 len; - struct sk_buff *skb; - u16 i; - u8 *pbuffer = NULL; - u8 *ptemp = NULL; - u16 chksum; - u32 *ptemplong; - u32 templong; - - /* Read length */ - if (info->AsicID == ELECTRABUZZ_ID) { - tempword = ft1000_read_reg(dev, FT1000_REG_DFIFO); - len = tempword; - } else { - tempword = ft1000_read_reg(dev, FT1000_REG_MAG_DFRL); - len = ntohs(tempword); - } - chksum = tempword; - pr_debug("Number of Bytes in FIFO = %d\n", len); - - if (len > ENET_MAX_SIZE) { - pr_debug("size of ethernet packet invalid\n"); - if (info->AsicID == MAGNEMITE_ID) { - /* Read High word to complete 32 bit access */ - tempword = ft1000_read_reg(dev, FT1000_REG_MAG_DFRH); - } - ft1000_flush_fifo(dev, DSP_PKTLEN_INFO); - info->stats.rx_errors++; - return FAILURE; - } - - skb = dev_alloc_skb(len + 12 + 2); - - if (skb == NULL) { - /* Read High word to complete 32 bit access */ - if (info->AsicID == MAGNEMITE_ID) - tempword = ft1000_read_reg(dev, FT1000_REG_MAG_DFRH); - - ft1000_flush_fifo(dev, 0); - info->stats.rx_errors++; - return FAILURE; - } - pbuffer = (u8 *)skb_put(skb, len + 12); - - /* Pseudo header */ - if (info->AsicID == ELECTRABUZZ_ID) { - for (i = 1; i < 7; i++) { - tempword = ft1000_read_reg(dev, FT1000_REG_DFIFO); - chksum ^= tempword; - } - /* read checksum value */ - tempword = ft1000_read_reg(dev, FT1000_REG_DFIFO); - } else { - tempword = ft1000_read_reg(dev, FT1000_REG_MAG_DFRH); - pr_debug("Pseudo = 0x%x\n", tempword); - chksum ^= tempword; - - tempword = ft1000_read_reg(dev, FT1000_REG_MAG_DFRL); - pr_debug("Pseudo = 0x%x\n", tempword); - chksum ^= tempword; - - tempword = ft1000_read_reg(dev, FT1000_REG_MAG_DFRH); - pr_debug("Pseudo = 0x%x\n", tempword); - chksum ^= tempword; - - tempword = ft1000_read_reg(dev, FT1000_REG_MAG_DFRL); - pr_debug("Pseudo = 0x%x\n", tempword); - chksum ^= tempword; - - tempword = ft1000_read_reg(dev, FT1000_REG_MAG_DFRH); - pr_debug("Pseudo = 0x%x\n", tempword); - chksum ^= tempword; - - tempword = ft1000_read_reg(dev, FT1000_REG_MAG_DFRL); - pr_debug("Pseudo = 0x%x\n", tempword); - chksum ^= tempword; - - /* read checksum value */ - tempword = ft1000_read_reg(dev, FT1000_REG_MAG_DFRH); - pr_debug("Pseudo = 0x%x\n", tempword); - } - - if (chksum != tempword) { - pr_debug("Packet checksum mismatch 0x%x 0x%x\n", - chksum, tempword); - ft1000_flush_fifo(dev, DSP_PKTPHCKSUM_INFO); - info->stats.rx_errors++; - kfree_skb(skb); - return FAILURE; - } - /* subtract the number of bytes read already */ - ptemp = pbuffer; - - /* fake MAC address */ - *pbuffer++ = dev->dev_addr[0]; - *pbuffer++ = dev->dev_addr[1]; - *pbuffer++ = dev->dev_addr[2]; - *pbuffer++ = dev->dev_addr[3]; - *pbuffer++ = dev->dev_addr[4]; - *pbuffer++ = dev->dev_addr[5]; - *pbuffer++ = 0x00; - *pbuffer++ = 0x07; - *pbuffer++ = 0x35; - *pbuffer++ = 0xff; - *pbuffer++ = 0xff; - *pbuffer++ = 0xfe; - - if (info->AsicID == ELECTRABUZZ_ID) { - for (i = 0; i < len / 2; i++) { - tempword = ft1000_read_reg(dev, FT1000_REG_DFIFO); - *pbuffer++ = (u8) (tempword >> 8); - *pbuffer++ = (u8)tempword; - if (ft1000_chkcard(dev) == false) { - kfree_skb(skb); - return FAILURE; - } - } - - /* Need to read one more word if odd byte */ - if (len & 0x0001) { - tempword = ft1000_read_reg(dev, FT1000_REG_DFIFO); - *pbuffer++ = (u8) (tempword >> 8); - } - } else { - ptemplong = (u32 *)pbuffer; - for (i = 0; i < len / 4; i++) { - templong = inl(dev->base_addr + FT1000_REG_MAG_DFR); - pr_debug("Data = 0x%8x\n", templong); - *ptemplong++ = templong; - } - - /* Need to read one more word if odd align. */ - if (len & 0x0003) { - templong = inl(dev->base_addr + FT1000_REG_MAG_DFR); - pr_debug("Data = 0x%8x\n", templong); - *ptemplong++ = templong; - } - - } - - pr_debug("Data passed to Protocol layer:\n"); - for (i = 0; i < len + 12; i++) - pr_debug("Protocol Data: 0x%x\n", *ptemp++); - - skb->dev = dev; - skb->protocol = eth_type_trans(skb, dev); - skb->ip_summed = CHECKSUM_UNNECESSARY; - netif_rx(skb); - - info->stats.rx_packets++; - /* Add on 12 bytes for MAC address which was removed */ - info->stats.rx_bytes += (len + 12); - - if (info->AsicID == ELECTRABUZZ_ID) { - /* track how many bytes have been read from FIFO - round up to - * 16 bit word */ - tempword = len + 16; - if (tempword & 0x01) - tempword++; - info->fifo_cnt += tempword; - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, FT1000_FIFO_LEN); - ft1000_write_reg(dev, FT1000_REG_DPRAM_DATA, info->fifo_cnt); - } - - return SUCCESS; -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_copy_down_pkt - Description: This function will take an ethernet packet and convert it to - a Flarion packet prior to sending it to the ASIC Downlink - FIFO. - Input: - dev - device structure - packet - address of ethernet packet - len - length of IP packet - Output: - status - FAILURE - SUCCESS - - -------------------------------------------------------------------------*/ -static int ft1000_copy_down_pkt(struct net_device *dev, u16 *packet, u16 len) -{ - struct ft1000_info *info = netdev_priv(dev); - struct ft1000_pcmcia *pcmcia = info->priv; - union { - struct pseudo_hdr blk; - u16 buff[sizeof(struct pseudo_hdr) >> 1]; - u8 buffc[sizeof(struct pseudo_hdr)]; - } pseudo; - int i; - u32 *plong; - - /* Check if there is room on the FIFO */ - if (len > ft1000_read_fifo_len(dev)) { - udelay(10); - if (len > ft1000_read_fifo_len(dev)) - udelay(20); - if (len > ft1000_read_fifo_len(dev)) - udelay(20); - if (len > ft1000_read_fifo_len(dev)) - udelay(20); - if (len > ft1000_read_fifo_len(dev)) - udelay(20); - if (len > ft1000_read_fifo_len(dev)) - udelay(20); - if (len > ft1000_read_fifo_len(dev)) { - pr_debug("Transmit FIFO is full - pkt drop\n"); - info->stats.tx_errors++; - return SUCCESS; - } - } - /* Create pseudo header and send pseudo/ip to hardware */ - if (info->AsicID == ELECTRABUZZ_ID) - pseudo.blk.length = len; - else - pseudo.blk.length = ntohs(len); - - pseudo.blk.source = DSPID; /* Need to swap to get in correct - order */ - pseudo.blk.destination = HOSTID; - pseudo.blk.portdest = NETWORKID; /* Need to swap to get in - correct order */ - pseudo.blk.portsrc = DSPAIRID; - pseudo.blk.sh_str_id = 0; - pseudo.blk.control = 0; - pseudo.blk.rsvd1 = 0; - pseudo.blk.seq_num = 0; - pseudo.blk.rsvd2 = pcmcia->packetseqnum++; - pseudo.blk.qos_class = 0; - /* Calculate pseudo header checksum */ - pseudo.blk.checksum = pseudo.buff[0]; - for (i = 1; i < 7; i++) - pseudo.blk.checksum ^= pseudo.buff[i]; - - /* Production Mode */ - if (info->AsicID == ELECTRABUZZ_ID) { - /* copy first word to UFIFO_BEG reg */ - ft1000_write_reg(dev, FT1000_REG_UFIFO_BEG, pseudo.buff[0]); - pr_debug("data 0 BEG = 0x%04x\n", pseudo.buff[0]); - - /* copy subsequent words to UFIFO_MID reg */ - ft1000_write_reg(dev, FT1000_REG_UFIFO_MID, pseudo.buff[1]); - pr_debug("data 1 MID = 0x%04x\n", pseudo.buff[1]); - ft1000_write_reg(dev, FT1000_REG_UFIFO_MID, pseudo.buff[2]); - pr_debug("data 2 MID = 0x%04x\n", pseudo.buff[2]); - ft1000_write_reg(dev, FT1000_REG_UFIFO_MID, pseudo.buff[3]); - pr_debug("data 3 MID = 0x%04x\n", pseudo.buff[3]); - ft1000_write_reg(dev, FT1000_REG_UFIFO_MID, pseudo.buff[4]); - pr_debug("data 4 MID = 0x%04x\n", pseudo.buff[4]); - ft1000_write_reg(dev, FT1000_REG_UFIFO_MID, pseudo.buff[5]); - pr_debug("data 5 MID = 0x%04x\n", pseudo.buff[5]); - ft1000_write_reg(dev, FT1000_REG_UFIFO_MID, pseudo.buff[6]); - pr_debug("data 6 MID = 0x%04x\n", pseudo.buff[6]); - ft1000_write_reg(dev, FT1000_REG_UFIFO_MID, pseudo.buff[7]); - pr_debug("data 7 MID = 0x%04x\n", pseudo.buff[7]); - - /* Write PPP type + IP Packet into Downlink FIFO */ - for (i = 0; i < (len >> 1) - 1; i++) { - ft1000_write_reg(dev, FT1000_REG_UFIFO_MID, - htons(*packet)); - pr_debug("data %d MID = 0x%04x\n", - i + 8, htons(*packet)); - packet++; - } - - /* Check for odd byte */ - if (len & 0x0001) { - ft1000_write_reg(dev, FT1000_REG_UFIFO_MID, - htons(*packet)); - pr_debug("data MID = 0x%04x\n", htons(*packet)); - packet++; - ft1000_write_reg(dev, FT1000_REG_UFIFO_END, - htons(*packet)); - pr_debug("data %d MID = 0x%04x\n", - i + 8, htons(*packet)); - } else { - ft1000_write_reg(dev, FT1000_REG_UFIFO_END, - htons(*packet)); - pr_debug("data %d MID = 0x%04x\n", - i + 8, htons(*packet)); - } - } else { - outl(*(u32 *)&pseudo.buff[0], - dev->base_addr + FT1000_REG_MAG_UFDR); - pr_debug("Pseudo = 0x%8x\n", *(u32 *)&pseudo.buff[0]); - outl(*(u32 *)&pseudo.buff[2], - dev->base_addr + FT1000_REG_MAG_UFDR); - pr_debug("Pseudo = 0x%8x\n", *(u32 *)&pseudo.buff[2]); - outl(*(u32 *)&pseudo.buff[4], - dev->base_addr + FT1000_REG_MAG_UFDR); - pr_debug("Pseudo = 0x%8x\n", *(u32 *)&pseudo.buff[4]); - outl(*(u32 *)&pseudo.buff[6], - dev->base_addr + FT1000_REG_MAG_UFDR); - pr_debug("Pseudo = 0x%8x\n", *(u32 *)&pseudo.buff[6]); - - plong = (u32 *)packet; - /* Write PPP type + IP Packet into Downlink FIFO */ - for (i = 0; i < (len >> 2); i++) - outl(*plong++, dev->base_addr + FT1000_REG_MAG_UFDR); - - /* Check for odd alignment */ - if (len & 0x0003) { - pr_debug("data = 0x%8x\n", *plong); - outl(*plong++, dev->base_addr + FT1000_REG_MAG_UFDR); - } - outl(1, dev->base_addr + FT1000_REG_MAG_UFER); - } - - info->stats.tx_packets++; - /* Add 14 bytes for MAC address plus ethernet type */ - info->stats.tx_bytes += (len + 14); - return SUCCESS; -} - -static struct net_device_stats *ft1000_stats(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - - return &info->stats; -} - -static int ft1000_open(struct net_device *dev) -{ - ft1000_reset_card(dev); - - /* schedule ft1000_hbchk to perform periodic heartbeat checks on DSP - * and ASIC */ - init_timer(&poll_timer); - poll_timer.expires = jiffies + (2 * HZ); - poll_timer.data = (u_long)dev; - add_timer(&poll_timer); - - return 0; -} - -static int ft1000_close(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - - info->CardReady = 0; - del_timer(&poll_timer); - - if (ft1000_card_present == 1) { - pr_debug("Media is down\n"); - netif_stop_queue(dev); - - ft1000_disable_interrupts(dev); - ft1000_write_reg(dev, FT1000_REG_RESET, DSP_RESET_BIT); - - /* reset ASIC */ - ft1000_reset_asic(dev); - } - return 0; -} - -static int ft1000_start_xmit(struct sk_buff *skb, struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - u8 *pdata; - - if (skb == NULL) { - pr_debug("skb == NULL!!!\n"); - return 0; - } - - pr_debug("length of packet = %d\n", skb->len); - - pdata = (u8 *)skb->data; - - if (info->mediastate == 0) { - /* Drop packet is mediastate is down */ - pr_debug("mediastate is down\n"); - return SUCCESS; - } - - if ((skb->len < ENET_HEADER_SIZE) || (skb->len > ENET_MAX_SIZE)) { - /* Drop packet which has invalid size */ - pr_debug("invalid ethernet length\n"); - return SUCCESS; - } - ft1000_copy_down_pkt(dev, (u16 *) (pdata + ENET_HEADER_SIZE - 2), - skb->len - ENET_HEADER_SIZE + 2); - - dev_kfree_skb(skb); - - return 0; -} - -static irqreturn_t ft1000_interrupt(int irq, void *dev_id) -{ - struct net_device *dev = dev_id; - struct ft1000_info *info = netdev_priv(dev); - u16 tempword; - u16 inttype; - int cnt; - - if (info->CardReady == 0) { - ft1000_disable_interrupts(dev); - return IRQ_HANDLED; - } - - if (ft1000_chkcard(dev) == false) { - ft1000_disable_interrupts(dev); - return IRQ_HANDLED; - } - - ft1000_disable_interrupts(dev); - - /* Read interrupt type */ - inttype = ft1000_read_reg(dev, FT1000_REG_SUP_ISR); - - /* Make sure we process all interrupt before leaving the ISR due to the - * edge trigger interrupt type */ - while (inttype) { - if (inttype & ISR_DOORBELL_PEND) - ft1000_parse_dpram_msg(dev); - - if (inttype & ISR_RCV) { - pr_debug("Data in FIFO\n"); - - cnt = 0; - do { - /* Check if we have packets in the Downlink - * FIFO */ - if (info->AsicID == ELECTRABUZZ_ID) { - tempword = ft1000_read_reg(dev, - FT1000_REG_DFIFO_STAT); - } else { - tempword = ft1000_read_reg(dev, - FT1000_REG_MAG_DFSR); - } - if (!(tempword & 0x1f)) - break; - ft1000_copy_up_pkt(dev); - cnt++; - } while (cnt < MAX_RCV_LOOP); - - } - /* clear interrupts */ - tempword = ft1000_read_reg(dev, FT1000_REG_SUP_ISR); - pr_debug("interrupt status register = 0x%x\n", tempword); - ft1000_write_reg(dev, FT1000_REG_SUP_ISR, tempword); - - /* Read interrupt type */ - inttype = ft1000_read_reg(dev, FT1000_REG_SUP_ISR); - pr_debug("interrupt status register after clear = 0x%x\n", - inttype); - } - ft1000_enable_interrupts(dev); - return IRQ_HANDLED; -} - -void stop_ft1000_card(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - struct prov_record *ptr; - struct prov_record *tmp; - /* int cnt; */ - - info->CardReady = 0; - ft1000_card_present = 0; - netif_stop_queue(dev); - ft1000_disable_interrupts(dev); - - /* Make sure we free any memory reserve for provisioning */ - list_for_each_entry_safe(ptr, tmp, &info->prov_list, list) { - list_del(&ptr->list); - kfree(ptr->pprov_data); - kfree(ptr); - } - - kfree(info->priv); - - if (info->registered) { - unregister_netdev(dev); - info->registered = 0; - } - - free_irq(dev->irq, dev); - release_region(dev->base_addr, 256); - release_firmware(fw_entry); - flarion_ft1000_cnt--; - -} - -static void ft1000_get_drvinfo(struct net_device *dev, - struct ethtool_drvinfo *info) -{ - struct ft1000_info *ft_info; - - ft_info = netdev_priv(dev); - - strlcpy(info->driver, "ft1000", sizeof(info->driver)); - snprintf(info->bus_info, sizeof(info->bus_info), "PCMCIA 0x%lx", - dev->base_addr); - snprintf(info->fw_version, sizeof(info->fw_version), "%d.%d.%d.%d", - ft_info->DspVer[0], ft_info->DspVer[1], ft_info->DspVer[2], - ft_info->DspVer[3]); -} - -static u32 ft1000_get_link(struct net_device *dev) -{ - struct ft1000_info *info; - - info = netdev_priv(dev); - return info->mediastate; -} - -static const struct ethtool_ops ops = { - .get_drvinfo = ft1000_get_drvinfo, - .get_link = ft1000_get_link -}; - -struct net_device *init_ft1000_card(struct pcmcia_device *link, - void *ft1000_reset) -{ - struct ft1000_info *info; - struct ft1000_pcmcia *pcmcia; - struct net_device *dev; - - static const struct net_device_ops ft1000ops = { - .ndo_open = &ft1000_open, - .ndo_stop = &ft1000_close, - .ndo_start_xmit = &ft1000_start_xmit, - .ndo_get_stats = &ft1000_stats, - }; - - pr_debug("irq = %d, port = 0x%04llx\n", - link->irq, (unsigned long long)link->resource[0]->start); - - flarion_ft1000_cnt++; - - if (flarion_ft1000_cnt > 1) { - flarion_ft1000_cnt--; - - dev_info(&link->dev, - "This driver can not support more than one instance\n"); - return NULL; - } - - dev = alloc_etherdev(sizeof(struct ft1000_info)); - if (!dev) { - dev_err(&link->dev, "Failed to allocate etherdev\n"); - return NULL; - } - - SET_NETDEV_DEV(dev, &link->dev); - info = netdev_priv(dev); - - memset(info, 0, sizeof(struct ft1000_info)); - - pr_debug("address of dev = 0x%p\n", dev); - pr_debug("address of dev info = 0x%p\n", info); - pr_debug("device name = %s\n", dev->name); - - memset(&info->stats, 0, sizeof(struct net_device_stats)); - - info->priv = kzalloc(sizeof(struct ft1000_pcmcia), GFP_KERNEL); - pcmcia = info->priv; - pcmcia->link = link; - - spin_lock_init(&info->dpram_lock); - info->DrvErrNum = 0; - info->registered = 1; - info->ft1000_reset = ft1000_reset; - info->mediastate = 0; - info->fifo_cnt = 0; - info->CardReady = 0; - info->DSP_TIME[0] = 0; - info->DSP_TIME[1] = 0; - info->DSP_TIME[2] = 0; - info->DSP_TIME[3] = 0; - flarion_ft1000_cnt = 0; - - INIT_LIST_HEAD(&info->prov_list); - - info->squeseqnum = 0; - - /* dev->hard_start_xmit = &ft1000_start_xmit; */ - /* dev->get_stats = &ft1000_stats; */ - /* dev->open = &ft1000_open; */ - /* dev->stop = &ft1000_close; */ - - dev->netdev_ops = &ft1000ops; - - pr_debug("device name = %s\n", dev->name); - - dev->irq = link->irq; - dev->base_addr = link->resource[0]->start; - if (pcmcia_get_mac_from_cis(link, dev)) { - netdev_err(dev, "Could not read mac address\n"); - goto err_dev; - } - - if (request_irq(dev->irq, ft1000_interrupt, IRQF_SHARED, dev->name, - dev)) { - netdev_err(dev, "Could not request_irq\n"); - goto err_dev; - } - - if (request_region(dev->base_addr, 256, dev->name) == NULL) { - netdev_err(dev, "Could not request_region\n"); - goto err_irq; - } - - if (register_netdev(dev)) { - pr_debug("Could not register netdev\n"); - goto err_reg; - } - - info->AsicID = ft1000_read_reg(dev, FT1000_REG_ASIC_ID); - if (info->AsicID == ELECTRABUZZ_ID) { - pr_debug("ELECTRABUZZ ASIC\n"); - if (request_firmware(&fw_entry, "ft1000.img", - &link->dev) != 0) { - pr_info("Could not open ft1000.img\n"); - goto err_unreg; - } - } else { - pr_debug("MAGNEMITE ASIC\n"); - if (request_firmware(&fw_entry, "ft2000.img", - &link->dev) != 0) { - pr_info("Could not open ft2000.img\n"); - goto err_unreg; - } - } - - ft1000_enable_interrupts(dev); - - ft1000_card_present = 1; - dev->ethtool_ops = &ops; - pr_info("%s: addr 0x%04lx irq %d, MAC addr %pM\n", - dev->name, dev->base_addr, dev->irq, dev->dev_addr); - return dev; - -err_unreg: - unregister_netdev(dev); -err_reg: - release_region(dev->base_addr, 256); -err_irq: - free_irq(dev->irq, dev); -err_dev: - free_netdev(dev); - return NULL; -} diff --git a/drivers/staging/ft1000/ft1000-usb/Makefile b/drivers/staging/ft1000/ft1000-usb/Makefile deleted file mode 100644 index 7c4b78456254..000000000000 --- a/drivers/staging/ft1000/ft1000-usb/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -obj-$(CONFIG_FT1000_USB) += ft1000.o - -ft1000-y := ft1000_debug.o ft1000_download.o ft1000_hw.o ft1000_usb.o diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c b/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c deleted file mode 100644 index f241a3a5a684..000000000000 --- a/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c +++ /dev/null @@ -1,789 +0,0 @@ -/* - *--------------------------------------------------------------------------- - * FT1000 driver for Flarion Flash OFDM NIC Device - * - * Copyright (C) 2006 Flarion Technologies, All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) any - * later version. This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - - * Suite 330, Boston, MA 02111-1307, USA. - *--------------------------------------------------------------------------- - * - * File: ft1000_chdev.c - * - * Description: Custom character device dispatch routines. - * - * History: - * 8/29/02 Whc Ported to Linux. - * 6/05/06 Whc Porting to Linux 2.6.9 - * - *--------------------------------------------------------------------------- - */ - -#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include "ft1000_usb.h" - -static int ft1000_flarion_cnt; - -static int ft1000_open(struct inode *inode, struct file *file); -static unsigned int ft1000_poll_dev(struct file *file, poll_table *wait); -static long ft1000_ioctl(struct file *file, unsigned int command, - unsigned long argument); -static int ft1000_release(struct inode *inode, struct file *file); - -/* List to free receive command buffer pool */ -struct list_head freercvpool; - -/* lock to arbitrate free buffer list for receive command data */ -spinlock_t free_buff_lock; - -int numofmsgbuf; - -/* - * Table of entry-point routines for char device - */ -static const struct file_operations ft1000fops = { - .unlocked_ioctl = ft1000_ioctl, - .poll = ft1000_poll_dev, - .open = ft1000_open, - .release = ft1000_release, - .llseek = no_llseek, -}; - -/* - --------------------------------------------------------------------------- - * Function: ft1000_get_buffer - * - * Parameters: - * - * Returns: - * - * Description: - * - * Notes: - * - *--------------------------------------------------------------------------- - */ -struct dpram_blk *ft1000_get_buffer(struct list_head *bufflist) -{ - unsigned long flags; - struct dpram_blk *ptr; - - spin_lock_irqsave(&free_buff_lock, flags); - /* Check if buffer is available */ - if (list_empty(bufflist)) { - pr_debug("No more buffer - %d\n", numofmsgbuf); - ptr = NULL; - } else { - numofmsgbuf--; - ptr = list_entry(bufflist->next, struct dpram_blk, list); - list_del(&ptr->list); - /* pr_debug("number of free msg buffers = %d\n", numofmsgbuf); */ - } - spin_unlock_irqrestore(&free_buff_lock, flags); - - return ptr; -} - - - - -/* - *--------------------------------------------------------------------------- - * Function: ft1000_free_buffer - * - * Parameters: - * - * Returns: - * - * Description: - * - * Notes: - * - *--------------------------------------------------------------------------- - */ -void ft1000_free_buffer(struct dpram_blk *pdpram_blk, struct list_head *plist) -{ - unsigned long flags; - - spin_lock_irqsave(&free_buff_lock, flags); - /* Put memory back to list */ - list_add_tail(&pdpram_blk->list, plist); - numofmsgbuf++; - /*pr_debug("number of free msg buffers = %d\n", numofmsgbuf); */ - spin_unlock_irqrestore(&free_buff_lock, flags); -} - -/* - *--------------------------------------------------------------------------- - * Function: ft1000_CreateDevice - * - * Parameters: dev - pointer to adapter object - * - * Returns: 0 if successful - * - * Description: Creates a private char device. - * - * Notes: Only called by init_module(). - * - *--------------------------------------------------------------------------- - */ -int ft1000_create_dev(struct ft1000_usb *dev) -{ - int result; - int i; - struct dentry *dir, *file; - struct ft1000_debug_dirs *tmp; - - /* make a new device name */ - sprintf(dev->DeviceName, "%s%d", "FT1000_", dev->CardNumber); - - pr_debug("number of instance = %d\n", ft1000_flarion_cnt); - pr_debug("DeviceCreated = %x\n", dev->DeviceCreated); - - if (dev->DeviceCreated) { - pr_debug("\"%s\" already registered\n", dev->DeviceName); - return -EIO; - } - - - /* register the device */ - pr_debug("\"%s\" debugfs device registration\n", dev->DeviceName); - - tmp = kmalloc(sizeof(struct ft1000_debug_dirs), GFP_KERNEL); - if (tmp == NULL) { - result = -1; - goto fail; - } - - dir = debugfs_create_dir(dev->DeviceName, NULL); - if (IS_ERR(dir)) { - result = PTR_ERR(dir); - goto debug_dir_fail; - } - - file = debugfs_create_file("device", S_IRUGO | S_IWUSR, dir, - dev, &ft1000fops); - if (IS_ERR(file)) { - result = PTR_ERR(file); - goto debug_file_fail; - } - - tmp->dent = dir; - tmp->file = file; - tmp->int_number = dev->CardNumber; - list_add(&tmp->list, &dev->nodes.list); - - pr_debug("registered debugfs directory \"%s\"\n", dev->DeviceName); - - /* initialize application information */ - dev->appcnt = 0; - for (i = 0; i < MAX_NUM_APP; i++) { - dev->app_info[i].nTxMsg = 0; - dev->app_info[i].nRxMsg = 0; - dev->app_info[i].nTxMsgReject = 0; - dev->app_info[i].nRxMsgMiss = 0; - dev->app_info[i].fileobject = NULL; - dev->app_info[i].app_id = i+1; - dev->app_info[i].DspBCMsgFlag = 0; - dev->app_info[i].NumOfMsg = 0; - init_waitqueue_head(&dev->app_info[i].wait_dpram_msg); - INIT_LIST_HEAD(&dev->app_info[i].app_sqlist); - } - - dev->DeviceCreated = TRUE; - ft1000_flarion_cnt++; - - return 0; - -debug_file_fail: - debugfs_remove(dir); -debug_dir_fail: - kfree(tmp); -fail: - return result; -} - -/* - *--------------------------------------------------------------------------- - * Function: ft1000_DestroyDeviceDEBUG - * - * Parameters: dev - pointer to adapter object - * - * Description: Destroys a private char device. - * - * Notes: Only called by cleanup_module(). - * - *--------------------------------------------------------------------------- - */ -void ft1000_destroy_dev(struct net_device *netdev) -{ - struct ft1000_info *info = netdev_priv(netdev); - struct ft1000_usb *dev = info->priv; - int i; - struct dpram_blk *pdpram_blk; - struct dpram_blk *ptr; - struct list_head *pos, *q; - struct ft1000_debug_dirs *dir; - - if (dev->DeviceCreated) { - ft1000_flarion_cnt--; - list_for_each_safe(pos, q, &dev->nodes.list) { - dir = list_entry(pos, struct ft1000_debug_dirs, list); - if (dir->int_number == dev->CardNumber) { - debugfs_remove(dir->file); - debugfs_remove(dir->dent); - list_del(pos); - kfree(dir); - } - } - pr_debug("unregistered device \"%s\"\n", dev->DeviceName); - - /* Make sure we free any memory reserve for slow Queue */ - for (i = 0; i < MAX_NUM_APP; i++) { - while (list_empty(&dev->app_info[i].app_sqlist) == 0) { - pdpram_blk = list_entry(dev->app_info[i].app_sqlist.next, - struct dpram_blk, list); - list_del(&pdpram_blk->list); - ft1000_free_buffer(pdpram_blk, &freercvpool); - - } - wake_up_interruptible(&dev->app_info[i].wait_dpram_msg); - } - - /* Remove buffer allocated for receive command data */ - if (ft1000_flarion_cnt == 0) { - while (list_empty(&freercvpool) == 0) { - ptr = list_entry(freercvpool.next, struct dpram_blk, list); - list_del(&ptr->list); - kfree(ptr->pbuffer); - kfree(ptr); - } - } - dev->DeviceCreated = FALSE; - } - - -} - -/* - *--------------------------------------------------------------------------- - * Function: ft1000_open - * - * Parameters: - * - * Description: - * - * Notes: - * - *--------------------------------------------------------------------------- - */ -static int ft1000_open(struct inode *inode, struct file *file) -{ - struct ft1000_info *info; - struct ft1000_usb *dev = (struct ft1000_usb *)inode->i_private; - int i, num; - - num = MINOR(inode->i_rdev) & 0xf; - pr_debug("minor number=%d\n", num); - - info = file->private_data = netdev_priv(dev->net); - - pr_debug("f_owner = %p number of application = %d\n", - &file->f_owner, dev->appcnt); - - /* Check if maximum number of application exceeded */ - if (dev->appcnt > MAX_NUM_APP) { - pr_debug("Maximum number of application exceeded\n"); - return -EACCES; - } - - /* Search for available application info block */ - for (i = 0; i < MAX_NUM_APP; i++) { - if (dev->app_info[i].fileobject == NULL) - break; - } - - /* Fail due to lack of application info block */ - if (i == MAX_NUM_APP) { - pr_debug("Could not find an application info block\n"); - return -EACCES; - } - - dev->appcnt++; - dev->app_info[i].fileobject = &file->f_owner; - dev->app_info[i].nTxMsg = 0; - dev->app_info[i].nRxMsg = 0; - dev->app_info[i].nTxMsgReject = 0; - dev->app_info[i].nRxMsgMiss = 0; - - nonseekable_open(inode, file); - return 0; -} - - -/* - *--------------------------------------------------------------------------- - * Function: ft1000_poll_dev - * - * Parameters: - * - * Description: - * - * Notes: - * - *--------------------------------------------------------------------------- - */ - -static unsigned int ft1000_poll_dev(struct file *file, poll_table *wait) -{ - struct net_device *netdev = file->private_data; - struct ft1000_info *info = netdev_priv(netdev); - struct ft1000_usb *dev = info->priv; - int i; - - if (ft1000_flarion_cnt == 0) { - pr_debug("called with ft1000_flarion_cnt value zero\n"); - return -EBADF; - } - - /* Search for matching file object */ - for (i = 0; i < MAX_NUM_APP; i++) { - if (dev->app_info[i].fileobject == &file->f_owner) { - /* pr_debug("Message is for AppId = %d\n", dev->app_info[i].app_id); */ - break; - } - } - - /* Could not find application info block */ - if (i == MAX_NUM_APP) { - pr_debug("Could not find application info block\n"); - return -EACCES; - } - - if (list_empty(&dev->app_info[i].app_sqlist) == 0) { - pr_debug("Message detected in slow queue\n"); - return(POLLIN | POLLRDNORM | POLLPRI); - } - - poll_wait(file, &dev->app_info[i].wait_dpram_msg, wait); - /* pr_debug("Polling for data from DSP\n"); */ - - return 0; -} - -/* - *--------------------------------------------------------------------------- - * Function: ft1000_ioctl - * - * Parameters: - * - * Description: - * - * Notes: - * - *--------------------------------------------------------------------------- - */ -static long ft1000_ioctl(struct file *file, unsigned int command, - unsigned long argument) -{ - void __user *argp = (void __user *)argument; - struct ft1000_info *info; - struct ft1000_usb *ft1000dev; - int result = 0; - int cmd; - int i; - u16 tempword; - unsigned long flags; - struct timeval tv; - struct IOCTL_GET_VER get_ver_data; - struct IOCTL_GET_DSP_STAT get_stat_data; - u8 ConnectionMsg[] = { - 0x00, 0x44, 0x10, 0x20, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x93, 0x64, - 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0a, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x02, 0x37, 0x00, 0x00, 0x00, 0x08, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x7f, 0x00, - 0x00, 0x01, 0x00, 0x00 - }; - - unsigned short ledStat = 0; - unsigned short conStat = 0; - - if (ft1000_flarion_cnt == 0) { - pr_debug("called with ft1000_flarion_cnt of zero\n"); - return -EBADF; - } - - /* pr_debug("command = 0x%x argument = 0x%8x\n", command, (u32)argument); */ - - info = file->private_data; - ft1000dev = info->priv; - cmd = _IOC_NR(command); - /* pr_debug("cmd = 0x%x\n", cmd); */ - - /* process the command */ - switch (cmd) { - case IOCTL_REGISTER_CMD: - pr_debug("IOCTL_FT1000_REGISTER called\n"); - result = get_user(tempword, (__u16 __user *)argp); - if (result) { - pr_debug("result = %d failed to get_user\n", result); - break; - } - if (tempword == DSPBCMSGID) { - /* Search for matching file object */ - for (i = 0; i < MAX_NUM_APP; i++) { - if (ft1000dev->app_info[i].fileobject == &file->f_owner) { - ft1000dev->app_info[i].DspBCMsgFlag = 1; - pr_debug("Registered for broadcast messages\n"); - break; - } - } - } - break; - - case IOCTL_GET_VER_CMD: - pr_debug("IOCTL_FT1000_GET_VER called\n"); - - get_ver_data.drv_ver = FT1000_DRV_VER; - - if (copy_to_user(argp, &get_ver_data, sizeof(get_ver_data))) { - pr_debug("copy fault occurred\n"); - result = -EFAULT; - break; - } - - pr_debug("driver version = 0x%x\n", - (unsigned int)get_ver_data.drv_ver); - - break; - case IOCTL_CONNECT: - /* Connect Message */ - pr_debug("IOCTL_FT1000_CONNECT\n"); - ConnectionMsg[79] = 0xfc; - result = card_send_command(ft1000dev, ConnectionMsg, 0x4c); - - break; - case IOCTL_DISCONNECT: - /* Disconnect Message */ - pr_debug("IOCTL_FT1000_DISCONNECT\n"); - ConnectionMsg[79] = 0xfd; - result = card_send_command(ft1000dev, ConnectionMsg, 0x4c); - break; - case IOCTL_GET_DSP_STAT_CMD: - /* pr_debug("IOCTL_FT1000_GET_DSP_STAT\n"); */ - memset(&get_stat_data, 0, sizeof(get_stat_data)); - memcpy(get_stat_data.DspVer, info->DspVer, DSPVERSZ); - memcpy(get_stat_data.HwSerNum, info->HwSerNum, HWSERNUMSZ); - memcpy(get_stat_data.Sku, info->Sku, SKUSZ); - memcpy(get_stat_data.eui64, info->eui64, EUISZ); - - if (info->ProgConStat != 0xFF) { - ft1000_read_dpram16(ft1000dev, FT1000_MAG_DSP_LED, - (u8 *)&ledStat, FT1000_MAG_DSP_LED_INDX); - get_stat_data.LedStat = ntohs(ledStat); - pr_debug("LedStat = 0x%x\n", get_stat_data.LedStat); - ft1000_read_dpram16(ft1000dev, FT1000_MAG_DSP_CON_STATE, - (u8 *)&conStat, FT1000_MAG_DSP_CON_STATE_INDX); - get_stat_data.ConStat = ntohs(conStat); - pr_debug("ConStat = 0x%x\n", get_stat_data.ConStat); - } else { - get_stat_data.ConStat = 0x0f; - } - - - get_stat_data.nTxPkts = info->stats.tx_packets; - get_stat_data.nRxPkts = info->stats.rx_packets; - get_stat_data.nTxBytes = info->stats.tx_bytes; - get_stat_data.nRxBytes = info->stats.rx_bytes; - do_gettimeofday(&tv); - get_stat_data.ConTm = (u32)(tv.tv_sec - info->ConTm); - pr_debug("Connection Time = %d\n", (int)get_stat_data.ConTm); - if (copy_to_user(argp, &get_stat_data, sizeof(get_stat_data))) { - pr_debug("copy fault occurred\n"); - result = -EFAULT; - break; - } - pr_debug("GET_DSP_STAT succeed\n"); - break; - case IOCTL_SET_DPRAM_CMD: - { - struct IOCTL_DPRAM_BLK *dpram_data = NULL; - /* struct IOCTL_DPRAM_COMMAND dpram_command; */ - u16 qtype; - u16 msgsz; - struct pseudo_hdr *ppseudo_hdr; - u16 *pmsg; - u16 total_len; - u16 app_index; - u16 status; - - /* pr_debug("IOCTL_FT1000_SET_DPRAM called\n");*/ - - - if (ft1000_flarion_cnt == 0) - return -EBADF; - - if (ft1000dev->DrvMsgPend) - return -ENOTTY; - - if (ft1000dev->fProvComplete == 0) - return -EACCES; - - ft1000dev->fAppMsgPend = true; - - if (info->CardReady) { - - /* pr_debug("try to SET_DPRAM\n"); */ - - /* Get the length field to see how many bytes to copy */ - result = get_user(msgsz, (__u16 __user *)argp); - if (result) - break; - msgsz = ntohs(msgsz); - /* pr_debug("length of message = %d\n", msgsz); */ - - if (msgsz > MAX_CMD_SQSIZE) { - pr_debug("bad message length = %d\n", msgsz); - result = -EINVAL; - break; - } - - result = -ENOMEM; - dpram_data = kmalloc(msgsz + 2, GFP_KERNEL); - if (!dpram_data) - break; - - if (copy_from_user(dpram_data, argp, msgsz+2)) { - pr_debug("copy fault occurred\n"); - result = -EFAULT; - } else { - /* Check if this message came from a registered application */ - for (i = 0; i < MAX_NUM_APP; i++) { - if (ft1000dev->app_info[i].fileobject == &file->f_owner) - break; - } - if (i == MAX_NUM_APP) { - pr_debug("No matching application fileobject\n"); - result = -EINVAL; - kfree(dpram_data); - break; - } - app_index = i; - - /* Check message qtype type which is the lower byte within qos_class */ - qtype = ntohs(dpram_data->pseudohdr.qos_class) & 0xff; - /* pr_debug("qtype = %d\n", qtype); */ - if (!qtype) { - /* Put message into Slow Queue */ - /* Only put a message into the DPRAM if msg doorbell is available */ - status = ft1000_read_register(ft1000dev, &tempword, FT1000_REG_DOORBELL); - /* pr_debug("READ REGISTER tempword=%x\n", tempword); */ - if (tempword & FT1000_DB_DPRAM_TX) { - /* Suspend for 2ms and try again due to DSP doorbell busy */ - mdelay(2); - status = ft1000_read_register(ft1000dev, &tempword, FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) { - /* Suspend for 1ms and try again due to DSP doorbell busy */ - mdelay(1); - status = ft1000_read_register(ft1000dev, &tempword, FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) { - status = ft1000_read_register(ft1000dev, &tempword, FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) { - /* Suspend for 3ms and try again due to DSP doorbell busy */ - mdelay(3); - status = ft1000_read_register(ft1000dev, &tempword, FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) { - pr_debug("Doorbell not available\n"); - result = -ENOTTY; - kfree(dpram_data); - break; - } - } - } - } - } - - /*pr_debug("finished reading register\n"); */ - - /* Make sure we are within the limits of the slow queue memory limitation */ - if ((msgsz < MAX_CMD_SQSIZE) && (msgsz > PSEUDOSZ)) { - /* Need to put sequence number plus new checksum for message */ - pmsg = (u16 *)&dpram_data->pseudohdr; - ppseudo_hdr = (struct pseudo_hdr *)pmsg; - total_len = msgsz+2; - if (total_len & 0x1) - total_len++; - - /* Insert slow queue sequence number */ - ppseudo_hdr->seq_num = info->squeseqnum++; - ppseudo_hdr->portsrc = ft1000dev->app_info[app_index].app_id; - /* Calculate new checksum */ - ppseudo_hdr->checksum = *pmsg++; - /* pr_debug("checksum = 0x%x\n", ppseudo_hdr->checksum); */ - for (i = 1; i < 7; i++) { - ppseudo_hdr->checksum ^= *pmsg++; - /* pr_debug("checksum = 0x%x\n", ppseudo_hdr->checksum); */ - } - pmsg++; - ppseudo_hdr = (struct pseudo_hdr *)pmsg; - result = card_send_command(ft1000dev, dpram_data, total_len+2); - - - ft1000dev->app_info[app_index].nTxMsg++; - } else { - result = -EINVAL; - } - } - } - } else { - pr_debug("Card not ready take messages\n"); - result = -EACCES; - } - kfree(dpram_data); - - } - break; - case IOCTL_GET_DPRAM_CMD: - { - struct dpram_blk *pdpram_blk; - struct IOCTL_DPRAM_BLK __user *pioctl_dpram; - int msglen; - - /* pr_debug("IOCTL_FT1000_GET_DPRAM called\n"); */ - - if (ft1000_flarion_cnt == 0) - return -EBADF; - - /* Search for matching file object */ - for (i = 0; i < MAX_NUM_APP; i++) { - if (ft1000dev->app_info[i].fileobject == &file->f_owner) { - /*pr_debug("Message is for AppId = %d\n", ft1000dev->app_info[i].app_id); */ - break; - } - } - - /* Could not find application info block */ - if (i == MAX_NUM_APP) { - pr_debug("Could not find application info block\n"); - result = -EBADF; - break; - } - - result = 0; - pioctl_dpram = argp; - if (list_empty(&ft1000dev->app_info[i].app_sqlist) == 0) { - /* pr_debug("Message detected in slow queue\n"); */ - spin_lock_irqsave(&free_buff_lock, flags); - pdpram_blk = list_entry(ft1000dev->app_info[i].app_sqlist.next, - struct dpram_blk, list); - list_del(&pdpram_blk->list); - ft1000dev->app_info[i].NumOfMsg--; - /* pr_debug("NumOfMsg for app %d = %d\n", i, ft1000dev->app_info[i].NumOfMsg); */ - spin_unlock_irqrestore(&free_buff_lock, flags); - msglen = ntohs(*(u16 *)pdpram_blk->pbuffer) + PSEUDOSZ; - result = get_user(msglen, &pioctl_dpram->total_len); - if (result) - break; - msglen = htons(msglen); - /* pr_debug("msg length = %x\n", msglen); */ - if (copy_to_user(&pioctl_dpram->pseudohdr, pdpram_blk->pbuffer, msglen)) { - pr_debug("copy fault occurred\n"); - result = -EFAULT; - break; - } - - ft1000_free_buffer(pdpram_blk, &freercvpool); - result = msglen; - } - /* pr_debug("IOCTL_FT1000_GET_DPRAM no message\n"); */ - } - break; - - default: - pr_debug("unknown command: 0x%x\n", command); - result = -ENOTTY; - break; - } - ft1000dev->fAppMsgPend = false; - return result; -} - -/* - *--------------------------------------------------------------------------- - * Function: ft1000_release - * - * Parameters: - * - * Description: - * - * Notes: - * - *--------------------------------------------------------------------------- - */ -static int ft1000_release(struct inode *inode, struct file *file) -{ - struct ft1000_info *info; - struct net_device *dev; - struct ft1000_usb *ft1000dev; - int i; - struct dpram_blk *pdpram_blk; - struct dpram_blk *tmp; - - dev = file->private_data; - info = netdev_priv(dev); - ft1000dev = info->priv; - - if (ft1000_flarion_cnt == 0) { - ft1000dev->appcnt--; - return -EBADF; - } - - /* Search for matching file object */ - for (i = 0; i < MAX_NUM_APP; i++) { - if (ft1000dev->app_info[i].fileobject == &file->f_owner) { - /* pr_debug("Message is for AppId = %d\n", ft1000dev->app_info[i].app_id); */ - break; - } - } - - if (i == MAX_NUM_APP) - return 0; - - list_for_each_entry_safe(pdpram_blk, tmp, &ft1000dev->app_info[i].app_sqlist, list) { - pr_debug("Remove and free memory queue up on slow queue\n"); - list_del(&pdpram_blk->list); - ft1000_free_buffer(pdpram_blk, &freercvpool); - } - - /* initialize application information */ - ft1000dev->appcnt--; - pr_debug("appcnt = %d\n", ft1000dev->appcnt); - ft1000dev->app_info[i].fileobject = NULL; - - return 0; -} diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_download.c b/drivers/staging/ft1000/ft1000-usb/ft1000_download.c deleted file mode 100644 index cf850212f4b6..000000000000 --- a/drivers/staging/ft1000/ft1000-usb/ft1000_download.c +++ /dev/null @@ -1,1058 +0,0 @@ -/* - * CopyRight (C) 2007 Qualcomm Inc. All Rights Reserved. - * - * This file is part of Express Card USB Driver - */ - -#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - -#include -#include -#include -#include -#include -#include -#include "ft1000_usb.h" - - -#define DWNLD_HANDSHAKE_LOC 0x02 -#define DWNLD_TYPE_LOC 0x04 -#define DWNLD_SIZE_MSW_LOC 0x06 -#define DWNLD_SIZE_LSW_LOC 0x08 -#define DWNLD_PS_HDR_LOC 0x0A - -#define MAX_DSP_WAIT_LOOPS 40 -#define DSP_WAIT_SLEEP_TIME 1000 /* 1 millisecond */ -#define DSP_WAIT_DISPATCH_LVL 50 /* 50 usec */ - -#define HANDSHAKE_TIMEOUT_VALUE 0xF1F1 -#define HANDSHAKE_RESET_VALUE 0xFEFE /* When DSP requests startover */ -#define HANDSHAKE_RESET_VALUE_USB 0xFE7E /* When DSP requests startover */ -#define HANDSHAKE_DSP_BL_READY 0xFEFE /* At start DSP writes this when bootloader ready */ -#define HANDSHAKE_DSP_BL_READY_USB 0xFE7E /* At start DSP writes this when bootloader ready */ -#define HANDSHAKE_DRIVER_READY 0xFFFF /* Driver writes after receiving 0xFEFE */ -#define HANDSHAKE_SEND_DATA 0x0000 /* DSP writes this when ready for more data */ - -#define HANDSHAKE_REQUEST 0x0001 /* Request from DSP */ -#define HANDSHAKE_RESPONSE 0x0000 /* Satisfied DSP request */ - -#define REQUEST_CODE_LENGTH 0x0000 -#define REQUEST_RUN_ADDRESS 0x0001 -#define REQUEST_CODE_SEGMENT 0x0002 /* In WORD count */ -#define REQUEST_DONE_BL 0x0003 -#define REQUEST_DONE_CL 0x0004 -#define REQUEST_VERSION_INFO 0x0005 -#define REQUEST_CODE_BY_VERSION 0x0006 -#define REQUEST_MAILBOX_DATA 0x0007 -#define REQUEST_FILE_CHECKSUM 0x0008 - -#define STATE_START_DWNLD 0x01 -#define STATE_BOOT_DWNLD 0x02 -#define STATE_CODE_DWNLD 0x03 -#define STATE_DONE_DWNLD 0x04 -#define STATE_SECTION_PROV 0x05 -#define STATE_DONE_PROV 0x06 -#define STATE_DONE_FILE 0x07 - -#define MAX_LENGTH 0x7f0 - -/* Temporary download mechanism for Magnemite */ -#define DWNLD_MAG_TYPE_LOC 0x00 -#define DWNLD_MAG_LEN_LOC 0x01 -#define DWNLD_MAG_ADDR_LOC 0x02 -#define DWNLD_MAG_CHKSUM_LOC 0x03 -#define DWNLD_MAG_VAL_LOC 0x04 - -#define HANDSHAKE_MAG_DSP_BL_READY 0xFEFE0000 /* At start DSP writes this when bootloader ready */ -#define HANDSHAKE_MAG_DSP_ENTRY 0x01000000 /* Dsp writes this to request for entry address */ -#define HANDSHAKE_MAG_DSP_DATA 0x02000000 /* Dsp writes this to request for data block */ -#define HANDSHAKE_MAG_DSP_DONE 0x03000000 /* Dsp writes this to indicate download done */ - -#define HANDSHAKE_MAG_DRV_READY 0xFFFF0000 /* Driver writes this to indicate ready to download */ -#define HANDSHAKE_MAG_DRV_DATA 0x02FECDAB /* Driver writes this to indicate data available to DSP */ -#define HANDSHAKE_MAG_DRV_ENTRY 0x01FECDAB /* Driver writes this to indicate entry point to DSP */ - -#define HANDSHAKE_MAG_TIMEOUT_VALUE 0xF1F1 - - -/* New Magnemite downloader */ -#define DWNLD_MAG1_HANDSHAKE_LOC 0x00 -#define DWNLD_MAG1_TYPE_LOC 0x01 -#define DWNLD_MAG1_SIZE_LOC 0x02 -#define DWNLD_MAG1_PS_HDR_LOC 0x03 - -struct dsp_file_hdr { - long version_id; /* Version ID of this image format. */ - long package_id; /* Package ID of code release. */ - long build_date; /* Date/time stamp when file was built. */ - long commands_offset; /* Offset to attached commands in Pseudo Hdr format. */ - long loader_offset; /* Offset to bootloader code. */ - long loader_code_address; /* Start address of bootloader. */ - long loader_code_end; /* Where bootloader code ends. */ - long loader_code_size; - long version_data_offset; /* Offset were scrambled version data begins. */ - long version_data_size; /* Size, in words, of scrambled version data. */ - long nDspImages; /* Number of DSP images in file. */ -}; - -struct dsp_image_info { - long coff_date; /* Date/time when DSP Coff image was built. */ - long begin_offset; /* Offset in file where image begins. */ - long end_offset; /* Offset in file where image begins. */ - long run_address; /* On chip Start address of DSP code. */ - long image_size; /* Size of image. */ - long version; /* Embedded version # of DSP code. */ - unsigned short checksum; /* DSP File checksum */ - unsigned short pad1; -} __packed; - - -/* checks if the doorbell register is cleared */ -static int check_usb_db(struct ft1000_usb *ft1000dev) -{ - int loopcnt; - u16 temp; - int status; - - loopcnt = 0; - - while (loopcnt < 10) { - status = ft1000_read_register(ft1000dev, &temp, - FT1000_REG_DOORBELL); - pr_debug("read FT1000_REG_DOORBELL value is %x\n", temp); - if (temp & 0x0080) { - pr_debug("Got checkusb doorbell\n"); - status = ft1000_write_register(ft1000dev, 0x0080, - FT1000_REG_DOORBELL); - status = ft1000_write_register(ft1000dev, 0x0100, - FT1000_REG_DOORBELL); - status = ft1000_write_register(ft1000dev, 0x8000, - FT1000_REG_DOORBELL); - break; - } - loopcnt++; - usleep_range(10000, 11000); - - } - - loopcnt = 0; - while (loopcnt < 20) { - status = ft1000_read_register(ft1000dev, &temp, - FT1000_REG_DOORBELL); - pr_debug("Doorbell = 0x%x\n", temp); - if (temp & 0x8000) { - loopcnt++; - usleep_range(10000, 11000); - } else { - pr_debug("door bell is cleared, return 0\n"); - return 0; - } - } - - return -1; -} - -/* gets the handshake and compares it with the expected value */ -static u16 get_handshake(struct ft1000_usb *ft1000dev, u16 expected_value) -{ - u16 handshake; - int loopcnt; - int status = 0; - - loopcnt = 0; - - while (loopcnt < 100) { - /* Need to clear downloader doorbell if Hartley ASIC */ - status = ft1000_write_register(ft1000dev, FT1000_DB_DNLD_RX, - FT1000_REG_DOORBELL); - if (ft1000dev->fcodeldr) { - pr_debug("fcodeldr is %d\n", ft1000dev->fcodeldr); - ft1000dev->fcodeldr = 0; - status = check_usb_db(ft1000dev); - if (status != 0) { - pr_debug("check_usb_db failed\n"); - break; - } - status = ft1000_write_register(ft1000dev, - FT1000_DB_DNLD_RX, - FT1000_REG_DOORBELL); - } - - status = ft1000_read_dpram16(ft1000dev, - DWNLD_MAG1_HANDSHAKE_LOC, - (u8 *)&handshake, 1); - handshake = ntohs(handshake); - - if (status) - return HANDSHAKE_TIMEOUT_VALUE; - - if ((handshake == expected_value) || - (handshake == HANDSHAKE_RESET_VALUE_USB)) { - return handshake; - } - loopcnt++; - usleep_range(10000, 11000); - } - - return HANDSHAKE_TIMEOUT_VALUE; -} - -/* write the handshake value to the handshake location */ -static void put_handshake(struct ft1000_usb *ft1000dev, u16 handshake_value) -{ - u32 tempx; - u16 tempword; - int status; - - tempx = (u32)handshake_value; - tempx = ntohl(tempx); - - tempword = (u16)(tempx & 0xffff); - status = ft1000_write_dpram16(ft1000dev, DWNLD_MAG1_HANDSHAKE_LOC, - tempword, 0); - tempword = (u16)(tempx >> 16); - status = ft1000_write_dpram16(ft1000dev, DWNLD_MAG1_HANDSHAKE_LOC, - tempword, 1); - status = ft1000_write_register(ft1000dev, FT1000_DB_DNLD_TX, - FT1000_REG_DOORBELL); -} - -static u16 get_handshake_usb(struct ft1000_usb *ft1000dev, u16 expected_value) -{ - u16 handshake; - int loopcnt; - u16 temp; - int status = 0; - - loopcnt = 0; - handshake = 0; - - while (loopcnt < 100) { - if (ft1000dev->usbboot == 2) { - status = ft1000_read_dpram32(ft1000dev, 0, - (u8 *)&ft1000dev->tempbuf[0], 64); - for (temp = 0; temp < 16; temp++) { - pr_debug("tempbuf %d = 0x%x\n", - temp, ft1000dev->tempbuf[temp]); - } - status = ft1000_read_dpram16(ft1000dev, - DWNLD_MAG1_HANDSHAKE_LOC, - (u8 *)&handshake, 1); - pr_debug("handshake from read_dpram16 = 0x%x\n", - handshake); - if (ft1000dev->dspalive == ft1000dev->tempbuf[6]) { - handshake = 0; - } else { - handshake = ft1000dev->tempbuf[1]; - ft1000dev->dspalive = - ft1000dev->tempbuf[6]; - } - } else { - status = ft1000_read_dpram16(ft1000dev, - DWNLD_MAG1_HANDSHAKE_LOC, - (u8 *)&handshake, 1); - } - - loopcnt++; - usleep_range(10000, 11000); - handshake = ntohs(handshake); - if ((handshake == expected_value) || - (handshake == HANDSHAKE_RESET_VALUE_USB)) - return handshake; - } - - return HANDSHAKE_TIMEOUT_VALUE; -} - -static void put_handshake_usb(struct ft1000_usb *ft1000dev, u16 handshake_value) -{ - int i; - - for (i = 0; i < 1000; i++) - ; -} - -static u16 get_request_type(struct ft1000_usb *ft1000dev) -{ - u16 request_type; - int status; - u16 tempword; - u32 tempx; - - if (ft1000dev->bootmode == 1) { - status = fix_ft1000_read_dpram32(ft1000dev, - DWNLD_MAG1_TYPE_LOC, - (u8 *)&tempx); - tempx = ntohl(tempx); - } else { - tempx = 0; - status = ft1000_read_dpram16(ft1000dev, - DWNLD_MAG1_TYPE_LOC, - (u8 *)&tempword, 1); - tempx |= (tempword << 16); - tempx = ntohl(tempx); - } - request_type = (u16)tempx; - - return request_type; -} - -static u16 get_request_type_usb(struct ft1000_usb *ft1000dev) -{ - u16 request_type; - int status; - u16 tempword; - u32 tempx; - - if (ft1000dev->bootmode == 1) { - status = fix_ft1000_read_dpram32(ft1000dev, - DWNLD_MAG1_TYPE_LOC, - (u8 *)&tempx); - tempx = ntohl(tempx); - } else { - if (ft1000dev->usbboot == 2) { - tempx = ft1000dev->tempbuf[2]; - tempword = ft1000dev->tempbuf[3]; - } else { - tempx = 0; - status = ft1000_read_dpram16(ft1000dev, - DWNLD_MAG1_TYPE_LOC, - (u8 *)&tempword, 1); - } - tempx |= (tempword << 16); - tempx = ntohl(tempx); - } - request_type = (u16)tempx; - - return request_type; -} - -static long get_request_value(struct ft1000_usb *ft1000dev) -{ - u32 value; - u16 tempword; - int status; - - if (ft1000dev->bootmode == 1) { - status = fix_ft1000_read_dpram32(ft1000dev, - DWNLD_MAG1_SIZE_LOC, - (u8 *)&value); - value = ntohl(value); - } else { - status = ft1000_read_dpram16(ft1000dev, - DWNLD_MAG1_SIZE_LOC, - (u8 *)&tempword, 0); - value = tempword; - status = ft1000_read_dpram16(ft1000dev, - DWNLD_MAG1_SIZE_LOC, - (u8 *)&tempword, 1); - value |= (tempword << 16); - value = ntohl(value); - } - - return value; -} - - -/* writes a value to DWNLD_MAG1_SIZE_LOC */ -static void put_request_value(struct ft1000_usb *ft1000dev, long lvalue) -{ - u32 tempx; - int status; - - tempx = ntohl(lvalue); - status = fix_ft1000_write_dpram32(ft1000dev, DWNLD_MAG1_SIZE_LOC, - (u8 *)&tempx); -} - - - -/* returns the checksum of the pseudo header */ -static u16 hdr_checksum(struct pseudo_hdr *pHdr) -{ - u16 *usPtr = (u16 *)pHdr; - u16 chksum; - - - chksum = (((((usPtr[0] ^ usPtr[1]) ^ usPtr[2]) ^ usPtr[3]) ^ - usPtr[4]) ^ usPtr[5]) ^ usPtr[6]; - - return chksum; -} - -static int check_buffers(u16 *buff_w, u16 *buff_r, int len, int offset) -{ - int i; - - for (i = 0; i < len; i++) { - if (buff_w[i] != buff_r[i + offset]) - return -EREMOTEIO; - } - - return 0; -} - -static int write_dpram32_and_check(struct ft1000_usb *ft1000dev, - u16 tempbuffer[], u16 dpram) -{ - int status; - u16 resultbuffer[64]; - int i; - - for (i = 0; i < 10; i++) { - status = ft1000_write_dpram32(ft1000dev, dpram, - (u8 *)&tempbuffer[0], 64); - if (status == 0) { - /* Work around for ASIC bit stuffing problem. */ - if ((tempbuffer[31] & 0xfe00) == 0xfe00) { - status = ft1000_write_dpram32(ft1000dev, - dpram+12, (u8 *)&tempbuffer[24], - 64); - } - /* Let's check the data written */ - status = ft1000_read_dpram32(ft1000dev, dpram, - (u8 *)&resultbuffer[0], 64); - if ((tempbuffer[31] & 0xfe00) == 0xfe00) { - if (check_buffers(tempbuffer, resultbuffer, 28, - 0)) { - pr_debug("DPRAM write failed 1 during bootloading\n"); - usleep_range(9000, 11000); - break; - } - status = ft1000_read_dpram32(ft1000dev, - dpram+12, - (u8 *)&resultbuffer[0], 64); - - if (check_buffers(tempbuffer, resultbuffer, 16, - 24)) { - pr_debug("DPRAM write failed 2 during bootloading\n"); - usleep_range(9000, 11000); - break; - } - } else { - if (check_buffers(tempbuffer, resultbuffer, 32, - 0)) { - pr_debug("DPRAM write failed 3 during bootloading\n"); - usleep_range(9000, 11000); - break; - } - } - if (status == 0) - break; - } - } - return status; -} - -/* writes a block of DSP image to DPRAM - * Parameters: struct ft1000_usb - device structure - * u16 **pUsFile - DSP image file pointer in u16 - * u8 **pUcFile - DSP image file pointer in u8 - * long word_length - length of the buffer to be written to DPRAM - */ -static int write_blk(struct ft1000_usb *ft1000dev, u16 **pUsFile, u8 **pUcFile, - long word_length) -{ - int status = 0; - u16 dpram; - int loopcnt, i; - u16 tempword; - u16 tempbuffer[64]; - - /*pr_debug("start word_length = %d\n",(int)word_length); */ - dpram = (u16)DWNLD_MAG1_PS_HDR_LOC; - tempword = *(*pUsFile); - (*pUsFile)++; - status = ft1000_write_dpram16(ft1000dev, dpram, tempword, 0); - tempword = *(*pUsFile); - (*pUsFile)++; - status = ft1000_write_dpram16(ft1000dev, dpram++, tempword, 1); - - *pUcFile = *pUcFile + 4; - word_length--; - tempword = (u16)word_length; - word_length = (word_length / 16) + 1; - for (; word_length > 0; word_length--) { /* In words */ - loopcnt = 0; - for (i = 0; i < 32; i++) { - if (tempword != 0) { - tempbuffer[i++] = *(*pUsFile); - (*pUsFile)++; - tempbuffer[i] = *(*pUsFile); - (*pUsFile)++; - *pUcFile = *pUcFile + 4; - loopcnt++; - tempword--; - } else { - tempbuffer[i++] = 0; - tempbuffer[i] = 0; - } - } - - /*pr_debug("loopcnt is %d\n", loopcnt); */ - /*pr_debug("write_blk: bootmode = %d\n", bootmode); */ - /*pr_debug("write_blk: dpram = %x\n", dpram); */ - if (ft1000dev->bootmode == 0) { - if (dpram >= 0x3F4) - status = ft1000_write_dpram32(ft1000dev, dpram, - (u8 *)&tempbuffer[0], 8); - else - status = ft1000_write_dpram32(ft1000dev, dpram, - (u8 *)&tempbuffer[0], 64); - } else { - status = write_dpram32_and_check(ft1000dev, tempbuffer, - dpram); - if (status != 0) { - pr_debug("Write failed tempbuffer[31] = 0x%x\n", - tempbuffer[31]); - break; - } - } - dpram = dpram + loopcnt; - } - return status; -} - -static void usb_dnld_complete(struct urb *urb) -{ - /* pr_debug("****** usb_dnld_complete\n"); */ -} - -/* writes a block of DSP image to DPRAM - * Parameters: struct ft1000_usb - device structure - * u16 **pUsFile - DSP image file pointer in u16 - * u8 **pUcFile - DSP image file pointer in u8 - * long word_length - length of the buffer to be written to DPRAM - */ -static int write_blk_fifo(struct ft1000_usb *ft1000dev, u16 **pUsFile, - u8 **pUcFile, long word_length) -{ - int byte_length; - - byte_length = word_length * 4; - - if (byte_length && ((byte_length % 64) == 0)) - byte_length += 4; - - if (byte_length < 64) - byte_length = 68; - - usb_init_urb(ft1000dev->tx_urb); - memcpy(ft1000dev->tx_buf, *pUcFile, byte_length); - usb_fill_bulk_urb(ft1000dev->tx_urb, - ft1000dev->dev, - usb_sndbulkpipe(ft1000dev->dev, - ft1000dev->bulk_out_endpointAddr), - ft1000dev->tx_buf, byte_length, usb_dnld_complete, - ft1000dev); - - usb_submit_urb(ft1000dev->tx_urb, GFP_ATOMIC); - - *pUsFile = *pUsFile + (word_length << 1); - *pUcFile = *pUcFile + (word_length << 2); - - return 0; -} - -static int scram_start_dwnld(struct ft1000_usb *ft1000dev, u16 *hshake, - u32 *state) -{ - int status = 0; - - if (ft1000dev->usbboot) - *hshake = get_handshake_usb(ft1000dev, HANDSHAKE_DSP_BL_READY); - else - *hshake = get_handshake(ft1000dev, HANDSHAKE_DSP_BL_READY); - if (*hshake == HANDSHAKE_DSP_BL_READY) { - pr_debug("handshake is HANDSHAKE_DSP_BL_READY, call put_handshake(HANDSHAKE_DRIVER_READY)\n"); - put_handshake(ft1000dev, HANDSHAKE_DRIVER_READY); - } else if (*hshake == HANDSHAKE_TIMEOUT_VALUE) { - status = -ETIMEDOUT; - } else { - pr_debug("Download error: Handshake failed\n"); - status = -ENETRESET; - } - *state = STATE_BOOT_DWNLD; - return status; -} - -static int request_code_segment(struct ft1000_usb *ft1000dev, u16 **s_file, - u8 **c_file, const u8 *endpoint, bool boot_case) -{ - long word_length; - int status = 0; - - word_length = get_request_value(ft1000dev); - /*pr_debug("word_length = 0x%x\n", (int)word_length); */ - /*NdisMSleep (100); */ - if (word_length > MAX_LENGTH) { - pr_debug("Download error: Max length exceeded\n"); - return -1; - } - if ((word_length * 2 + (long)c_file) > (long)endpoint) { - /* Error, beyond boot code range.*/ - pr_debug("Download error: Requested len=%d exceeds BOOT code boundary\n", - (int)word_length); - return -1; - } - if (word_length & 0x1) - word_length++; - word_length = word_length / 2; - - if (boot_case) { - status = write_blk(ft1000dev, s_file, c_file, word_length); - /*pr_debug("write_blk returned %d\n", status); */ - } else { - status = write_blk_fifo(ft1000dev, s_file, c_file, word_length); - if (ft1000dev->usbboot == 0) - ft1000dev->usbboot++; - if (ft1000dev->usbboot == 1) - status |= ft1000_write_dpram16(ft1000dev, - DWNLD_MAG1_PS_HDR_LOC, 0, 0); - } - return status; -} - -/* Scramble downloader for Harley based ASIC via USB interface */ -int scram_dnldr(struct ft1000_usb *ft1000dev, void *pFileStart, - u32 FileLength) -{ - int status = 0; - u32 state; - u16 handshake; - struct pseudo_hdr *pseudo_header; - u16 pseudo_header_len; - long word_length; - u16 request; - u16 temp; - - struct dsp_file_hdr *file_hdr; - struct dsp_image_info *dsp_img_info = NULL; - long requested_version; - bool correct_version; - struct drv_msg *mailbox_data; - u16 *data = NULL; - u16 *s_file = NULL; - u8 *c_file = NULL; - u8 *boot_end = NULL, *code_end = NULL; - int image; - long loader_code_address, loader_code_size = 0; - long run_address = 0, run_size = 0; - - u32 templong; - u32 image_chksum = 0; - - u16 dpram = 0; - u8 *pbuffer; - struct prov_record *pprov_record; - struct ft1000_info *pft1000info = netdev_priv(ft1000dev->net); - - ft1000dev->fcodeldr = 0; - ft1000dev->usbboot = 0; - ft1000dev->dspalive = 0xffff; - - /* - * Get version id of file, at first 4 bytes of file, for newer files. - */ - - state = STATE_START_DWNLD; - - file_hdr = pFileStart; - - ft1000_write_register(ft1000dev, 0x800, FT1000_REG_MAG_WATERMARK); - - s_file = (u16 *) (pFileStart + file_hdr->loader_offset); - c_file = (u8 *) (pFileStart + file_hdr->loader_offset); - - boot_end = (u8 *) (pFileStart + file_hdr->loader_code_end); - - loader_code_address = file_hdr->loader_code_address; - loader_code_size = file_hdr->loader_code_size; - correct_version = false; - - while ((status == 0) && (state != STATE_DONE_FILE)) { - switch (state) { - case STATE_START_DWNLD: - status = scram_start_dwnld(ft1000dev, &handshake, - &state); - break; - - case STATE_BOOT_DWNLD: - pr_debug("STATE_BOOT_DWNLD\n"); - ft1000dev->bootmode = 1; - handshake = get_handshake(ft1000dev, HANDSHAKE_REQUEST); - if (handshake == HANDSHAKE_REQUEST) { - /* - * Get type associated with the request. - */ - request = get_request_type(ft1000dev); - switch (request) { - case REQUEST_RUN_ADDRESS: - pr_debug("REQUEST_RUN_ADDRESS\n"); - put_request_value(ft1000dev, - loader_code_address); - break; - case REQUEST_CODE_LENGTH: - pr_debug("REQUEST_CODE_LENGTH\n"); - put_request_value(ft1000dev, - loader_code_size); - break; - case REQUEST_DONE_BL: - pr_debug("REQUEST_DONE_BL\n"); - /* Reposition ptrs to beginning of code section */ - s_file = (u16 *) (boot_end); - c_file = (u8 *) (boot_end); - /* pr_debug("download:s_file = 0x%8x\n", (int)s_file); */ - /* pr_debug("FT1000:download:c_file = 0x%8x\n", (int)c_file); */ - state = STATE_CODE_DWNLD; - ft1000dev->fcodeldr = 1; - break; - case REQUEST_CODE_SEGMENT: - status = request_code_segment(ft1000dev, - &s_file, &c_file, - boot_end, - true); - break; - default: - pr_debug("Download error: Bad request type=%d in BOOT download state\n", - request); - status = -1; - break; - } - if (ft1000dev->usbboot) - put_handshake_usb(ft1000dev, - HANDSHAKE_RESPONSE); - else - put_handshake(ft1000dev, - HANDSHAKE_RESPONSE); - } else { - pr_debug("Download error: Handshake failed\n"); - status = -1; - } - - break; - - case STATE_CODE_DWNLD: - /* pr_debug("STATE_CODE_DWNLD\n"); */ - ft1000dev->bootmode = 0; - if (ft1000dev->usbboot) - handshake = - get_handshake_usb(ft1000dev, - HANDSHAKE_REQUEST); - else - handshake = - get_handshake(ft1000dev, HANDSHAKE_REQUEST); - if (handshake == HANDSHAKE_REQUEST) { - /* - * Get type associated with the request. - */ - if (ft1000dev->usbboot) - request = - get_request_type_usb(ft1000dev); - else - request = get_request_type(ft1000dev); - switch (request) { - case REQUEST_FILE_CHECKSUM: - pr_debug("image_chksum = 0x%8x\n", - image_chksum); - put_request_value(ft1000dev, - image_chksum); - break; - case REQUEST_RUN_ADDRESS: - pr_debug("REQUEST_RUN_ADDRESS\n"); - if (correct_version) { - pr_debug("run_address = 0x%8x\n", - (int)run_address); - put_request_value(ft1000dev, - run_address); - } else { - pr_debug("Download error: Got Run address request before image offset request\n"); - status = -1; - break; - } - break; - case REQUEST_CODE_LENGTH: - pr_debug("REQUEST_CODE_LENGTH\n"); - if (correct_version) { - pr_debug("run_size = 0x%8x\n", - (int)run_size); - put_request_value(ft1000dev, - run_size); - } else { - pr_debug("Download error: Got Size request before image offset request\n"); - status = -1; - break; - } - break; - case REQUEST_DONE_CL: - ft1000dev->usbboot = 3; - /* Reposition ptrs to beginning of provisioning section */ - s_file = - (u16 *) (pFileStart + - file_hdr->commands_offset); - c_file = - (u8 *) (pFileStart + - file_hdr->commands_offset); - state = STATE_DONE_DWNLD; - break; - case REQUEST_CODE_SEGMENT: - /* pr_debug("REQUEST_CODE_SEGMENT - CODELOADER\n"); */ - if (!correct_version) { - pr_debug("Download error: Got Code Segment request before image offset request\n"); - status = -1; - break; - } - - status = request_code_segment(ft1000dev, - &s_file, &c_file, - code_end, - false); - - break; - - case REQUEST_MAILBOX_DATA: - pr_debug("REQUEST_MAILBOX_DATA\n"); - /* Convert length from byte count to word count. Make sure we round up. */ - word_length = - (long)(pft1000info->DSPInfoBlklen + - 1) / 2; - put_request_value(ft1000dev, - word_length); - mailbox_data = - (struct drv_msg *)&(pft1000info-> - DSPInfoBlk[0]); - /* - * Position ASIC DPRAM auto-increment pointer. - */ - - data = (u16 *)&mailbox_data->data[0]; - dpram = (u16)DWNLD_MAG1_PS_HDR_LOC; - if (word_length & 0x1) - word_length++; - - word_length = word_length / 2; - - for (; word_length > 0; word_length--) { /* In words */ - - templong = *data++; - templong |= (*data++ << 16); - status = - fix_ft1000_write_dpram32 - (ft1000dev, dpram++, - (u8 *)&templong); - - } - break; - - case REQUEST_VERSION_INFO: - pr_debug("REQUEST_VERSION_INFO\n"); - word_length = - file_hdr->version_data_size; - put_request_value(ft1000dev, - word_length); - /* - * Position ASIC DPRAM auto-increment pointer. - */ - - s_file = - (u16 *) (pFileStart + - file_hdr-> - version_data_offset); - - dpram = (u16)DWNLD_MAG1_PS_HDR_LOC; - if (word_length & 0x1) - word_length++; - - word_length = word_length / 2; - - for (; word_length > 0; word_length--) { /* In words */ - - templong = ntohs(*s_file++); - temp = ntohs(*s_file++); - templong |= (temp << 16); - status = - fix_ft1000_write_dpram32 - (ft1000dev, dpram++, - (u8 *)&templong); - - } - break; - - case REQUEST_CODE_BY_VERSION: - pr_debug("REQUEST_CODE_BY_VERSION\n"); - correct_version = false; - requested_version = - get_request_value(ft1000dev); - - dsp_img_info = - (struct dsp_image_info *)(pFileStart - + - sizeof - (struct - dsp_file_hdr)); - - for (image = 0; - image < file_hdr->nDspImages; - image++) { - - if (dsp_img_info->version == - requested_version) { - correct_version = true; - pr_debug("correct_version is TRUE\n"); - s_file = - (u16 *) (pFileStart - + - dsp_img_info-> - begin_offset); - c_file = - (u8 *) (pFileStart + - dsp_img_info-> - begin_offset); - code_end = - (u8 *) (pFileStart + - dsp_img_info-> - end_offset); - run_address = - dsp_img_info-> - run_address; - run_size = - dsp_img_info-> - image_size; - image_chksum = - (u32)dsp_img_info-> - checksum; - break; - } - dsp_img_info++; - - } /* end of for */ - - if (!correct_version) { - /* - * Error, beyond boot code range. - */ - pr_debug("Download error: Bad Version Request = 0x%x.\n", - (int)requested_version); - status = -1; - break; - } - break; - - default: - pr_debug("Download error: Bad request type=%d in CODE download state.\n", - request); - status = -1; - break; - } - if (ft1000dev->usbboot) - put_handshake_usb(ft1000dev, - HANDSHAKE_RESPONSE); - else - put_handshake(ft1000dev, - HANDSHAKE_RESPONSE); - } else { - pr_debug("Download error: Handshake failed\n"); - status = -1; - } - - break; - - case STATE_DONE_DWNLD: - pr_debug("Code loader is done...\n"); - state = STATE_SECTION_PROV; - break; - - case STATE_SECTION_PROV: - pr_debug("STATE_SECTION_PROV\n"); - pseudo_header = (struct pseudo_hdr *)c_file; - - if (pseudo_header->checksum == - hdr_checksum(pseudo_header)) { - if (pseudo_header->portdest != - 0x80 /* Dsp OAM */) { - state = STATE_DONE_PROV; - break; - } - pseudo_header_len = ntohs(pseudo_header->length); /* Byte length for PROV records */ - - /* Get buffer for provisioning data */ - pbuffer = - kmalloc(pseudo_header_len + - sizeof(struct pseudo_hdr), - GFP_ATOMIC); - if (pbuffer) { - memcpy(pbuffer, c_file, - (u32) (pseudo_header_len + - sizeof(struct - pseudo_hdr))); - /* link provisioning data */ - pprov_record = - kmalloc(sizeof(struct prov_record), - GFP_ATOMIC); - if (pprov_record) { - pprov_record->pprov_data = - pbuffer; - list_add_tail(&pprov_record-> - list, - &pft1000info-> - prov_list); - /* Move to next entry if available */ - c_file = - (u8 *) ((unsigned long) - c_file + - (u32) ((pseudo_header_len + 1) & 0xFFFFFFFE) + sizeof(struct pseudo_hdr)); - if ((unsigned long)(c_file) - - (unsigned long)(pFileStart) - >= - (unsigned long)FileLength) { - state = STATE_DONE_FILE; - } - } else { - kfree(pbuffer); - status = -1; - } - } else { - status = -1; - } - } else { - /* Checksum did not compute */ - status = -1; - } - pr_debug("after STATE_SECTION_PROV, state = %d, status= %d\n", - state, status); - break; - - case STATE_DONE_PROV: - pr_debug("STATE_DONE_PROV\n"); - state = STATE_DONE_FILE; - break; - - default: - status = -1; - break; - } /* End Switch */ - - if (status != 0) - break; - -/**** - // Check if Card is present - status = Harley_Read_Register(&temp, FT1000_REG_SUP_IMASK); - if ( (status != NDIS_STATUS_SUCCESS) || (temp == 0x0000) ) { - break; - } - - status = Harley_Read_Register(&temp, FT1000_REG_ASIC_ID); - if ( (status != NDIS_STATUS_SUCCESS) || (temp == 0xffff) ) { - break; - } -****/ - - } /* End while */ - - pr_debug("Download exiting with status = 0x%8x\n", status); - ft1000_write_register(ft1000dev, FT1000_DB_DNLD_TX, - FT1000_REG_DOORBELL); - - return status; -} diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c b/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c deleted file mode 100644 index 9ea32cea2c03..000000000000 --- a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c +++ /dev/null @@ -1,1586 +0,0 @@ -/* CopyRight (C) 2007 Qualcomm Inc. All Rights Reserved. - * - * - * This file is part of Express Card USB Driver - */ - -#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - -#include -#include -#include -#include -#include -#include "ft1000_usb.h" -#include - -#define HARLEY_READ_REGISTER 0x0 -#define HARLEY_WRITE_REGISTER 0x01 -#define HARLEY_READ_DPRAM_32 0x02 -#define HARLEY_READ_DPRAM_LOW 0x03 -#define HARLEY_READ_DPRAM_HIGH 0x04 -#define HARLEY_WRITE_DPRAM_32 0x05 -#define HARLEY_WRITE_DPRAM_LOW 0x06 -#define HARLEY_WRITE_DPRAM_HIGH 0x07 - -#define HARLEY_READ_OPERATION 0xc1 -#define HARLEY_WRITE_OPERATION 0x41 - -#if 0 -#define JDEBUG -#endif - -static int ft1000_submit_rx_urb(struct ft1000_info *info); - -static u8 tempbuffer[1600]; - -#define MAX_RCV_LOOP 100 - -/* send a control message via USB interface synchronously - * Parameters: ft1000_usb - device structure - * pipe - usb control message pipe - * request - control request - * requesttype - control message request type - * value - value to be written or 0 - * index - register index - * data - data buffer to hold the read/write values - * size - data size - * timeout - control message time out value - */ -static int ft1000_control(struct ft1000_usb *ft1000dev, unsigned int pipe, - u8 request, u8 requesttype, u16 value, u16 index, - void *data, u16 size, int timeout) -{ - int ret; - - if ((ft1000dev == NULL) || (ft1000dev->dev == NULL)) { - pr_debug("ft1000dev or ft1000dev->dev == NULL, failure\n"); - return -ENODEV; - } - - ret = usb_control_msg(ft1000dev->dev, pipe, request, requesttype, - value, index, data, size, timeout); - - if (ret > 0) - ret = 0; - - return ret; -} - -/* returns the value in a register */ -int ft1000_read_register(struct ft1000_usb *ft1000dev, u16 *Data, - u16 nRegIndx) -{ - int ret = 0; - - ret = ft1000_control(ft1000dev, - usb_rcvctrlpipe(ft1000dev->dev, 0), - HARLEY_READ_REGISTER, - HARLEY_READ_OPERATION, - 0, - nRegIndx, - Data, - 2, - USB_CTRL_GET_TIMEOUT); - - return ret; -} - -/* writes the value in a register */ -int ft1000_write_register(struct ft1000_usb *ft1000dev, u16 value, - u16 nRegIndx) -{ - int ret = 0; - - ret = ft1000_control(ft1000dev, - usb_sndctrlpipe(ft1000dev->dev, 0), - HARLEY_WRITE_REGISTER, - HARLEY_WRITE_OPERATION, - value, - nRegIndx, - NULL, - 0, - USB_CTRL_SET_TIMEOUT); - - return ret; -} - -/* read a number of bytes from DPRAM */ -int ft1000_read_dpram32(struct ft1000_usb *ft1000dev, u16 indx, u8 *buffer, - u16 cnt) -{ - int ret = 0; - - ret = ft1000_control(ft1000dev, - usb_rcvctrlpipe(ft1000dev->dev, 0), - HARLEY_READ_DPRAM_32, - HARLEY_READ_OPERATION, - 0, - indx, - buffer, - cnt, - USB_CTRL_GET_TIMEOUT); - - return ret; -} - -/* writes into DPRAM a number of bytes */ -int ft1000_write_dpram32(struct ft1000_usb *ft1000dev, u16 indx, u8 *buffer, - u16 cnt) -{ - int ret = 0; - - if (cnt % 4) - cnt += cnt - (cnt % 4); - - ret = ft1000_control(ft1000dev, - usb_sndctrlpipe(ft1000dev->dev, 0), - HARLEY_WRITE_DPRAM_32, - HARLEY_WRITE_OPERATION, - 0, - indx, - buffer, - cnt, - USB_CTRL_SET_TIMEOUT); - - return ret; -} - -/* read 16 bits from DPRAM */ -int ft1000_read_dpram16(struct ft1000_usb *ft1000dev, u16 indx, u8 *buffer, - u8 highlow) -{ - int ret = 0; - u8 request; - - if (highlow == 0) - request = HARLEY_READ_DPRAM_LOW; - else - request = HARLEY_READ_DPRAM_HIGH; - - ret = ft1000_control(ft1000dev, - usb_rcvctrlpipe(ft1000dev->dev, 0), - request, - HARLEY_READ_OPERATION, - 0, - indx, - buffer, - 2, - USB_CTRL_GET_TIMEOUT); - - return ret; -} - -/* write into DPRAM a number of bytes */ -int ft1000_write_dpram16(struct ft1000_usb *ft1000dev, u16 indx, u16 value, - u8 highlow) -{ - int ret = 0; - u8 request; - - if (highlow == 0) - request = HARLEY_WRITE_DPRAM_LOW; - else - request = HARLEY_WRITE_DPRAM_HIGH; - - ret = ft1000_control(ft1000dev, - usb_sndctrlpipe(ft1000dev->dev, 0), - request, - HARLEY_WRITE_OPERATION, - value, - indx, - NULL, - 0, - USB_CTRL_SET_TIMEOUT); - - return ret; -} - -/* read DPRAM 4 words at a time */ -int fix_ft1000_read_dpram32(struct ft1000_usb *ft1000dev, u16 indx, - u8 *buffer) -{ - u8 buf[16]; - u16 pos; - int ret = 0; - - pos = (indx / 4) * 4; - ret = ft1000_read_dpram32(ft1000dev, pos, buf, 16); - - if (ret == 0) { - pos = (indx % 4) * 4; - *buffer++ = buf[pos++]; - *buffer++ = buf[pos++]; - *buffer++ = buf[pos++]; - *buffer++ = buf[pos++]; - } else { - pr_debug("DPRAM32 Read failed\n"); - *buffer++ = 0; - *buffer++ = 0; - *buffer++ = 0; - *buffer++ = 0; - } - - return ret; -} - - -/* Description: This function write to DPRAM 4 words at a time */ -int fix_ft1000_write_dpram32(struct ft1000_usb *ft1000dev, u16 indx, u8 *buffer) -{ - u16 pos1; - u16 pos2; - u16 i; - u8 buf[32]; - u8 resultbuffer[32]; - u8 *pdata; - int ret = 0; - - pos1 = (indx / 4) * 4; - pdata = buffer; - ret = ft1000_read_dpram32(ft1000dev, pos1, buf, 16); - - if (ret == 0) { - pos2 = (indx % 4)*4; - buf[pos2++] = *buffer++; - buf[pos2++] = *buffer++; - buf[pos2++] = *buffer++; - buf[pos2++] = *buffer++; - ret = ft1000_write_dpram32(ft1000dev, pos1, buf, 16); - } else { - pr_debug("DPRAM32 Read failed\n"); - return ret; - } - - ret = ft1000_read_dpram32(ft1000dev, pos1, (u8 *)&resultbuffer[0], 16); - - if (ret == 0) { - buffer = pdata; - for (i = 0; i < 16; i++) { - if (buf[i] != resultbuffer[i]) - ret = -1; - } - } - - if (ret == -1) { - ret = ft1000_write_dpram32(ft1000dev, pos1, - (u8 *)&tempbuffer[0], 16); - ret = ft1000_read_dpram32(ft1000dev, pos1, - (u8 *)&resultbuffer[0], 16); - if (ret == 0) { - buffer = pdata; - for (i = 0; i < 16; i++) { - if (tempbuffer[i] != resultbuffer[i]) { - ret = -1; - pr_debug("Failed to write\n"); - } - } - } - } - - return ret; -} - -/* reset or activate the DSP */ -static void card_reset_dsp(struct ft1000_usb *ft1000dev, bool value) -{ - int status = 0; - u16 tempword; - - status = ft1000_write_register(ft1000dev, HOST_INTF_BE, - FT1000_REG_SUP_CTRL); - status = ft1000_read_register(ft1000dev, &tempword, - FT1000_REG_SUP_CTRL); - - if (value) { - pr_debug("Reset DSP\n"); - status = ft1000_read_register(ft1000dev, &tempword, - FT1000_REG_RESET); - tempword |= DSP_RESET_BIT; - status = ft1000_write_register(ft1000dev, tempword, - FT1000_REG_RESET); - } else { - pr_debug("Activate DSP\n"); - status = ft1000_read_register(ft1000dev, &tempword, - FT1000_REG_RESET); - tempword |= DSP_ENCRYPTED; - tempword &= ~DSP_UNENCRYPTED; - status = ft1000_write_register(ft1000dev, tempword, - FT1000_REG_RESET); - status = ft1000_read_register(ft1000dev, &tempword, - FT1000_REG_RESET); - tempword &= ~EFUSE_MEM_DISABLE; - tempword &= ~DSP_RESET_BIT; - status = ft1000_write_register(ft1000dev, tempword, - FT1000_REG_RESET); - status = ft1000_read_register(ft1000dev, &tempword, - FT1000_REG_RESET); - } -} - -/* send a command to ASIC - * Parameters: ft1000_usb - device structure - * ptempbuffer - command buffer - * size - command buffer size - */ -int card_send_command(struct ft1000_usb *ft1000dev, void *ptempbuffer, - int size) -{ - int ret; - unsigned short temp; - unsigned char *commandbuf; - - pr_debug("enter card_send_command... size=%d\n", size); - - ret = ft1000_read_register(ft1000dev, &temp, FT1000_REG_DOORBELL); - if (ret) - return ret; - - commandbuf = kmalloc(size + 2, GFP_KERNEL); - if (!commandbuf) - return -ENOMEM; - memcpy((void *)commandbuf + 2, ptempbuffer, size); - - if (temp & 0x0100) - usleep_range(900, 1100); - - /* check for odd word */ - size = size + 2; - - /* Must force to be 32 bit aligned */ - if (size % 4) - size += 4 - (size % 4); - - ret = ft1000_write_dpram32(ft1000dev, 0, commandbuf, size); - if (ret) - return ret; - usleep_range(900, 1100); - ret = ft1000_write_register(ft1000dev, FT1000_DB_DPRAM_TX, - FT1000_REG_DOORBELL); - if (ret) - return ret; - usleep_range(900, 1100); - - ret = ft1000_read_register(ft1000dev, &temp, FT1000_REG_DOORBELL); - -#if 0 - if ((temp & 0x0100) == 0) - pr_debug("Message sent\n"); -#endif - return ret; -} - -/* load or reload the DSP */ -int dsp_reload(struct ft1000_usb *ft1000dev) -{ - int status; - u16 tempword; - u32 templong; - - struct ft1000_info *pft1000info; - - pft1000info = netdev_priv(ft1000dev->net); - - pft1000info->CardReady = 0; - - /* Program Interrupt Mask register */ - status = ft1000_write_register(ft1000dev, 0xffff, FT1000_REG_SUP_IMASK); - - status = ft1000_read_register(ft1000dev, &tempword, FT1000_REG_RESET); - tempword |= ASIC_RESET_BIT; - status = ft1000_write_register(ft1000dev, tempword, FT1000_REG_RESET); - msleep(1000); - status = ft1000_read_register(ft1000dev, &tempword, FT1000_REG_RESET); - pr_debug("Reset Register = 0x%x\n", tempword); - - /* Toggle DSP reset */ - card_reset_dsp(ft1000dev, 1); - msleep(1000); - card_reset_dsp(ft1000dev, 0); - msleep(1000); - - status = ft1000_write_register(ft1000dev, HOST_INTF_BE, - FT1000_REG_SUP_CTRL); - - /* Let's check for FEFE */ - status = - ft1000_read_dpram32(ft1000dev, FT1000_MAG_DPRAM_FEFE_INDX, - (u8 *)&templong, 4); - pr_debug("templong (fefe) = 0x%8x\n", templong); - - /* call codeloader */ - status = scram_dnldr(ft1000dev, pFileStart, FileLength); - - if (status != 0) - return -EIO; - - msleep(1000); - - return 0; -} - -/* call the Card Service function to reset the ASIC. */ -static void ft1000_reset_asic(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - struct ft1000_usb *ft1000dev = info->priv; - u16 tempword; - - /* Let's use the register provided by the Magnemite ASIC to reset the - * ASIC and DSP. - */ - ft1000_write_register(ft1000dev, DSP_RESET_BIT | ASIC_RESET_BIT, - FT1000_REG_RESET); - - mdelay(1); - - /* set watermark to -1 in order to not generate an interrupt */ - ft1000_write_register(ft1000dev, 0xffff, FT1000_REG_MAG_WATERMARK); - - /* clear interrupts */ - ft1000_read_register(ft1000dev, &tempword, FT1000_REG_SUP_ISR); - pr_debug("interrupt status register = 0x%x\n", tempword); - ft1000_write_register(ft1000dev, tempword, FT1000_REG_SUP_ISR); - ft1000_read_register(ft1000dev, &tempword, FT1000_REG_SUP_ISR); - pr_debug("interrupt status register = 0x%x\n", tempword); -} - -static int ft1000_reset_card(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - struct ft1000_usb *ft1000dev = info->priv; - u16 tempword; - struct prov_record *ptr; - struct prov_record *tmp; - - ft1000dev->fCondResetPend = true; - info->CardReady = 0; - ft1000dev->fProvComplete = false; - - /* Make sure we free any memory reserve for provisioning */ - list_for_each_entry_safe(ptr, tmp, &info->prov_list, list) { - pr_debug("deleting provisioning record\n"); - list_del(&ptr->list); - kfree(ptr->pprov_data); - kfree(ptr); - } - - pr_debug("reset asic\n"); - ft1000_reset_asic(dev); - - pr_debug("call dsp_reload\n"); - dsp_reload(ft1000dev); - - pr_debug("dsp reload successful\n"); - - mdelay(10); - - /* Initialize DSP heartbeat area */ - ft1000_write_dpram16(ft1000dev, FT1000_MAG_HI_HO, ho_mag, - FT1000_MAG_HI_HO_INDX); - ft1000_read_dpram16(ft1000dev, FT1000_MAG_HI_HO, (u8 *)&tempword, - FT1000_MAG_HI_HO_INDX); - pr_debug("hi_ho value = 0x%x\n", tempword); - - info->CardReady = 1; - - ft1000dev->fCondResetPend = false; - - return TRUE; -} - -/* callback function when a urb is transmitted */ -static void ft1000_usb_transmit_complete(struct urb *urb) -{ - - struct ft1000_usb *ft1000dev = urb->context; - - if (urb->status) - pr_err("%s: TX status %d\n", ft1000dev->net->name, urb->status); - - netif_wake_queue(ft1000dev->net); -} - -/* take an ethernet packet and convert it to a Flarion - * packet prior to sending it to the ASIC Downlink FIFO. - */ -static int ft1000_copy_down_pkt(struct net_device *netdev, u8 *packet, u16 len) -{ - struct ft1000_info *pInfo = netdev_priv(netdev); - struct ft1000_usb *pFt1000Dev = pInfo->priv; - - int count, ret; - u8 *t; - struct pseudo_hdr hdr; - - if (!pInfo->CardReady) { - pr_debug("Card Not Ready\n"); - return -ENODEV; - } - - count = sizeof(struct pseudo_hdr) + len; - if (count > MAX_BUF_SIZE) { - pr_debug("Message Size Overflow! size = %d\n", count); - return -EINVAL; - } - - if (count % 4) - count = count + (4 - (count % 4)); - - memset(&hdr, 0, sizeof(struct pseudo_hdr)); - - hdr.length = ntohs(count); - hdr.source = 0x10; - hdr.destination = 0x20; - hdr.portdest = 0x20; - hdr.portsrc = 0x10; - hdr.sh_str_id = 0x91; - hdr.control = 0x00; - - hdr.checksum = hdr.length ^ hdr.source ^ hdr.destination ^ - hdr.portdest ^ hdr.portsrc ^ hdr.sh_str_id ^ hdr.control; - - memcpy(&pFt1000Dev->tx_buf[0], &hdr, sizeof(hdr)); - memcpy(&pFt1000Dev->tx_buf[sizeof(struct pseudo_hdr)], packet, len); - - netif_stop_queue(netdev); - - usb_fill_bulk_urb(pFt1000Dev->tx_urb, - pFt1000Dev->dev, - usb_sndbulkpipe(pFt1000Dev->dev, - pFt1000Dev->bulk_out_endpointAddr), - pFt1000Dev->tx_buf, count, - ft1000_usb_transmit_complete, pFt1000Dev); - - t = (u8 *)pFt1000Dev->tx_urb->transfer_buffer; - - ret = usb_submit_urb(pFt1000Dev->tx_urb, GFP_ATOMIC); - - if (ret) { - pr_debug("failed tx_urb %d\n", ret); - return ret; - } - pInfo->stats.tx_packets++; - pInfo->stats.tx_bytes += (len + 14); - - return 0; -} - -/* transmit an ethernet packet - * Parameters: skb - socket buffer to be sent - * dev - network device - */ -static int ft1000_start_xmit(struct sk_buff *skb, struct net_device *dev) -{ - struct ft1000_info *pInfo = netdev_priv(dev); - struct ft1000_usb *pFt1000Dev = pInfo->priv; - u8 *pdata; - int maxlen, pipe; - - if (skb == NULL) { - pr_debug("skb == NULL!!!\n"); - return NETDEV_TX_OK; - } - - if (pFt1000Dev->status & FT1000_STATUS_CLOSING) { - pr_debug("network driver is closed, return\n"); - goto err; - } - - pipe = usb_sndbulkpipe(pFt1000Dev->dev, - pFt1000Dev->bulk_out_endpointAddr); - maxlen = usb_maxpacket(pFt1000Dev->dev, pipe, usb_pipeout(pipe)); - - pdata = (u8 *)skb->data; - - if (pInfo->mediastate == 0) { - /* Drop packet is mediastate is down */ - pr_debug("mediastate is down\n"); - goto err; - } - - if ((skb->len < ENET_HEADER_SIZE) || (skb->len > ENET_MAX_SIZE)) { - /* Drop packet which has invalid size */ - pr_debug("invalid ethernet length\n"); - goto err; - } - - ft1000_copy_down_pkt(dev, pdata + ENET_HEADER_SIZE - 2, - skb->len - ENET_HEADER_SIZE + 2); - -err: - dev_kfree_skb(skb); - - return NETDEV_TX_OK; -} - -/* open the network driver */ -static int ft1000_open(struct net_device *dev) -{ - struct ft1000_info *pInfo = netdev_priv(dev); - struct ft1000_usb *pFt1000Dev = pInfo->priv; - struct timeval tv; - - pr_debug("ft1000_open is called for card %d\n", pFt1000Dev->CardNumber); - - pInfo->stats.rx_bytes = 0; - pInfo->stats.tx_bytes = 0; - pInfo->stats.rx_packets = 0; - pInfo->stats.tx_packets = 0; - do_gettimeofday(&tv); - pInfo->ConTm = tv.tv_sec; - pInfo->ProgConStat = 0; - - netif_start_queue(dev); - - netif_carrier_on(dev); - - return ft1000_submit_rx_urb(pInfo); -} - -static struct net_device_stats *ft1000_netdev_stats(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - - return &(info->stats); -} - -static const struct net_device_ops ftnet_ops = { - .ndo_open = &ft1000_open, - .ndo_stop = &ft1000_close, - .ndo_start_xmit = &ft1000_start_xmit, - .ndo_get_stats = &ft1000_netdev_stats, -}; - -/* initialize the network device */ -static int ft1000_reset(void *dev) -{ - ft1000_reset_card(dev); - return 0; -} - -int init_ft1000_netdev(struct ft1000_usb *ft1000dev) -{ - struct net_device *netdev; - struct ft1000_info *pInfo = NULL; - struct dpram_blk *pdpram_blk; - int i, ret_val; - struct list_head *cur, *tmp; - char card_nr[2]; - u8 gCardIndex = 0; - - netdev = alloc_etherdev(sizeof(struct ft1000_info)); - if (!netdev) { - pr_debug("can not allocate network device\n"); - return -ENOMEM; - } - - pInfo = netdev_priv(netdev); - - memset(pInfo, 0, sizeof(struct ft1000_info)); - - dev_alloc_name(netdev, netdev->name); - - pr_debug("network device name is %s\n", netdev->name); - - if (strncmp(netdev->name, "eth", 3) == 0) { - card_nr[0] = netdev->name[3]; - card_nr[1] = '\0'; - ret_val = kstrtou8(card_nr, 10, &gCardIndex); - if (ret_val) { - netdev_err(ft1000dev->net, "Can't parse netdev\n"); - goto err_net; - } - - ft1000dev->CardNumber = gCardIndex; - pr_debug("card number = %d\n", ft1000dev->CardNumber); - } else { - netdev_err(ft1000dev->net, "ft1000: Invalid device name\n"); - ret_val = -ENXIO; - goto err_net; - } - - memset(&pInfo->stats, 0, sizeof(struct net_device_stats)); - - spin_lock_init(&pInfo->dpram_lock); - pInfo->priv = ft1000dev; - pInfo->DrvErrNum = 0; - pInfo->registered = 1; - pInfo->ft1000_reset = ft1000_reset; - pInfo->mediastate = 0; - pInfo->fifo_cnt = 0; - ft1000dev->DeviceCreated = FALSE; - pInfo->CardReady = 0; - pInfo->DSP_TIME[0] = 0; - pInfo->DSP_TIME[1] = 0; - pInfo->DSP_TIME[2] = 0; - pInfo->DSP_TIME[3] = 0; - ft1000dev->fAppMsgPend = false; - ft1000dev->fCondResetPend = false; - ft1000dev->usbboot = 0; - ft1000dev->dspalive = 0; - memset(&ft1000dev->tempbuf[0], 0, sizeof(ft1000dev->tempbuf)); - - INIT_LIST_HEAD(&pInfo->prov_list); - - INIT_LIST_HEAD(&ft1000dev->nodes.list); - - netdev->netdev_ops = &ftnet_ops; - - ft1000dev->net = netdev; - - pr_debug("Initialize free_buff_lock and freercvpool\n"); - spin_lock_init(&free_buff_lock); - - /* initialize a list of buffers to be use for queuing - * up receive command data - */ - INIT_LIST_HEAD(&freercvpool); - - /* create list of free buffers */ - for (i = 0; i < NUM_OF_FREE_BUFFERS; i++) { - /* Get memory for DPRAM_DATA link list */ - pdpram_blk = kmalloc(sizeof(struct dpram_blk), GFP_KERNEL); - if (pdpram_blk == NULL) { - ret_val = -ENOMEM; - goto err_free; - } - /* Get a block of memory to store command data */ - pdpram_blk->pbuffer = kmalloc(MAX_CMD_SQSIZE, GFP_KERNEL); - if (pdpram_blk->pbuffer == NULL) { - ret_val = -ENOMEM; - kfree(pdpram_blk); - goto err_free; - } - /* link provisioning data */ - list_add_tail(&pdpram_blk->list, &freercvpool); - } - numofmsgbuf = NUM_OF_FREE_BUFFERS; - - return 0; - -err_free: - list_for_each_safe(cur, tmp, &freercvpool) { - pdpram_blk = list_entry(cur, struct dpram_blk, list); - list_del(&pdpram_blk->list); - kfree(pdpram_blk->pbuffer); - kfree(pdpram_blk); - } -err_net: - free_netdev(netdev); - return ret_val; -} - -/* register the network driver */ -int reg_ft1000_netdev(struct ft1000_usb *ft1000dev, - struct usb_interface *intf) -{ - struct net_device *netdev; - struct ft1000_info *pInfo; - int rc; - - netdev = ft1000dev->net; - pInfo = netdev_priv(ft1000dev->net); - - ft1000_read_register(ft1000dev, &pInfo->AsicID, FT1000_REG_ASIC_ID); - - usb_set_intfdata(intf, pInfo); - SET_NETDEV_DEV(netdev, &intf->dev); - - rc = register_netdev(netdev); - if (rc) { - pr_debug("could not register network device\n"); - free_netdev(netdev); - return rc; - } - - ft1000_create_dev(ft1000dev); - - pInfo->CardReady = 1; - - return 0; -} - -/* take a packet from the FIFO up link and - * convert it into an ethernet packet and deliver it to the IP stack - */ -static int ft1000_copy_up_pkt(struct urb *urb) -{ - struct ft1000_info *info = urb->context; - struct ft1000_usb *ft1000dev = info->priv; - struct net_device *net = ft1000dev->net; - - u16 tempword; - u16 len; - u16 lena; - struct sk_buff *skb; - u16 i; - u8 *pbuffer = NULL; - u8 *ptemp = NULL; - u16 *chksum; - - if (ft1000dev->status & FT1000_STATUS_CLOSING) { - pr_debug("network driver is closed, return\n"); - return 0; - } - /* Read length */ - len = urb->transfer_buffer_length; - lena = urb->actual_length; - - chksum = (u16 *)ft1000dev->rx_buf; - - tempword = *chksum++; - for (i = 1; i < 7; i++) - tempword ^= *chksum++; - - if (tempword != *chksum) { - info->stats.rx_errors++; - ft1000_submit_rx_urb(info); - return -1; - } - - skb = dev_alloc_skb(len + 12 + 2); - - if (skb == NULL) { - info->stats.rx_errors++; - ft1000_submit_rx_urb(info); - return -1; - } - - pbuffer = (u8 *)skb_put(skb, len + 12); - - /* subtract the number of bytes read already */ - ptemp = pbuffer; - - /* fake MAC address */ - *pbuffer++ = net->dev_addr[0]; - *pbuffer++ = net->dev_addr[1]; - *pbuffer++ = net->dev_addr[2]; - *pbuffer++ = net->dev_addr[3]; - *pbuffer++ = net->dev_addr[4]; - *pbuffer++ = net->dev_addr[5]; - *pbuffer++ = 0x00; - *pbuffer++ = 0x07; - *pbuffer++ = 0x35; - *pbuffer++ = 0xff; - *pbuffer++ = 0xff; - *pbuffer++ = 0xfe; - - memcpy(pbuffer, ft1000dev->rx_buf + sizeof(struct pseudo_hdr), - len - sizeof(struct pseudo_hdr)); - - skb->dev = net; - - skb->protocol = eth_type_trans(skb, net); - skb->ip_summed = CHECKSUM_UNNECESSARY; - netif_rx(skb); - - info->stats.rx_packets++; - /* Add on 12 bytes for MAC address which was removed */ - info->stats.rx_bytes += (lena + 12); - - ft1000_submit_rx_urb(info); - - return 0; -} - - -/* the receiving function of the network driver */ -static int ft1000_submit_rx_urb(struct ft1000_info *info) -{ - int result; - struct ft1000_usb *pFt1000Dev = info->priv; - - if (pFt1000Dev->status & FT1000_STATUS_CLOSING) { - pr_debug("network driver is closed, return\n"); - return -ENODEV; - } - - usb_fill_bulk_urb(pFt1000Dev->rx_urb, - pFt1000Dev->dev, - usb_rcvbulkpipe(pFt1000Dev->dev, - pFt1000Dev->bulk_in_endpointAddr), - pFt1000Dev->rx_buf, MAX_BUF_SIZE, - (usb_complete_t)ft1000_copy_up_pkt, info); - - result = usb_submit_urb(pFt1000Dev->rx_urb, GFP_ATOMIC); - - if (result) { - pr_err("submitting rx_urb %d failed\n", result); - return result; - } - - return 0; -} - -/* close the network driver */ -int ft1000_close(struct net_device *net) -{ - struct ft1000_info *pInfo = netdev_priv(net); - struct ft1000_usb *ft1000dev = pInfo->priv; - - ft1000dev->status |= FT1000_STATUS_CLOSING; - - pr_debug("pInfo=%p, ft1000dev=%p\n", pInfo, ft1000dev); - netif_carrier_off(net); - netif_stop_queue(net); - ft1000dev->status &= ~FT1000_STATUS_CLOSING; - - pInfo->ProgConStat = 0xff; - - return 0; -} - -/* check if the device is presently available on the system. */ -static int ft1000_chkcard(struct ft1000_usb *dev) -{ - u16 tempword; - int status; - - if (dev->fCondResetPend) { - pr_debug("Card is being reset, return FALSE\n"); - return TRUE; - } - /* Mask register is used to check for device presence since it is never - * set to zero. - */ - status = ft1000_read_register(dev, &tempword, FT1000_REG_SUP_IMASK); - if (tempword == 0) { - pr_debug("IMASK = 0 Card not detected\n"); - return FALSE; - } - /* The system will return the value of 0xffff for the version register - * if the device is not present. - */ - status = ft1000_read_register(dev, &tempword, FT1000_REG_ASIC_ID); - if (tempword != 0x1b01) { - dev->status |= FT1000_STATUS_CLOSING; - pr_debug("Version = 0xffff Card not detected\n"); - return FALSE; - } - return TRUE; -} - -/* read a message from the dpram area. - * Input: - * dev - network device structure - * pbuffer - caller supply address to buffer - */ -static bool ft1000_receive_cmd(struct ft1000_usb *dev, u16 *pbuffer, - int maxsz) -{ - u16 size; - int ret; - u16 *ppseudohdr; - int i; - u16 tempword; - - ret = - ft1000_read_dpram16(dev, FT1000_MAG_PH_LEN, (u8 *)&size, - FT1000_MAG_PH_LEN_INDX); - size = ntohs(size) + PSEUDOSZ; - if (size > maxsz) { - pr_debug("Invalid command length = %d\n", size); - return FALSE; - } - ppseudohdr = (u16 *)pbuffer; - ft1000_write_register(dev, FT1000_DPRAM_MAG_RX_BASE, - FT1000_REG_DPRAM_ADDR); - ret = - ft1000_read_register(dev, pbuffer, FT1000_REG_MAG_DPDATAH); - pbuffer++; - ft1000_write_register(dev, FT1000_DPRAM_MAG_RX_BASE + 1, - FT1000_REG_DPRAM_ADDR); - for (i = 0; i <= (size >> 2); i++) { - ret = - ft1000_read_register(dev, pbuffer, - FT1000_REG_MAG_DPDATAL); - pbuffer++; - ret = - ft1000_read_register(dev, pbuffer, - FT1000_REG_MAG_DPDATAH); - pbuffer++; - } - /* copy odd aligned word */ - ret = - ft1000_read_register(dev, pbuffer, FT1000_REG_MAG_DPDATAL); - - pbuffer++; - ret = - ft1000_read_register(dev, pbuffer, FT1000_REG_MAG_DPDATAH); - - pbuffer++; - if (size & 0x0001) { - /* copy odd byte from fifo */ - ret = - ft1000_read_register(dev, &tempword, - FT1000_REG_DPRAM_DATA); - *pbuffer = ntohs(tempword); - } - /* Check if pseudo header checksum is good - * Calculate pseudo header checksum - */ - tempword = *ppseudohdr++; - for (i = 1; i < 7; i++) - tempword ^= *ppseudohdr++; - - if (tempword != *ppseudohdr) - return FALSE; - - return TRUE; -} - -static int ft1000_dsp_prov(void *arg) -{ - struct ft1000_usb *dev = (struct ft1000_usb *)arg; - struct ft1000_info *info = netdev_priv(dev->net); - u16 tempword; - u16 len; - u16 i = 0; - struct prov_record *ptr; - struct pseudo_hdr *ppseudo_hdr; - u16 *pmsg; - int status; - u16 TempShortBuf[256]; - - while (list_empty(&info->prov_list) == 0) { - pr_debug("DSP Provisioning List Entry\n"); - - /* Check if doorbell is available */ - pr_debug("check if doorbell is cleared\n"); - status = ft1000_read_register(dev, &tempword, - FT1000_REG_DOORBELL); - if (status) { - pr_debug("ft1000_read_register error\n"); - break; - } - - while (tempword & FT1000_DB_DPRAM_TX) { - mdelay(10); - i++; - if (i == 10) { - pr_debug("message drop\n"); - return -1; - } - ft1000_read_register(dev, &tempword, - FT1000_REG_DOORBELL); - } - - if (!(tempword & FT1000_DB_DPRAM_TX)) { - pr_debug("*** Provision Data Sent to DSP\n"); - - /* Send provisioning data */ - ptr = list_entry(info->prov_list.next, - struct prov_record, list); - len = *(u16 *)ptr->pprov_data; - len = htons(len); - len += PSEUDOSZ; - - pmsg = (u16 *)ptr->pprov_data; - ppseudo_hdr = (struct pseudo_hdr *)pmsg; - /* Insert slow queue sequence number */ - ppseudo_hdr->seq_num = info->squeseqnum++; - ppseudo_hdr->portsrc = 0; - /* Calculate new checksum */ - ppseudo_hdr->checksum = *pmsg++; - for (i = 1; i < 7; i++) - ppseudo_hdr->checksum ^= *pmsg++; - - TempShortBuf[0] = 0; - TempShortBuf[1] = htons(len); - memcpy(&TempShortBuf[2], ppseudo_hdr, len); - - status = - ft1000_write_dpram32(dev, 0, - (u8 *)&TempShortBuf[0], - (unsigned short)(len + 2)); - status = - ft1000_write_register(dev, FT1000_DB_DPRAM_TX, - FT1000_REG_DOORBELL); - - list_del(&ptr->list); - kfree(ptr->pprov_data); - kfree(ptr); - } - usleep_range(9000, 11000); - } - - pr_debug("DSP Provisioning List Entry finished\n"); - - msleep(100); - - dev->fProvComplete = true; - info->CardReady = 1; - - return 0; -} - -static int ft1000_proc_drvmsg(struct ft1000_usb *dev, u16 size) -{ - struct ft1000_info *info = netdev_priv(dev->net); - u16 msgtype; - u16 tempword; - struct media_msg *pmediamsg; - struct dsp_init_msg *pdspinitmsg; - struct drv_msg *pdrvmsg; - u16 i; - struct pseudo_hdr *ppseudo_hdr; - u16 *pmsg; - int status; - union { - u8 byte[2]; - u16 wrd; - } convert; - - char *cmdbuffer = kmalloc(1600, GFP_KERNEL); - - if (!cmdbuffer) - return -ENOMEM; - - status = ft1000_read_dpram32(dev, 0x200, cmdbuffer, size); - -#ifdef JDEBUG - print_hex_dump_debug("cmdbuffer: ", HEX_DUMP_OFFSET, 16, 1, - cmdbuffer, size, true); -#endif - pdrvmsg = (struct drv_msg *)&cmdbuffer[2]; - msgtype = ntohs(pdrvmsg->type); - pr_debug("Command message type = 0x%x\n", msgtype); - switch (msgtype) { - case MEDIA_STATE:{ - pr_debug("Command message type = MEDIA_STATE\n"); - pmediamsg = (struct media_msg *)&cmdbuffer[0]; - if (info->ProgConStat != 0xFF) { - if (pmediamsg->state) { - pr_debug("Media is up\n"); - if (info->mediastate == 0) { - if (dev->NetDevRegDone) - netif_wake_queue(dev->net); - info->mediastate = 1; - } - } else { - pr_debug("Media is down\n"); - if (info->mediastate == 1) { - info->mediastate = 0; - if (dev->NetDevRegDone) - info->ConTm = 0; - } - } - } else { - pr_debug("Media is down\n"); - if (info->mediastate == 1) { - info->mediastate = 0; - info->ConTm = 0; - } - } - break; - } - case DSP_INIT_MSG:{ - pr_debug("Command message type = DSP_INIT_MSG\n"); - pdspinitmsg = (struct dsp_init_msg *)&cmdbuffer[2]; - memcpy(info->DspVer, pdspinitmsg->DspVer, DSPVERSZ); - pr_debug("DSPVER = 0x%2x 0x%2x 0x%2x 0x%2x\n", - info->DspVer[0], info->DspVer[1], info->DspVer[2], - info->DspVer[3]); - memcpy(info->HwSerNum, pdspinitmsg->HwSerNum, - HWSERNUMSZ); - memcpy(info->Sku, pdspinitmsg->Sku, SKUSZ); - memcpy(info->eui64, pdspinitmsg->eui64, EUISZ); - pr_debug("EUI64=%2x.%2x.%2x.%2x.%2x.%2x.%2x.%2x\n", - info->eui64[0], info->eui64[1], info->eui64[2], - info->eui64[3], info->eui64[4], info->eui64[5], - info->eui64[6], info->eui64[7]); - dev->net->dev_addr[0] = info->eui64[0]; - dev->net->dev_addr[1] = info->eui64[1]; - dev->net->dev_addr[2] = info->eui64[2]; - dev->net->dev_addr[3] = info->eui64[5]; - dev->net->dev_addr[4] = info->eui64[6]; - dev->net->dev_addr[5] = info->eui64[7]; - - if (ntohs(pdspinitmsg->length) == - (sizeof(struct dsp_init_msg) - 20)) { - memcpy(info->ProductMode, pdspinitmsg->ProductMode, - MODESZ); - memcpy(info->RfCalVer, pdspinitmsg->RfCalVer, CALVERSZ); - memcpy(info->RfCalDate, pdspinitmsg->RfCalDate, - CALDATESZ); - pr_debug("RFCalVer = 0x%2x 0x%2x\n", - info->RfCalVer[0], info->RfCalVer[1]); - } - break; - } - case DSP_PROVISION:{ - pr_debug("Command message type = DSP_PROVISION\n"); - - /* kick off dspprov routine to start provisioning - * Send provisioning data to DSP - */ - if (list_empty(&info->prov_list) == 0) { - dev->fProvComplete = false; - status = ft1000_dsp_prov(dev); - if (status != 0) - goto out; - } else { - dev->fProvComplete = true; - status = ft1000_write_register(dev, FT1000_DB_HB, - FT1000_REG_DOORBELL); - pr_debug("No more DSP provisioning data in dsp image\n"); - } - pr_debug("DSP PROVISION is done\n"); - break; - } - case DSP_STORE_INFO:{ - pr_debug("Command message type = DSP_STORE_INFO"); - tempword = ntohs(pdrvmsg->length); - info->DSPInfoBlklen = tempword; - if (tempword < (MAX_DSP_SESS_REC - 4)) { - pmsg = (u16 *)&pdrvmsg->data[0]; - for (i = 0; i < ((tempword + 1) / 2); i++) { - pr_debug("dsp info data = 0x%x\n", *pmsg); - info->DSPInfoBlk[i + 10] = *pmsg++; - } - } else { - info->DSPInfoBlklen = 0; - } - break; - } - case DSP_GET_INFO:{ - pr_debug("Got DSP_GET_INFO\n"); - /* copy dsp info block to dsp */ - dev->DrvMsgPend = 1; - /* allow any outstanding ioctl to finish */ - mdelay(10); - status = ft1000_read_register(dev, &tempword, - FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) { - mdelay(10); - status = ft1000_read_register(dev, &tempword, - FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) { - mdelay(10); - status = ft1000_read_register(dev, &tempword, - FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) - break; - } - } - /* Put message into Slow Queue Form Pseudo header */ - pmsg = (u16 *)info->DSPInfoBlk; - *pmsg++ = 0; - *pmsg++ = htons(info->DSPInfoBlklen + 20 + info->DSPInfoBlklen); - ppseudo_hdr = - (struct pseudo_hdr *)(u16 *)&info->DSPInfoBlk[2]; - ppseudo_hdr->length = htons(info->DSPInfoBlklen + 4 - + info->DSPInfoBlklen); - ppseudo_hdr->source = 0x10; - ppseudo_hdr->destination = 0x20; - ppseudo_hdr->portdest = 0; - ppseudo_hdr->portsrc = 0; - ppseudo_hdr->sh_str_id = 0; - ppseudo_hdr->control = 0; - ppseudo_hdr->rsvd1 = 0; - ppseudo_hdr->rsvd2 = 0; - ppseudo_hdr->qos_class = 0; - /* Insert slow queue sequence number */ - ppseudo_hdr->seq_num = info->squeseqnum++; - /* Insert application id */ - ppseudo_hdr->portsrc = 0; - /* Calculate new checksum */ - ppseudo_hdr->checksum = *pmsg++; - for (i = 1; i < 7; i++) - ppseudo_hdr->checksum ^= *pmsg++; - - info->DSPInfoBlk[10] = 0x7200; - info->DSPInfoBlk[11] = htons(info->DSPInfoBlklen); - status = ft1000_write_dpram32(dev, 0, - (u8 *)&info->DSPInfoBlk[0], - (unsigned short)(info->DSPInfoBlklen + 22)); - status = ft1000_write_register(dev, FT1000_DB_DPRAM_TX, - FT1000_REG_DOORBELL); - dev->DrvMsgPend = 0; - break; - } - case GET_DRV_ERR_RPT_MSG:{ - pr_debug("Got GET_DRV_ERR_RPT_MSG\n"); - /* copy driver error message to dsp */ - dev->DrvMsgPend = 1; - /* allow any outstanding ioctl to finish */ - mdelay(10); - status = ft1000_read_register(dev, &tempword, - FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) { - mdelay(10); - status = ft1000_read_register(dev, &tempword, - FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) - mdelay(10); - } - if ((tempword & FT1000_DB_DPRAM_TX) == 0) { - /* Put message into Slow Queue Form Pseudo header */ - pmsg = (u16 *)&tempbuffer[0]; - ppseudo_hdr = (struct pseudo_hdr *)pmsg; - ppseudo_hdr->length = htons(0x0012); - ppseudo_hdr->source = 0x10; - ppseudo_hdr->destination = 0x20; - ppseudo_hdr->portdest = 0; - ppseudo_hdr->portsrc = 0; - ppseudo_hdr->sh_str_id = 0; - ppseudo_hdr->control = 0; - ppseudo_hdr->rsvd1 = 0; - ppseudo_hdr->rsvd2 = 0; - ppseudo_hdr->qos_class = 0; - /* Insert slow queue sequence number */ - ppseudo_hdr->seq_num = info->squeseqnum++; - /* Insert application id */ - ppseudo_hdr->portsrc = 0; - /* Calculate new checksum */ - ppseudo_hdr->checksum = *pmsg++; - for (i = 1; i < 7; i++) - ppseudo_hdr->checksum ^= *pmsg++; - - pmsg = (u16 *)&tempbuffer[16]; - *pmsg++ = htons(RSP_DRV_ERR_RPT_MSG); - *pmsg++ = htons(0x000e); - *pmsg++ = htons(info->DSP_TIME[0]); - *pmsg++ = htons(info->DSP_TIME[1]); - *pmsg++ = htons(info->DSP_TIME[2]); - *pmsg++ = htons(info->DSP_TIME[3]); - convert.byte[0] = info->DspVer[0]; - convert.byte[1] = info->DspVer[1]; - *pmsg++ = convert.wrd; - convert.byte[0] = info->DspVer[2]; - convert.byte[1] = info->DspVer[3]; - *pmsg++ = convert.wrd; - *pmsg++ = htons(info->DrvErrNum); - - status = card_send_command(dev, - (unsigned char *)&tempbuffer[0], - (u16)(0x0012 + PSEUDOSZ)); - if (status) - goto out; - info->DrvErrNum = 0; - } - dev->DrvMsgPend = 0; - break; - } - default: - break; - } - - status = 0; -out: - kfree(cmdbuffer); - return status; -} - -/* Check which application has registered for dsp broadcast messages */ -static int dsp_broadcast_msg_id(struct ft1000_usb *dev) -{ - struct dpram_blk *pdpram_blk; - unsigned long flags; - int i; - - for (i = 0; i < MAX_NUM_APP; i++) { - if ((dev->app_info[i].DspBCMsgFlag) - && (dev->app_info[i].fileobject) - && (dev->app_info[i].NumOfMsg - < MAX_MSG_LIMIT)) { - pdpram_blk = ft1000_get_buffer(&freercvpool); - if (pdpram_blk == NULL) { - pr_debug("Out of memory in free receive command pool\n"); - dev->app_info[i].nRxMsgMiss++; - return -1; - } - if (ft1000_receive_cmd(dev, pdpram_blk->pbuffer, - MAX_CMD_SQSIZE)) { - /* Put message into the - * appropriate application block - */ - dev->app_info[i].nRxMsg++; - spin_lock_irqsave(&free_buff_lock, flags); - list_add_tail(&pdpram_blk->list, - &dev->app_info[i] .app_sqlist); - dev->app_info[i].NumOfMsg++; - spin_unlock_irqrestore(&free_buff_lock, flags); - wake_up_interruptible(&dev->app_info[i] - .wait_dpram_msg); - } else { - dev->app_info[i].nRxMsgMiss++; - ft1000_free_buffer(pdpram_blk, &freercvpool); - pr_debug("ft1000_get_buffer NULL\n"); - return -1; - } - } - } - return 0; -} - -static int handle_misc_portid(struct ft1000_usb *dev) -{ - struct dpram_blk *pdpram_blk; - int i; - - pdpram_blk = ft1000_get_buffer(&freercvpool); - if (pdpram_blk == NULL) { - pr_debug("Out of memory in free receive command pool\n"); - return -1; - } - if (!ft1000_receive_cmd(dev, pdpram_blk->pbuffer, MAX_CMD_SQSIZE)) - goto exit_failure; - - /* Search for correct application block */ - for (i = 0; i < MAX_NUM_APP; i++) { - if (dev->app_info[i].app_id == ((struct pseudo_hdr *) - pdpram_blk->pbuffer)->portdest) - break; - } - if (i == MAX_NUM_APP) { - pr_debug("No application matching id = %d\n", - ((struct pseudo_hdr *)pdpram_blk->pbuffer)->portdest); - goto exit_failure; - } else if (dev->app_info[i].NumOfMsg > MAX_MSG_LIMIT) { - goto exit_failure; - } else { - dev->app_info[i].nRxMsg++; - /* Put message into the appropriate application block */ - list_add_tail(&pdpram_blk->list, &dev->app_info[i].app_sqlist); - dev->app_info[i].NumOfMsg++; - } - return 0; - -exit_failure: - ft1000_free_buffer(pdpram_blk, &freercvpool); - return -1; -} - -int ft1000_poll(void *dev_id) -{ - struct ft1000_usb *dev = (struct ft1000_usb *)dev_id; - struct ft1000_info *info = netdev_priv(dev->net); - u16 tempword; - int status; - u16 size; - int i; - u16 data; - u16 modulo; - u16 portid; - - if (ft1000_chkcard(dev) == FALSE) { - pr_debug("failed\n"); - return -1; - } - status = ft1000_read_register(dev, &tempword, FT1000_REG_DOORBELL); - if (!status) { - if (tempword & FT1000_DB_DPRAM_RX) { - status = ft1000_read_dpram16(dev, - 0x200, (u8 *)&data, 0); - size = ntohs(data) + 16 + 2; - if (size % 4) { - modulo = 4 - (size % 4); - size = size + modulo; - } - status = ft1000_read_dpram16(dev, 0x201, - (u8 *)&portid, 1); - portid &= 0xff; - if (size < MAX_CMD_SQSIZE) { - switch (portid) { - case DRIVERID: - pr_debug("FT1000_REG_DOORBELL message type: FT1000_DB_DPRAM_RX : portid DRIVERID\n"); - status = ft1000_proc_drvmsg(dev, size); - if (status != 0) - return status; - break; - case DSPBCMSGID: - status = dsp_broadcast_msg_id(dev); - break; - default: - status = handle_misc_portid(dev); - break; - } - } else - pr_debug("Invalid total length for SlowQ = %d\n", - size); - status = ft1000_write_register(dev, - FT1000_DB_DPRAM_RX, - FT1000_REG_DOORBELL); - } else if (tempword & FT1000_DSP_ASIC_RESET) { - /* Let's reset the ASIC from the Host side as well */ - status = ft1000_write_register(dev, ASIC_RESET_BIT, - FT1000_REG_RESET); - status = ft1000_read_register(dev, &tempword, - FT1000_REG_RESET); - i = 0; - while (tempword & ASIC_RESET_BIT) { - status = ft1000_read_register(dev, &tempword, - FT1000_REG_RESET); - usleep_range(9000, 11000); - i++; - if (i == 100) - break; - } - if (i == 100) { - pr_debug("Unable to reset ASIC\n"); - return 0; - } - usleep_range(9000, 11000); - /* Program WMARK register */ - status = ft1000_write_register(dev, 0x600, - FT1000_REG_MAG_WATERMARK); - /* clear ASIC reset doorbell */ - status = ft1000_write_register(dev, - FT1000_DSP_ASIC_RESET, - FT1000_REG_DOORBELL); - usleep_range(9000, 11000); - } else if (tempword & FT1000_ASIC_RESET_REQ) { - pr_debug("FT1000_REG_DOORBELL message type: FT1000_ASIC_RESET_REQ\n"); - /* clear ASIC reset request from DSP */ - status = ft1000_write_register(dev, - FT1000_ASIC_RESET_REQ, - FT1000_REG_DOORBELL); - status = ft1000_write_register(dev, HOST_INTF_BE, - FT1000_REG_SUP_CTRL); - /* copy dsp session record from Adapter block */ - status = ft1000_write_dpram32(dev, 0, - (u8 *)&info->DSPSess.Rec[0], 1024); - status = ft1000_write_register(dev, 0x600, - FT1000_REG_MAG_WATERMARK); - /* ring doorbell to tell DSP that - * ASIC is out of reset - */ - status = ft1000_write_register(dev, - FT1000_ASIC_RESET_DSP, - FT1000_REG_DOORBELL); - } else if (tempword & FT1000_DB_COND_RESET) { - pr_debug("FT1000_REG_DOORBELL message type: FT1000_DB_COND_RESET\n"); - if (!dev->fAppMsgPend) { - /* Reset ASIC and DSP */ - status = ft1000_read_dpram16(dev, - FT1000_MAG_DSP_TIMER0, - (u8 *)&info->DSP_TIME[0], - FT1000_MAG_DSP_TIMER0_INDX); - status = ft1000_read_dpram16(dev, - FT1000_MAG_DSP_TIMER1, - (u8 *)&info->DSP_TIME[1], - FT1000_MAG_DSP_TIMER1_INDX); - status = ft1000_read_dpram16(dev, - FT1000_MAG_DSP_TIMER2, - (u8 *)&info->DSP_TIME[2], - FT1000_MAG_DSP_TIMER2_INDX); - status = ft1000_read_dpram16(dev, - FT1000_MAG_DSP_TIMER3, - (u8 *)&info->DSP_TIME[3], - FT1000_MAG_DSP_TIMER3_INDX); - info->CardReady = 0; - info->DrvErrNum = DSP_CONDRESET_INFO; - pr_debug("DSP conditional reset requested\n"); - info->ft1000_reset(dev->net); - } else { - dev->fProvComplete = false; - dev->fCondResetPend = true; - } - ft1000_write_register(dev, FT1000_DB_COND_RESET, - FT1000_REG_DOORBELL); - } - } - return 0; -} diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_ioctl.h b/drivers/staging/ft1000/ft1000-usb/ft1000_ioctl.h deleted file mode 100644 index e9472bebda0b..000000000000 --- a/drivers/staging/ft1000/ft1000-usb/ft1000_ioctl.h +++ /dev/null @@ -1,123 +0,0 @@ -/* - *--------------------------------------------------------------------------- - * FT1000 driver for Flarion Flash OFDM NIC Device - * - * Copyright (C) 2002 Flarion Technologies, All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) any - * later version. This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - - * Suite 330, Boston, MA 02111-1307, USA. - *--------------------------------------------------------------------------- - * - * File: ft1000_ioctl.h - * - * Description: Common structures and defines relating to IOCTL - * - * History: - * 11/5/02 Whc Created. - * - *--------------------------------------------------------------------------- - */ -#ifndef _FT1000IOCTLH_ -#define _FT1000IOCTLH_ - -struct IOCTL_GET_VER { - unsigned long drv_ver; -} __packed; - -/* Data structure for Dsp statistics */ -struct IOCTL_GET_DSP_STAT { - unsigned char DspVer[DSPVERSZ]; /* DSP version number */ - unsigned char HwSerNum[HWSERNUMSZ]; /* Hardware Serial Number */ - unsigned char Sku[SKUSZ]; /* SKU */ - unsigned char eui64[EUISZ]; /* EUI64 */ - unsigned short ConStat; /* Connection Status */ - /* Bits 0-3 = Connection Status Field */ - /* 0000=Idle (Disconnect) */ - /* 0001=Searching */ - /* 0010=Active (Connected) */ - /* 0011=Waiting for L2 down */ - /* 0100=Sleep */ - unsigned short LedStat; /* Led Status */ - /* Bits 0-3 = Signal Strength Field */ - /* 0000 = -105dBm to -92dBm */ - /* 0001 = -92dBm to -85dBm */ - /* 0011 = -85dBm to -75dBm */ - /* 0111 = -75dBm to -50dBm */ - /* 1111 = -50dBm to 0dBm */ - /* Bits 4-7 = Reserved */ - /* Bits 8-11 = SNR Field */ - /* 0000 = <2dB */ - /* 0001 = 2dB to 8dB */ - /* 0011 = 8dB to 15dB */ - /* 0111 = 15dB to 22dB */ - /* 1111 = >22dB */ - /* Bits 12-15 = Reserved */ - unsigned long nTxPkts; /* Number of packets transmitted - * from host to dsp - */ - unsigned long nRxPkts; /* Number of packets received from - * dsp to host - */ - unsigned long nTxBytes; /* Number of bytes transmitted - * from host to dsp - */ - unsigned long nRxBytes; /* Number of bytes received from - * dsp to host - */ - unsigned long ConTm; /* Current session connection time - * in seconds - */ - unsigned char CalVer[CALVERSZ]; /* Proprietary Calibration - * Version - */ - unsigned char CalDate[CALDATESZ]; /* Proprietary Calibration Date */ -} __packed; - -/* Data structure for Dual Ported RAM messaging between Host and Dsp */ -struct IOCTL_DPRAM_BLK { - unsigned short total_len; - struct pseudo_hdr pseudohdr; - unsigned char buffer[1780]; -} __packed; - -struct IOCTL_DPRAM_COMMAND { - unsigned short extra; - struct IOCTL_DPRAM_BLK dpram_blk; -} __packed; - -/* - * Custom IOCTL command codes - */ -#define FT1000_MAGIC_CODE 'F' - -#define IOCTL_REGISTER_CMD 0 -#define IOCTL_SET_DPRAM_CMD 3 -#define IOCTL_GET_DPRAM_CMD 4 -#define IOCTL_GET_DSP_STAT_CMD 6 -#define IOCTL_GET_VER_CMD 7 -#define IOCTL_CONNECT 10 -#define IOCTL_DISCONNECT 11 - -#define IOCTL_FT1000_GET_DSP_STAT _IOR(FT1000_MAGIC_CODE, \ - IOCTL_GET_DSP_STAT_CMD, \ - struct IOCTL_GET_DSP_STAT) -#define IOCTL_FT1000_GET_VER _IOR(FT1000_MAGIC_CODE, IOCTL_GET_VER_CMD, \ - struct IOCTL_GET_VER) -#define IOCTL_FT1000_CONNECT _IO(FT1000_MAGIC_CODE, IOCTL_CONNECT) -#define IOCTL_FT1000_DISCONNECT _IO(FT1000_MAGIC_CODE, IOCTL_DISCONNECT) -#define IOCTL_FT1000_SET_DPRAM _IOW(FT1000_MAGIC_CODE, IOCTL_SET_DPRAM_CMD, \ - struct IOCTL_DPRAM_BLK) -#define IOCTL_FT1000_GET_DPRAM _IOR(FT1000_MAGIC_CODE, IOCTL_GET_DPRAM_CMD, \ - struct IOCTL_DPRAM_BLK) -#define IOCTL_FT1000_REGISTER _IOW(FT1000_MAGIC_CODE, IOCTL_REGISTER_CMD, \ - unsigned short *) - -#endif /* _FT1000IOCTLH_ */ diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c deleted file mode 100644 index d1ba0b827a55..000000000000 --- a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c +++ /dev/null @@ -1,248 +0,0 @@ -/*===================================================== - * CopyRight (C) 2007 Qualcomm Inc. All Rights Reserved. - * - * - * This file is part of Express Card USB Driver - *==================================================== - */ - -#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - -#include -#include -#include -#include -#include -#include -#include "ft1000_usb.h" - -#include - -MODULE_DESCRIPTION("FT1000 EXPRESS CARD DRIVER"); -MODULE_LICENSE("Dual MPL/GPL"); -MODULE_SUPPORTED_DEVICE("QFT FT1000 Express Cards"); - -void *pFileStart; -size_t FileLength; - -#define VENDOR_ID 0x1291 /* Qualcomm vendor id */ -#define PRODUCT_ID 0x11 /* fake product id */ - -/* table of devices that work with this driver */ -static struct usb_device_id id_table[] = { - {USB_DEVICE(VENDOR_ID, PRODUCT_ID)}, - {}, -}; - -MODULE_DEVICE_TABLE(usb, id_table); - -static bool gPollingfailed; -static int ft1000_poll_thread(void *arg) -{ - int ret; - - while (!kthread_should_stop()) { - usleep_range(10000, 11000); - if (!gPollingfailed) { - ret = ft1000_poll(arg); - if (ret != 0) { - pr_debug("polling failed\n"); - gPollingfailed = true; - } - } - } - return 0; -} - -static int ft1000_probe(struct usb_interface *interface, - const struct usb_device_id *id) -{ - struct usb_host_interface *iface_desc; - struct usb_endpoint_descriptor *endpoint; - struct usb_device *dev; - unsigned numaltsetting; - int i, ret = 0, size; - - struct ft1000_usb *ft1000dev; - struct ft1000_info *pft1000info = NULL; - const struct firmware *dsp_fw; - - ft1000dev = kzalloc(sizeof(struct ft1000_usb), GFP_KERNEL); - if (!ft1000dev) - return -ENOMEM; - - dev = interface_to_usbdev(interface); - pr_debug("usb device descriptor info - number of configuration is %d\n", - dev->descriptor.bNumConfigurations); - - ft1000dev->dev = dev; - ft1000dev->status = 0; - ft1000dev->net = NULL; - ft1000dev->tx_urb = usb_alloc_urb(0, GFP_KERNEL); - ft1000dev->rx_urb = usb_alloc_urb(0, GFP_KERNEL); - if (!ft1000dev->tx_urb || !ft1000dev->rx_urb) { - ret = -ENOMEM; - goto err_fw; - } - - numaltsetting = interface->num_altsetting; - pr_debug("number of alt settings is: %d\n", numaltsetting); - iface_desc = interface->cur_altsetting; - pr_debug("number of endpoints is: %d\n", - iface_desc->desc.bNumEndpoints); - pr_debug("descriptor type is: %d\n", iface_desc->desc.bDescriptorType); - pr_debug("interface number is: %d\n", - iface_desc->desc.bInterfaceNumber); - pr_debug("alternatesetting is: %d\n", - iface_desc->desc.bAlternateSetting); - pr_debug("interface class is: %d\n", iface_desc->desc.bInterfaceClass); - pr_debug("control endpoint info:\n"); - pr_debug("descriptor0 type -- %d\n", - iface_desc->endpoint[0].desc.bmAttributes); - pr_debug("descriptor1 type -- %d\n", - iface_desc->endpoint[1].desc.bmAttributes); - pr_debug("descriptor2 type -- %d\n", - iface_desc->endpoint[2].desc.bmAttributes); - - for (i = 0; i < iface_desc->desc.bNumEndpoints; i++) { - endpoint = - (struct usb_endpoint_descriptor *)&iface_desc-> - endpoint[i].desc; - pr_debug("endpoint %d\n", i); - pr_debug("bEndpointAddress=%x, bmAttributes=%x\n", - endpoint->bEndpointAddress, endpoint->bmAttributes); - if (usb_endpoint_is_bulk_in(endpoint)) { - ft1000dev->bulk_in_endpointAddr = - endpoint->bEndpointAddress; - pr_debug("in: %d\n", endpoint->bEndpointAddress); - } - - if (usb_endpoint_is_bulk_in(endpoint)) { - ft1000dev->bulk_out_endpointAddr = - endpoint->bEndpointAddress; - pr_debug("out: %d\n", endpoint->bEndpointAddress); - } - } - - pr_debug("bulk_in=%d, bulk_out=%d\n", - ft1000dev->bulk_in_endpointAddr, - ft1000dev->bulk_out_endpointAddr); - - ret = request_firmware(&dsp_fw, "ft3000.img", &dev->dev); - if (ret < 0) { - dev_err(interface->usb_dev, "Error request_firmware()\n"); - goto err_fw; - } - - size = max_t(uint, dsp_fw->size, 4096); - pFileStart = kmalloc(size, GFP_KERNEL); - - if (!pFileStart) { - release_firmware(dsp_fw); - ret = -ENOMEM; - goto err_fw; - } - - memcpy(pFileStart, dsp_fw->data, dsp_fw->size); - FileLength = dsp_fw->size; - release_firmware(dsp_fw); - - pr_debug("start downloading dsp image...\n"); - - ret = init_ft1000_netdev(ft1000dev); - if (ret) - goto err_load; - - pft1000info = netdev_priv(ft1000dev->net); - - pr_debug("pft1000info=%p\n", pft1000info); - ret = dsp_reload(ft1000dev); - if (ret) { - dev_err(interface->usb_dev, - "Problem with DSP image loading\n"); - goto err_load; - } - - gPollingfailed = false; - ft1000dev->pPollThread = - kthread_run(ft1000_poll_thread, ft1000dev, "ft1000_poll"); - - if (IS_ERR(ft1000dev->pPollThread)) { - ret = PTR_ERR(ft1000dev->pPollThread); - goto err_load; - } - - msleep(500); - - while (!pft1000info->CardReady) { - if (gPollingfailed) { - ret = -EIO; - goto err_thread; - } - msleep(100); - pr_debug("Waiting for Card Ready\n"); - } - - pr_debug("Card Ready!!!! Registering network device\n"); - - ret = reg_ft1000_netdev(ft1000dev, interface); - if (ret) - goto err_thread; - - ft1000dev->NetDevRegDone = 1; - - return 0; - -err_thread: - kthread_stop(ft1000dev->pPollThread); -err_load: - kfree(pFileStart); -err_fw: - usb_free_urb(ft1000dev->rx_urb); - usb_free_urb(ft1000dev->tx_urb); - kfree(ft1000dev); - return ret; -} - -static void ft1000_disconnect(struct usb_interface *interface) -{ - struct ft1000_info *pft1000info; - struct ft1000_usb *ft1000dev; - - pft1000info = (struct ft1000_info *)usb_get_intfdata(interface); - pr_debug("In disconnect pft1000info=%p\n", pft1000info); - - if (pft1000info) { - ft1000dev = pft1000info->priv; - if (ft1000dev->pPollThread) - kthread_stop(ft1000dev->pPollThread); - - pr_debug("threads are terminated\n"); - - if (ft1000dev->net) { - pr_debug("destroy char driver\n"); - ft1000_destroy_dev(ft1000dev->net); - unregister_netdev(ft1000dev->net); - pr_debug("network device unregistered\n"); - free_netdev(ft1000dev->net); - - } - - usb_free_urb(ft1000dev->rx_urb); - usb_free_urb(ft1000dev->tx_urb); - - pr_debug("urb freed\n"); - - kfree(ft1000dev); - } - kfree(pFileStart); -} - -static struct usb_driver ft1000_usb_driver = { - .name = "ft1000usb", - .probe = ft1000_probe, - .disconnect = ft1000_disconnect, - .id_table = id_table, -}; - -module_usb_driver(ft1000_usb_driver); diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h deleted file mode 100644 index 9b5050fcbb66..000000000000 --- a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h +++ /dev/null @@ -1,150 +0,0 @@ -#ifndef _FT1000_USB_H_ -#define _FT1000_USB_H_ - -#include "../ft1000.h" -#include "ft1000_ioctl.h" -#define FT1000_DRV_VER 0x01010403 - -#define MAX_NUM_APP 6 -#define MAX_MSG_LIMIT 200 -#define NUM_OF_FREE_BUFFERS 1500 - -#define PSEUDOSZ 16 - -struct app_info_block { - u32 nTxMsg; /* DPRAM msg sent to DSP with app_id */ - u32 nRxMsg; /* DPRAM msg rcv from dsp with app_id */ - u32 nTxMsgReject; /* DPRAM msg rejected due to DSP doorbell - * set - */ - u32 nRxMsgMiss; /* DPRAM msg dropped due to overflow */ - struct fown_struct *fileobject;/* Application's file object */ - u16 app_id; /* Application id */ - int DspBCMsgFlag; - int NumOfMsg; /* number of messages queued up */ - wait_queue_head_t wait_dpram_msg; - struct list_head app_sqlist; /* link list of msgs for applicaton on - * slow queue - */ -} __packed; - -#define FALSE 0 -#define TRUE 1 - -#define FT1000_STATUS_CLOSING 0x01 - -#define DSPBCMSGID 0x10 - -/* Electrabuzz specific DPRAM mapping */ -/* this is used by ft1000_usb driver - isn't that a bug? */ -#undef FT1000_DPRAM_RX_BASE -#define FT1000_DPRAM_RX_BASE 0x1800 /* RX AREA (SlowQ) */ - -/* MEMORY MAP FOR MAGNEMITE */ -/* the indexes are swapped comparing to PCMCIA - is it OK or a bug? */ -#undef FT1000_MAG_DSP_LED_INDX -#define FT1000_MAG_DSP_LED_INDX 0x1 /* dsp led status for PAD - * device - */ -#undef FT1000_MAG_DSP_CON_STATE_INDX -#define FT1000_MAG_DSP_CON_STATE_INDX 0x0 /* DSP Connection Status Info */ - -/* Maximum times trying to get ASIC out of reset */ -#define MAX_ASIC_RESET_CNT 20 - -#define MAX_BUF_SIZE 4096 - -struct ft1000_debug_dirs { - struct list_head list; - struct dentry *dent; - struct dentry *file; - int int_number; -}; - -struct ft1000_usb { - struct usb_device *dev; - struct net_device *net; - - u32 status; - - struct urb *rx_urb; - struct urb *tx_urb; - - u8 tx_buf[MAX_BUF_SIZE]; - u8 rx_buf[MAX_BUF_SIZE]; - - u8 bulk_in_endpointAddr; - u8 bulk_out_endpointAddr; - - struct task_struct *pPollThread; - unsigned char fcodeldr; - unsigned char bootmode; - unsigned char usbboot; - unsigned short dspalive; - bool fProvComplete; - bool fCondResetPend; - bool fAppMsgPend; - int DeviceCreated; - int NetDevRegDone; - u8 CardNumber; - u8 DeviceName[15]; - struct ft1000_debug_dirs nodes; - spinlock_t fifo_lock; - int appcnt; - struct app_info_block app_info[MAX_NUM_APP]; - u16 DrvMsgPend; - unsigned short tempbuf[32]; -} __packed; - - -struct dpram_blk { - struct list_head list; - u16 *pbuffer; -} __packed; - -int ft1000_read_register(struct ft1000_usb *ft1000dev, - u16 *Data, u16 nRegIndx); -int ft1000_write_register(struct ft1000_usb *ft1000dev, - u16 value, u16 nRegIndx); -int ft1000_read_dpram32(struct ft1000_usb *ft1000dev, - u16 indx, u8 *buffer, u16 cnt); -int ft1000_write_dpram32(struct ft1000_usb *ft1000dev, - u16 indx, u8 *buffer, u16 cnt); -int ft1000_read_dpram16(struct ft1000_usb *ft1000dev, - u16 indx, u8 *buffer, u8 highlow); -int ft1000_write_dpram16(struct ft1000_usb *ft1000dev, - u16 indx, u16 value, u8 highlow); -int fix_ft1000_read_dpram32(struct ft1000_usb *ft1000dev, - u16 indx, u8 *buffer); -int fix_ft1000_write_dpram32(struct ft1000_usb *ft1000dev, - u16 indx, u8 *buffer); - -extern void *pFileStart; -extern size_t FileLength; -extern int numofmsgbuf; - -int ft1000_close(struct net_device *dev); -int scram_dnldr(struct ft1000_usb *ft1000dev, void *pFileStart, - u32 FileLength); - -extern struct list_head freercvpool; - -/* lock to arbitrate free buffer list for receive command data */ -extern spinlock_t free_buff_lock; - -int ft1000_create_dev(struct ft1000_usb *dev); -void ft1000_destroy_dev(struct net_device *dev); -int card_send_command(struct ft1000_usb *ft1000dev, - void *ptempbuffer, int size); - -struct dpram_blk *ft1000_get_buffer(struct list_head *bufflist); -void ft1000_free_buffer(struct dpram_blk *pdpram_blk, struct list_head *plist); - -int dsp_reload(struct ft1000_usb *ft1000dev); -int init_ft1000_netdev(struct ft1000_usb *ft1000dev); -struct usb_interface; -int reg_ft1000_netdev(struct ft1000_usb *ft1000dev, - struct usb_interface *intf); -int ft1000_poll(void *dev_id); - -#endif /* _FT1000_USB_H_ */ diff --git a/drivers/staging/ft1000/ft1000-usb/ft3000.img b/drivers/staging/ft1000/ft1000-usb/ft3000.img deleted file mode 100644 index 7bef6bd3680a22849b5dc7e85586ebc11d99510c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 280414 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

$Fau-)6DIpL^#9yJsE8 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

-AH={w$esM~+{C=T0p96<@d6 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 diff --git a/drivers/staging/ft1000/ft1000.h b/drivers/staging/ft1000/ft1000.h deleted file mode 100644 index 8a2e4caa532d..000000000000 --- a/drivers/staging/ft1000/ft1000.h +++ /dev/null @@ -1,366 +0,0 @@ -/* - * Common structures and definitions for FT1000 Flarion Flash OFDM PCMCIA and - * USB devices. - * - * Originally copyright (c) 2002 Flarion Technologies - * - */ - -#define DSPVERSZ 4 -#define HWSERNUMSZ 16 -#define SKUSZ 20 -#define EUISZ 8 -#define MODESZ 2 -#define CALVERSZ 2 -#define CALDATESZ 6 - -#define ELECTRABUZZ_ID 0 /* ASIC ID for Electrabuzz */ -#define MAGNEMITE_ID 0x1a01 /* ASIC ID for Magnemite */ - -/* MEMORY MAP common to both ELECTRABUZZ and MAGNEMITE */ -#define FT1000_REG_DPRAM_ADDR 0x000E /* DPADR - Dual Port Ram Indirect - * Address Register - */ -#define FT1000_REG_SUP_CTRL 0x0020 /* HCTR - Host Control Register */ -#define FT1000_REG_SUP_STAT 0x0022 /* HSTAT - Host Status Register */ -#define FT1000_REG_RESET 0x0024 /* HCTR - Host Control Register */ -#define FT1000_REG_SUP_ISR 0x0026 /* HISR - Host Interrupt Status - * Register - */ -#define FT1000_REG_SUP_IMASK 0x0028 /* HIMASK - Host Interrupt Mask */ -#define FT1000_REG_DOORBELL 0x002a /* DBELL - Door Bell Register */ -#define FT1000_REG_ASIC_ID 0x002e /* ASICID - ASIC Identification - * Number - */ - -/* MEMORY MAP FOR ELECTRABUZZ ASIC */ -#define FT1000_REG_UFIFO_STAT 0x0000 /* UFSR - Uplink FIFO status register */ -#define FT1000_REG_UFIFO_BEG 0x0002 /* UFBR - Uplink FIFO beginning - * register - */ -#define FT1000_REG_UFIFO_MID 0x0004 /* UFMR - Uplink FIFO middle register */ -#define FT1000_REG_UFIFO_END 0x0006 /* UFER - Uplink FIFO end register */ -#define FT1000_REG_DFIFO_STAT 0x0008 /* DFSR - Downlink FIFO status - * register - */ -#define FT1000_REG_DFIFO 0x000A /* DFR - Downlink FIFO Register */ -#define FT1000_REG_DPRAM_DATA 0x000C /* DPRAM - Dual Port Indirect - * Data Register - */ -#define FT1000_REG_WATERMARK 0x0010 /* WMARK - Watermark Register */ - -/* MEMORY MAP FOR MAGNEMITE */ -#define FT1000_REG_MAG_UFDR 0x0000 /* UFDR - Uplink FIFO Data - * Register (32-bits) - */ -#define FT1000_REG_MAG_UFDRL 0x0000 /* UFDRL - Uplink FIFO Data - * Register low-word (16-bits) - */ -#define FT1000_REG_MAG_UFDRH 0x0002 /* UFDRH - Uplink FIFO Data Register - * high-word (16-bits) - */ -#define FT1000_REG_MAG_UFER 0x0004 /* UFER - Uplink FIFO End Register */ -#define FT1000_REG_MAG_UFSR 0x0006 /* UFSR - Uplink FIFO Status Register */ -#define FT1000_REG_MAG_DFR 0x0008 /* DFR - Downlink FIFO Register - * (32-bits) - */ -#define FT1000_REG_MAG_DFRL 0x0008 /* DFRL - Downlink FIFO Register - * low-word (16-bits) - */ -#define FT1000_REG_MAG_DFRH 0x000a /* DFRH - Downlink FIFO Register - * high-word (16-bits) - */ -#define FT1000_REG_MAG_DFSR 0x000c /* DFSR - Downlink FIFO Status - * Register - */ -#define FT1000_REG_MAG_DPDATA 0x0010 /* DPDATA - Dual Port RAM Indirect - * Data Register (32-bits) - */ -#define FT1000_REG_MAG_DPDATAL 0x0010 /* DPDATAL - Dual Port RAM Indirect - * Data Register low-word (16-bits) - */ -#define FT1000_REG_MAG_DPDATAH 0x0012 /* DPDATAH - Dual Port RAM Indirect Data - * Register high-word (16-bits) - */ -#define FT1000_REG_MAG_WATERMARK 0x002c /* WMARK - Watermark Register */ -#define FT1000_REG_MAG_VERSION 0x0030 /* LLC Version */ - -/* Reserved Dual Port RAM offsets for Electrabuzz */ -#define FT1000_DPRAM_TX_BASE 0x0002 /* Host to PC Card Messaging Area */ -#define FT1000_DPRAM_RX_BASE 0x0800 /* PC Card to Host Messaging Area */ -#define FT1000_FIFO_LEN 0x07FC /* total length for DSP FIFO tracking */ -#define FT1000_HI_HO 0x07FE /* heartbeat with HI/HO */ -#define FT1000_DSP_STATUS 0x0FFE /* dsp status - non-zero is a request - * to reset dsp - */ -#define FT1000_DSP_LED 0x0FFA /* dsp led status for PAD device */ -#define FT1000_DSP_CON_STATE 0x0FF8 /* DSP Connection Status Info */ -#define FT1000_DPRAM_FEFE 0x0002 /* location for dsp ready indicator */ -#define FT1000_DSP_TIMER0 0x1FF0 /* Timer Field from Basestation */ -#define FT1000_DSP_TIMER1 0x1FF2 /* Timer Field from Basestation */ -#define FT1000_DSP_TIMER2 0x1FF4 /* Timer Field from Basestation */ -#define FT1000_DSP_TIMER3 0x1FF6 /* Timer Field from Basestation */ - -/* Reserved Dual Port RAM offsets for Magnemite */ -#define FT1000_DPRAM_MAG_TX_BASE 0x0000 /* Host to PC Card - * Messaging Area - */ -#define FT1000_DPRAM_MAG_RX_BASE 0x0200 /* PC Card to Host - * Messaging Area - */ - -#define FT1000_MAG_FIFO_LEN 0x1FF /* total length for DSP - * FIFO tracking - */ -#define FT1000_MAG_FIFO_LEN_INDX 0x1 /* low-word index */ -#define FT1000_MAG_HI_HO 0x1FF /* heartbeat with HI/HO */ -#define FT1000_MAG_HI_HO_INDX 0x0 /* high-word index */ -#define FT1000_MAG_DSP_LED 0x3FE /* dsp led status for - * PAD device - */ -#define FT1000_MAG_DSP_LED_INDX 0x0 /* dsp led status for - * PAD device - */ -#define FT1000_MAG_DSP_CON_STATE 0x3FE /* DSP Connection Status Info */ -#define FT1000_MAG_DSP_CON_STATE_INDX 0x1 /* DSP Connection Status Info */ -#define FT1000_MAG_DPRAM_FEFE 0x000 /* location for dsp ready - * indicator - */ -#define FT1000_MAG_DPRAM_FEFE_INDX 0x0 /* location for dsp ready - * indicator - */ -#define FT1000_MAG_DSP_TIMER0 0x3FC /* Timer Field from - * Basestation - */ -#define FT1000_MAG_DSP_TIMER0_INDX 0x1 -#define FT1000_MAG_DSP_TIMER1 0x3FC /* Timer Field from - * Basestation - */ -#define FT1000_MAG_DSP_TIMER1_INDX 0x0 -#define FT1000_MAG_DSP_TIMER2 0x3FD /* Timer Field from - * Basestation - */ -#define FT1000_MAG_DSP_TIMER2_INDX 0x1 -#define FT1000_MAG_DSP_TIMER3 0x3FD /* Timer Field from - * Basestation - */ -#define FT1000_MAG_DSP_TIMER3_INDX 0x0 -#define FT1000_MAG_TOTAL_LEN 0x200 -#define FT1000_MAG_TOTAL_LEN_INDX 0x1 -#define FT1000_MAG_PH_LEN 0x200 -#define FT1000_MAG_PH_LEN_INDX 0x0 -#define FT1000_MAG_PORT_ID 0x201 -#define FT1000_MAG_PORT_ID_INDX 0x0 - -#define HOST_INTF_LE 0x0 /* Host interface little endian mode */ -#define HOST_INTF_BE 0x1 /* Host interface big endian mode */ - -/* FT1000 to Host Doorbell assignments */ -#define FT1000_DB_DPRAM_RX 0x0001 /* this value indicates that DSP - * has data for host in DPRAM - */ -#define FT1000_DB_DNLD_RX 0x0002 /* Downloader handshake doorbell */ -#define FT1000_ASIC_RESET_REQ 0x0004 /* DSP requesting host to - * reset the ASIC - */ -#define FT1000_DSP_ASIC_RESET 0x0008 /* DSP indicating host that - * it will reset the ASIC - */ -#define FT1000_DB_COND_RESET 0x0010 /* DSP request for a card reset. */ - -/* Host to FT1000 Doorbell assignments */ -#define FT1000_DB_DPRAM_TX 0x0100 /* this value indicates that host - * has data for DSP in DPRAM. - */ -#define FT1000_DB_DNLD_TX 0x0200 /* Downloader handshake doorbell */ -#define FT1000_ASIC_RESET_DSP 0x0400 /* Responds to FT1000_ASIC_RESET_REQ */ -#define FT1000_DB_HB 0x1000 /* Indicates that supervisor has a - * heartbeat message for DSP. - */ - -#define hi 0x6869 /* PC Card heartbeat values */ -#define ho 0x686f /* PC Card heartbeat values */ - -/* Magnemite specific defines */ -#define hi_mag 0x6968 /* Byte swap hi to avoid - * additional system call - */ -#define ho_mag 0x6f68 /* Byte swap ho to avoid - * additional system call - */ - -/* Bit field definitions for Host Interrupt Status Register */ -/* Indicate the cause of an interrupt. */ -#define ISR_EMPTY 0x00 /* no bits set */ -#define ISR_DOORBELL_ACK 0x01 /* Doorbell acknowledge from DSP */ -#define ISR_DOORBELL_PEND 0x02 /* Doorbell pending from DSP */ -#define ISR_RCV 0x04 /* Packet available in Downlink FIFO */ -#define ISR_WATERMARK 0x08 /* Watermark requirements satisfied */ - -/* Bit field definition for Host Interrupt Mask */ -#define ISR_MASK_NONE 0x0000 /* no bits set */ -#define ISR_MASK_DOORBELL_ACK 0x0001 /* Doorbell acknowledge mask */ -#define ISR_MASK_DOORBELL_PEND 0x0002 /* Doorbell pending mask */ -#define ISR_MASK_RCV 0x0004 /* Downlink Packet available mask */ -#define ISR_MASK_WATERMARK 0x0008 /* Watermark interrupt mask */ -#define ISR_MASK_ALL 0xffff /* Mask all interrupts */ -/* Default interrupt mask - * (Enable Doorbell pending and Packet available interrupts) - */ -#define ISR_DEFAULT_MASK 0x7ff9 - -/* Bit field definition for Host Control Register */ -#define DSP_RESET_BIT 0x0001 /* Bit field to control - * dsp reset state - */ - /* (0 = out of reset 1 = reset) */ -#define ASIC_RESET_BIT 0x0002 /* Bit field to control - * ASIC reset state - */ - /* (0 = out of reset 1 = reset) */ -#define DSP_UNENCRYPTED 0x0004 -#define DSP_ENCRYPTED 0x0008 -#define EFUSE_MEM_DISABLE 0x0040 - -/* Application specific IDs */ -#define DSPID 0x20 -#define HOSTID 0x10 -#define DSPAIRID 0x90 -#define DRIVERID 0x00 -#define NETWORKID 0x20 - -/* Size of DPRAM Message */ -#define MAX_CMD_SQSIZE 1780 - -#define ENET_MAX_SIZE 1514 -#define ENET_HEADER_SIZE 14 - -#define SLOWQ_TYPE 0 -#define FASTQ_TYPE 1 - -#define MAX_DSP_SESS_REC 1024 - -#define DSP_QID_OFFSET 4 - -/* Driver message types */ -#define MEDIA_STATE 0x0010 -#define TIME_UPDATE 0x0020 -#define DSP_PROVISION 0x0030 -#define DSP_INIT_MSG 0x0050 -#define DSP_HIBERNATE 0x0060 -#define DSP_STORE_INFO 0x0070 -#define DSP_GET_INFO 0x0071 -#define GET_DRV_ERR_RPT_MSG 0x0073 -#define RSP_DRV_ERR_RPT_MSG 0x0074 - -/* Driver Error Messages for DSP */ -#define DSP_HB_INFO 0x7ef0 -#define DSP_FIFO_INFO 0x7ef1 -#define DSP_CONDRESET_INFO 0x7ef2 -#define DSP_CMDLEN_INFO 0x7ef3 -#define DSP_CMDPHCKSUM_INFO 0x7ef4 -#define DSP_PKTPHCKSUM_INFO 0x7ef5 -#define DSP_PKTLEN_INFO 0x7ef6 -#define DSP_USER_RESET 0x7ef7 -#define FIFO_FLUSH_MAXLIMIT 0x7ef8 -#define FIFO_FLUSH_BADCNT 0x7ef9 -#define FIFO_ZERO_LEN 0x7efa - -/* Pseudo Header structure */ -struct pseudo_hdr { - unsigned short length; /* length of msg body */ - unsigned char source; /* hardware source id */ - /* Host = 0x10 */ - /* Dsp = 0x20 */ - unsigned char destination; /* hardware destination id - * (refer to source) - */ - unsigned char portdest; /* software destination port id */ - /* Host = 0x00 */ - /* Applicaton Broadcast = 0x10 */ - /* Network Stack = 0x20 */ - /* Dsp OAM = 0x80 */ - /* Dsp Airlink = 0x90 */ - /* Dsp Loader = 0xa0 */ - /* Dsp MIP = 0xb0 */ - unsigned char portsrc; /* software source port id - * (refer to portdest) - */ - unsigned short sh_str_id; /* not used */ - unsigned char control; /* not used */ - unsigned char rsvd1; - unsigned char seq_num; /* message sequence number */ - unsigned char rsvd2; - unsigned short qos_class; /* not used */ - unsigned short checksum; /* pseudo header checksum */ -} __packed; - -struct drv_msg { - struct pseudo_hdr pseudo; - u16 type; - u16 length; - u8 data[0]; -} __packed; - -struct media_msg { - struct pseudo_hdr pseudo; - u16 type; - u16 length; - u16 state; - u32 ip_addr; - u32 net_mask; - u32 gateway; - u32 dns_1; - u32 dns_2; -} __packed; - -struct dsp_init_msg { - struct pseudo_hdr pseudo; - u16 type; - u16 length; - u8 DspVer[DSPVERSZ]; /* DSP version number */ - u8 HwSerNum[HWSERNUMSZ]; /* Hardware Serial Number */ - u8 Sku[SKUSZ]; /* SKU */ - u8 eui64[EUISZ]; /* EUI64 */ - u8 ProductMode[MODESZ]; /* Product Mode (Market/Production) */ - u8 RfCalVer[CALVERSZ]; /* Rf Calibration version */ - u8 RfCalDate[CALDATESZ]; /* Rf Calibration date */ -} __packed; - -struct prov_record { - struct list_head list; - u8 *pprov_data; -}; - -struct ft1000_info { - void *priv; - struct net_device_stats stats; - u16 DrvErrNum; - u16 AsicID; - int CardReady; - int registered; - int mediastate; - u8 squeseqnum; /* sequence number on slow queue */ - spinlock_t dpram_lock; - u16 fifo_cnt; - u8 DspVer[DSPVERSZ]; /* DSP version number */ - u8 HwSerNum[HWSERNUMSZ]; /* Hardware Serial Number */ - u8 Sku[SKUSZ]; /* SKU */ - u8 eui64[EUISZ]; /* EUI64 */ - time_t ConTm; /* Connection Time */ - u8 ProductMode[MODESZ]; - u8 RfCalVer[CALVERSZ]; - u8 RfCalDate[CALDATESZ]; - u16 DSP_TIME[4]; - u16 LedStat; - u16 ConStat; - u16 ProgConStat; - struct list_head prov_list; - u16 DSPInfoBlklen; - int (*ft1000_reset)(void *); - u16 DSPInfoBlk[MAX_DSP_SESS_REC]; - union { - u16 Rec[MAX_DSP_SESS_REC]; - u32 MagRec[MAX_DSP_SESS_REC/2]; - } DSPSess; -};