On amd64 r238558M (M is John Baldwin's pci.c patch, see at the end). I've hdac0: <ATI SB600 HDA Controller> mem 0xc0000000-0xc0003fff irq 16 at device 20.2 on pci0 which seems to work fine, e.g. using /dev/dsp I then run X -configure The sound still works fine. However, as soon as I run X -config /root/xorg.conf.new -retro I see on the console: hdac0: Unexpected unsolicited response from address 0: 04a12020 hdac0: Unexpected unsolicited response from address 0: 00001727 hdac0: Unexpected unsolicited response from address 0: 00000020 hdac0: Unexpected unsolicited response from address 0: 00400187 hdac0: Unexpected unsolicited response from address 0: 00000002 hdac0: Unexpected unsolicited response from address 0: 00000e03 hdac0: Unexpected unsolicited response from address 0: 0181302e hdac0: Unexpected unsolicited response from address 0: 00001737 hdac0: Unexpected unsolicited response from address 0: 00000020 hdac0: Unexpected unsolicited response from address 0: 00400301 hdac0: Unexpected unsolicited response from address 0: 00000001 hdac0: Unexpected unsolicited response from address 0: 00000002 hdac0: Unexpected unsolicited response from address 0: 4145f0f0 hdac0: Unexpected unsolicited response from address 0: 00000010 hdac0: Unexpected unsolicited response from address 0: 00000040 hdac0: Unexpected unsolicited response from address 0: 00300101 hdac0: Unexpected unsolicited response from address 0: 00000006 hdac0: Unexpected unsolicited response from address 0: 0e090c03 hdac0: Unexpected unsolicited response from address 0: 00001805 hdac0: Unexpected unsolicited response from address 0: 00200101 hdac0: Unexpected unsolicited response from address 0: 00000002 hdac0: Unexpected unsolicited response from address 0: 00001f1e hdac0: Unexpected unsolicited response from address 0: 0030010c and another ~50 similar lines, and the sound no longer works until I reboot. I cannot narrow the problem any further. Please advise Many thanks **************************** John Baldwin's pci.c patch: Index: pci.c =================================================================== --- pci.c (revision 235475) +++ pci.c (working copy) _at__at_ -2815,13 +2815,36 _at__at_ pci_add_map(device_t bus, device_t dev, int reg, s */ res = resource_list_reserve(rl, bus, dev, type, ®, start, end, count, prefetch ? RF_PREFETCHABLE : 0); + if (res == NULL && (start != 0 || end != ~0ul)) { + /* + * If the allocation fails, try to allocate a resource for + * this BAR using any available range. The firmware felt + * it was important enough to assign a resource, so don't + * disable decoding if we can help it. + */ + resource_list_delete(rl, type, reg); + start = 0; + end = ~0ul; + resource_list_add(rl, type, reg, 0, ~0ul, count); + resource_list_add(rl, type, reg, start, end, count); + res = resource_list_reserve(rl, bus, dev, type, ®, 0, ~0ul, + count, prefetch ? RF_PREFETCHABLE : 0); + } if (res == NULL) { /* * If the allocation fails, delete the resource list entry - * to force pci_alloc_resource() to allocate resources - * from the parent. + * and disable decoding for this device. + * + * If the driver requests this resource in the future, + * pci_reserve_map() will try to allocate fresh resources. */ resource_list_delete(rl, type, reg); + pci_disable_io(dev, type); + start = 0; + device_printf(bus, + "pci%d:%d:%d:%d bar %#x failed to allocate", + pci_get_domain(dev), pci_get_bus(dev), pci_get_slot(dev), + pci_get_function(dev), reg); } else { start = rman_get_start(res); pci_write_bar(dev, pm, start); -- Anton Shterenlikht Room 2.6, Queen's Building Mech Eng Dept Bristol University University Walk, Bristol BS8 1TR, UK Tel: +44 (0)117 331 5944 Fax: +44 (0)117 929 4423Received on Tue Jul 17 2012 - 21:39:53 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:29 UTC