mirror of
https://github.com/torvalds/linux.git
synced 2024-11-27 06:31:52 +00:00
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: Frank Seidel <fseidel@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
996a3eb87f
commit
e9ed537a3a
@ -2,7 +2,7 @@
|
||||
* nozomi.c -- HSDPA driver Broadband Wireless Data Card - Globe Trotter
|
||||
*
|
||||
* Written by: Ulf Jakobsson,
|
||||
* Jan <EFBFBD>erfeldt,
|
||||
* Jan Åkerfeldt,
|
||||
* Stefan Thomasson,
|
||||
*
|
||||
* Maintained by: Paul Hardwick (p.hardwick@option.com)
|
||||
@ -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 */
|
||||
#define DEBUG
|
||||
|
||||
@ -143,8 +89,9 @@ do { \
|
||||
/* Do we need this settable at runtime? */
|
||||
static int debug = NOZOMI_DEBUG_LEVEL;
|
||||
|
||||
#define D(lvl, args...) do {if (lvl & debug) NFO(KERN_DEBUG, ##args); } \
|
||||
while (0)
|
||||
#define D(lvl, args...) do \
|
||||
{if (lvl & debug) NFO(KERN_DEBUG, ##args); } \
|
||||
while (0)
|
||||
#define D_(lvl, args...) D(lvl, ##args)
|
||||
|
||||
/* These printouts are always printed */
|
||||
@ -273,13 +220,13 @@ enum port_type {
|
||||
/* Big endian */
|
||||
|
||||
struct toggles {
|
||||
unsigned enabled:5; /*
|
||||
unsigned int enabled:5; /*
|
||||
* Toggle fields are valid if enabled is 0,
|
||||
* else A-channels must always be used.
|
||||
*/
|
||||
unsigned diag_dl:1;
|
||||
unsigned mdm_dl:1;
|
||||
unsigned mdm_ul:1;
|
||||
unsigned int diag_dl:1;
|
||||
unsigned int mdm_dl:1;
|
||||
unsigned int mdm_ul:1;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/* Configuration table to read at startup of card */
|
||||
@ -320,19 +267,19 @@ struct config_table {
|
||||
/* This stores all control downlink flags */
|
||||
struct ctrl_dl {
|
||||
u8 port;
|
||||
unsigned reserved:4;
|
||||
unsigned CTS:1;
|
||||
unsigned RI:1;
|
||||
unsigned DCD:1;
|
||||
unsigned DSR:1;
|
||||
unsigned int reserved:4;
|
||||
unsigned int CTS:1;
|
||||
unsigned int RI:1;
|
||||
unsigned int DCD:1;
|
||||
unsigned int DSR:1;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/* This stores all control uplink flags */
|
||||
struct ctrl_ul {
|
||||
u8 port;
|
||||
unsigned reserved:6;
|
||||
unsigned RTS:1;
|
||||
unsigned DTR:1;
|
||||
unsigned int reserved:6;
|
||||
unsigned int RTS:1;
|
||||
unsigned int DTR:1;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
#else
|
||||
@ -340,10 +287,10 @@ struct ctrl_ul {
|
||||
|
||||
/* This represents the toggle information */
|
||||
struct toggles {
|
||||
unsigned mdm_ul:1;
|
||||
unsigned mdm_dl:1;
|
||||
unsigned diag_dl:1;
|
||||
unsigned enabled:5; /*
|
||||
unsigned int mdm_ul:1;
|
||||
unsigned int mdm_dl:1;
|
||||
unsigned int diag_dl:1;
|
||||
unsigned int enabled:5; /*
|
||||
* Toggle fields are valid if enabled is 0,
|
||||
* else A-channels must always be used.
|
||||
*/
|
||||
@ -379,19 +326,19 @@ struct config_table {
|
||||
|
||||
/* This stores all control downlink flags */
|
||||
struct ctrl_dl {
|
||||
unsigned DSR:1;
|
||||
unsigned DCD:1;
|
||||
unsigned RI:1;
|
||||
unsigned CTS:1;
|
||||
unsigned reserverd:4;
|
||||
unsigned int DSR:1;
|
||||
unsigned int DCD:1;
|
||||
unsigned int RI:1;
|
||||
unsigned int CTS:1;
|
||||
unsigned int reserverd:4;
|
||||
u8 port;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/* This stores all control uplink flags */
|
||||
struct ctrl_ul {
|
||||
unsigned DTR:1;
|
||||
unsigned RTS:1;
|
||||
unsigned reserved:6;
|
||||
unsigned int DTR:1;
|
||||
unsigned int RTS:1;
|
||||
unsigned int reserved:6;
|
||||
u8 port;
|
||||
} __attribute__ ((packed));
|
||||
#endif
|
||||
@ -694,7 +641,7 @@ static void dump_table(const struct nozomi *dc)
|
||||
dc->config_table.ul_ctrl_len);
|
||||
}
|
||||
#else
|
||||
static __inline__ void dump_table(const struct nozomi *dc) { }
|
||||
static inline void dump_table(const struct nozomi *dc) { }
|
||||
#endif
|
||||
|
||||
/*
|
||||
@ -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 0 - toggle fields are out of sync
|
||||
*/
|
||||
@ -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);
|
||||
}
|
||||
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,
|
||||
char *buf)
|
||||
@ -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);
|
||||
}
|
||||
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)
|
||||
{
|
||||
@ -1882,7 +1829,10 @@ static void ntty_throttle(struct tty_struct *tty)
|
||||
/* just to discard single character writes */
|
||||
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);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user