Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Sep 2008 10:36:59 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-acpi@freebsd.org
Cc:        Gavin Atkinson <gavin@freebsd.org>
Subject:   Re: Writing a driver: how do I get resources?
Message-ID:  <200809231037.00392.jhb@freebsd.org>
In-Reply-To: <1222173505.80882.15.camel@buffy.york.ac.uk>
References:  <1222173505.80882.15.camel@buffy.york.ac.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 23 September 2008 08:38:25 am Gavin Atkinson wrote:
> Hi all,
> 
> Please forgive me if this email makes very little sense: I've never
> really looked at how ACPI works from a driver's perspective, so don't
> really know if what I'm trying to do is even correct.
> 
> I'm expanding the acpi_sony driver to cover the PNP ID SNY6001.  When I
> simply claim it by returning 0 from the probe, I get the following I/O 
range:
> 
> acpi_sony0: <Sony programmable I/O> port 0-0x1f on acpi0
> 
> However, if I'm reading the AML[1] and Linux drivers[2] correctly, this
> is not the correct range.  It appears that the _PRS method offers a
> choice of four I/O ranges and four IRQs, one of which is then selected
> by evaluating _SRS.  None of them are 0-0x1f.
> 
> Firstly, does that make sense?  Secondly, how do I do this from a
> driver?  I can't see any other drivers that seem to get this involved in
> ACPI, indeed the only mention of evaluating _PRS is within the ACPI code
> itself.
> 
> Lastly, I only have intermittent access to this laptop, so I apologise
> if I can't test things quickly.

Our ACPI driver isn't smart enough yet (AFAIK) to allocate new resources for a 
device that doesn't have any.  That logic should be in acpi_alloc_resource() 
and once that is present then your driver just needs to do the usual 
bus_alloc_resource() stuff to work.

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200809231037.00392.jhb>