mbox series

[0/4] hw/block/fdc: Allow Kconfig-selecting ISA bus/SysBus floppy controllers

Message ID 20210415102321.3987935-1-philmd@redhat.com (mailing list archive)
Headers show
Series hw/block/fdc: Allow Kconfig-selecting ISA bus/SysBus floppy controllers | expand

Message

Philippe Mathieu-Daudé April 15, 2021, 10:23 a.m. UTC
Hi,

The floppy disc controllers pulls in irrelevant devices (sysbus in
an ISA-only machine, ISA bus + isa devices on a sysbus-only machine).

This series clean that by extracting each device in its own file,
adding the corresponding Kconfig symbols: FDC_ISA and FDC_SYSBUS.

Regards,

Phil.

Philippe Mathieu-Daudé (4):
  hw/block/fdc: Replace disabled fprintf() by trace event
  hw/block/fdc: Declare shared prototypes in fdc-internal.h
  hw/block/fdc: Extract ISA floppy controllers to fdc-isa.c
  hw/block/fdc: Extract SysBus floppy controllers to fdc-sysbus.c

 hw/block/fdc-internal.h | 155 ++++++++++
 hw/block/fdc-isa.c      | 313 +++++++++++++++++++++
 hw/block/fdc-sysbus.c   | 252 +++++++++++++++++
 hw/block/fdc.c          | 608 +---------------------------------------
 MAINTAINERS             |   3 +
 hw/block/Kconfig        |   8 +
 hw/block/meson.build    |   2 +
 hw/block/trace-events   |   3 +
 hw/i386/Kconfig         |   2 +-
 hw/isa/Kconfig          |   6 +-
 hw/mips/Kconfig         |   2 +-
 hw/sparc/Kconfig        |   2 +-
 hw/sparc64/Kconfig      |   2 +-
 13 files changed, 751 insertions(+), 607 deletions(-)
 create mode 100644 hw/block/fdc-internal.h
 create mode 100644 hw/block/fdc-isa.c
 create mode 100644 hw/block/fdc-sysbus.c

Comments

Philippe Mathieu-Daudé April 27, 2021, 12:54 p.m. UTC | #1
ping?

On 4/15/21 12:23 PM, Philippe Mathieu-Daudé wrote:
> Hi,
> 
> The floppy disc controllers pulls in irrelevant devices (sysbus in
> an ISA-only machine, ISA bus + isa devices on a sysbus-only machine).
> 
> This series clean that by extracting each device in its own file,
> adding the corresponding Kconfig symbols: FDC_ISA and FDC_SYSBUS.
> 
> Regards,
> 
> Phil.
> 
> Philippe Mathieu-Daudé (4):
>   hw/block/fdc: Replace disabled fprintf() by trace event
>   hw/block/fdc: Declare shared prototypes in fdc-internal.h
>   hw/block/fdc: Extract ISA floppy controllers to fdc-isa.c
>   hw/block/fdc: Extract SysBus floppy controllers to fdc-sysbus.c
> 
>  hw/block/fdc-internal.h | 155 ++++++++++
>  hw/block/fdc-isa.c      | 313 +++++++++++++++++++++
>  hw/block/fdc-sysbus.c   | 252 +++++++++++++++++
>  hw/block/fdc.c          | 608 +---------------------------------------
>  MAINTAINERS             |   3 +
>  hw/block/Kconfig        |   8 +
>  hw/block/meson.build    |   2 +
>  hw/block/trace-events   |   3 +
>  hw/i386/Kconfig         |   2 +-
>  hw/isa/Kconfig          |   6 +-
>  hw/mips/Kconfig         |   2 +-
>  hw/sparc/Kconfig        |   2 +-
>  hw/sparc64/Kconfig      |   2 +-
>  13 files changed, 751 insertions(+), 607 deletions(-)
>  create mode 100644 hw/block/fdc-internal.h
>  create mode 100644 hw/block/fdc-isa.c
>  create mode 100644 hw/block/fdc-sysbus.c
>
John Snow April 27, 2021, 5:38 p.m. UTC | #2
On 4/15/21 6:23 AM, Philippe Mathieu-Daudé wrote:
> Hi,
> 
> The floppy disc controllers pulls in irrelevant devices (sysbus in
> an ISA-only machine, ISA bus + isa devices on a sysbus-only machine).
> 
> This series clean that by extracting each device in its own file,
> adding the corresponding Kconfig symbols: FDC_ISA and FDC_SYSBUS.
> 
> Regards,
> 
> Phil.
> 

