Commit f0eefdc3 authored by Jiri Slaby's avatar Jiri Slaby Committed by Live-CD User

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: default avatarJiri Slaby <jirislaby@gmail.com>
Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent f0737579
This diff is collapsed.
...@@ -499,6 +499,7 @@ struct cyclades_card { ...@@ -499,6 +499,7 @@ struct cyclades_card {
void __iomem *p9050; void __iomem *p9050;
struct RUNTIME_9060 __iomem *p9060; struct RUNTIME_9060 __iomem *p9060;
} ctl_addr; } ctl_addr;
struct BOARD_CTRL __iomem *board_ctrl; /* cyz specific */
int irq; int irq;
unsigned int num_chips; /* 0 if card absent, -1 if Z/PCI, else Y */ 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 */ unsigned int first_line; /* minor number of first channel on card */
...@@ -541,6 +542,15 @@ struct cyclades_port { ...@@ -541,6 +542,15 @@ struct cyclades_port {
int magic; int magic;
struct tty_port port; struct tty_port port;
struct cyclades_card *card; 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 line;
int flags; /* defined in tty.h */ int flags; /* defined in tty.h */
int type; /* UART type */ int type; /* UART type */
......
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