Control intel backlight on FreeBSD (and OpenBSD)
openbsd
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

compile on openbsd; open /dev/xf86 and call pci_system_init_dev_mem

this requires that the kernel allow simultaneous opening of
/dev/xf86 since Xorg will probably have it open already

+17 -1
+3 -1
Makefile
··· 3 3 all: intel_backlight 4 4 5 5 intel_backlight: $(SRC) 6 - clang -o intel_backlight -I/usr/local/include -I/usr/local/include/libdrm -L/usr/local/lib -ldrm_intel -lpciaccess $(SRC) 6 + ${CC} -o intel_backlight -I/usr/local/include -I/usr/X11R6/include \ 7 + -I/usr/include/dev/pci/drm -I/usr/local/include/libdrm \ 8 + -L/usr/local/lib -L/usr/X11R6/lib -lpciaccess $(SRC) 7 9 strip intel_backlight 8 10 9 11 install: intel_backlight
+3
intel_drm.c
··· 170 170 free(buf); 171 171 172 172 retval = (uint64_t) pagesize * totalpages; 173 + #elif defined(__OpenBSD__) 174 + retval = 1024 * 1024; 175 + 173 176 #else 174 177 #warning "Unknown how to get swap size for this OS" 175 178 return 0;
+11
intel_mmio.c
··· 100 100 else 101 101 mmio_size = 2*1024*1024; 102 102 103 + #ifdef __OpenBSD__ 104 + int ap = open("/dev/xf86", O_RDWR); 105 + if (ap < 0) { 106 + fprintf(stderr, "Couldn't open /dev/xf86: %s\n", 107 + strerror(errno)); 108 + exit(1); 109 + } 110 + 111 + pci_system_init_dev_mem(ap); 112 + #endif 113 + 103 114 error = pci_device_map_range (pci_dev, 104 115 pci_dev->regions[mmio_bar].base_addr, 105 116 mmio_size,