mirror of
https://github.com/intel/intel-device-plugins-for-kubernetes.git
synced 2025-06-03 03:59:37 +00:00
Merge pull request #497 from bart0sh/PR0094-move-GetAPIVersion-out-of-NewPort
fpga: move GetAPIVersion call out of NewPort and NewFME
This commit is contained in:
commit
75355c9937
@ -181,14 +181,16 @@ func fpgaInfo(fname string, quiet bool) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func fmeInfo(fname string, quiet bool) error {
|
func fmeInfo(fname string, quiet bool) error {
|
||||||
var f fpga.FME
|
fme, err := fpga.NewFME(fname)
|
||||||
var err error
|
|
||||||
f, err = fpga.NewFME(fname)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer f.Close()
|
defer fme.Close()
|
||||||
return printFpgaFME(f, quiet)
|
// check that kernel API is compatible
|
||||||
|
if _, err := fme.GetAPIVersion(); err != nil {
|
||||||
|
return errors.Wrap(err, "kernel API mismatch")
|
||||||
|
}
|
||||||
|
return printFpgaFME(fme, quiet)
|
||||||
}
|
}
|
||||||
|
|
||||||
func printFpgaFME(f fpga.FME, quiet bool) (err error) {
|
func printFpgaFME(f fpga.FME, quiet bool) (err error) {
|
||||||
@ -218,28 +220,33 @@ func printFpgaFME(f fpga.FME, quiet bool) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func portReleaseOrAssign(fname string, port uint, release, quiet bool) error {
|
func portReleaseOrAssign(fname string, port uint, release, quiet bool) error {
|
||||||
var f fpga.FME
|
fme, err := fpga.NewFME(fname)
|
||||||
var err error
|
|
||||||
f, err = fpga.NewFME(fname)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer f.Close()
|
defer fme.Close()
|
||||||
if release {
|
// check that kernel API is compatible
|
||||||
return f.PortRelease(uint32(port))
|
if _, err := fme.GetAPIVersion(); err != nil {
|
||||||
|
return errors.Wrap(err, "kernel API mismatch")
|
||||||
}
|
}
|
||||||
return f.PortAssign(uint32(port))
|
if release {
|
||||||
|
return fme.PortRelease(uint32(port))
|
||||||
|
}
|
||||||
|
return fme.PortAssign(uint32(port))
|
||||||
}
|
}
|
||||||
|
|
||||||
func portInfo(fname string, quiet bool) error {
|
func portInfo(fname string, quiet bool) error {
|
||||||
var f fpga.Port
|
port, err := fpga.NewPort(fname)
|
||||||
var err error
|
|
||||||
f, err = fpga.NewPort(fname)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer f.Close()
|
defer port.Close()
|
||||||
return printFpgaPort(f, quiet)
|
// check that kernel API is compatible
|
||||||
|
if _, err = port.GetAPIVersion(); err != nil {
|
||||||
|
return errors.Wrap(err, "kernel API mismatch")
|
||||||
|
}
|
||||||
|
|
||||||
|
return printFpgaPort(port, quiet)
|
||||||
}
|
}
|
||||||
|
|
||||||
func printFpgaPort(f fpga.Port, quiet bool) (err error) {
|
func printFpgaPort(f fpga.Port, quiet bool) (err error) {
|
||||||
@ -313,32 +320,37 @@ func printPCIeInfo(pci *fpga.PCIDevice, quiet bool) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func doPR(dev, fname string, dryRun, quiet bool) (err error) {
|
func doPR(dev, fname string, dryRun, quiet bool) error {
|
||||||
fp, err := fpga.NewPort(dev)
|
port, err := fpga.NewPort(dev)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return err
|
||||||
}
|
}
|
||||||
defer fp.Close()
|
defer port.Close()
|
||||||
|
// check that kernel API is compatible
|
||||||
|
if _, err = port.GetAPIVersion(); err != nil {
|
||||||
|
return errors.Wrap(err, "kernel API mismatch")
|
||||||
|
}
|
||||||
|
|
||||||
bs, err := bitstream.Open(fname)
|
bs, err := bitstream.Open(fname)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return err
|
||||||
}
|
}
|
||||||
defer bs.Close()
|
defer bs.Close()
|
||||||
|
|
||||||
if !quiet {
|
if !quiet {
|
||||||
fmt.Printf("Before: Interface ID: %q AFU ID: %q\n", fp.GetInterfaceUUID(), fp.GetAcceleratorTypeUUID())
|
fmt.Printf("Before: Interface ID: %q AFU ID: %q\n", port.GetInterfaceUUID(), port.GetAcceleratorTypeUUID())
|
||||||
fmt.Printf("Programming %q to port %q: ", fname, dev)
|
fmt.Printf("Programming %q to port %q: ", fname, dev)
|
||||||
}
|
}
|
||||||
err = fp.PR(bs, dryRun)
|
err = port.PR(bs, dryRun)
|
||||||
if !quiet {
|
if !quiet {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("FAILED")
|
fmt.Println("FAILED")
|
||||||
} else {
|
} else {
|
||||||
fmt.Println("OK")
|
fmt.Println("OK")
|
||||||
}
|
}
|
||||||
fmt.Printf("After : Interface ID: %q AFU ID: %q\n", fp.GetInterfaceUUID(), fp.GetAcceleratorTypeUUID())
|
fmt.Printf("After : Interface ID: %q AFU ID: %q\n", port.GetInterfaceUUID(), port.GetAcceleratorTypeUUID())
|
||||||
}
|
}
|
||||||
return
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func listDevices(listFMEs, listPorts, quiet bool) error {
|
func listDevices(listFMEs, listPorts, quiet bool) error {
|
||||||
|
@ -56,10 +56,6 @@ func (f *DflFME) Close() error {
|
|||||||
// NewDflFME Opens device.
|
// NewDflFME Opens device.
|
||||||
func NewDflFME(dev string) (FME, error) {
|
func NewDflFME(dev string) (FME, error) {
|
||||||
fme := &DflFME{DevPath: dev}
|
fme := &DflFME{DevPath: dev}
|
||||||
// check that kernel API is compatible
|
|
||||||
if _, err := fme.GetAPIVersion(); err != nil {
|
|
||||||
return nil, errors.Wrap(err, "kernel API mismatch")
|
|
||||||
}
|
|
||||||
if err := checkVendorAndClass(fme); err != nil {
|
if err := checkVendorAndClass(fme); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -96,10 +92,6 @@ func (f *DflPort) Close() error {
|
|||||||
// NewDflPort Opens device.
|
// NewDflPort Opens device.
|
||||||
func NewDflPort(dev string) (Port, error) {
|
func NewDflPort(dev string) (Port, error) {
|
||||||
port := &DflPort{DevPath: dev}
|
port := &DflPort{DevPath: dev}
|
||||||
// check that kernel API is compatible
|
|
||||||
if _, err := port.GetAPIVersion(); err != nil {
|
|
||||||
return nil, errors.Wrap(err, "kernel API mismatch")
|
|
||||||
}
|
|
||||||
if err := checkVendorAndClass(port); err != nil {
|
if err := checkVendorAndClass(port); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -53,10 +53,6 @@ func (f *IntelFpgaFME) Close() error {
|
|||||||
// NewIntelFpgaFME Opens device.
|
// NewIntelFpgaFME Opens device.
|
||||||
func NewIntelFpgaFME(dev string) (FME, error) {
|
func NewIntelFpgaFME(dev string) (FME, error) {
|
||||||
fme := &IntelFpgaFME{DevPath: dev}
|
fme := &IntelFpgaFME{DevPath: dev}
|
||||||
// check that kernel API is compatible
|
|
||||||
if _, err := fme.GetAPIVersion(); err != nil {
|
|
||||||
return nil, errors.Wrap(err, "kernel API mismatch")
|
|
||||||
}
|
|
||||||
if err := checkVendorAndClass(fme); err != nil {
|
if err := checkVendorAndClass(fme); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -90,11 +86,6 @@ func (f *IntelFpgaPort) Close() error {
|
|||||||
// NewIntelFpgaPort Opens device.
|
// NewIntelFpgaPort Opens device.
|
||||||
func NewIntelFpgaPort(dev string) (Port, error) {
|
func NewIntelFpgaPort(dev string) (Port, error) {
|
||||||
port := &IntelFpgaPort{DevPath: dev}
|
port := &IntelFpgaPort{DevPath: dev}
|
||||||
// check that kernel API is compatible
|
|
||||||
if _, err := port.GetAPIVersion(); err != nil {
|
|
||||||
port.Close()
|
|
||||||
return nil, errors.Wrap(err, "kernel API mismatch")
|
|
||||||
}
|
|
||||||
if err := checkVendorAndClass(port); err != nil {
|
if err := checkVendorAndClass(port); err != nil {
|
||||||
port.Close()
|
port.Close()
|
||||||
return nil, err
|
return nil, err
|
||||||
|
Loading…
Reference in New Issue
Block a user