diff options
author | Ryan Bradetich <rbradetich@gmail.com> | 2006-11-10 04:06:14 +0000 |
---|---|---|
committer | Kyle McMartin <kyle@ubuntu.com> | 2006-12-08 00:34:31 -0500 |
commit | 514fb84e1c5d12a0af808458bcae0c6463041f93 (patch) | |
tree | 723716a1f52f65d631912071338519f7a3975750 /drivers/serial/mux.c | |
parent | 614254458452d09ea0376862160662f2a6075ab9 (diff) | |
download | lwn-514fb84e1c5d12a0af808458bcae0c6463041f93.tar.gz lwn-514fb84e1c5d12a0af808458bcae0c6463041f93.zip |
[PARISC] [MUX] Get the hversion directly from the parisc_device
Willy pointed out the hversion is already stored
in the parisc_device, so I do not need to extract
this information directly from the IODC data.
Also by using the information in the parisc_device
I can avoid re-reading the IODC data for the Muxes
with specifed port counts.
Signed-off-by: Ryan Bradetich <rbrad@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
Diffstat (limited to 'drivers/serial/mux.c')
-rw-r--r-- | drivers/serial/mux.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/serial/mux.c b/drivers/serial/mux.c index f5b17f5333fb..ea9cbda77965 100644 --- a/drivers/serial/mux.c +++ b/drivers/serial/mux.c @@ -83,19 +83,20 @@ static struct timer_list mux_timer; */ static int __init get_mux_port_count(struct parisc_device *dev) { + int status; u8 iodc_data[32]; unsigned long bytecnt; - int status = pdc_iodc_read(&bytecnt, dev->hpa.start, 0, iodc_data, 32); - BUG_ON(status != PDC_OK); - /* If this is the built-in Mux for the K-Class (Eole CAP/MUX), * we only need to allocate resources for 1 port since the * other 7 ports are not connected. */ - if(((iodc_data[0] << 4) | ((iodc_data[1] & 0xf0) >> 4)) == 0x15) + if(dev->id.hversion == 0x15) return 1; + status = pdc_iodc_read(&bytecnt, dev->hpa.start, 0, iodc_data, 32); + BUG_ON(status != PDC_OK); + /* Return the number of ports specified in the iodc data. */ return ((((iodc_data)[4] & 0xf0) >> 4) * 8) + 8; } |