Lightly reviewed and I'm fine with it overall; but want a quick ~5min 
up-or-down by Hervé and/or Mark (To make sure this doesn't break any 
non-x86 system they may care about), and a quick nod from Paolo for 
KConfig changes would be nice.

I'll be waiting on a reply to my question on patch 01 before staging.

--js

> Philippe Mathieu-Daudé (4):
>    hw/block/fdc: Replace disabled fprintf() by trace event
>    hw/block/fdc: Declare shared prototypes in fdc-internal.h
>    hw/block/fdc: Extract ISA floppy controllers to fdc-isa.c
>    hw/block/fdc: Extract SysBus floppy controllers to fdc-sysbus.c
> 
>   hw/block/fdc-internal.h | 155 ++++++++++
>   hw/block/fdc-isa.c      | 313 +++++++++++++++++++++
>   hw/block/fdc-sysbus.c   | 252 +++++++++++++++++
>   hw/block/fdc.c          | 608 +---------------------------------------
>   MAINTAINERS             |   3 +
>   hw/block/Kconfig        |   8 +
>   hw/block/meson.build    |   2 +
>   hw/block/trace-events   |   3 +
>   hw/i386/Kconfig         |   2 +-
>   hw/isa/Kconfig          |   6 +-
>   hw/mips/Kconfig         |   2 +-
>   hw/sparc/Kconfig        |   2 +-
>   hw/sparc64/Kconfig      |   2 +-
>   13 files changed, 751 insertions(+), 607 deletions(-)
>   create mode 100644 hw/block/fdc-internal.h
>   create mode 100644 hw/block/fdc-isa.c
>   create mode 100644 hw/block/fdc-sysbus.c
>
Mark Cave-Ayland April 28, 2021, 7:57 a.m. UTC | #3
On 15/04/2021 11:23, Philippe Mathieu-Daudé wrote:

> Hi,
> 
> The floppy disc controllers pulls in irrelevant devices (sysbus in
> an ISA-only machine, ISA bus + isa devices on a sysbus-only machine).
> 
> This series clean that by extracting each device in its own file,
> adding the corresponding Kconfig symbols: FDC_ISA and FDC_SYSBUS.
> 
> Regards,
> 
> Phil.
> 
> Philippe Mathieu-Daudé (4):
>    hw/block/fdc: Replace disabled fprintf() by trace event
>    hw/block/fdc: Declare shared prototypes in fdc-internal.h
>    hw/block/fdc: Extract ISA floppy controllers to fdc-isa.c
>    hw/block/fdc: Extract SysBus floppy controllers to fdc-sysbus.c
> 
>   hw/block/fdc-internal.h | 155 ++++++++++
>   hw/block/fdc-isa.c      | 313 +++++++++++++++++++++
>   hw/block/fdc-sysbus.c   | 252 +++++++++++++++++
>   hw/block/fdc.c          | 608 +---------------------------------------
>   MAINTAINERS             |   3 +
>   hw/block/Kconfig        |   8 +
>   hw/block/meson.build    |   2 +
>   hw/block/trace-events   |   3 +
>   hw/i386/Kconfig         |   2 +-
>   hw/isa/Kconfig          |   6 +-
>   hw/mips/Kconfig         |   2 +-
>   hw/sparc/Kconfig        |   2 +-
>   hw/sparc64/Kconfig      |   2 +-
>   13 files changed, 751 insertions(+), 607 deletions(-)
>   create mode 100644 hw/block/fdc-internal.h
>   create mode 100644 hw/block/fdc-isa.c
>   create mode 100644 hw/block/fdc-sysbus.c

This basically looks good to me. You may be able to simplify this further by removing 
the global legacy init functions fdctrl_init_sysbus() and sun4m_fdctrl_init(): from 
what I can see fdctrl_init_sysbus() is only used in hw/mips/jazz.c and 
sun4m_fdctrl_init() is only used in hw/sparc/sun4m.c so you might as well inline them 
or move the functions to the relevant files.

Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


