Re: [PATCH 1/2] hyperv-fb: add pci stub

2013-10-08 Thread Gerd Hoffmann
On Mo, 2013-10-07 at 17:12 +, KY Srinivasan wrote:
 
  -Original Message-
  From: Gerd Hoffmann [mailto:kra...@redhat.com]
  Sent: Sunday, October 06, 2013 11:51 PM
  To: KY Srinivasan
  Cc: Haiyang Zhang; Jean-Christophe Plagniol-Villard; Tomi Valkeinen; open
  list:Hyper-V CORE AND...; open list:FRAMEBUFFER LAYER; open list
  Subject: Re: [PATCH 1/2] hyperv-fb: add pci stub
  
  On Mi, 2013-10-02 at 14:29 +, KY Srinivasan wrote:
  
This patch adds a pci stub driver to hyper-fb.  The hyperv framebuffer
driver will bind to the pci device then, so linux kernel and userspace
know there is a proper kernel driver for the device active.  lspci shows
this for example:
  
   Gerd,
  
   Thanks for doing this. This certainly will address some of the issues 
   that are
  reported. I do have a question though - how would this work if we don't 
  have PCI
  bus in the guest.
  
  The hyperv framebuffer driver wouldn't work in the first place then as
  it looks up the framebuffer address in pci config space (see hvfb_getmem
  function).
 
 We are going to fix this as we move this code to run on our UEFI firmware. 

Hmm, windows server 2012 seems to have no option to enable uefi.  So I
guess this is still in development?  How this is going to look like?

Probably you are going for pure uefi firmware, without csm, to be able
to leave all the legacy bios stuff behind in uefi mode.  Therefore no
vesa bios support.  efi drivers for vmbus network/storage/display/input
in the firmware.  No legacy ide/vga pci devices.  Correct?

The linux kernel will come up with efifb then, switching over to
hyperv-fb once the driver is loaded.  The hyperv-fb pci stub driver will
not bind to the hyperv vga pci device if it isn't present in the guest.
hyperv-fb will load just fine nevertheless (once hvfb_getmem is fixed to
not depend on the pci device config space).  The pci stub added by the
patch and the vmbus driver in hyperv-fb are completely independent.

cheers,
  Gerd


___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 1/2] hyperv-fb: add pci stub

2013-10-07 Thread Gerd Hoffmann
On Mi, 2013-10-02 at 14:29 +, KY Srinivasan wrote:
 
  This patch adds a pci stub driver to hyper-fb.  The hyperv framebuffer
  driver will bind to the pci device then, so linux kernel and userspace
  know there is a proper kernel driver for the device active.  lspci shows
  this for example:

 Gerd,
 
 Thanks for doing this. This certainly will address some of the issues that 
 are reported. I do have a question though - how would this work if we don't 
 have PCI bus in the guest.

The hyperv framebuffer driver wouldn't work in the first place then as
it looks up the framebuffer address in pci config space (see hvfb_getmem
function).

cheers,
  Gerd



___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


RE: [PATCH 1/2] hyperv-fb: add pci stub

2013-10-07 Thread KY Srinivasan


 -Original Message-
 From: Gerd Hoffmann [mailto:kra...@redhat.com]
 Sent: Sunday, October 06, 2013 11:51 PM
 To: KY Srinivasan
 Cc: Haiyang Zhang; Jean-Christophe Plagniol-Villard; Tomi Valkeinen; open
 list:Hyper-V CORE AND...; open list:FRAMEBUFFER LAYER; open list
 Subject: Re: [PATCH 1/2] hyperv-fb: add pci stub
 
 On Mi, 2013-10-02 at 14:29 +, KY Srinivasan wrote:
 
   This patch adds a pci stub driver to hyper-fb.  The hyperv framebuffer
   driver will bind to the pci device then, so linux kernel and userspace
   know there is a proper kernel driver for the device active.  lspci shows
   this for example:
 
  Gerd,
 
  Thanks for doing this. This certainly will address some of the issues that 
  are
 reported. I do have a question though - how would this work if we don't have 
 PCI
 bus in the guest.
 
 The hyperv framebuffer driver wouldn't work in the first place then as
 it looks up the framebuffer address in pci config space (see hvfb_getmem
 function).

We are going to fix this as we move this code to run on our UEFI firmware. 

Regards,

K. Y

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


RE: [PATCH 1/2] hyperv-fb: add pci stub

