diff options
author | Jiri Slaby <jirislaby@gmail.com> | 2009-09-19 13:13:13 -0700 |
---|---|---|
committer | Live-CD User <linux@linux.site> | 2009-09-19 13:13:13 -0700 |
commit | f0eefdc30e55e761facf645bd1be1339b21c30e6 (patch) | |
tree | fbde46003a58550c3312ce7732a23213985e81fa /include | |
parent | f0737579424dd2c4e68bdd54c718455a3f42c7b5 (diff) | |
download | linux-f0eefdc30e55e761facf645bd1be1339b21c30e6.tar.gz linux-f0eefdc30e55e761facf645bd1be1339b21c30e6.tar.bz2 linux-f0eefdc30e55e761facf645bd1be1339b21c30e6.zip |
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')
-rw-r--r-- | include/linux/cyclades.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/cyclades.h b/include/linux/cyclades.h index 1fbdea4f08eb..1eb87a6a2f6b 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 */ |