Skip to content
29 changes: 16 additions & 13 deletions Documentation/gpu/i915.rst
Original file line number Diff line number Diff line change
Expand Up @@ -267,19 +267,22 @@ i915 driver.
Intel GPU Basics
----------------

An Intel GPU has multiple engines. There are several engine types.

- RCS engine is for rendering 3D and performing compute, this is named
`I915_EXEC_RENDER` in user space.
- BCS is a blitting (copy) engine, this is named `I915_EXEC_BLT` in user
space.
- VCS is a video encode and decode engine, this is named `I915_EXEC_BSD`
in user space
- VECS is video enhancement engine, this is named `I915_EXEC_VEBOX` in user
space.
- The enumeration `I915_EXEC_DEFAULT` does not refer to specific engine;
instead it is to be used by user space to specify a default rendering
engine (for 3D) that may or may not be the same as RCS.
An Intel GPU has multiple engines. There are several engine types:

- Render Command Streamer (RCS). An engine for rendering 3D and
performing compute.
- Blitting Command Streamer (BCS). An engine for performing blitting and/or
copying operations.
- Video Command Streamer. An engine used for video encoding and decoding. Also
sometimes called 'BSD' in hardware documentation.
- Video Enhancement Command Streamer (VECS). An engine for video enhancement.
Also sometimes called 'VEBOX' in hardware documentation.
- Compute Command Streamer (CCS). An engine that has access to the media and
GPGPU pipelines, but not the 3D pipeline.
- Graphics Security Controller (GSCCS). A dedicated engine for internal
communication with GSC controller on security related tasks like
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nitpick (typo): Hyphenate "security-related" for correct grammar.

Here it functions as a compound adjective before a noun, so it should be written as “security-related tasks.”

Suggested change
communication with GSC controller on security related tasks like
communication with GSC controller on security-related tasks like

High-bandwidth Digital Content Protection (HDCP), Protected Xe Path (PXP),
and HuC firmware authentication.
Comment on lines +282 to +285
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion (typo): The GSCCS expansion and the phrase "GSC controller" are potentially inconsistent/redundant.

Using "Graphics Security Controller (GSCCS)" is misleading, since GSCCS usually means "GSC Command Streamer," and "GSC controller" then expands to "Graphics Security Controller controller." Prefer something like "GSC Command Streamer (GSCCS)" here and then refer to it as "the GSC" later in the sentence.

Suggested change
- Graphics Security Controller (GSCCS). A dedicated engine for internal
communication with GSC controller on security related tasks like
High-bandwidth Digital Content Protection (HDCP), Protected Xe Path (PXP),
and HuC firmware authentication.
- GSC Command Streamer (GSCCS). A dedicated engine for internal
- communication with the GSC on security related tasks like
- High-bandwidth Digital Content Protection (HDCP), Protected Xe Path (PXP),
- and HuC firmware authentication.


The Intel GPU family is a family of integrated GPU's using Unified
Memory Access. For having the GPU "do work", user space will feed the
Expand Down
2 changes: 1 addition & 1 deletion Documentation/usb/gadget_uvc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ might do:
create_frame 1920 1080 uncompressed yuyv

The only uncompressed format currently supported is YUYV, which is detailed at
Documentation/userspace-api/media/v4l/pixfmt-packed.yuv.rst.
Documentation/userspace-api/media/v4l/pixfmt-packed-yuv.rst.

