From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:51805) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UHhQf-0000hg-GO for qemu-devel@nongnu.org; Mon, 18 Mar 2013 17:17:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UHhQc-0002T6-Q7 for qemu-devel@nongnu.org; Mon, 18 Mar 2013 17:17:13 -0400 Received: from mx1.redhat.com ([209.132.183.28]:29446) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UHhQc-0002Sj-Ia for qemu-devel@nongnu.org; Mon, 18 Mar 2013 17:17:10 -0400 Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r2ILH9D5004692 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 18 Mar 2013 17:17:09 -0400 Message-ID: <1363641428.24132.439.camel@bling.home> From: Alex Williamson Date: Mon, 18 Mar 2013 15:17:08 -0600 In-Reply-To: <20130317121908.GA22279@redhat.com> References: <20130314215150.10566.37912.stgit@bling.home> <20130314220135.10566.6582.stgit@bling.home> <20130317121908.GA22279@redhat.com> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 7/7] pcie: Mangle types to match topology List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" Cc: qemu-devel@nongnu.org On Sun, 2013-03-17 at 14:19 +0200, Michael S. Tsirkin wrote: > On Thu, Mar 14, 2013 at 04:01:35PM -0600, Alex Williamson wrote: > > Windows will fail to start drivers for devices with an Endpoint type > > PCIe capability attached to a Root Complex (code 10 - Device cannot > > start). The proper type for such a device is Root Complex Integrated > > Endpoint. Devices don't care which they are, so do this conversion > > automatically. > > > > This allows the Windows driver to load for nec-usb-xhci when attached > > to pcie.0 of a q35 machine. > > > > Signed-off-by: Alex Williamson > > I think it's a bit ugly from the API perspective, > in that an integrated endpoint is not converted to a regular one. > > I think it would be cleaner to have pcie_cap_init do exactly > what it's told to do, maybe failing if you give it an > incorrect configuration. On top of this add > pcie_endpoint_cap_init which sets the type explicitly. > Hmm? > > Not critical, so applied as is for now. Thanks! I like the pcie_endpoint_cap_init idea, I'll make a wrapper that adds that and selects the correct type for the bus. Thanks, Alex