History

Merge tag 'v5.10-rc6' into patchwork

Linux 5.10-rc6 * tag 'v5.10-rc6': (1815 commits) Linux 5.10-rc6 sock: set sk_err to ee_errno on dequeue from errq mptcp: fix NULL ptr dereference on bad MPJ net: openvswitch: fix TTL decrement action netlink message format perf probe: Change function definition check due to broken DWARF perf probe: Fix to die_entrypc() returns error correctly perf stat: Use proper cpu for shadow stats perf record: Synthesize cgroup events only if needed perf diff: Fix error return value in __cmd_diff() perf tools: Update copy of libbpf's hashmap.c x86/mce: Do not overwrite no_way_out if mce_end() fails kvm: x86/mmu: Fix get_mmio_spte() on CPUs supporting 5-level PT KVM: x86: Fix split-irqchip vs interrupt injection window request KVM: x86: handle !lapic_in_kernel case in kvm_cpu_*_extint usb: typec: stusb160x: fix power-opmode property with typec-power-opmode printk: finalize records with trailing newlines can: af_can: can_rx_unregister(): remove WARN() statement from list operation sanity check can: m_can: m_can_dev_setup(): add support for bosch mcan version 3.3.0 can: m_can: fix nominal bitiming tseg2 min for version >= 3.1 can: m_can: m_can_open(): remove IRQF_TRIGGER_FALLING from request_threaded_irq()'s flags ...

Mauro Carvalho Chehab committed 5 years ago

Commit 67e061f2 parents a3f132d b6505452158 files · +26843 −40130Browse files

Showing the changes to include/uapi (9 of 2158 files). Show all

Unified · Split

9 files
  1. include/uapi/linux/devlink.h +2 −0
  2. include/uapi/linux/gpio.h +54 −52
  3. include/uapi/linux/icmpv6.h +1 −0
  4. include/uapi/linux/mic_common.h +0 −235
  5. include/uapi/linux/mic_ioctl.h +0 −77
  6. include/uapi/linux/openvswitch.h +2 −0
  7. include/uapi/linux/vhost.h +4 −0
  8. include/uapi/linux/vhost_types.h +9 −0
  9. include/uapi/sound/compress_offload.h +1 −1
