History

misc: mic: remove the MIC drivers

This patch removes the MIC drivers from the kernel tree since the corresponding devices have been discontinued. Removing the dma and char-misc changes in one patch and merging via the char-misc tree is best to avoid any potential build breakage.

Sudeep Dutt committed 6 years ago

Commit 80ade221 parent 3650b2286 files · +0 −26779Browse files

Showing the changes to include/uapi/linux (2 of 86 files). Show all

Unified · Split

2 files
  1. include/uapi/linux/mic_common.h +0 −235
  2. include/uapi/linux/mic_ioctl.h +0 −77
include/uapi/linux/mic_common.h+0−235
@@ -1,235 +0,0 @@
1−/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2−/*
3− * Intel MIC Platform Software Stack (MPSS)
4− *
5− * Copyright(c) 2013 Intel Corporation.
6− *
7− * This program is free software; you can redistribute it and/or modify
8− * it under the terms of the GNU General Public License, version 2, as
9− * published by the Free Software Foundation.
10− *
11− * This program is distributed in the hope that it will be useful, but
12− * WITHOUT ANY WARRANTY; without even the implied warranty of
13− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14− * General Public License for more details.
15− *
16− * The full GNU General Public License is included in this distribution in
17− * the file called "COPYING".
18− *
19− * Intel MIC driver.
20− *
21− */
22−#ifndef __MIC_COMMON_H_
23−#define __MIC_COMMON_H_
24−
25−#include <linux/virtio_ring.h>
26−
27−#define __mic_align(a, x) (((a) + (x) - 1) & ~((x) - 1))
28−
29−/**
30− * struct mic_device_desc: Virtio device information shared between the
31− * virtio driver and userspace backend
32− *
33− * @type: Device type: console/network/disk etc. Type 0/-1 terminates.
34− * @num_vq: Number of virtqueues.
35− * @feature_len: Number of bytes of feature bits. Multiply by 2: one for
36− host features and one for guest acknowledgements.
37− * @config_len: Number of bytes of the config array after virtqueues.
38− * @status: A status byte, written by the Guest.
39− * @config: Start of the following variable length config.
40− */
41−struct mic_device_desc {
42− __s8 type;
43− __u8 num_vq;
44− __u8 feature_len;
45− __u8 config_len;
46− __u8 status;
47− __le64 config[0];
48−} __attribute__ ((aligned(8)));
49−
50−/**
51− * struct mic_device_ctrl: Per virtio device information in the device page
52− * used internally by the host and card side drivers.
53− *
54− * @vdev: Used for storing MIC vdev information by the guest.
55− * @config_change: Set to 1 by host when a config change is requested.
56− * @vdev_reset: Set to 1 by guest to indicate virtio device has been reset.
57− * @guest_ack: Set to 1 by guest to ack a command.
58− * @host_ack: Set to 1 by host to ack a command.
59− * @used_address_updated: Set to 1 by guest when the used address should be
60− * updated.
61− * @c2h_vdev_db: The doorbell number to be used by guest. Set by host.
62− * @h2c_vdev_db: The doorbell number to be used by host. Set by guest.
63− */
64−struct mic_device_ctrl {
65− __le64 vdev;
66− __u8 config_change;
67− __u8 vdev_reset;
68− __u8 guest_ack;
69− __u8 host_ack;
70− __u8 used_address_updated;
71− __s8 c2h_vdev_db;
72− __s8 h2c_vdev_db;
73−} __attribute__ ((aligned(8)));
74−
75−/**
76− * struct mic_bootparam: Virtio device independent information in device page
77− *
78− * @magic: A magic value used by the card to ensure it can see the host
79− * @h2c_config_db: Host to Card Virtio config doorbell set by card
80− * @node_id: Unique id of the node
81− * @h2c_scif_db - Host to card SCIF doorbell set by card
82− * @c2h_scif_db - Card to host SCIF doorbell set by host
83− * @scif_host_dma_addr - SCIF host queue pair DMA address
84− * @scif_card_dma_addr - SCIF card queue pair DMA address
85− */
86−struct mic_bootparam {
87− __le32 magic;
88− __s8 h2c_config_db;
89− __u8 node_id;
90− __u8 h2c_scif_db;
91− __u8 c2h_scif_db;
92− __u64 scif_host_dma_addr;
93− __u64 scif_card_dma_addr;
94−} __attribute__ ((aligned(8)));
95−
96−/**
97− * struct mic_device_page: High level representation of the device page
98− *
99− * @bootparam: The bootparam structure is used for sharing information and
100− * status updates between MIC host and card drivers.
101− * @desc: Array of MIC virtio device descriptors.
102− */
103−struct mic_device_page {
104− struct mic_bootparam bootparam;
105− struct mic_device_desc desc[0];
106−};
107−/**
108− * struct mic_vqconfig: This is how we expect the device configuration field
109− * for a virtqueue to be laid out in config space.
110− *
111− * @address: Guest/MIC physical address of the virtio ring
112− * (avail and desc rings)
113− * @used_address: Guest/MIC physical address of the used ring
114− * @num: The number of entries in the virtio_ring
115− */
116−struct mic_vqconfig {
117− __le64 address;
118− __le64 used_address;
119− __le16 num;
120−} __attribute__ ((aligned(8)));
121−
122−/*
123− * The alignment to use between consumer and producer parts of vring.
124− * This is pagesize for historical reasons.
125− */
126−#define MIC_VIRTIO_RING_ALIGN 4096
127−
128−#define MIC_MAX_VRINGS 4
129−#define MIC_VRING_ENTRIES 128
130−
131−/*
132− * Max vring entries (power of 2) to ensure desc and avail rings
133− * fit in a single page
134− */
135−#define MIC_MAX_VRING_ENTRIES 128
136−
137−/**
138− * Max size of the desc block in bytes: includes:
139− * - struct mic_device_desc
140− * - struct mic_vqconfig (num_vq of these)
141− * - host and guest features
142− * - virtio device config space
143− */
144−#define MIC_MAX_DESC_BLK_SIZE 256
145−
146−/**
147− * struct _mic_vring_info - Host vring info exposed to userspace backend
148− * for the avail index and magic for the card.
149− *
150− * @avail_idx: host avail idx
151− * @magic: A magic debug cookie.
152− */
153−struct _mic_vring_info {
154− __u16 avail_idx;
155− __le32 magic;
156−};
157−
158−/**
159− * struct mic_vring - Vring information.
160− *
161− * @vr: The virtio ring.
162− * @info: Host vring information exposed to the userspace backend for the
163− * avail index and magic for the card.
164− * @va: The va for the buffer allocated for vr and info.
165− * @len: The length of the buffer required for allocating vr and info.
166− */
167−struct mic_vring {
168− struct vring vr;
169− struct _mic_vring_info *info;
170− void *va;
171− int len;
172−};
173−
174−#define mic_aligned_desc_size(d) __mic_align(mic_desc_size(d), 8)
175−
176−#ifndef INTEL_MIC_CARD
177−static inline unsigned mic_desc_size(const struct mic_device_desc *desc)
178−{
179− return sizeof(*desc) + desc->num_vq * sizeof(struct mic_vqconfig)
180− + desc->feature_len * 2 + desc->config_len;
181−}
182−
183−static inline struct mic_vqconfig *
184−mic_vq_config(const struct mic_device_desc *desc)
185−{
186− return (struct mic_vqconfig *)(desc + 1);
187−}
188−
189−static inline __u8 *mic_vq_features(const struct mic_device_desc *desc)
190−{
191− return (__u8 *)(mic_vq_config(desc) + desc->num_vq);
192−}
193−
194−static inline __u8 *mic_vq_configspace(const struct mic_device_desc *desc)
195−{
196− return mic_vq_features(desc) + desc->feature_len * 2;
197−}
198−static inline unsigned mic_total_desc_size(struct mic_device_desc *desc)
199−{
200− return mic_aligned_desc_size(desc) + sizeof(struct mic_device_ctrl);
201−}
202−#endif
203−
204−/* Device page size */
205−#define MIC_DP_SIZE 4096
206−
207−#define MIC_MAGIC 0xc0ffee00
208−
209−/**
210− * enum mic_states - MIC states.
211− */
212−enum mic_states {
213− MIC_READY = 0,
214− MIC_BOOTING,
215− MIC_ONLINE,
216− MIC_SHUTTING_DOWN,
217− MIC_RESETTING,
218− MIC_RESET_FAILED,
219− MIC_LAST
220−};
221−
222−/**
223− * enum mic_status - MIC status reported by card after
224− * a host or card initiated shutdown or a card crash.
225− */
226−enum mic_status {
227− MIC_NOP = 0,
228− MIC_CRASHED,
229− MIC_HALTED,
230− MIC_POWER_OFF,
231− MIC_RESTART,
232− MIC_STATUS_LAST
233−};
234−
235−#endif
include/uapi/linux/mic_ioctl.h+0−77
@@ -1,77 +0,0 @@
1−/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2−/*
3− * Intel MIC Platform Software Stack (MPSS)
4− *
5− * Copyright(c) 2013 Intel Corporation.
6− *
7− * This program is free software; you can redistribute it and/or modify
8− * it under the terms of the GNU General Public License, version 2, as
9− * published by the Free Software Foundation.
10− *
11− * This program is distributed in the hope that it will be useful, but
12− * WITHOUT ANY WARRANTY; without even the implied warranty of
13− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14− * General Public License for more details.
15− *
16− * The full GNU General Public License is included in this distribution in
17− * the file called "COPYING".
18− *
19− * Intel MIC Host driver.
20− *
21− */
22−#ifndef _MIC_IOCTL_H_
23−#define _MIC_IOCTL_H_
24−
25−#include <linux/types.h>
26−
27−/*
28− * mic_copy - MIC virtio descriptor copy.
29− *
30− * @iov: An array of IOVEC structures containing user space buffers.
31− * @iovcnt: Number of IOVEC structures in iov.
32− * @vr_idx: The vring index.
33− * @update_used: A non zero value results in used index being updated.
34− * @out_len: The aggregate of the total length written to or read from
35− * the virtio device.
36− */
37−struct mic_copy_desc {
38−#ifdef __KERNEL__
39− struct iovec __user *iov;
40−#else
41− struct iovec *iov;
42−#endif
43− __u32 iovcnt;
44− __u8 vr_idx;
45− __u8 update_used;
46− __u32 out_len;
47−};
48−
49−/*
50− * Add a new virtio device
51− * The (struct mic_device_desc *) pointer points to a device page entry
52− * for the virtio device consisting of:
53− * - struct mic_device_desc
54− * - struct mic_vqconfig (num_vq of these)
55− * - host and guest features
56− * - virtio device config space
57− * The total size referenced by the pointer should equal the size returned
58− * by desc_size() in mic_common.h
59− */
60−#define MIC_VIRTIO_ADD_DEVICE _IOWR('s', 1, struct mic_device_desc *)
61−
62−/*
63− * Copy the number of entries in the iovec and update the used index
64− * if requested by the user.
65− */
66−#define MIC_VIRTIO_COPY_DESC _IOWR('s', 2, struct mic_copy_desc *)
67−
68−/*
69− * Notify virtio device of a config change
70− * The (__u8 *) pointer points to config space values for the device
71− * as they should be written into the device page. The total size
72− * referenced by the pointer should equal the config_len field of struct
73− * mic_device_desc.
74− */
75−#define MIC_VIRTIO_CONFIG_CHANGE _IOWR('s', 5, __u8 *)
76−
77−#endif