[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#705788: fb-modules-3.2.0-4-486-di: please include viafb module for OLPC XO-1.5 support in d-i



Control: tag -1 patch

On Fri, 2013-04-19 at 22:07 -0700, Andres Salomon wrote:
> Package: fb-modules-3.2.0-4-486-di
> Version: 3.2.41-2
> 
> The OLPC XO-1.5 doesn't support VESA.  It needs the viafb driver in
> order to get display output.  Similar to #705780, please consider
> including viafb.ko in the fb-modules udeb.

I just tried loading viafb on a VIA Epia board (Unichrome CLE266)
running squeeze, and the console is now broken.  I can see the GRUB boot
messages (from weeks ago) and a mess of dots in various colours.

The module also has a whole lot of parameters which suggest that it may
need board-specific configuration.  So I don't think we can allow it to
be autoloaded on the whole range of device IDs it claims.

What if we apply a patch (attached) to match the specific subsystem ID
on the XO 1.5?  (I got this from the Openchrome source so hopefully it's
correct.)  This still leaves us needing to update udev and then worry
about kernel vs udev versions, but it should cover the installer.

Ben.

-- 
Ben Hutchings
The first rule of tautology club is the first rule of tautology club.
From: Ben Hutchings <ben@decadent.org.uk>
Date: Sat, 20 Apr 2013 15:52:02 +0100
Subject: viafb: Autoload on OLPC XO 1.5 only
Bug-Debian: http://bugs.debian.org/705788

It appears that viafb won't work automatically on all the boards for
which it has a PCI device ID match.  Currently, it is blacklisted by
udev along with most other framebuffer drivers, so this doesn't matter
much.

However, this driver is required for console support on the XO 1.5.
We need to allow it to be autoloaded on this model only, and then
un-blacklist it in udev.

---
--- a/drivers/video/via/via-core.c
+++ b/drivers/video/via/via-core.c
@@ -754,7 +754,14 @@ static struct pci_device_id via_pci_tabl
 	  .driver_data = UNICHROME_VX900 },
 	{ }
 };
-MODULE_DEVICE_TABLE(pci, via_pci_table);
+
+static const struct pci_device_id via_pci_autoload_table[] __initconst = {
+	/* OLPC XO 1.5 */
+	{ PCI_DEVICE(PCI_VENDOR_ID_VIA, UNICHROME_VX855_DID),
+	  .subvendor = 0x152d, .subdevice = 0x0833 },
+	{ }
+};
+MODULE_DEVICE_TABLE(pci, via_pci_autoload_table);
 
 static struct pci_driver via_driver = {
 	.name		= "viafb",

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: