summaryrefslogtreecommitdiffstats
path: root/include/linux/cyclades.h
diff options
context:
space:
mode:
authorJiri Slaby <jirislaby@gmail.com>2009-09-19 13:13:13 -0700
committerLive-CD User <linux@linux.site>2009-09-19 13:13:13 -0700
commitf0eefdc30e55e761facf645bd1be1339b21c30e6 (patch)
treefbde46003a58550c3312ce7732a23213985e81fa /include/linux/cyclades.h
parentf0737579424dd2c4e68bdd54c718455a3f42c7b5 (diff)
downloadop-kernel-dev-f0eefdc30e55e761facf645bd1be1339b21c30e6.zip
op-kernel-dev-f0eefdc30e55e761facf645bd1be1339b21c30e6.tar.gz
cyclades: avoid addresses recomputation
Don't fetch firmware address and recompute channel control on each port access. Precompute the values on init and use them later all the time. The same for board control. This simplify code and improves readability. Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'include/linux/cyclades.h')
-rw-r--r--include/linux/cyclades.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/cyclades.h b/include/linux/cyclades.h
index 1fbdea4..1eb87a6 100644
--- a/include/linux/cyclades.h
+++ b/include/linux/cyclades.h
@@ -499,6 +499,7 @@ struct cyclades_card {
void __iomem *p9050;
struct RUNTIME_9060 __iomem *p9060;
} ctl_addr;
+ struct BOARD_CTRL __iomem *board_ctrl; /* cyz specific */
int irq;
unsigned int num_chips; /* 0 if card absent, -1 if Z/PCI, else Y */
unsigned int first_line; /* minor number of first channel on card */
@@ -541,6 +542,15 @@ struct cyclades_port {
int magic;
struct tty_port port;
struct cyclades_card *card;
+ union {
+ struct {
+ int filler;
+ } cyy;
+ struct {
+ struct CH_CTRL __iomem *ch_ctrl;
+ struct BUF_CTRL __iomem *buf_ctrl;
+ } cyz;
+ } u;
int line;
int flags; /* defined in tty.h */
int type; /* UART type */
OpenPOWER on IntegriCloud