diff mbox series

[11/13] superio: Don't use MAX_SERIAL_PORTS for serial port limit

Message ID 20180420145249.32435-12-peter.maydell@linaro.org
State Accepted
Commit 2cd4f8acb0e3416c7431d0e48d03f1a4c4a64cc1
Headers show
Series Drop compile time limit on number of serial ports | expand

Commit Message

Peter Maydell April 20, 2018, 2:52 p.m. UTC
The superio device has a limit on the number of serial
ports it supports which is really only there because
it has a fixed-size array serial[]. This limit isn't
related particularly to the global MAX_SERIAL_PORTS limit,
so use a different #define for it.

(In practice the users of superio only ever want 2 serial ports.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

---
 include/hw/isa/superio.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

-- 
2.17.0

Comments

Philippe Mathieu-Daudé April 20, 2018, 5:58 p.m. UTC | #1
On 04/20/2018 11:52 AM, Peter Maydell wrote:
> The superio device has a limit on the number of serial

> ports it supports which is really only there because

> it has a fixed-size array serial[]. This limit isn't

> related particularly to the global MAX_SERIAL_PORTS limit,

> so use a different #define for it.

> 

> (In practice the users of superio only ever want 2 serial ports.)


The F81866A and IT8783 have 6 uarts :)

For this reason I'd prefer to dynamically allocate
ISASuperIODevice->serial, I might add that later on top of your series.

> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


> ---

>  include/hw/isa/superio.h | 4 +++-

>  1 file changed, 3 insertions(+), 1 deletion(-)

> 

> diff --git a/include/hw/isa/superio.h b/include/hw/isa/superio.h

> index f9ba29aa30..345f006081 100644

> --- a/include/hw/isa/superio.h

> +++ b/include/hw/isa/superio.h

> @@ -22,13 +22,15 @@

>  #define ISA_SUPERIO_CLASS(klass) \

>      OBJECT_CLASS_CHECK(ISASuperIOClass, (klass), TYPE_ISA_SUPERIO)

>  

> +#define SUPERIO_MAX_SERIAL_PORTS 4

> +

>  typedef struct ISASuperIODevice {

>      /*< private >*/

>      ISADevice parent_obj;

>      /*< public >*/

>  

>      ISADevice *parallel[MAX_PARALLEL_PORTS];

> -    ISADevice *serial[MAX_SERIAL_PORTS];

> +    ISADevice *serial[SUPERIO_MAX_SERIAL_PORTS];

>      ISADevice *floppy;

>      ISADevice *kbc;

>      ISADevice *ide;

>
diff mbox series

Patch

diff --git a/include/hw/isa/superio.h b/include/hw/isa/superio.h
index f9ba29aa30..345f006081 100644
--- a/include/hw/isa/superio.h
+++ b/include/hw/isa/superio.h
@@ -22,13 +22,15 @@ 
 #define ISA_SUPERIO_CLASS(klass) \
     OBJECT_CLASS_CHECK(ISASuperIOClass, (klass), TYPE_ISA_SUPERIO)
 
+#define SUPERIO_MAX_SERIAL_PORTS 4
+
 typedef struct ISASuperIODevice {
     /*< private >*/
     ISADevice parent_obj;
     /*< public >*/
 
     ISADevice *parallel[MAX_PARALLEL_PORTS];
-    ISADevice *serial[MAX_SERIAL_PORTS];
+    ISADevice *serial[SUPERIO_MAX_SERIAL_PORTS];
     ISADevice *floppy;
     ISADevice *kbc;
     ISADevice *ide;