enable/disable devices behavior
Tiago Vignatti
vignatti at freedesktop.org
Tue May 5 21:56:44 PDT 2009
Dave Airlie escreveu:
> On Wed, 2009-05-06 at 01:37 -0300, Tiago Vignatti wrote:
>> Hi,
>>
>> AFAIK, the existing interface in libpciaccess to enable a device
>> (pci_device_enable) deals always with I/O _and_ memory resources. But
>> I'm confused with the behavior of such interface because it's not
>> working as I expected. For me it has to be equivalent to do the
>> following, in the regs configuration space:
>>
>> ctrl = (PCI_COMMAND_IO | PCI_COMMAND_MEMORY);
>> pci_device_cfg_write_u32(dev, ctrl, PCI_COMMAND);
>>
>>
>> Isn't it? But it's not happening that. When I call pci_device_enable (or
>> just `echo 1 > enable` in device) the kernel sometimes sets only the
>> PCI_COMMAND_MEMORY bit or simply does nothing. What am I missing here?
>>
>> Attached, I'm sending a code that I'm using to play with this.
>
> Its not for that.
>
> Twiddling enable bits from userspace isn't something we want to be able
> to do.
So what's the intention of the enable field in sysfs?
What I want in the end is to build an interface inside pci library to
enable/disable a given resource of a device. This is what we were doing
in Xorg (sigh) and what we progressively can move out to libpciaccess to
build (I expected in a near future) the "system-wide PCI access control".
Tiago
More information about the xorg-devel
mailing list