ATB,

Mark.
Philippe Mathieu-Daudé April 28, 2021, 11:25 a.m. UTC | #4
On 4/28/21 9:57 AM, Mark Cave-Ayland wrote:
> On 15/04/2021 11:23, Philippe Mathieu-Daudé wrote:
> 
>> Hi,
>>
>> The floppy disc controllers pulls in irrelevant devices (sysbus in
>> an ISA-only machine, ISA bus + isa devices on a sysbus-only machine).
>>
>> This series clean that by extracting each device in its own file,
>> adding the corresponding Kconfig symbols: FDC_ISA and FDC_SYSBUS.
>>
>> Regards,
>>
>> Phil.
>>
>> Philippe Mathieu-Daudé (4):
>>    hw/block/fdc: Replace disabled fprintf() by trace event
>>    hw/block/fdc: Declare shared prototypes in fdc-internal.h
>>    hw/block/fdc: Extract ISA floppy controllers to fdc-isa.c
>>    hw/block/fdc: Extract SysBus floppy controllers to fdc-sysbus.c
>>
>>   hw/block/fdc-internal.h | 155 ++++++++++
>>   hw/block/fdc-isa.c      | 313 +++++++++++++++++++++
>>   hw/block/fdc-sysbus.c   | 252 +++++++++++++++++
>>   hw/block/fdc.c          | 608 +---------------------------------------
>>   MAINTAINERS             |   3 +
>>   hw/block/Kconfig        |   8 +
>>   hw/block/meson.build    |   2 +
>>   hw/block/trace-events   |   3 +
>>   hw/i386/Kconfig         |   2 +-
>>   hw/isa/Kconfig          |   6 +-
>>   hw/mips/Kconfig         |   2 +-
>>   hw/sparc/Kconfig        |   2 +-
>>   hw/sparc64/Kconfig      |   2 +-
>>   13 files changed, 751 insertions(+), 607 deletions(-)
>>   create mode 100644 hw/block/fdc-internal.h
>>   create mode 100644 hw/block/fdc-isa.c
>>   create mode 100644 hw/block/fdc-sysbus.c
> 
> This basically looks good to me. You may be able to simplify this
> further by removing the global legacy init functions
> fdctrl_init_sysbus() and sun4m_fdctrl_init(): from what I can see
> fdctrl_init_sysbus() is only used in hw/mips/jazz.c and
> sun4m_fdctrl_init() is only used in hw/sparc/sun4m.c so you might as
> well inline them or move the functions to the relevant files.

But both use FDCtrlSysBus which this series makes local to
hw/block/fdc-sysbus.c, and use fdctrl_init_drives() which is declared in
hw/block/fdc-internal.h, and use FloppyBus (also declared there).

Apparently they do that to initialize the fdctrl->dma_chann field...
Which should be a property, but FDCtrl isn't QOM... So not that
easy, it requires more work.

> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>

Thanks!

Phil.
Philippe Mathieu-Daudé April 28, 2021, 12:33 p.m. UTC | #5
On 4/28/21 1:25 PM, Philippe Mathieu-Daudé wrote:
> On 4/28/21 9:57 AM, Mark Cave-Ayland wrote:

>> This basically looks good to me. You may be able to simplify this
>> further by removing the global legacy init functions
>> fdctrl_init_sysbus() and sun4m_fdctrl_init(): from what I can see
>> fdctrl_init_sysbus() is only used in hw/mips/jazz.c and
>> sun4m_fdctrl_init() is only used in hw/sparc/sun4m.c so you might as
>> well inline them or move the functions to the relevant files.
> 
> But both use FDCtrlSysBus which this series makes local to
> hw/block/fdc-sysbus.c, and use fdctrl_init_drives() which is declared in
> hw/block/fdc-internal.h, and use FloppyBus (also declared there).
> 
> Apparently they do that to initialize the fdctrl->dma_chann field...
> Which should be a property, but FDCtrl isn't QOM... So not that
> easy, it requires more work.

Hmm FDCtrl doesn't have to be a QOM object, it is a simple embedded
structure. It should be doable then.