Color Matching Descriptors
~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down
2 changes: 1 addition & 1 deletion drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h
Original file line number Diff line number Diff line change
Expand Up @@ -990,7 +990,7 @@ typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_1 {

/*
*Host code (drivers, BIOS, utilities, etc.) should leave this define set to
*one and check the value returned for GPIOCount at runtime.
*36 and check the value returned for GPIOCount at runtime.
*/
#ifndef MPI2_IO_UNIT_PAGE_3_GPIO_VAL_MAX
#define MPI2_IO_UNIT_PAGE_3_GPIO_VAL_MAX (36)
Expand Down
3 changes: 1 addition & 2 deletions drivers/thermal/thermal_acpi.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@
*/
#include <linux/acpi.h>
#include <linux/units.h>

#include "thermal_core.h"
#include <linux/thermal.h>

/*
* Minimum temperature for full military grade is 218°K (-55°C) and
Expand Down
105 changes: 0 additions & 105 deletions drivers/tty/serial/samsung_tty.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@
#define RXSTAT_DUMMY_READ (0x10000000)

enum s3c24xx_port_type {
TYPE_S3C24XX,
TYPE_S3C6400,
TYPE_APPLE_S5L,
};
Expand Down Expand Up @@ -128,8 +127,6 @@ struct s3c24xx_uart_dma {
};

struct s3c24xx_uart_port {
unsigned char rx_claimed;
unsigned char tx_claimed;
unsigned char rx_enabled;
unsigned char tx_enabled;
unsigned int pm_level;
Expand Down Expand Up @@ -1165,29 +1162,6 @@ static void s3c24xx_serial_release_dma(struct s3c24xx_uart_port *p)
}
}

static void s3c24xx_serial_shutdown(struct uart_port *port)
{
struct s3c24xx_uart_port *ourport = to_ourport(port);

if (ourport->tx_claimed) {
free_irq(ourport->tx_irq, ourport);
ourport->tx_enabled = 0;
ourport->tx_claimed = 0;
ourport->tx_mode = 0;
}

if (ourport->rx_claimed) {
free_irq(ourport->rx_irq, ourport);
ourport->rx_claimed = 0;
ourport->rx_enabled = 0;
}

if (ourport->dma)
s3c24xx_serial_release_dma(ourport);

ourport->tx_in_progress = 0;
}

static void s3c64xx_serial_shutdown(struct uart_port *port)
{
struct s3c24xx_uart_port *ourport = to_ourport(port);
Expand Down Expand Up @@ -1233,48 +1207,6 @@ static void apple_s5l_serial_shutdown(struct uart_port *port)
ourport->tx_in_progress = 0;
}

static int s3c24xx_serial_startup(struct uart_port *port)
{
struct s3c24xx_uart_port *ourport = to_ourport(port);
int ret;

ourport->rx_enabled = 1;

ret = request_irq(ourport->rx_irq, s3c24xx_serial_rx_irq, 0,
s3c24xx_serial_portname(port), ourport);

if (ret != 0) {
dev_err(port->dev, "cannot get irq %d\n", ourport->rx_irq);
return ret;
}

ourport->rx_claimed = 1;

dev_dbg(port->dev, "requesting tx irq...\n");

ourport->tx_enabled = 1;

ret = request_irq(ourport->tx_irq, s3c24xx_serial_tx_irq, 0,
s3c24xx_serial_portname(port), ourport);

if (ret) {
dev_err(port->dev, "cannot get irq %d\n", ourport->tx_irq);
goto err;
}

ourport->tx_claimed = 1;

/* the port reset code should have done the correct
* register setup for the port controls
*/

return ret;

err:
s3c24xx_serial_shutdown(port);
return ret;
}

