Commit e5f45b01 authored by Fabio M. De Francesco's avatar Fabio M. De Francesco Committed by Greg Kroah-Hartman

staging: Remove the drivers for the Unisys s-Par

The Unisys sub-tree of drivers/staging contains three drivers for the
"Unisys Secure Partition" (s-Par(R)): visorhba, visorinput, visornic.

They have no maintainers, in fact the only one that is listed in
MAINTAINERS has an unreacheable email address. During 2021 and 2022
several patches have been submitted to these drivers but nobody at
Unisys cared of reviewing the changes. Probably, also the
"sparmaintainer" internal list of unisys.com is not anymore read by
interested Unisys' engineers.

Therefore, remove the drivers/staging/unisys directory and delete the
relevant entries in the MAINTAINERS, Kconfig, Makefile files, then
remove also the drivers/visorbus directory which is not anymore needed
(it contained the driver for the virtualized bus for the Unisys s-Par
firmware).

Cc: David Kershner <david.kershner@unisys.com>
Cc: <sparmaintainer@unisys.com>
Cc: Ken Cox <jkc@redhat.com>
Suggested-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarFabio M. De Francesco <fmdefrancesco@gmail.com>
Link: https://lore.kernel.org/r/20220414103217.32058-1-fmdefrancesco@gmail.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 9dc9653c
......@@ -20183,14 +20183,6 @@ F: drivers/cdrom/cdrom.c
F: include/linux/cdrom.h
F: include/uapi/linux/cdrom.h
UNISYS S-PAR DRIVERS
M: David Kershner <david.kershner@unisys.com>
L: sparmaintainer@unisys.com (Unisys internal)
S: Supported
F: drivers/staging/unisys/
F: drivers/visorbus/
F: include/linux/visorbus.h
UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER
R: Alim Akhtar <alim.akhtar@samsung.com>
R: Avri Altman <avri.altman@wdc.com>
......
......@@ -225,8 +225,6 @@ source "drivers/mux/Kconfig"
source "drivers/opp/Kconfig"
source "drivers/visorbus/Kconfig"
source "drivers/siox/Kconfig"
source "drivers/slimbus/Kconfig"
......
......@@ -181,7 +181,6 @@ obj-$(CONFIG_FPGA) += fpga/
obj-$(CONFIG_FSI) += fsi/
obj-$(CONFIG_TEE) += tee/
obj-$(CONFIG_MULTIPLEXER) += mux/
obj-$(CONFIG_UNISYS_VISORBUS) += visorbus/
obj-$(CONFIG_SIOX) += siox/
obj-$(CONFIG_GNSS) += gnss/
obj-$(CONFIG_INTERCONNECT) += interconnect/
......
......@@ -64,8 +64,6 @@ source "drivers/staging/gdm724x/Kconfig"
source "drivers/staging/fwserial/Kconfig"
source "drivers/staging/unisys/Kconfig"
source "drivers/staging/clocking-wizard/Kconfig"
source "drivers/staging/fbtft/Kconfig"
......
......@@ -22,7 +22,6 @@ obj-$(CONFIG_MFD_NVEC) += nvec/
obj-$(CONFIG_STAGING_BOARD) += board/
obj-$(CONFIG_LTE_GDM724X) += gdm724x/
obj-$(CONFIG_FIREWIRE_SERIAL) += fwserial/
obj-$(CONFIG_UNISYSSPAR) += unisys/
obj-$(CONFIG_COMMON_CLK_XLNX_CLKWZRD) += clocking-wizard/
obj-$(CONFIG_FB_TFT) += fbtft/
obj-$(CONFIG_MOST) += most/
......
This file describes sysfs entries beneath /devices/platform/visorchipset.
What: install/error
Date: 7/18/2014
KernelVersion: TBD
Contact: sparmaintainer@unisys.com
Description: used to send the ID of a string that should be displayed on
s-Par's automatic installation progress screen when an error
is encountered during installation. This field has no effect
if not in installation mode.
Users: sparmaintainer@unisys.com
What: install/remainingsteps
Date: 7/18/2014
KernelVersion: TBD
Contact: sparmaintainer@unisys.com
Description: used to set the value of the progress bar on the s-Par automatic
installation progress screen. This field has no effect if not in
installation mode.
Users: sparmaintainer@unisys.com
What: install/textid
Date: 7/18/2014
KernelVersion: TBD
Contact: sparmaintainer@unisys.com
Description: used to send the ID of a string that should be displayed on
s-Par's automatic installation progress screen. Setting this
field when not in installation mode (boottotool was set on
the previous guest boot) has no effect.
Users: sparmaintainer@unisys.com
What: install/boottotool
Date: 7/18/2014
KernelVersion: TBD
Contact: sparmaintainer@unisys.com
Description: The boottotool flag controls s-Par behavior on the next boot of
this guest. Setting the flag will cause the guest to boot from
the utility and installation image, which will use the value in
the toolaction field to determine what operation is being
requested.
Users: sparmaintainer@unisys.com
What: install/toolaction
Date: 7/18/2014
KernelVersion: TBD
Contact: sparmaintainer@unisys.com
Description: This field is used to tell s-Par which type of recovery tool
action to perform on the next guest boot-up. The meaning of the
value is dependent on the type of installation software used to
commission the guest.
Users: sparmaintainer@unisys.com
What: parahotplug/deviceenabled
Date: 7/18/2014
KernelVersion: TBD
Contact: sparmaintainer@unisys.com
Description: This entry is used by a Unisys support script installed on the
guest, and triggered by a udev event. The support script is
responsible for enabling and disabling SR-IOV devices when the
PF device is being recovered in another guest.
Some SR-IOV devices have problems when the PF is reset without
first disabling all VFs attached to that PF. s-Par handles this
situation by sending a message to guests using these VFs, and
the script will disable the device. When the PF is recovered,
another message is sent to the guests to re-enable the VFs.
The parahotplug/deviceenabled interface is used to acknowledge
the recovery message.
Users: sparmaintainer@unisys.com
What: parahotplug/devicedisabled
Date: 7/18/2014
KernelVersion: TBD
Contact: sparmaintainer@unisys.com
Description: This entry is used by a Unisys support script installed on the
guest, and triggered by a udev event. The support script is
responsible for enabling and disabling SR-IOV devices when the
PF device is being recovered in another guest.
Some SR-IOV devices have problems when the PF is reset without
first disabling all VFs attached to that PF. s-Par handles this
situation by sending a message to guests using these VFs, and
the script will disable the device. When the PF is recovered,
another message is sent to the guests to re-enable the VFs.
The parahotplug/devicedisaabled interface is used to acknowledge
the initial recovery message.
Users: sparmaintainer@unisys.com
This diff is collapsed.
# SPDX-License-Identifier: GPL-2.0
#
# Unisys SPAR driver configuration
#
menuconfig UNISYSSPAR
bool "Unisys SPAR driver support"
help
Support for the Unisys SPAR drivers
if UNISYSSPAR
source "drivers/staging/unisys/visornic/Kconfig"
source "drivers/staging/unisys/visorinput/Kconfig"
source "drivers/staging/unisys/visorhba/Kconfig"
endif # UNISYSSPAR
Unisys s-Par drivers
M: David Kershner <sparmaintainer@unisys.com>
S: Maintained
F: drivers/staging/unisys/Documentation/overview.txt
F: drivers/staging/unisys/
# SPDX-License-Identifier: GPL-2.0
#
# Makefile for Unisys SPAR drivers
#
obj-$(CONFIG_UNISYS_VISORNIC) += visornic/
obj-$(CONFIG_UNISYS_VISORINPUT) += visorinput/
obj-$(CONFIG_UNISYS_VISORHBA) += visorhba/
TODO:
- enhance visornic to use channel_interrupt() hook instead of a
kernel thread
- enhance visorhba to use channel_interrupt() hook instead of a
kernel thread
- teach visorbus to handle virtual interrupts triggered by s-Par
back-end, and call function driver's channel_interrupt() function
when they occur
- enhance debugfs interfaces (e.g., per device, etc.)
- upgrade/remove deprecated workqueue operations
- move individual drivers into proper driver subsystems
Patches to:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Ken Cox <jkc@redhat.com>
Unisys s-Par maintainer mailing list <sparmaintainer@unisys.com>
This diff is collapsed.
# SPDX-License-Identifier: GPL-2.0
#
# Unisys visorhba configuration
#
config UNISYS_VISORHBA
tristate "Unisys visorhba driver"
depends on UNISYSSPAR && UNISYS_VISORBUS && SCSI
help
The Unisys visorhba driver provides support for s-Par HBA
devices exposed on the s-Par visorbus. When a message is sent
to visorbus to create a HBA device, the probe function of
visorhba is called to create the scsi device.
If you say Y here, you will enable the Unisys visorhba driver.
# SPDX-License-Identifier: GPL-2.0
#
# Makefile for Unisys channel
#
obj-$(CONFIG_UNISYS_VISORHBA) += visorhba.o
visorhba-y := visorhba_main.o
ccflags-y += -I $(srctree)/$(src)/../include
This diff is collapsed.
# SPDX-License-Identifier: GPL-2.0
#
# Unisys visorinput configuration
#
config UNISYS_VISORINPUT
tristate "Unisys visorinput driver"
depends on UNISYSSPAR && UNISYS_VISORBUS && INPUT
help
The Unisys s-Par visorinput driver provides a virtualized system
console (keyboard and mouse) that is accessible through the
s-Par firmware's user interface. s-Par provides video using the EFI
GOP protocol, so If this driver is not present, the Linux guest should
still boot with visible output in the partition desktop, but keyboard
and mouse interaction will not be available.
# SPDX-License-Identifier: GPL-2.0
#
# Makefile for Unisys visorinput
#
obj-$(CONFIG_UNISYS_VISORINPUT) += visorinput.o
This diff is collapsed.
# SPDX-License-Identifier: GPL-2.0
#
# Unisys visornic configuration
#
config UNISYS_VISORNIC
tristate "Unisys visornic driver"
depends on UNISYSSPAR && UNISYS_VISORBUS && NET
help
The Unisys Visornic driver provides support for s-Par network
devices exposed on the s-Par visorbus. When a message is sent
to visorbus to create a network device, the probe function of
visornic is called to create the netdev device. Networking on
s-Par switches will not work if this driver is not selected.
If you say Y here, you will enable the Unisys visornic driver.
# SPDX-License-Identifier: GPL-2.0
#
# Makefile for Unisys channel
#
obj-$(CONFIG_UNISYS_VISORNIC) += visornic.o
visornic-y := visornic_main.o
ccflags-y += -I $(srctree)/$(src)/../include
This diff is collapsed.
# SPDX-License-Identifier: GPL-2.0-only
#
# Unisys visorbus configuration
#
config UNISYS_VISORBUS
tristate "Unisys visorbus driver"
depends on X86_64 && ACPI
help
The visorbus driver is a virtualized bus for the Unisys s-Par firmware.
Virtualized devices allow Linux guests on a system to share disks and
network cards that do not have SR-IOV support, and to be accessed using
the partition desktop application. The visorbus driver is required to
discover devices on an s-Par guest, and must be present for any other
s-Par guest driver to function correctly.
# SPDX-License-Identifier: GPL-2.0
#
# Makefile for Unisys visorbus
#
obj-$(CONFIG_UNISYS_VISORBUS) += visorbus.o
visorbus-y := visorbus_main.o
visorbus-y += visorchannel.o
visorbus-y += visorchipset.o
This diff is collapsed.
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (C) 2010 - 2015 UNISYS CORPORATION
* All rights reserved.
*/
#ifndef __VBUSCHANNEL_H__
#define __VBUSCHANNEL_H__
/*
* The vbus channel is the channel area provided via the BUS_CREATE controlvm
* message for each virtual bus. This channel area is provided to both server
* and client ends of the bus. The channel header area is initialized by
* the server, and the remaining information is filled in by the client.
* We currently use this for the client to provide various information about
* the client devices and client drivers for the server end to see.
*/
#include <linux/uuid.h>
#include <linux/visorbus.h>
/* {193b331b-c58f-11da-95a9-00e08161165f} */
#define VISOR_VBUS_CHANNEL_GUID \
GUID_INIT(0x193b331b, 0xc58f, 0x11da, \
0x95, 0xa9, 0x0, 0xe0, 0x81, 0x61, 0x16, 0x5f)
/*
* Must increment this whenever you insert or delete fields within this channel
* struct. Also increment whenever you change the meaning of fields within this
* channel struct so as to break pre-existing software. Note that you can
* usually add fields to the END of the channel struct withOUT needing to
* increment this.
*/
#define VISOR_VBUS_CHANNEL_VERSIONID 1
/*
* struct visor_vbus_deviceinfo
* @devtype: Short string identifying the device type.
* @drvname: Driver .sys file name.
* @infostrs: Kernel vversion.
* @reserved: Pad size to 256 bytes.
*
* An array of this struct is present in the channel area for each vbus. It is
* filled in by the client side to provide info about the device and driver from
* the client's perspective.
*/
struct visor_vbus_deviceinfo {
u8 devtype[16];
u8 drvname[16];
u8 infostrs[96];
u8 reserved[128];
} __packed;
/*
* struct visor_vbus_headerinfo
* @struct_bytes: Size of this struct in bytes.
* @device_info_struct_bytes: Size of VISOR_VBUS_DEVICEINFO.
* @dev_info_count: Num of items in DevInfo member. This is the
* allocated size.
* @chp_info_offset: Byte offset from beginning of this struct to the
* ChpInfo struct.
* @bus_info_offset: Byte offset from beginning of this struct to the
* BusInfo struct.
* @dev_info_offset: Byte offset from beginning of this struct to the
* DevInfo array.
* @reserved: Natural alignment.
*/
struct visor_vbus_headerinfo {
u32 struct_bytes;
u32 device_info_struct_bytes;
u32 dev_info_count;
u32 chp_info_offset;
u32 bus_info_offset;
u32 dev_info_offset;
u8 reserved[104];
} __packed;
/*
* struct visor_vbus_channel
* @channel_header: Initialized by server.
* @hdr_info: Initialized by server.
* @chp_info: Describes client chipset device and driver.
* @bus_info: Describes client bus device and driver.
* @dev_info: Describes client device and driver for each device on the
* bus.
*/
struct visor_vbus_channel {
struct channel_header channel_header;
struct visor_vbus_headerinfo hdr_info;
struct visor_vbus_deviceinfo chp_info;
struct visor_vbus_deviceinfo bus_info;
struct visor_vbus_deviceinfo dev_info[];
} __packed;
#endif
This diff is collapsed.
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (C) 2010 - 2015 UNISYS CORPORATION
* All rights reserved.
*/
#ifndef __VISORBUS_PRIVATE_H__
#define __VISORBUS_PRIVATE_H__
#include <linux/uuid.h>
#include <linux/utsname.h>
#include <linux/visorbus.h>
#include "controlvmchannel.h"
#include "vbuschannel.h"
struct visor_device *visorbus_get_device_by_id(u32 bus_no, u32 dev_no,
struct visor_device *from);
int visorbus_create_instance(struct visor_device *dev);
void visorbus_remove_instance(struct visor_device *bus_info);
int create_visor_device(struct visor_device *dev_info);
void remove_visor_device(struct visor_device *dev_info);
int visorchipset_device_pause(struct visor_device *dev_info);
int visorchipset_device_resume(struct visor_device *dev_info);
void visorbus_response(struct visor_device *p, int response, int controlvm_id);
void visorbus_device_changestate_response(struct visor_device *p, int response,
struct visor_segment_state state);
int visorbus_init(void);
void visorbus_exit(void);
/* visorchannel access functions */
struct visorchannel *visorchannel_create(u64 physaddr, gfp_t gfp,
const guid_t *guid, bool needs_lock);
void visorchannel_destroy(struct visorchannel *channel);
int visorchannel_read(struct visorchannel *channel, ulong offset,
void *dest, ulong nbytes);
int visorchannel_write(struct visorchannel *channel, ulong offset,
void *dest, ulong nbytes);
u64 visorchannel_get_physaddr(struct visorchannel *channel);
ulong visorchannel_get_nbytes(struct visorchannel *channel);
char *visorchannel_id(struct visorchannel *channel, char *s);
char *visorchannel_zoneid(struct visorchannel *channel, char *s);
u64 visorchannel_get_clientpartition(struct visorchannel *channel);
int visorchannel_set_clientpartition(struct visorchannel *channel,
u64 partition_handle);
char *visorchannel_guid_id(const guid_t *guid, char *s);
void *visorchannel_get_header(struct visorchannel *channel);
#endif
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment