Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+36 −86
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
 * nozomi.c  -- HSDPA driver Broadband Wireless Data Card - Globe Trotter
 *
 * Written by: Ulf Jakobsson,
 *             Jan 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,7 +89,8 @@ 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); } \
#define D(lvl, args...)  do \
			{if (lvl & debug) NFO(KERN_DEBUG, ##args); } \
			while (0)
#define D_(lvl, args...) D(lvl, ##args)

@@ -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);
}