recent commits break via 8235 ata
Giorgos Keramidas
keramida at freebsd.org
Fri Apr 6 22:23:46 UTC 2007
On 2007-04-07 00:12, Giorgos Keramidas <keramida at freebsd.org> wrote:
> On 2007-03-27 12:27, John Baldwin <jhb at freebsd.org> wrote:
> > If that is the case it's because code was using
> > rman_get_bus(handle|tag) on a resource that wasn't activated yet which
> > wouldn't have worked before the nexus changes either. Well, the bus
> > tag might have been right, but the handle for SYS_RES_MEMORY would
> > have been wrong.
>
> This is the change which stops snd_hda from working here:
>
> % Revision Changes Path
> % 1.233 +39 -55 src/sys/dev/acpica/acpi.c
There's only one place in the sound/pci/hda/* source tree where
rman_get_bus(handle|tag)() calls are used:
keramida at kobe:/home/keramida/hg/freebsd/src/sys/dev/sound/pci/hda$ grep -n 'rman_get_bus\(handle\|tag\)' *
hdac.c:1301: mem->mem_tag = rman_get_bustag(mem->mem_res);
hdac.c:1302: mem->mem_handle = rman_get_bushandle(mem->mem_res);
keramida at kobe:/home/keramida/hg/freebsd/src/sys/dev/sound/pci/hda$
[...]
1281 /****************************************************************************
1282 * int hdac_mem_alloc(struct hdac_softc *)
1283 *
1284 * Allocate all the bus resources necessary to speak with the physical
1285 * controller.
1286 ****************************************************************************/
1287 static int
1288 hdac_mem_alloc(struct hdac_softc *sc)
1289 {
1290 struct hdac_mem *mem;
1291
1292 mem = &sc->mem;
1293 mem->mem_rid = PCIR_BAR(0);
1294 mem->mem_res = bus_alloc_resource_any(sc->dev, SYS_RES_MEMORY,
1295 &mem->mem_rid, RF_ACTIVE);
1296 if (mem->mem_res == NULL) {
1297 device_printf(sc->dev,
1298 "%s: Unable to allocate memory resource\n", __func__);
1299 return (ENOMEM);
1300 }
1301 mem->mem_tag = rman_get_bustag(mem->mem_res);
1302 mem->mem_handle = rman_get_bushandle(mem->mem_res);
1303
1304 return (0);
1305 }
I'm not very familiar with the rman_get_xxx() functions, but is
there a better way to write the hdac_mem_alloc() function so that
it works with the recent acpi.c versions?
More information about the freebsd-current
mailing list