2013-10-02 Thread KY Srinivasan


 -Original Message-
 From: Gerd Hoffmann [mailto:kra...@redhat.com]
 Sent: Wednesday, October 02, 2013 4:55 AM
 Cc: Gerd Hoffmann; KY Srinivasan; Haiyang Zhang; Jean-Christophe Plagniol-
 Villard; Tomi Valkeinen; open list:Hyper-V CORE AND...; open list:FRAMEBUFFER
 LAYER; open list
 Subject: [PATCH 1/2] hyperv-fb: add pci stub
 
 This patch adds a pci stub driver to hyper-fb.  The hyperv framebuffer
 driver will bind to the pci device then, so linux kernel and userspace
 know there is a proper kernel driver for the device active.  lspci shows
 this for example:
 
 [root@dhcp231 ~]# lspci -vs8
 00:08.0 VGA compatible controller: Microsoft Corporation Hyper-V virtual
 VGA (prog-if 00 [VGA controller])
 Flags: bus master, fast devsel, latency 0, IRQ 11
 Memory at f800 (32-bit, non-prefetchable) [size=64M]
 Expansion ROM at unassigned [disabled]
 Kernel driver in use: hyperv_fb
 
 Another effect is that the xorg vesa driver will not attach to the
 device and thus the Xorg server will automatically use the fbdev
 driver instead.
 
 Signed-off-by: Gerd Hoffmann kra...@redhat.com
 ---
  drivers/video/hyperv_fb.c | 40
 +++-
  1 file changed, 39 insertions(+), 1 deletion(-)
 
 diff --git a/drivers/video/hyperv_fb.c b/drivers/video/hyperv_fb.c
 index 8ac99b8..8d456dc 100644
 --- a/drivers/video/hyperv_fb.c
 +++ b/drivers/video/hyperv_fb.c
 @@ -795,12 +795,21 @@ static int hvfb_remove(struct hv_device *hdev)
  }
 
 
 +static DEFINE_PCI_DEVICE_TABLE(pci_stub_id_table) = {
 + {
 + .vendor  = PCI_VENDOR_ID_MICROSOFT,
 + .device  = PCI_DEVICE_ID_HYPERV_VIDEO,
 + },
 + { /* end of list */ }
 +};
 +
  static const struct hv_vmbus_device_id id_table[] = {
   /* Synthetic Video Device GUID */
   {HV_SYNTHVID_GUID},
   {}
  };
 
 +MODULE_DEVICE_TABLE(pci, pci_stub_id_table);
  MODULE_DEVICE_TABLE(vmbus, id_table);
 
  static struct hv_driver hvfb_drv = {
 @@ -810,14 +819,43 @@ static struct hv_driver hvfb_drv = {
   .remove = hvfb_remove,
  };
 
 +static int hvfb_pci_stub_probe(struct pci_dev *pdev,
 +const struct pci_device_id *ent)
 +{
 + return 0;
 +}
 +
 +static void hvfb_pci_stub_remove(struct pci_dev *pdev)
 +{
 +}
 +
 +static struct pci_driver hvfb_pci_stub_driver = {
 + .name = KBUILD_MODNAME,
 + .id_table = pci_stub_id_table,
 + .probe =hvfb_pci_stub_probe,
 + .remove =   hvfb_pci_stub_remove,
 +};
 
  static int __init hvfb_drv_init(void)
  {
 - return vmbus_driver_register(hvfb_drv);
 + int ret;
 +
 + ret = vmbus_driver_register(hvfb_drv);
 + if (ret != 0)
 + return ret;
 +
 + ret = pci_register_driver(hvfb_pci_stub_driver);
 + if (ret != 0) {
 + vmbus_driver_unregister(hvfb_drv);
 + return ret;
 + }
 +
 + return 0;
  }
 
  static void __exit hvfb_drv_exit(void)
  {
 + pci_unregister_driver(hvfb_pci_stub_driver);
   vmbus_driver_unregister(hvfb_drv);
  }
 
 --
 1.8.3.1
Gerd,

Thanks for doing this. This certainly will address some of the issues that are 
reported. I do have a question though - how would this work if we don't have 
PCI bus in the guest.

Regards,

K. Y
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


RE: [PATCH 1/2] hyperv-fb: add pci stub

2013-10-02 Thread Haiyang Zhang


 -Original Message-
 From: linux-fbdev-ow...@vger.kernel.org [mailto:linux-fbdev-
 ow...@vger.kernel.org] On Behalf Of Gerd Hoffmann
 Sent: Wednesday, October 2, 2013 7:55 AM
 Cc: Gerd Hoffmann; KY Srinivasan; Haiyang Zhang; Jean-Christophe Plagniol-
 Villard; Tomi Valkeinen; open list:Hyper-V CORE AND...; open
 list:FRAMEBUFFER LAYER; open list
 Subject: [PATCH 1/2] hyperv-fb: add pci stub
 
 This patch adds a pci stub driver to hyper-fb.  The hyperv framebuffer driver
 will bind to the pci device then, so linux kernel and userspace know there is 
 a
 proper kernel driver for the device active.  lspci shows this for example:
 
 [root@dhcp231 ~]# lspci -vs8
 00:08.0 VGA compatible controller: Microsoft Corporation Hyper-V virtual
 VGA (prog-if 00 [VGA controller])
 Flags: bus master, fast devsel, latency 0, IRQ 11
 Memory at f800 (32-bit, non-prefetchable) [size=64M]
 Expansion ROM at unassigned [disabled]
 Kernel driver in use: hyperv_fb
 
 Another effect is that the xorg vesa driver will not attach to the device and
 thus the Xorg server will automatically use the fbdev driver instead.
 
 Signed-off-by: Gerd Hoffmann kra...@redhat.com

Acked-by: Haiyang Zhang haiya...@microsoft.com

Thank you for fixing this!

- Haiyang


___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel