Page MenuHomeFreeBSD

D47222.diff
No OneTemporary

D47222.diff

diff --git a/sys/dev/sound/pci/csa.c b/sys/dev/sound/pci/csa.c
--- a/sys/dev/sound/pci/csa.c
+++ b/sys/dev/sound/pci/csa.c
@@ -108,46 +108,25 @@
clkrun_hack(int run)
{
#ifdef __i386__
- devclass_t pci_devclass;
- device_t *pci_devices, *pci_children, *busp, *childp;
- int pci_count = 0, pci_childcount = 0;
- int i, j, port;
+ device_t child;
+ int port;
u_int16_t control;
bus_space_tag_t btag;
- if ((pci_devclass = devclass_find("pci")) == NULL) {
- return ENXIO;
- }
+ child = pci_find_device(0x8086, 0x7113);
+ if (child == NULL)
+ return (ENXIO);
- devclass_get_devices(pci_devclass, &pci_devices, &pci_count);
-
- for (i = 0, busp = pci_devices; i < pci_count; i++, busp++) {
- pci_childcount = 0;
- if (device_get_children(*busp, &pci_children, &pci_childcount))
- continue;
- for (j = 0, childp = pci_children; j < pci_childcount; j++, childp++) {
- if (pci_get_vendor(*childp) == 0x8086 && pci_get_device(*childp) == 0x7113) {
- port = (pci_read_config(*childp, 0x41, 1) << 8) + 0x10;
- /* XXX */
- btag = X86_BUS_SPACE_IO;
-
- control = bus_space_read_2(btag, 0x0, port);
- control &= ~0x2000;
- control |= run? 0 : 0x2000;
- bus_space_write_2(btag, 0x0, port, control);
- free(pci_devices, M_TEMP);
- free(pci_children, M_TEMP);
- return 0;
- }
- }
- free(pci_children, M_TEMP);
- }
+ port = (pci_read_config(child, 0x41, 1) << 8) + 0x10;
+ /* XXX */
+ btag = X86_BUS_SPACE_IO;
- free(pci_devices, M_TEMP);
- return ENXIO;
-#else
- return 0;
+ control = bus_space_read_2(btag, 0x0, port);
+ control &= ~0x2000;
+ control |= run? 0 : 0x2000;
+ bus_space_write_2(btag, 0x0, port, control);
#endif
+ return (0);
}
static struct csa_card cards_4610[] = {

File Metadata

Mime Type
text/plain
Expires
Fri, Nov 8, 4:43 AM (22 h, 6 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14339307
Default Alt Text
D47222.diff (1 KB)

Event Timeline