static int s3c64xx_serial_startup(struct uart_port *port)
{
struct s3c24xx_uart_port *ourport = to_ourport(port);
Expand Down Expand Up @@ -1691,8 +1623,6 @@ static const char *s3c24xx_serial_type(struct uart_port *port)
const struct s3c24xx_uart_port *ourport = to_ourport(port);

switch (ourport->info->type) {
case TYPE_S3C24XX:
return "S3C24XX";
case TYPE_S3C6400:
return "S3C6400/10";
case TYPE_APPLE_S5L:
Expand Down Expand Up @@ -1752,27 +1682,6 @@ static void s3c24xx_serial_put_poll_char(struct uart_port *port,
unsigned char c);
#endif

static const struct uart_ops s3c24xx_serial_ops = {
.pm = s3c24xx_serial_pm,
.tx_empty = s3c24xx_serial_tx_empty,
.get_mctrl = s3c24xx_serial_get_mctrl,
.set_mctrl = s3c24xx_serial_set_mctrl,
.stop_tx = s3c24xx_serial_stop_tx,
.start_tx = s3c24xx_serial_start_tx,
.stop_rx = s3c24xx_serial_stop_rx,
.break_ctl = s3c24xx_serial_break_ctl,
.startup = s3c24xx_serial_startup,
.shutdown = s3c24xx_serial_shutdown,
.set_termios = s3c24xx_serial_set_termios,
.type = s3c24xx_serial_type,
.config_port = s3c24xx_serial_config_port,
.verify_port = s3c24xx_serial_verify_port,
#if defined(CONFIG_SERIAL_SAMSUNG_CONSOLE) && defined(CONFIG_CONSOLE_POLL)
.poll_get_char = s3c24xx_serial_get_poll_char,
.poll_put_char = s3c24xx_serial_put_poll_char,
#endif
};

static const struct uart_ops s3c64xx_serial_ops = {
.pm = s3c24xx_serial_pm,
.tx_empty = s3c24xx_serial_tx_empty,
Expand Down Expand Up @@ -1835,7 +1744,6 @@ static void s3c24xx_serial_init_port_default(int index) {
port->iotype = UPIO_MEM;
port->uartclk = 0;
port->fifosize = 16;
port->ops = &s3c24xx_serial_ops;
port->flags = UPF_BOOT_AUTOCONF;
port->line = index;
}
Expand Down Expand Up @@ -1953,16 +1861,6 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
ourport->tx_irq = ret + 1;
}

switch (ourport->info->type) {
case TYPE_S3C24XX:
ret = platform_get_irq(platdev, 1);
if (ret > 0)
ourport->tx_irq = ret;
break;
default:
break;
}

/*
* DMA is currently supported only on DT platforms, if DMA properties
* are specified.
Expand Down Expand Up @@ -2082,9 +1980,6 @@ static int s3c24xx_serial_probe(struct platform_device *pdev)
&ourport->drv_data->def_cfg;

switch (ourport->info->type) {
case TYPE_S3C24XX:
ourport->port.ops = &s3c24xx_serial_ops;
break;
case TYPE_S3C6400:
ourport->port.ops = &s3c64xx_serial_ops;
break;
Expand Down
9 changes: 1 addition & 8 deletions drivers/video/fbdev/omap2/omapfb/vrfb.c
Original file line number Diff line number Diff line change
Expand Up @@ -368,17 +368,10 @@ static int __init vrfb_probe(struct platform_device *pdev)
return 0;
}

static void __exit vrfb_remove(struct platform_device *pdev)
{
vrfb_loaded = false;
}

static struct platform_driver vrfb_driver = {
.driver.name = "omapvrfb",
.remove = __exit_p(vrfb_remove),
};

module_platform_driver_probe(vrfb_driver, vrfb_probe);
builtin_platform_driver_probe(vrfb_driver, vrfb_probe);

MODULE_AUTHOR("Tomi Valkeinen <tomi.valkeinen@ti.com>");
MODULE_DESCRIPTION("OMAP VRFB");
Expand Down
2 changes: 1 addition & 1 deletion include/linux/seq_buf.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ seq_buf_init(struct seq_buf *s, char *buf, unsigned int size)

/*
* seq_buf have a buffer that might overflow. When this happens
* the len and size are set to be equal.
* len is set to be greater than size.
*/
static inline bool
seq_buf_has_overflowed(struct seq_buf *s)
Expand Down
7 changes: 0 additions & 7 deletions security/keys/internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,13 +109,6 @@ extern void __key_link_end(struct key *keyring,
extern key_ref_t find_key_to_update(key_ref_t keyring_ref,
const struct keyring_index_key *index_key);

extern struct key *keyring_search_instkey(struct key *keyring,
key_serial_t target_id);

extern int iterate_over_keyring(const struct key *keyring,
int (*func)(const struct key *key, void *data),
void *data);

struct keyring_search_context {
struct keyring_index_key index_key;
const struct cred *cred;
Expand Down
2 changes: 0 additions & 2 deletions tools/verification/dot2/dot2k
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ if __name__ == '__main__':
import os
import platform
import sys
import sys
import argparse

parser = argparse.ArgumentParser(description='transform .dot file into kernel rv monitor')
parser.add_argument('-d', "--dot", dest="dot_file", required=True)
Expand Down
Loading