qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: Takashi Iwai <tiwai@suse.de>, qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: Re: [Qemu-devel] [PATCH 2/2] ac97: don't override the pci subsystem id
Date: Mon, 07 Nov 2011 10:00:25 -0600	[thread overview]
Message-ID: <4EB80099.8050304@codemonkey.ws> (raw)
In-Reply-To: <1320679989-8274-2-git-send-email-kraxel@redhat.com>

On 11/07/2011 09:33 AM, Gerd Hoffmann wrote:
> This patch removes the code lines which set the subsystem id for the
> emulated ac97 card to 8086:0000.  Due to the device id being zero the
> subsystem id isn't vaild anyway.  With the patch applied the sound card
> gets the default qemu subsystem id (1af4:1100) instead.

I don't like having a property of "use broken".

Wouldn't it be better to have the subsystem vendor and device id be 
configurable, set the default to the qemu subsystem ids, and then set it to 
8086:0000 for < 1.0?

Regards,

Anthony Liguori

>
> [ v2: old&  broken id is maintained for -M pc-$oldqemuversion ]
>
> Cc: Takashi Iwai<tiwai@suse.de>
> Signed-off-by: Gerd Hoffmann<kraxel@redhat.com>
> ---
>   hw/ac97.c    |   16 +++++++++++-----
>   hw/pc_piix.c |   16 ++++++++++++++++
>   2 files changed, 27 insertions(+), 5 deletions(-)
>
> diff --git a/hw/ac97.c b/hw/ac97.c
> index 6800af4..0dbba3b 100644
> --- a/hw/ac97.c
> +++ b/hw/ac97.c
> @@ -150,6 +150,7 @@ typedef struct AC97BusMasterRegs {
>   typedef struct AC97LinkState {
>       PCIDevice dev;
>       QEMUSoundCard card;
> +    uint32_t use_broken_id;
>       uint32_t glob_cnt;
>       uint32_t glob_sta;
>       uint32_t cas;
> @@ -1305,11 +1306,12 @@ static int ac97_initfn (PCIDevice *dev)
>       c[PCI_BASE_ADDRESS_0 + 6] = 0x00;
>       c[PCI_BASE_ADDRESS_0 + 7] = 0x00;
>
> -    c[PCI_SUBSYSTEM_VENDOR_ID] = 0x86;      /* svid subsystem vendor id rwo */
> -    c[PCI_SUBSYSTEM_VENDOR_ID + 1] = 0x80;
> -
> -    c[PCI_SUBSYSTEM_ID] = 0x00;      /* sid subsystem id rwo */
> -    c[PCI_SUBSYSTEM_ID + 1] = 0x00;
> +    if (s->use_broken_id) {
> +        c[PCI_SUBSYSTEM_VENDOR_ID] = 0x86;
> +        c[PCI_SUBSYSTEM_VENDOR_ID + 1] = 0x80;
> +        c[PCI_SUBSYSTEM_ID] = 0x00;
> +        c[PCI_SUBSYSTEM_ID + 1] = 0x00;
> +    }
>
>       c[PCI_INTERRUPT_LINE] = 0x00;      /* intr_ln interrupt line rw */
>       c[PCI_INTERRUPT_PIN] = 0x01;      /* intr_pn interrupt pin ro */
> @@ -1350,6 +1352,10 @@ static PCIDeviceInfo ac97_info = {
>       .device_id    = PCI_DEVICE_ID_INTEL_82801AA_5,
>       .revision     = 0x01,
>       .class_id     = PCI_CLASS_MULTIMEDIA_AUDIO,
> +    .qdev.props   = (Property[]) {
> +        DEFINE_PROP_UINT32("use_broken_id", AC97LinkState, use_broken_id, 0),
> +        DEFINE_PROP_END_OF_LIST(),
> +    }
>   };
>
>   static void ac97_register (void)
> diff --git a/hw/pc_piix.c b/hw/pc_piix.c
> index 93e40d0..27ea570 100644
> --- a/hw/pc_piix.c
> +++ b/hw/pc_piix.c
> @@ -347,6 +347,10 @@ static QEMUMachine pc_machine_v0_13 = {
>               .driver   = "virtio-net-pci",
>               .property = "event_idx",
>               .value    = "off",
> +        },{
> +            .driver   = "AC97",
> +            .property = "use_broken_id",
> +            .value    = stringify(1),
>           },
>           { /* end of list */ }
>       },
> @@ -390,6 +394,10 @@ static QEMUMachine pc_machine_v0_12 = {
>               .driver   = "virtio-net-pci",
>               .property = "event_idx",
>               .value    = "off",
> +        },{
> +            .driver   = "AC97",
> +            .property = "use_broken_id",
> +            .value    = stringify(1),
>           },
>           { /* end of list */ }
>       }
> @@ -441,6 +449,10 @@ static QEMUMachine pc_machine_v0_11 = {
>               .driver   = "virtio-net-pci",
>               .property = "event_idx",
>               .value    = "off",
> +        },{
> +            .driver   = "AC97",
> +            .property = "use_broken_id",
> +            .value    = stringify(1),
>           },
>           { /* end of list */ }
>       }
> @@ -504,6 +516,10 @@ static QEMUMachine pc_machine_v0_10 = {
>               .driver   = "virtio-net-pci",
>               .property = "event_idx",
>               .value    = "off",
> +        },{
> +            .driver   = "AC97",
> +            .property = "use_broken_id",
> +            .value    = stringify(1),
>           },
>           { /* end of list */ }
>       },

  reply	other threads:[~2011-11-07 16:00 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-07 15:33 [Qemu-devel] [PATCH 1/2] pc: add 1.0 machine type Gerd Hoffmann
2011-11-07 15:33 ` [Qemu-devel] [PATCH 2/2] ac97: don't override the pci subsystem id Gerd Hoffmann
2011-11-07 16:00   ` Anthony Liguori [this message]
2011-11-08  8:08     ` Gerd Hoffmann
2011-11-08 10:00       ` Avi Kivity
2011-11-08 10:18         ` Gerd Hoffmann
2011-11-08 17:25 ` [Qemu-devel] [PATCH 1/2] pc: add 1.0 machine type Anthony Liguori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EB80099.8050304@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=kraxel@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=qemu-devel@nongnu.org \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).