• Jan Dittmer's avatar
    [PATCH] fakephp: add pci bus rescan ability · b48838a9
    Jan Dittmer authored
    This adds the ability to rescan the pci bus for newly inserted,
    reprogrammed or previously disabled pci devices.
    To initiate a rescan you need to write '1' to any of the
    /sys/bus/pci/slots/*/power control files. No known pci devices
    will be touched.
    Additionally this fixes a bug, when someone tries to disable
    a device with subfunctions. The subfunctions will be disabled first now.
    
    Short demo:
     # modprobe fakephp
     # ls /sys/bus/pci/slots | grep "0000:04"
    0000:04:02.0
    0000:04:02.1
    0000:04:02.2
    0000:04:03.0
    0000:04:03.1
     # echo -n 0 > /sys/bus/pci/slots/0000\:04\:02.0/power
     # ls /sys/bus/pci/slots | grep "0000:04"
    0000:04:03.0
    0000:04:03.1
     # echo -n 1 > /sys/bus/pci/slots/0000\:03\:01.0/power
     # ls /sys/bus/pci/slots | grep "0000:04"
    0000:04:02.0
    0000:04:02.1
    0000:04:02.2
    0000:04:03.0
    0000:04:03.1
     # lspci | grep "0000:04"
    0000:04:02.0 Multimedia audio controller: Creative Labs SB Audigy (rev 03)
    0000:04:02.1 Input device controller: Creative Labs SB Audigy MIDI/Gameport (rev 03)
    0000:04:02.2 FireWire (IEEE 1394): Creative Labs SB Audigy FireWire Port
    0000:04:03.0 SCSI storage controller: Adaptec AHA-3960D / AIC-7899A U160/m (rev 01)
    0000:04:03.1 SCSI storage controller: Adaptec AHA-3960D / AIC-7899A U160/m (rev 01)
    Signed-off-by: default avatarJan Dittmer <jdittmer@ppp0.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
    b48838a9
fakephp.c 8.14 KB