include/uapi/linux/devlink.h+2−0
@@ -526,6 +526,8 @@ enum devlink_attr { · 525 unmodified lines
526 DEVLINK_ATTR_RELOAD_STATS_LIMIT, /* u8 */526 DEVLINK_ATTR_RELOAD_STATS_LIMIT, /* u8 */
527 DEVLINK_ATTR_RELOAD_STATS_VALUE, /* u32 */527 DEVLINK_ATTR_RELOAD_STATS_VALUE, /* u32 */
528 DEVLINK_ATTR_REMOTE_RELOAD_STATS, /* nested */528 DEVLINK_ATTR_REMOTE_RELOAD_STATS, /* nested */
529 DEVLINK_ATTR_RELOAD_ACTION_INFO, /* nested */
530 DEVLINK_ATTR_RELOAD_ACTION_STATS, /* nested */
529 531
530 /* add new attributes above here, update the policy in devlink.c */532 /* add new attributes above here, update the policy in devlink.c */
531 533
include/uapi/linux/gpio.h+54−52
@@ -26,7 +26,7 @@ · 25 unmodified lines
26 * struct gpiochip_info - Information about a certain GPIO chip26 * struct gpiochip_info - Information about a certain GPIO chip
27 * @name: the Linux kernel name of this GPIO chip27 * @name: the Linux kernel name of this GPIO chip
28 * @label: a functional name for this GPIO chip, such as a product28 * @label: a functional name for this GPIO chip, such as a product
29 * number, may be empty29 * number, may be empty (i.e. label[0] == '\0')
30 * @lines: number of GPIO lines on this chip30 * @lines: number of GPIO lines on this chip
31 */31 */
32struct gpiochip_info {32struct gpiochip_info {
@@ -98,7 +98,7 @@ struct gpio_v2_line_values { · 65 unmodified lines
98 * identifying which field of the attribute union is in use.98 * identifying which field of the attribute union is in use.
99 * @GPIO_V2_LINE_ATTR_ID_FLAGS: flags field is in use99 * @GPIO_V2_LINE_ATTR_ID_FLAGS: flags field is in use
100 * @GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES: values field is in use100 * @GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES: values field is in use
101 * @GPIO_V2_LINE_ATTR_ID_DEBOUNCE: debounce_period_us is in use101 * @GPIO_V2_LINE_ATTR_ID_DEBOUNCE: debounce_period_us field is in use
102 */102 */
103enum gpio_v2_line_attr_id {103enum gpio_v2_line_attr_id {
104 GPIO_V2_LINE_ATTR_ID_FLAGS = 1,104 GPIO_V2_LINE_ATTR_ID_FLAGS = 1,
@@ -110,17 +110,17 @@ enum gpio_v2_line_attr_id { · 5 unmodified lines
110 * struct gpio_v2_line_attribute - a configurable attribute of a line110 * struct gpio_v2_line_attribute - a configurable attribute of a line
111 * @id: attribute identifier with value from &enum gpio_v2_line_attr_id111 * @id: attribute identifier with value from &enum gpio_v2_line_attr_id
112 * @padding: reserved for future use and must be zero filled112 * @padding: reserved for future use and must be zero filled
113 * @flags: if id is GPIO_V2_LINE_ATTR_ID_FLAGS, the flags for the GPIO113 * @flags: if id is %GPIO_V2_LINE_ATTR_ID_FLAGS, the flags for the GPIO
114 * line, with values from enum gpio_v2_line_flag, such as114 * line, with values from &enum gpio_v2_line_flag, such as
115 * GPIO_V2_LINE_FLAG_ACTIVE_LOW, GPIO_V2_LINE_FLAG_OUTPUT etc, OR:ed115 * %GPIO_V2_LINE_FLAG_ACTIVE_LOW, %GPIO_V2_LINE_FLAG_OUTPUT etc, added
116 * together. This overrides the default flags contained in the &struct116 * together. This overrides the default flags contained in the &struct
117 * gpio_v2_line_config for the associated line.117 * gpio_v2_line_config for the associated line.
118 * @values: if id is GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES, a bitmap118 * @values: if id is %GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES, a bitmap
119 * containing the values to which the lines will be set, with each bit119 * containing the values to which the lines will be set, with each bit
120 * number corresponding to the index into &struct120 * number corresponding to the index into &struct
121 * gpio_v2_line_request.offsets.121 * gpio_v2_line_request.offsets.
122 * @debounce_period_us: if id is GPIO_V2_LINE_ATTR_ID_DEBOUNCE, the desired122 * @debounce_period_us: if id is %GPIO_V2_LINE_ATTR_ID_DEBOUNCE, the
123 * debounce period, in microseconds123 * desired debounce period, in microseconds
124 */124 */
125struct gpio_v2_line_attribute {125struct gpio_v2_line_attribute {
126 __u32 id;126 __u32 id;
@@ -147,12 +147,12 @@ struct gpio_v2_line_config_attribute { · 20 unmodified lines
147 147
148/**148/**
149 * struct gpio_v2_line_config - Configuration for GPIO lines149 * struct gpio_v2_line_config - Configuration for GPIO lines
150 * @flags: flags for the GPIO lines, with values from enum150 * @flags: flags for the GPIO lines, with values from &enum
151 * gpio_v2_line_flag, such as GPIO_V2_LINE_FLAG_ACTIVE_LOW,151 * gpio_v2_line_flag, such as %GPIO_V2_LINE_FLAG_ACTIVE_LOW,
152 * GPIO_V2_LINE_FLAG_OUTPUT etc, OR:ed together. This is the default for152 * %GPIO_V2_LINE_FLAG_OUTPUT etc, added together. This is the default for
153 * all requested lines but may be overridden for particular lines using153 * all requested lines but may be overridden for particular lines using
154 * attrs.154 * @attrs.
155 * @num_attrs: the number of attributes in attrs155 * @num_attrs: the number of attributes in @attrs
156 * @padding: reserved for future use and must be zero filled156 * @padding: reserved for future use and must be zero filled
157 * @attrs: the configuration attributes associated with the requested157 * @attrs: the configuration attributes associated with the requested
158 * lines. Any attribute should only be associated with a particular line158 * lines. Any attribute should only be associated with a particular line
@@ -175,17 +175,17 @@ struct gpio_v2_line_config { · 16 unmodified lines
175 * "my-bitbanged-relay"175 * "my-bitbanged-relay"
176 * @config: requested configuration for the lines.176 * @config: requested configuration for the lines.
177 * @num_lines: number of lines requested in this request, i.e. the number177 * @num_lines: number of lines requested in this request, i.e. the number
178 * of valid fields in the GPIO_V2_LINES_MAX sized arrays, set to 1 to178 * of valid fields in the %GPIO_V2_LINES_MAX sized arrays, set to 1 to
179 * request a single line179 * request a single line
180 * @event_buffer_size: a suggested minimum number of line events that the180 * @event_buffer_size: a suggested minimum number of line events that the
181 * kernel should buffer. This is only relevant if edge detection is181 * kernel should buffer. This is only relevant if edge detection is
182 * enabled in the configuration. Note that this is only a suggested value182 * enabled in the configuration. Note that this is only a suggested value
183 * and the kernel may allocate a larger buffer or cap the size of the183 * and the kernel may allocate a larger buffer or cap the size of the
184 * buffer. If this field is zero then the buffer size defaults to a minimum184 * buffer. If this field is zero then the buffer size defaults to a minimum
185 * of num_lines*16.185 * of @num_lines * 16.
186 * @padding: reserved for future use and must be zero filled186 * @padding: reserved for future use and must be zero filled
187 * @fd: if successful this field will contain a valid anonymous file handle187 * @fd: if successful this field will contain a valid anonymous file handle
188 * after a GPIO_GET_LINE_IOCTL operation, zero or negative value means188 * after a %GPIO_GET_LINE_IOCTL operation, zero or negative value means
189 * error189 * error
190 */190 */
191struct gpio_v2_line_request {191struct gpio_v2_line_request {
@@ -203,15 +203,16 @@ struct gpio_v2_line_request { · 11 unmodified lines
203 * struct gpio_v2_line_info - Information about a certain GPIO line203 * struct gpio_v2_line_info - Information about a certain GPIO line
204 * @name: the name of this GPIO line, such as the output pin of the line on204 * @name: the name of this GPIO line, such as the output pin of the line on
205 * the chip, a rail or a pin header name on a board, as specified by the205 * the chip, a rail or a pin header name on a board, as specified by the
206 * GPIO chip, may be empty206 * GPIO chip, may be empty (i.e. name[0] == '\0')
207 * @consumer: a functional name for the consumer of this GPIO line as set207 * @consumer: a functional name for the consumer of this GPIO line as set
208 * by whatever is using it, will be empty if there is no current user but208 * by whatever is using it, will be empty if there is no current user but
209 * may also be empty if the consumer doesn't set this up209 * may also be empty if the consumer doesn't set this up
210 * @flags: flags for the GPIO line, such as GPIO_V2_LINE_FLAG_ACTIVE_LOW,
211 * GPIO_V2_LINE_FLAG_OUTPUT etc, OR:ed together
212 * @offset: the local offset on this GPIO chip, fill this in when210 * @offset: the local offset on this GPIO chip, fill this in when
213 * requesting the line information from the kernel211 * requesting the line information from the kernel
214 * @num_attrs: the number of attributes in attrs212 * @num_attrs: the number of attributes in @attrs
213 * @flags: flags for the GPIO lines, with values from &enum
214 * gpio_v2_line_flag, such as %GPIO_V2_LINE_FLAG_ACTIVE_LOW,
215 * %GPIO_V2_LINE_FLAG_OUTPUT etc, added together.
215 * @attrs: the configuration attributes associated with the line216 * @attrs: the configuration attributes associated with the line
216 * @padding: reserved for future use217 * @padding: reserved for future use
217 */218 */
@@ -244,7 +245,7 @@ enum gpio_v2_line_changed_type { · 26 unmodified lines
244 * of a GPIO line245 * of a GPIO line
245 * @info: updated line information246 * @info: updated line information
246 * @timestamp_ns: estimate of time of status change occurrence, in nanoseconds247 * @timestamp_ns: estimate of time of status change occurrence, in nanoseconds
247 * @event_type: the type of change with a value from enum248 * @event_type: the type of change with a value from &enum
248 * gpio_v2_line_changed_type249 * gpio_v2_line_changed_type
249 * @padding: reserved for future use250 * @padding: reserved for future use
250 */251 */
@@ -269,10 +270,10 @@ enum gpio_v2_line_event_id { · 18 unmodified lines
269/**270/**
270 * struct gpio_v2_line_event - The actual event being pushed to userspace271 * struct gpio_v2_line_event - The actual event being pushed to userspace
271 * @timestamp_ns: best estimate of time of event occurrence, in nanoseconds.272 * @timestamp_ns: best estimate of time of event occurrence, in nanoseconds.
272 * The timestamp_ns is read from CLOCK_MONOTONIC and is intended to allow the273 * The @timestamp_ns is read from %CLOCK_MONOTONIC and is intended to allow
273 * accurate measurement of the time between events. It does not provide274 * the accurate measurement of the time between events. It does not provide
274 * the wall-clock time.275 * the wall-clock time.
275 * @id: event identifier with value from enum gpio_v2_line_event_id276 * @id: event identifier with value from &enum gpio_v2_line_event_id
276 * @offset: the offset of the line that triggered the event277 * @offset: the offset of the line that triggered the event
277 * @seqno: the sequence number for this event in the sequence of events for278 * @seqno: the sequence number for this event in the sequence of events for
278 * all the lines in this line request279 * all the lines in this line request
@@ -291,7 +292,7 @@ struct gpio_v2_line_event { · 12 unmodified lines
291};292};
292 293
293/*294/*
294 * ABI v1295 * ABI v1
295 *296 *
296 * This version of the ABI is deprecated.297 * This version of the ABI is deprecated.
297 * Use the latest version of the ABI, defined above, instead.298 * Use the latest version of the ABI, defined above, instead.
@@ -314,13 +315,13 @@ struct gpio_v2_line_event { · 16 unmodified lines
314 * @flags: various flags for this line315 * @flags: various flags for this line
315 * @name: the name of this GPIO line, such as the output pin of the line on the316 * @name: the name of this GPIO line, such as the output pin of the line on the
316 * chip, a rail or a pin header name on a board, as specified by the gpio317 * chip, a rail or a pin header name on a board, as specified by the gpio
317 * chip, may be empty318 * chip, may be empty (i.e. name[0] == '\0')
318 * @consumer: a functional name for the consumer of this GPIO line as set by319 * @consumer: a functional name for the consumer of this GPIO line as set by
319 * whatever is using it, will be empty if there is no current user but may320 * whatever is using it, will be empty if there is no current user but may
320 * also be empty if the consumer doesn't set this up321 * also be empty if the consumer doesn't set this up
321 *322 *
322 * This struct is part of ABI v1 and is deprecated.323 * Note: This struct is part of ABI v1 and is deprecated.
323 * Use struct gpio_v2_line_info instead.324 * Use &struct gpio_v2_line_info instead.
324 */325 */
325struct gpioline_info {326struct gpioline_info {
326 __u32 line_offset;327 __u32 line_offset;
@@ -344,17 +345,18 @@ enum { · 17 unmodified lines
344 * of a GPIO line345 * of a GPIO line
345 * @info: updated line information346 * @info: updated line information
346 * @timestamp: estimate of time of status change occurrence, in nanoseconds347 * @timestamp: estimate of time of status change occurrence, in nanoseconds
347 * @event_type: one of GPIOLINE_CHANGED_REQUESTED, GPIOLINE_CHANGED_RELEASED348 * @event_type: one of %GPIOLINE_CHANGED_REQUESTED,
348 * and GPIOLINE_CHANGED_CONFIG349 * %GPIOLINE_CHANGED_RELEASED and %GPIOLINE_CHANGED_CONFIG
350 * @padding: reserved for future use
349 *351 *
350 * Note: struct gpioline_info embedded here has 32-bit alignment on its own,352 * The &struct gpioline_info embedded here has 32-bit alignment on its own,
351 * but it works fine with 64-bit alignment too. With its 72 byte size, we can353 * but it works fine with 64-bit alignment too. With its 72 byte size, we can
352 * guarantee there are no implicit holes between it and subsequent members.354 * guarantee there are no implicit holes between it and subsequent members.
353 * The 20-byte padding at the end makes sure we don't add any implicit padding355 * The 20-byte padding at the end makes sure we don't add any implicit padding
354 * at the end of the structure on 64-bit architectures.356 * at the end of the structure on 64-bit architectures.
355 *357 *
356 * This struct is part of ABI v1 and is deprecated.358 * Note: This struct is part of ABI v1 and is deprecated.
357 * Use struct gpio_v2_line_info_changed instead.359 * Use &struct gpio_v2_line_info_changed instead.
358 */360 */
359struct gpioline_info_changed {361struct gpioline_info_changed {
360 struct gpioline_info info;362 struct gpioline_info info;
@@ -378,13 +380,13 @@ struct gpioline_info_changed { · 17 unmodified lines
378 * @lineoffsets: an array of desired lines, specified by offset index for the380 * @lineoffsets: an array of desired lines, specified by offset index for the
379 * associated GPIO device381 * associated GPIO device
380 * @flags: desired flags for the desired GPIO lines, such as382 * @flags: desired flags for the desired GPIO lines, such as
381 * GPIOHANDLE_REQUEST_OUTPUT, GPIOHANDLE_REQUEST_ACTIVE_LOW etc, OR:ed383 * %GPIOHANDLE_REQUEST_OUTPUT, %GPIOHANDLE_REQUEST_ACTIVE_LOW etc, added
382 * together. Note that even if multiple lines are requested, the same flags384 * together. Note that even if multiple lines are requested, the same flags
383 * must be applicable to all of them, if you want lines with individual385 * must be applicable to all of them, if you want lines with individual
384 * flags set, request them one by one. It is possible to select386 * flags set, request them one by one. It is possible to select
385 * a batch of input or output lines, but they must all have the same387 * a batch of input or output lines, but they must all have the same
386 * characteristics, i.e. all inputs or all outputs, all active low etc388 * characteristics, i.e. all inputs or all outputs, all active low etc
387 * @default_values: if the GPIOHANDLE_REQUEST_OUTPUT is set for a requested389 * @default_values: if the %GPIOHANDLE_REQUEST_OUTPUT is set for a requested
388 * line, this specifies the default output value, should be 0 (low) or390 * line, this specifies the default output value, should be 0 (low) or
389 * 1 (high), anything else than 0 or 1 will be interpreted as 1 (high)391 * 1 (high), anything else than 0 or 1 will be interpreted as 1 (high)
390 * @consumer_label: a desired consumer label for the selected GPIO line(s)392 * @consumer_label: a desired consumer label for the selected GPIO line(s)
@@ -392,11 +394,11 @@ struct gpioline_info_changed { · 1 unmodified line
392 * @lines: number of lines requested in this request, i.e. the number of394 * @lines: number of lines requested in this request, i.e. the number of
393 * valid fields in the above arrays, set to 1 to request a single line395 * valid fields in the above arrays, set to 1 to request a single line
394 * @fd: if successful this field will contain a valid anonymous file handle396 * @fd: if successful this field will contain a valid anonymous file handle
395 * after a GPIO_GET_LINEHANDLE_IOCTL operation, zero or negative value397 * after a %GPIO_GET_LINEHANDLE_IOCTL operation, zero or negative value
396 * means error398 * means error
397 *399 *
398 * This struct is part of ABI v1 and is deprecated.400 * Note: This struct is part of ABI v1 and is deprecated.
399 * Use struct gpio_v2_line_request instead.401 * Use &struct gpio_v2_line_request instead.
400 */402 */
401struct gpiohandle_request {403struct gpiohandle_request {
402 __u32 lineoffsets[GPIOHANDLES_MAX];404 __u32 lineoffsets[GPIOHANDLES_MAX];
@@ -410,15 +412,15 @@ struct gpiohandle_request { · 7 unmodified lines
410/**412/**
411 * struct gpiohandle_config - Configuration for a GPIO handle request413 * struct gpiohandle_config - Configuration for a GPIO handle request
412 * @flags: updated flags for the requested GPIO lines, such as414 * @flags: updated flags for the requested GPIO lines, such as
413 * GPIOHANDLE_REQUEST_OUTPUT, GPIOHANDLE_REQUEST_ACTIVE_LOW etc, OR:ed415 * %GPIOHANDLE_REQUEST_OUTPUT, %GPIOHANDLE_REQUEST_ACTIVE_LOW etc, added
414 * together416 * together
415 * @default_values: if the GPIOHANDLE_REQUEST_OUTPUT is set in flags,417 * @default_values: if the %GPIOHANDLE_REQUEST_OUTPUT is set in flags,
416 * this specifies the default output value, should be 0 (low) or418 * this specifies the default output value, should be 0 (low) or
417 * 1 (high), anything else than 0 or 1 will be interpreted as 1 (high)419 * 1 (high), anything else than 0 or 1 will be interpreted as 1 (high)
418 * @padding: reserved for future use and should be zero filled420 * @padding: reserved for future use and should be zero filled
419 *421 *
420 * This struct is part of ABI v1 and is deprecated.422 * Note: This struct is part of ABI v1 and is deprecated.
421 * Use struct gpio_v2_line_config instead.423 * Use &struct gpio_v2_line_config instead.
422 */424 */
423struct gpiohandle_config {425struct gpiohandle_config {
424 __u32 flags;426 __u32 flags;
@@ -432,8 +434,8 @@ struct gpiohandle_config { · 7 unmodified lines
432 * state of a line, when setting the state of lines these should contain434 * state of a line, when setting the state of lines these should contain
433 * the desired target state435 * the desired target state
434 *436 *
435 * This struct is part of ABI v1 and is deprecated.437 * Note: This struct is part of ABI v1 and is deprecated.
436 * Use struct gpio_v2_line_values instead.438 * Use &struct gpio_v2_line_values instead.
437 */439 */
438struct gpiohandle_data {440struct gpiohandle_data {
439 __u8 values[GPIOHANDLES_MAX];441 __u8 values[GPIOHANDLES_MAX];
@@ -449,17 +451,17 @@ struct gpiohandle_data { · 9 unmodified lines
449 * @lineoffset: the desired line to subscribe to events from, specified by451 * @lineoffset: the desired line to subscribe to events from, specified by
450 * offset index for the associated GPIO device452 * offset index for the associated GPIO device
451 * @handleflags: desired handle flags for the desired GPIO line, such as453 * @handleflags: desired handle flags for the desired GPIO line, such as
452 * GPIOHANDLE_REQUEST_ACTIVE_LOW or GPIOHANDLE_REQUEST_OPEN_DRAIN454 * %GPIOHANDLE_REQUEST_ACTIVE_LOW or %GPIOHANDLE_REQUEST_OPEN_DRAIN
453 * @eventflags: desired flags for the desired GPIO event line, such as455 * @eventflags: desired flags for the desired GPIO event line, such as
454 * GPIOEVENT_REQUEST_RISING_EDGE or GPIOEVENT_REQUEST_FALLING_EDGE456 * %GPIOEVENT_REQUEST_RISING_EDGE or %GPIOEVENT_REQUEST_FALLING_EDGE
455 * @consumer_label: a desired consumer label for the selected GPIO line(s)457 * @consumer_label: a desired consumer label for the selected GPIO line(s)
456 * such as "my-listener"458 * such as "my-listener"
457 * @fd: if successful this field will contain a valid anonymous file handle459 * @fd: if successful this field will contain a valid anonymous file handle
458 * after a GPIO_GET_LINEEVENT_IOCTL operation, zero or negative value460 * after a %GPIO_GET_LINEEVENT_IOCTL operation, zero or negative value
459 * means error461 * means error
460 *462 *
461 * This struct is part of ABI v1 and is deprecated.463 * Note: This struct is part of ABI v1 and is deprecated.
462 * Use struct gpio_v2_line_request instead.464 * Use &struct gpio_v2_line_request instead.
463 */465 */
464struct gpioevent_request {466struct gpioevent_request {
465 __u32 lineoffset;467 __u32 lineoffset;
@@ -469,7 +471,7 @@ struct gpioevent_request { · 3 unmodified lines
469 int fd;471 int fd;
470};472};
471 473
472/**474/*
473 * GPIO event types475 * GPIO event types
474 */476 */
475#define GPIOEVENT_EVENT_RISING_EDGE 0x01477#define GPIOEVENT_EVENT_RISING_EDGE 0x01
@@ -480,8 +482,8 @@ struct gpioevent_request { · 4 unmodified lines
480 * @timestamp: best estimate of time of event occurrence, in nanoseconds482 * @timestamp: best estimate of time of event occurrence, in nanoseconds
481 * @id: event identifier483 * @id: event identifier
482 *484 *
483 * This struct is part of ABI v1 and is deprecated.485 * Note: This struct is part of ABI v1 and is deprecated.
484 * Use struct gpio_v2_line_event instead.486 * Use &struct gpio_v2_line_event instead.
485 */487 */
486struct gpioevent_data {488struct gpioevent_data {
487 __u64 timestamp;489 __u64 timestamp;
include/uapi/linux/icmpv6.h+1−0
@@ -138,6 +138,7 @@ struct icmp6hdr { · 137 unmodified lines
138#define ICMPV6_HDR_FIELD 0138#define ICMPV6_HDR_FIELD 0
139#define ICMPV6_UNK_NEXTHDR 1139#define ICMPV6_UNK_NEXTHDR 1
140#define ICMPV6_UNK_OPTION 2140#define ICMPV6_UNK_OPTION 2
141#define ICMPV6_HDR_INCOMP 3
141 142
142/*143/*
143 * constants for (set|get)sockopt144 * constants for (set|get)sockopt
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 */
41struct 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 */
64struct 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 */
86struct 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 */
103struct 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 */
116struct 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 */
153struct _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 */
167struct 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
177static 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
183static inline struct mic_vqconfig *
184mic_vq_config(const struct mic_device_desc *desc)
185{
186 return (struct mic_vqconfig *)(desc + 1);
187}
188
189static inline __u8 *mic_vq_features(const struct mic_device_desc *desc)
190{
191 return (__u8 *)(mic_vq_config(desc) + desc->num_vq);
192}
193
194static inline __u8 *mic_vq_configspace(const struct mic_device_desc *desc)
195{
196 return mic_vq_features(desc) + desc->feature_len * 2;
197}
198static 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 */
212enum 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 */
226enum 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 */
37struct 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
include/uapi/linux/openvswitch.h+2−0
@@ -1058,4 +1058,6 @@ enum ovs_dec_ttl_attr { · 1057 unmodified lines
1058 __OVS_DEC_TTL_ATTR_MAX1058 __OVS_DEC_TTL_ATTR_MAX
1059};1059};
1060 1060
1061#define OVS_DEC_TTL_ATTR_MAX (__OVS_DEC_TTL_ATTR_MAX - 1)
1062
1061#endif /* _LINUX_OPENVSWITCH_H */1063#endif /* _LINUX_OPENVSWITCH_H */
include/uapi/linux/vhost.h+4−0
@@ -146,4 +146,8 @@ · 145 unmodified lines
146 146
147/* Set event fd for config interrupt*/147/* Set event fd for config interrupt*/
148#define VHOST_VDPA_SET_CONFIG_CALL _IOW(VHOST_VIRTIO, 0x77, int)148#define VHOST_VDPA_SET_CONFIG_CALL _IOW(VHOST_VIRTIO, 0x77, int)
149
150/* Get the valid iova range */
151#define VHOST_VDPA_GET_IOVA_RANGE _IOR(VHOST_VIRTIO, 0x78, \
152 struct vhost_vdpa_iova_range)
149#endif153#endif
include/uapi/linux/vhost_types.h+9−0
@@ -138,6 +138,15 @@ struct vhost_vdpa_config { · 137 unmodified lines
138 __u8 buf[0];138 __u8 buf[0];
139};139};
140 140
141/* vhost vdpa IOVA range
142 * @first: First address that can be mapped by vhost-vDPA
143 * @last: Last address that can be mapped by vhost-vDPA
144 */
145struct vhost_vdpa_iova_range {
146 __u64 first;
147 __u64 last;
148};
149
141/* Feature bits */150/* Feature bits */
142/* Log all write descriptors. Can be changed while device is active. */151/* Log all write descriptors. Can be changed while device is active. */
143#define VHOST_F_LOG_ALL 26152#define VHOST_F_LOG_ALL 26
include/uapi/sound/compress_offload.h+1−1
@@ -144,7 +144,7 @@ struct snd_compr_metadata { · 143 unmodified lines
144 __u32 value[8];144 __u32 value[8];
145} __attribute__((packed, aligned(4)));145} __attribute__((packed, aligned(4)));
146 146
147/**147/*
148 * compress path ioctl definitions148 * compress path ioctl definitions
149 * SNDRV_COMPRESS_GET_CAPS: Query capability of DSP149 * SNDRV_COMPRESS_GET_CAPS: Query capability of DSP
150 * SNDRV_COMPRESS_GET_CODEC_CAPS: Query capability of a codec150 * SNDRV_COMPRESS_GET_CODEC_CAPS: Query capability of a codec