Commit e9ed537a authored by Frank Seidel's avatar Frank Seidel Committed by Greg Kroah-Hartman

nozomi driver update

Minor cleanups and removal of in-file changelog:

- Correction of misspellings and wrong encoded Name
- changed 'unsigned' to 'unsigned int' for better readability
- use of generic devicefile access macro
- fixed/added explanatory comment to ntty_put_char
Signed-off-by: default avatarFrank Seidel <fseidel@suse.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 996a3eb8
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* nozomi.c -- HSDPA driver Broadband Wireless Data Card - Globe Trotter * nozomi.c -- HSDPA driver Broadband Wireless Data Card - Globe Trotter
* *
* Written by: Ulf Jakobsson, * Written by: Ulf Jakobsson,
* Jan erfeldt, * Jan Åkerfeldt,
* Stefan Thomasson, * Stefan Thomasson,
* *
* Maintained by: Paul Hardwick (p.hardwick@option.com) * Maintained by: Paul Hardwick (p.hardwick@option.com)
...@@ -38,60 +38,6 @@ ...@@ -38,60 +38,6 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/*
* CHANGELOG
* Version 2.1d
* 11-November-2007 Jiri Slaby, Frank Seidel
* - Big rework of multicard support by Jiri
* - Major cleanups (semaphore to mutex, endianess, no major reservation)
* - Optimizations
*
* Version 2.1c
* 30-October-2007 Frank Seidel
* - Completed multicard support
* - Minor cleanups
*
* Version 2.1b
* 07-August-2007 Frank Seidel
* - Minor cleanups
* - theoretical multicard support
*
* Version 2.1
* 03-July-2006 Paul Hardwick
*
* - Stability Improvements. Incorporated spinlock wraps patch.
* - Updated for newer 2.6.14+ kernels (tty_buffer_request_room)
* - using __devexit macro for tty
*
*
* Version 2.0
* 08-feb-2006 15:34:10:Ulf
*
* -Fixed issue when not waking up line disipine layer, could probably result
* in better uplink performance for 2.4.
*
* -Fixed issue with big endian during initalization, now proper toggle flags
* are handled between preloader and maincode.
*
* -Fixed flow control issue.
*
* -Added support for setting DTR.
*
* -For 2.4 kernels, removing temporary buffer that's not needed.
*
* -Reading CTS only for modem port (only port that supports it).
*
* -Return 0 in write_room instead of netative value, it's not handled in
* upper layer.
*
* --------------------------------------------------------------------------
* Version 1.0
*
* First version of driver, only tested with card of type F32_2.
* Works fine with 2.4 and 2.6 kernels.
* Driver also support big endian architecture.
*/
/* Enable this to have a lot of debug printouts */ /* Enable this to have a lot of debug printouts */
#define DEBUG #define DEBUG
...@@ -143,8 +89,9 @@ do { \ ...@@ -143,8 +89,9 @@ do { \
/* Do we need this settable at runtime? */ /* Do we need this settable at runtime? */
static int debug = NOZOMI_DEBUG_LEVEL; static int debug = NOZOMI_DEBUG_LEVEL;
#define D(lvl, args...) do {if (lvl & debug) NFO(KERN_DEBUG, ##args); } \ #define D(lvl, args...) do \
while (0) {if (lvl & debug) NFO(KERN_DEBUG, ##args); } \
while (0)
#define D_(lvl, args...) D(lvl, ##args) #define D_(lvl, args...) D(lvl, ##args)
/* These printouts are always printed */ /* These printouts are always printed */
...@@ -273,13 +220,13 @@ enum port_type { ...@@ -273,13 +220,13 @@ enum port_type {
/* Big endian */ /* Big endian */
struct toggles { struct toggles {
unsigned enabled:5; /* unsigned int enabled:5; /*
* Toggle fields are valid if enabled is 0, * Toggle fields are valid if enabled is 0,
* else A-channels must always be used. * else A-channels must always be used.
*/ */
unsigned diag_dl:1; unsigned int diag_dl:1;
unsigned mdm_dl:1; unsigned int mdm_dl:1;
unsigned mdm_ul:1; unsigned int mdm_ul:1;
} __attribute__ ((packed)); } __attribute__ ((packed));
/* Configuration table to read at startup of card */ /* Configuration table to read at startup of card */
...@@ -320,19 +267,19 @@ struct config_table { ...@@ -320,19 +267,19 @@ struct config_table {
/* This stores all control downlink flags */ /* This stores all control downlink flags */
struct ctrl_dl { struct ctrl_dl {
u8 port; u8 port;
unsigned reserved:4; unsigned int reserved:4;
unsigned CTS:1; unsigned int CTS:1;
unsigned RI:1; unsigned int RI:1;
unsigned DCD:1; unsigned int DCD:1;
unsigned DSR:1; unsigned int DSR:1;
} __attribute__ ((packed)); } __attribute__ ((packed));
/* This stores all control uplink flags */ /* This stores all control uplink flags */
struct ctrl_ul { struct ctrl_ul {
u8 port; u8 port;
unsigned reserved:6; unsigned int reserved:6;
unsigned RTS:1; unsigned int RTS:1;
unsigned DTR:1; unsigned int DTR:1;
} __attribute__ ((packed)); } __attribute__ ((packed));
#else #else
...@@ -340,10 +287,10 @@ struct ctrl_ul { ...@@ -340,10 +287,10 @@ struct ctrl_ul {
/* This represents the toggle information */ /* This represents the toggle information */
struct toggles { struct toggles {
unsigned mdm_ul:1; unsigned int mdm_ul:1;
unsigned mdm_dl:1; unsigned int mdm_dl:1;
unsigned diag_dl:1; unsigned int diag_dl:1;
unsigned enabled:5; /* unsigned int enabled:5; /*
* Toggle fields are valid if enabled is 0, * Toggle fields are valid if enabled is 0,
* else A-channels must always be used. * else A-channels must always be used.
*/ */
...@@ -379,19 +326,19 @@ struct config_table { ...@@ -379,19 +326,19 @@ struct config_table {
/* This stores all control downlink flags */ /* This stores all control downlink flags */
struct ctrl_dl { struct ctrl_dl {
unsigned DSR:1; unsigned int DSR:1;
unsigned DCD:1; unsigned int DCD:1;
unsigned RI:1; unsigned int RI:1;
unsigned CTS:1; unsigned int CTS:1;
unsigned reserverd:4; unsigned int reserverd:4;
u8 port; u8 port;
} __attribute__ ((packed)); } __attribute__ ((packed));
/* This stores all control uplink flags */ /* This stores all control uplink flags */
struct ctrl_ul { struct ctrl_ul {
unsigned DTR:1; unsigned int DTR:1;
unsigned RTS:1; unsigned int RTS:1;
unsigned reserved:6; unsigned int reserved:6;
u8 port; u8 port;
} __attribute__ ((packed)); } __attribute__ ((packed));
#endif #endif
...@@ -694,7 +641,7 @@ static void dump_table(const struct nozomi *dc) ...@@ -694,7 +641,7 @@ static void dump_table(const struct nozomi *dc)
dc->config_table.ul_ctrl_len); dc->config_table.ul_ctrl_len);
} }
#else #else
static __inline__ void dump_table(const struct nozomi *dc) { } static inline void dump_table(const struct nozomi *dc) { }
#endif #endif
/* /*
...@@ -1102,7 +1049,7 @@ static int send_flow_control(struct nozomi *dc) ...@@ -1102,7 +1049,7 @@ static int send_flow_control(struct nozomi *dc)
} }
/* /*
* Handle donlink data, ports that are handled are modem and diagnostics * Handle downlink data, ports that are handled are modem and diagnostics
* Return 1 - ok * Return 1 - ok
* Return 0 - toggle fields are out of sync * Return 0 - toggle fields are out of sync
*/ */
...@@ -1363,7 +1310,7 @@ static ssize_t card_type_show(struct device *dev, struct device_attribute *attr, ...@@ -1363,7 +1310,7 @@ static ssize_t card_type_show(struct device *dev, struct device_attribute *attr,
return sprintf(buf, "%d\n", dc->card_type); return sprintf(buf, "%d\n", dc->card_type);
} }
static DEVICE_ATTR(card_type, 0444, card_type_show, NULL); static DEVICE_ATTR(card_type, S_IRUGO, card_type_show, NULL);
static ssize_t open_ttys_show(struct device *dev, struct device_attribute *attr, static ssize_t open_ttys_show(struct device *dev, struct device_attribute *attr,
char *buf) char *buf)
...@@ -1372,7 +1319,7 @@ static ssize_t open_ttys_show(struct device *dev, struct device_attribute *attr, ...@@ -1372,7 +1319,7 @@ static ssize_t open_ttys_show(struct device *dev, struct device_attribute *attr,
return sprintf(buf, "%u\n", dc->open_ttys); return sprintf(buf, "%u\n", dc->open_ttys);
} }
static DEVICE_ATTR(open_ttys, 0444, open_ttys_show, NULL); static DEVICE_ATTR(open_ttys, S_IRUGO, open_ttys_show, NULL);
static void make_sysfs_files(struct nozomi *dc) static void make_sysfs_files(struct nozomi *dc)
{ {
...@@ -1882,7 +1829,10 @@ static void ntty_throttle(struct tty_struct *tty) ...@@ -1882,7 +1829,10 @@ static void ntty_throttle(struct tty_struct *tty)
/* just to discard single character writes */ /* just to discard single character writes */
static void ntty_put_char(struct tty_struct *tty, unsigned char c) static void ntty_put_char(struct tty_struct *tty, unsigned char c)
{ {
/* FIXME !!! */ /*
* card does not react correct when we write single chars
* to the card, so we discard them
*/
DBG2("PUT CHAR Function: %c", c); DBG2("PUT CHAR Function: %c", c);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment