20 Apr, 2017

1 commit

  • Starting to leave behind the legacy of the pci_mmap_page_range() interface
    which takes "user-visible" BAR addresses. This takes just the resource and
    offset.

    For now, both APIs coexist and depending on the platform, one is
    implemented as a wrapper around the other.

    Signed-off-by: David Woodhouse
    Signed-off-by: Bjorn Helgaas

    David Woodhouse
     

19 Apr, 2017

2 commits

  • This is relatively esoteric, and knowing that we don't have it makes life
    easier in some cases rather than just an eventual -EINVAL from
    pci_mmap_page_range().

    Signed-off-by: David Woodhouse
    Signed-off-by: Bjorn Helgaas

    David Woodhouse
     
  • Most of the almost-identical versions of pci_mmap_page_range() silently
    ignore the 'write_combine' argument and give uncached mappings.

    Yet we allow the PCIIOC_WRITE_COMBINE ioctl in /proc/bus/pci, expose the
    'resourceX_wc' file in sysfs, and allow an attempted mapping to apparently
    succeed.

    To fix this, introduce a macro arch_can_pci_mmap_wc() which indicates
    whether the platform can do a write-combining mapping. On x86 this ends up
    being pat_enabled(), while the few other platforms that support it can just
    set it to a literal '1'.

    Signed-off-by: David Woodhouse
    Signed-off-by: Bjorn Helgaas

    David Woodhouse
     

22 Nov, 2016

1 commit

  • Currently the revision isn't available via sysfs/libudev thus if one wants
    to know the value one needs to read through the config file, which can be
    quite time-consuming because it wakes/powers up the device.

    There are at least two userspace components which could make use the new
    file: libpciaccess and libdrm. The former wakes up _every_ PCI device,
    which can be observed via glxinfo when using Mesa 10.0+ drivers. The
    latter, in association with Mesa 13.0, can lead to 2-3 second delays while
    starting firefox, thunderbird or chromium.

    Link: https://bugs.freedesktop.org/show_bug.cgi?id=98502
    Tested-by: Mauro Santos
    Signed-off-by: Emil Velikov
    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Alex Deucher
    Reviewed-by: Daniel Vetter

    Emil Velikov
     

31 Jul, 2010

1 commit

  • PCI sysfs resource files currently only allow mmap'ing. On x86 this
    works fine for memory backed BARs, but doesn't work at all for I/O
    port backed BARs. Add read/write to I/O port PCI sysfs resource
    files to allow userspace access to these device regions.

    Acked-by: Chris Wright
    Signed-off-by: Alex Williamson
    Signed-off-by: Jesse Barnes

    Alex Williamson
     

13 Jun, 2009

1 commit


21 Mar, 2009

1 commit

  • This patch adds an attribute named "remove" to a PCI device's sysfs
    directory. Writing a non-zero value to this attribute will remove the PCI
    device and any children of it.

    Trent Piepho wrote the original implementation and documentation.

    Thanks to Vegard Nossum for testing under kmemcheck and finding locking
    issues with the sysfs interface.

    Cc: Trent Piepho
    Tested-by: Vegard Nossum
    Signed-off-by: Alex Chiang
    Signed-off-by: Jesse Barnes

    Alex Chiang
     

05 Feb, 2009

1 commit

  • This patch makes the ROM reading code return an error to user space if
    the size of the ROM read is equal to 0.

    The patch also emits a warnings if the contents of the ROM are invalid,
    and documents the effects of the "enable" file on ROM reading.

    Signed-off-by: Timothy S. Nelson
    Acked-by: Alex Villacis-Lasso
    Signed-off-by: Jesse Barnes

    Timothy S. Nelson
     

12 Jun, 2008

1 commit


18 Feb, 2007

1 commit


10 Jan, 2006

1 commit

  • idr gently pointed out today that not only is the sysfs rom file
    interface somewhat unintuitive (despite my efforts and initial
    implementation), but it's also undocumented! This patch to
    Documentation/filesystems/sysfs-pci.txt corrects the latter problem; the
    former is a userland ABI now though, so we're stuck with it for awhile
    at least.

    Signed-off-by: Jesse Barnes
    Signed-off-by: Greg Kroah-Hartman

    Jesse Barnes
     

18 May, 2005

1 commit

  • The driver model has a "detach_state" mechanism that:

    - Has never been used by any in-kernel drive;
    - Is superfluous, since driver remove() methods can do the same thing;
    - Became buggy when the suspend() parameter changed semantics and type;
    - Could self-deadlock when called from certain suspend contexts;
    - Is effectively wasted documentation, object code, and headspace.

    This removes that "detach_state" mechanism; net code shrink, as well
    as a per-device saving in the driver model and sysfs.

    Signed-off-by: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    David Brownell
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds