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 New
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(-)

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;