Message ID | c7d0ee9d-0926-09a7-3a6d-22daf0c05a32@gmx.de (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
On 2017-12-11 9:46 AM, Helge Deller wrote: > On 10.12.2017 00:49, John David Anglin wrote: >> On 2017-12-09, at 4:03 PM, Helge Deller wrote: >> >>> Can you please try attached patch which disables the serial MUX and ATI card? >>> If it works for you and if we backport it to all kernels and if we revert palo to use ttyS0 for all machines we might be good. >> I hacked on the change but I couldn't get it to work. As far as I can tell, the quirks aren't being called. >> Tried EARLY, HEADER and FINAL. I think the ids are correct. > Strange. The attached patch does work for me on panama up until boot. > Haven't tested what lspci reports afterwards... > > [ 1.832294] LBA 0:7: PCI host bridge to bus 0000:e0 > [ 1.832497] pci_bus 0000:e0: root bus resource [io 0x60000-0x6ffff] (bus address [0x0000-0xffff]) > [ 1.833005] pci_bus 0000:e0: root bus resource [mem 0xfffffffff0000000-0xfffffffffe77ffff] (bus address [0xf0000000-0xfe77ffff]) > [ 1.840028] pci_bus 0000:e0: root bus resource [bus e0-e7] > 1.844276] subsystem_vendor = 0x103c, subsystem_device =0x1291 > [ 1.848022] pci 0000:e0:01.0: Hiding Diva built-in AUX serial device > 1.849136] subsystem_vendor = 0x103c, subsystem_device =0x1292 > [ 1.852023] pci 0000:e0:02.0: Hiding Diva built-in ATI card. > .... Maybe I messed up build in some way. I didn't clean things between builds. I never got the output shown above. We have period at end of the second message. Dave
On 2017-12-11 9:46 AM, Helge Deller wrote: > Strange. The attached patch does work for me on panama up until boot. > Haven't tested what lspci reports afterwards... Yes, it also works for me applied to v4.13.16. ttyS1 is now ttyS0. Haven't tried boot without console argument yet. lspci still sees the hidden devices which I think is good. I removed period from one of the dev_info strings. We probably don't need printk's that I added. Dave
diff --git a/drivers/parisc/lba_pci.c b/drivers/parisc/lba_pci.c index a25fed52f7e9..dbb4158cf098 100644 --- a/drivers/parisc/lba_pci.c +++ b/drivers/parisc/lba_pci.c @@ -1692,3 +1692,45 @@ void lba_set_iregs(struct parisc_device *lba, u32 ibase, u32 imask) iounmap(base_addr); } + +/* + * The design of the Diva management card in rp34x0 machines (rp3410, rp3440) + * seems rushed, so that many built-in components simply don't work. + * The following quirks disable the serial AUX port and the built-in ATI RV100 + * Radeon 7000 graphics card which both don't have any external connectors and + * thus are useless, and even worse, e.g. the AUX ports occupies ttyS0 and + * as such makes those machines the only PARISC machines on which we can't + * use ttyS0 as boot console. + */ +static void quirk_diva_ati_card(struct pci_dev *dev) +{ + printk("subsystem_vendor = 0x%x, subsystem_device =0x%x\n", + dev->subsystem_vendor, dev->subsystem_device); + + /* subsystem IDs are from Diva */ + if (dev->subsystem_vendor != PCI_VENDOR_ID_HP || + dev->subsystem_device != 0x1292) + return; + + dev_info(&dev->dev, "Hiding Diva built-in ATI card."); + dev->device = 0; +} +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RADEON_QY, + quirk_diva_ati_card); + +static void quirk_diva_aux_disable(struct pci_dev *dev) +{ + printk("subsystem_vendor = 0x%x, subsystem_device =0x%x\n", + dev->subsystem_vendor, dev->subsystem_device); + + /* subsystem IDs are from Diva */ + if (dev->subsystem_vendor != PCI_VENDOR_ID_HP || + dev->subsystem_device != 0x1291) + return; + + dev_info(&dev->dev, "Hiding Diva built-in AUX serial device"); + dev->device = 0; +} +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_DIVA_AUX, + quirk_diva_aux_disable); +