aboutsummaryrefslogtreecommitdiff
path: root/drivers/pci/switch/switchtec.c
AgeCommit message (Collapse)AuthorFilesLines
2017-05-22switchtec: Fix minor bug with partition ID registerLogan Gunthorpe1-1/+4
When a switch endpoint is configured without NTB, the mmio_ntb registers will read all zeros. However, in corner case configurations where the partition ID is not zero and NTB is not enabled, the code will have the wrong partition ID and this causes the driver to use the wrong set of drivers. To fix this we simply take the partition ID from the system info region. Reported-by: Dingbao Chen <[email protected]> Signed-off-by: Logan Gunthorpe <[email protected]> Signed-off-by: Bjorn Helgaas <[email protected]>
2017-05-22switchtec: Use new cdev_device_add() helper functionLogan Gunthorpe1-9/+2
Convert from "cdev_add() + device_add()" to cdev_device_add(), and from "device_del() + cdev_del()" to cdev_device_del(). [bhelgaas: changelog] Signed-off-by: Logan Gunthorpe <[email protected]> Signed-off-by: Bjorn Helgaas <[email protected]>
2017-04-12switchtec: Add IOCTLs to the Switchtec driverLogan Gunthorpe1-0/+481
Add a couple of special IOCTLs to: * Inform userspace of firmware partition locations * Pass event counts and allow userspace to wait on events * Translate PFF numbers used by the switch to port numbers [Dan Carpenter <[email protected]>: fix off-by-one in ioctl_event_ctl()] Tested-by: Krishna Dhulipala <[email protected]> Signed-off-by: Logan Gunthorpe <[email protected]> Signed-off-by: Stephen Bates <[email protected]> Signed-off-by: Bjorn Helgaas <[email protected]> Reviewed-by: Wei Zhang <[email protected]> Reviewed-by: Jens Axboe <[email protected]>
2017-04-12switchtec: Add sysfs attributes to the Switchtec driverLogan Gunthorpe1-0/+113
Add a few read-only sysfs attributes which provide some device information that is exposed from the devices, primarily component and device names and versions. These are documented in Documentation/ABI/testing/sysfs-class-switchtec. Tested-by: Krishna Dhulipala <[email protected]> Signed-off-by: Logan Gunthorpe <[email protected]> Signed-off-by: Stephen Bates <[email protected]> Signed-off-by: Bjorn Helgaas <[email protected]> Reviewed-by: Wei Zhang <[email protected]> Reviewed-by: Jens Axboe <[email protected]> Reviewed-by: Greg Kroah-Hartman <[email protected]>
2017-03-06MicroSemi Switchtec management interface driverLogan Gunthorpe1-0/+1006
Microsemi's "Switchtec" line of PCI switch devices is already well supported by the kernel with standard PCI switch drivers. However, the Switchtec device advertises a special management endpoint with a separate PCI function address and class code. This endpoint enables some additional functionality which includes: * Packet and Byte Counters * Switch Firmware Upgrades * Event and Error logs * Querying port link status * Custom user firmware commands Add a switchtec kernel module which provides PCI driver that exposes a char device. The char device provides userspace access to this interface through read, write and (optionally) poll calls. A userspace tool and library which utilizes this interface is available at [1]. This tool takes inspiration (and borrows some code) from nvme-cli [2]. The tool is largely complete at this time but additional features may be added in the future. [1] https://github.com/sbates130272/switchtec-user [2] https://github.com/linux-nvme/nvme-cli [Dan Carpenter <[email protected]>: don't invert error codes] [Christophe JAILLET <[email protected]>: fix switchtec_dev_open() error handling] Tested-by: Krishna Dhulipala <[email protected]> Signed-off-by: Logan Gunthorpe <[email protected]> Signed-off-by: Stephen Bates <[email protected]> Signed-off-by: Bjorn Helgaas <[email protected]> Reviewed-by: Wei Zhang <[email protected]> Reviewed-by: Jens Axboe <[email protected]> Reviewed-by: Greg Kroah-Hartman <[email protected]>