mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-03-09 15:40:20 +00:00
Update RPI 4.19 patches
This commit is contained in:
parent
d5a0aade8c
commit
a109b26606
16 changed files with 1441 additions and 0 deletions
|
@ -0,0 +1,31 @@
|
|||
From 365ab793942c71df7615392f13cda736f12dceed Mon Sep 17 00:00:00 2001
|
||||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Sun, 5 May 2019 21:07:12 +0100
|
||||
Subject: [PATCH 493/515] arm: dts: overlays: rpi-sense: add upstream humidity
|
||||
compatible
|
||||
|
||||
The upstream humidiity driver uses "st,hts221" for the compatible
|
||||
string so add that in as well so it will work with an unmodified
|
||||
upstream kernel driver. We leave the downstream as the priority.
|
||||
|
||||
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
|
||||
---
|
||||
arch/arm/boot/dts/overlays/rpi-sense-overlay.dts | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/overlays/rpi-sense-overlay.dts b/arch/arm/boot/dts/overlays/rpi-sense-overlay.dts
|
||||
index 27153240e1be..6eba2a10bfa5 100644
|
||||
--- a/arch/arm/boot/dts/overlays/rpi-sense-overlay.dts
|
||||
+++ b/arch/arm/boot/dts/overlays/rpi-sense-overlay.dts
|
||||
@@ -38,7 +38,7 @@
|
||||
};
|
||||
|
||||
hts221-humid@5f {
|
||||
- compatible = "st,hts221-humid";
|
||||
+ compatible = "st,hts221-humid", "st,hts221";
|
||||
reg = <0x5f>;
|
||||
status = "okay";
|
||||
};
|
||||
--
|
||||
2.19.1
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
From ebfca1b4585632188f1e1a57b53b414523daa5c0 Mon Sep 17 00:00:00 2001
|
||||
From: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
Date: Thu, 2 May 2019 15:50:01 +0100
|
||||
Subject: [PATCH 494/515] staging: mmal-vchiq: Fix memory leak in error path
|
||||
|
||||
On error, vchiq_mmal_component_init could leave the
|
||||
event context allocated for ports.
|
||||
Clean them up in the error path.
|
||||
|
||||
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
---
|
||||
.../vc04_services/vchiq-mmal/mmal-vchiq.c | 27 +++++++++++++------
|
||||
1 file changed, 19 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
|
||||
index bce42b652e57..c82fb0fad9d4 100644
|
||||
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
|
||||
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
|
||||
@@ -1848,9 +1848,26 @@ static void free_event_context(struct vchiq_mmal_port *port)
|
||||
{
|
||||
struct mmal_msg_context *ctx = port->event_context;
|
||||
|
||||
+ if (!ctx)
|
||||
+ return;
|
||||
+
|
||||
kfree(ctx->u.bulk.buffer->buffer);
|
||||
kfree(ctx->u.bulk.buffer);
|
||||
release_msg_context(ctx);
|
||||
+ port->event_context = NULL;
|
||||
+}
|
||||
+
|
||||
+static void release_all_event_contexts(struct vchiq_mmal_component *component)
|
||||
+{
|
||||
+ int idx;
|
||||
+
|
||||
+ for (idx = 0; idx < component->inputs; idx++)
|
||||
+ free_event_context(&component->input[idx]);
|
||||
+ for (idx = 0; idx < component->outputs; idx++)
|
||||
+ free_event_context(&component->output[idx]);
|
||||
+ for (idx = 0; idx < component->clocks; idx++)
|
||||
+ free_event_context(&component->clock[idx]);
|
||||
+ free_event_context(&component->control);
|
||||
}
|
||||
|
||||
/* Initialise a mmal component and its ports
|
||||
@@ -1948,6 +1965,7 @@ int vchiq_mmal_component_init(struct vchiq_mmal_instance *instance,
|
||||
|
||||
release_component:
|
||||
destroy_component(instance, component);
|
||||
+ release_all_event_contexts(component);
|
||||
unlock:
|
||||
if (component)
|
||||
component->in_use = 0;
|
||||
@@ -1975,14 +1993,7 @@ int vchiq_mmal_component_finalise(struct vchiq_mmal_instance *instance,
|
||||
|
||||
component->in_use = 0;
|
||||
|
||||
- for (idx = 0; idx < component->inputs; idx++)
|
||||
- free_event_context(&component->input[idx]);
|
||||
- for (idx = 0; idx < component->outputs; idx++)
|
||||
- free_event_context(&component->output[idx]);
|
||||
- for (idx = 0; idx < component->clocks; idx++)
|
||||
- free_event_context(&component->clock[idx]);
|
||||
-
|
||||
- free_event_context(&component->control);
|
||||
+ release_all_event_contexts(component);
|
||||
|
||||
mutex_unlock(&instance->vchiq_mutex);
|
||||
|
||||
--
|
||||
2.19.1
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
From ed98ed3ae5aa7d2a13b7606373fc2b788edd1b4e Mon Sep 17 00:00:00 2001
|
||||
From: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
Date: Fri, 3 May 2019 13:27:51 +0100
|
||||
Subject: [PATCH 495/515] staging: vchiq-mmal: Fix memory leak of vchiq
|
||||
instance
|
||||
|
||||
The vchiq instance was allocated from vchiq_mmal_init via
|
||||
vchi_initialise, but was never released with vchi_disconnect.
|
||||
|
||||
Retain the handle and release it from vchiq_mmal_finalise.
|
||||
|
||||
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
---
|
||||
drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c | 9 +++++++--
|
||||
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
|
||||
index c82fb0fad9d4..5bfba5b5b08f 100644
|
||||
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
|
||||
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
|
||||
@@ -176,6 +176,7 @@ struct mmal_msg_context {
|
||||
};
|
||||
|
||||
struct vchiq_mmal_instance {
|
||||
+ VCHI_INSTANCE_T vchi_instance;
|
||||
VCHI_SERVICE_HANDLE_T handle;
|
||||
|
||||
/* ensure serialised access to service */
|
||||
@@ -1981,7 +1982,7 @@ EXPORT_SYMBOL_GPL(vchiq_mmal_component_init);
|
||||
int vchiq_mmal_component_finalise(struct vchiq_mmal_instance *instance,
|
||||
struct vchiq_mmal_component *component)
|
||||
{
|
||||
- int ret, idx;
|
||||
+ int ret;
|
||||
|
||||
if (mutex_lock_interruptible(&instance->vchiq_mutex))
|
||||
return -EINTR;
|
||||
@@ -2094,6 +2095,8 @@ int vchiq_mmal_finalise(struct vchiq_mmal_instance *instance)
|
||||
|
||||
idr_destroy(&instance->context_map);
|
||||
|
||||
+ vchi_disconnect(instance->vchi_instance);
|
||||
+
|
||||
kfree(instance);
|
||||
|
||||
return status;
|
||||
@@ -2105,7 +2108,7 @@ int vchiq_mmal_init(struct vchiq_mmal_instance **out_instance)
|
||||
int status;
|
||||
struct vchiq_mmal_instance *instance;
|
||||
static VCHI_CONNECTION_T *vchi_connection;
|
||||
- static VCHI_INSTANCE_T vchi_instance;
|
||||
+ VCHI_INSTANCE_T vchi_instance;
|
||||
SERVICE_CREATION_T params = {
|
||||
.version = VCHI_VERSION_EX(VC_MMAL_VER, VC_MMAL_MIN_VER),
|
||||
.service_id = VC_MMAL_SERVER_NAME,
|
||||
@@ -2151,6 +2154,8 @@ int vchiq_mmal_init(struct vchiq_mmal_instance **out_instance)
|
||||
if (!instance)
|
||||
return -ENOMEM;
|
||||
|
||||
+ instance->vchi_instance = vchi_instance;
|
||||
+
|
||||
mutex_init(&instance->vchiq_mutex);
|
||||
|
||||
instance->bulk_scratch = vmalloc(PAGE_SIZE);
|
||||
--
|
||||
2.19.1
|
||||
|
|
@ -0,0 +1,171 @@
|
|||
From 8a61a0791ab90cd7d2c1ef270ebc056580940b0e Mon Sep 17 00:00:00 2001
|
||||
From: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
Date: Mon, 13 May 2019 17:34:29 +0100
|
||||
Subject: [PATCH 496/515] Revert "video: bcm2708_fb: Try allocating on the ARM
|
||||
and passing to VPU"
|
||||
|
||||
This reverts commit ca36c709fce57e8023d2b8b354376bf161601a49.
|
||||
|
||||
The driver tries a cma_alloc to avoid using gpu_mem, but should
|
||||
that fail the core code is logging an error with no easy way to
|
||||
test whether it will succeed or fail first.
|
||||
|
||||
Revert until we either totally give up on gpu_mem and increase
|
||||
CMA always, or find a way to try an allocation.
|
||||
|
||||
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
---
|
||||
drivers/video/fbdev/bcm2708_fb.c | 102 +++------------------
|
||||
include/soc/bcm2835/raspberrypi-firmware.h | 1 -
|
||||
2 files changed, 12 insertions(+), 91 deletions(-)
|
||||
|
||||
diff --git a/drivers/video/fbdev/bcm2708_fb.c b/drivers/video/fbdev/bcm2708_fb.c
|
||||
index 0cdec747d5e3..209a1504a160 100644
|
||||
--- a/drivers/video/fbdev/bcm2708_fb.c
|
||||
+++ b/drivers/video/fbdev/bcm2708_fb.c
|
||||
@@ -98,11 +98,6 @@ struct bcm2708_fb {
|
||||
struct bcm2708_fb_stats stats;
|
||||
unsigned long fb_bus_address;
|
||||
struct { u32 base, length; } gpu;
|
||||
-
|
||||
- bool disable_arm_alloc;
|
||||
- unsigned int image_size;
|
||||
- dma_addr_t dma_addr;
|
||||
- void *cpuaddr;
|
||||
};
|
||||
|
||||
#define to_bcm2708(info) container_of(info, struct bcm2708_fb, fb)
|
||||
@@ -288,88 +283,23 @@ static int bcm2708_fb_set_par(struct fb_info *info)
|
||||
.xoffset = info->var.xoffset,
|
||||
.yoffset = info->var.yoffset,
|
||||
.tag5 = { RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE, 8, 0 },
|
||||
- /* base and screen_size will be initialised later */
|
||||
- .tag6 = { RPI_FIRMWARE_FRAMEBUFFER_SET_PITCH, 4, 0 },
|
||||
- /* pitch will be initialised later */
|
||||
+ .base = 0,
|
||||
+ .screen_size = 0,
|
||||
+ .tag6 = { RPI_FIRMWARE_FRAMEBUFFER_GET_PITCH, 4, 0 },
|
||||
+ .pitch = 0,
|
||||
};
|
||||
- int ret, image_size;
|
||||
-
|
||||
+ int ret;
|
||||
|
||||
print_debug("%s(%p) %dx%d (%dx%d), %d, %d\n", __func__, info,
|
||||
info->var.xres, info->var.yres, info->var.xres_virtual,
|
||||
info->var.yres_virtual, (int)info->screen_size,
|
||||
info->var.bits_per_pixel);
|
||||
|
||||
- /* Try allocating our own buffer. We can specify all the parameters */
|
||||
- image_size = ((info->var.xres * info->var.yres) *
|
||||
- info->var.bits_per_pixel) >> 3;
|
||||
-
|
||||
- if (!fb->disable_arm_alloc &&
|
||||
- (image_size != fb->image_size || !fb->dma_addr)) {
|
||||
- if (fb->dma_addr) {
|
||||
- dma_free_coherent(info->device, fb->image_size,
|
||||
- fb->cpuaddr, fb->dma_addr);
|
||||
- fb->image_size = 0;
|
||||
- fb->cpuaddr = NULL;
|
||||
- fb->dma_addr = 0;
|
||||
- }
|
||||
-
|
||||
- fb->cpuaddr = dma_alloc_coherent(info->device, image_size,
|
||||
- &fb->dma_addr, GFP_KERNEL);
|
||||
-
|
||||
- if (!fb->cpuaddr) {
|
||||
- fb->dma_addr = 0;
|
||||
- fb->disable_arm_alloc = true;
|
||||
- } else {
|
||||
- fb->image_size = image_size;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- if (fb->cpuaddr) {
|
||||
- fbinfo.base = fb->dma_addr;
|
||||
- fbinfo.screen_size = image_size;
|
||||
- fbinfo.pitch = (info->var.xres * info->var.bits_per_pixel) >> 3;
|
||||
-
|
||||
- ret = rpi_firmware_property_list(fb->fw, &fbinfo,
|
||||
- sizeof(fbinfo));
|
||||
- if (ret || fbinfo.base != fb->dma_addr) {
|
||||
- /* Firmware either failed, or assigned a different base
|
||||
- * address (ie it doesn't support being passed an FB
|
||||
- * allocation).
|
||||
- * Destroy the allocation, and don't try again.
|
||||
- */
|
||||
- dma_free_coherent(info->device, fb->image_size,
|
||||
- fb->cpuaddr, fb->dma_addr);
|
||||
- fb->image_size = 0;
|
||||
- fb->cpuaddr = NULL;
|
||||
- fb->dma_addr = 0;
|
||||
- fb->disable_arm_alloc = true;
|
||||
- }
|
||||
- } else {
|
||||
- /* Our allocation failed - drop into the old scheme of
|
||||
- * allocation by the VPU.
|
||||
- */
|
||||
- ret = -ENOMEM;
|
||||
- }
|
||||
-
|
||||
+ ret = rpi_firmware_property_list(fb->fw, &fbinfo, sizeof(fbinfo));
|
||||
if (ret) {
|
||||
- /* Old scheme:
|
||||
- * - FRAMEBUFFER_ALLOCATE passes 0 for base and screen_size.
|
||||
- * - GET_PITCH instead of SET_PITCH.
|
||||
- */
|
||||
- fbinfo.base = 0;
|
||||
- fbinfo.screen_size = 0;
|
||||
- fbinfo.tag6.tag = RPI_FIRMWARE_FRAMEBUFFER_GET_PITCH;
|
||||
- fbinfo.pitch = 0;
|
||||
-
|
||||
- ret = rpi_firmware_property_list(fb->fw, &fbinfo,
|
||||
- sizeof(fbinfo));
|
||||
- if (ret) {
|
||||
- dev_err(info->device,
|
||||
- "Failed to allocate GPU framebuffer (%d)\n",
|
||||
- ret);
|
||||
- return ret;
|
||||
- }
|
||||
+ dev_err(info->device,
|
||||
+ "Failed to allocate GPU framebuffer (%d)\n", ret);
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
if (info->var.bits_per_pixel <= 8)
|
||||
@@ -384,17 +314,9 @@ static int bcm2708_fb_set_par(struct fb_info *info)
|
||||
fb->fb.fix.smem_start = fbinfo.base;
|
||||
fb->fb.fix.smem_len = fbinfo.pitch * fbinfo.yres_virtual;
|
||||
fb->fb.screen_size = fbinfo.screen_size;
|
||||
-
|
||||
- if (!fb->dma_addr) {
|
||||
- if (fb->fb.screen_base)
|
||||
- iounmap(fb->fb.screen_base);
|
||||
-
|
||||
- fb->fb.screen_base = ioremap_wc(fbinfo.base,
|
||||
- fb->fb.screen_size);
|
||||
- } else {
|
||||
- fb->fb.screen_base = fb->cpuaddr;
|
||||
- }
|
||||
-
|
||||
+ if (fb->fb.screen_base)
|
||||
+ iounmap(fb->fb.screen_base);
|
||||
+ fb->fb.screen_base = ioremap_wc(fbinfo.base, fb->fb.screen_size);
|
||||
if (!fb->fb.screen_base) {
|
||||
/* the console may currently be locked */
|
||||
console_trylock();
|
||||
diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h
|
||||
index e35a89eeee26..23b9d356537f 100644
|
||||
--- a/include/soc/bcm2835/raspberrypi-firmware.h
|
||||
+++ b/include/soc/bcm2835/raspberrypi-firmware.h
|
||||
@@ -128,7 +128,6 @@ enum rpi_firmware_property_tag {
|
||||
RPI_FIRMWARE_FRAMEBUFFER_SET_DEPTH = 0x00048005,
|
||||
RPI_FIRMWARE_FRAMEBUFFER_SET_PIXEL_ORDER = 0x00048006,
|
||||
RPI_FIRMWARE_FRAMEBUFFER_SET_ALPHA_MODE = 0x00048007,
|
||||
- RPI_FIRMWARE_FRAMEBUFFER_SET_PITCH = 0x00048008,
|
||||
RPI_FIRMWARE_FRAMEBUFFER_SET_VIRTUAL_OFFSET = 0x00048009,
|
||||
RPI_FIRMWARE_FRAMEBUFFER_SET_OVERSCAN = 0x0004800a,
|
||||
RPI_FIRMWARE_FRAMEBUFFER_SET_PALETTE = 0x0004800b,
|
||||
--
|
||||
2.19.1
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
From 646f633466ac539a329dd3694c3ec74d55297855 Mon Sep 17 00:00:00 2001
|
||||
From: Jean-Francois Dagenais <jeff.dagenais@gmail.com>
|
||||
Date: Thu, 28 Mar 2019 12:41:11 -0400
|
||||
Subject: [PATCH 500/515] w1: ds2408: reset on output_write retry with readback
|
||||
|
||||
commit 49695ac46861180baf2b2b92c62da8619b6bf28f upstream.
|
||||
|
||||
When we have success in 'Channel Access Write' but reading back latch
|
||||
states fails, a write is retried without doing a proper slave reset.
|
||||
This leads to protocol errors as the slave treats the next 'Channel
|
||||
Access Write' as the continuation of previous command.
|
||||
|
||||
This commit is fixing this by making sure if the retry loop re-runs, a
|
||||
reset is performed, whatever the failure (CONFIRM_BYTE or the read
|
||||
back).
|
||||
|
||||
The loop was quite due for a cleanup and this change mandated it. By
|
||||
isolating the CONFIG_W1_SLAVE_DS2408_READBACK case into it's own
|
||||
function, we vastly reduce the visual and branching(runtime and
|
||||
compile-time) noise.
|
||||
|
||||
Reported-by: Mariusz Bialonczyk <manio@skyboo.net>
|
||||
Tested-by: Mariusz Bialonczyk <manio@skyboo.net>
|
||||
Signed-off-by: Jean-Francois Dagenais <jeff.dagenais@gmail.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/w1/slaves/w1_ds2408.c | 76 ++++++++++++++++++-----------------
|
||||
1 file changed, 39 insertions(+), 37 deletions(-)
|
||||
|
||||
diff --git a/drivers/w1/slaves/w1_ds2408.c b/drivers/w1/slaves/w1_ds2408.c
|
||||
index b535d5ec35b6..92e8f0755b9a 100644
|
||||
--- a/drivers/w1/slaves/w1_ds2408.c
|
||||
+++ b/drivers/w1/slaves/w1_ds2408.c
|
||||
@@ -138,14 +138,37 @@ static ssize_t status_control_read(struct file *filp, struct kobject *kobj,
|
||||
W1_F29_REG_CONTROL_AND_STATUS, buf);
|
||||
}
|
||||
|
||||
+#ifdef fCONFIG_W1_SLAVE_DS2408_READBACK
|
||||
+static bool optional_read_back_valid(struct w1_slave *sl, u8 expected)
|
||||
+{
|
||||
+ u8 w1_buf[3];
|
||||
+
|
||||
+ if (w1_reset_resume_command(sl->master))
|
||||
+ return false;
|
||||
+
|
||||
+ w1_buf[0] = W1_F29_FUNC_READ_PIO_REGS;
|
||||
+ w1_buf[1] = W1_F29_REG_OUTPUT_LATCH_STATE;
|
||||
+ w1_buf[2] = 0;
|
||||
+
|
||||
+ w1_write_block(sl->master, w1_buf, 3);
|
||||
+
|
||||
+ return (w1_read_8(sl->master) == expected);
|
||||
+}
|
||||
+#else
|
||||
+static bool optional_read_back_valid(struct w1_slave *sl, u8 expected)
|
||||
+{
|
||||
+ return true;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
static ssize_t output_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
u8 w1_buf[3];
|
||||
- u8 readBack;
|
||||
unsigned int retries = W1_F29_RETRIES;
|
||||
+ ssize_t bytes_written = -EIO;
|
||||
|
||||
if (count != 1 || off != 0)
|
||||
return -EFAULT;
|
||||
@@ -155,54 +178,33 @@ static ssize_t output_write(struct file *filp, struct kobject *kobj,
|
||||
dev_dbg(&sl->dev, "mutex locked");
|
||||
|
||||
if (w1_reset_select_slave(sl))
|
||||
- goto error;
|
||||
+ goto out;
|
||||
|
||||
- while (retries--) {
|
||||
+ do {
|
||||
w1_buf[0] = W1_F29_FUNC_CHANN_ACCESS_WRITE;
|
||||
w1_buf[1] = *buf;
|
||||
w1_buf[2] = ~(*buf);
|
||||
- w1_write_block(sl->master, w1_buf, 3);
|
||||
|
||||
- readBack = w1_read_8(sl->master);
|
||||
+ w1_write_block(sl->master, w1_buf, 3);
|
||||
|
||||
- if (readBack != W1_F29_SUCCESS_CONFIRM_BYTE) {
|
||||
- if (w1_reset_resume_command(sl->master))
|
||||
- goto error;
|
||||
- /* try again, the slave is ready for a command */
|
||||
- continue;
|
||||
+ if (w1_read_8(sl->master) == W1_F29_SUCCESS_CONFIRM_BYTE &&
|
||||
+ optional_read_back_valid(sl, *buf)) {
|
||||
+ bytes_written = 1;
|
||||
+ goto out;
|
||||
}
|
||||
|
||||
-#ifdef CONFIG_W1_SLAVE_DS2408_READBACK
|
||||
- /* here the master could read another byte which
|
||||
- would be the PIO reg (the actual pin logic state)
|
||||
- since in this driver we don't know which pins are
|
||||
- in and outs, there's no value to read the state and
|
||||
- compare. with (*buf) so end this command abruptly: */
|
||||
if (w1_reset_resume_command(sl->master))
|
||||
- goto error;
|
||||
+ goto out; /* unrecoverable error */
|
||||
+ /* try again, the slave is ready for a command */
|
||||
+ } while (--retries);
|
||||
|
||||
- /* go read back the output latches */
|
||||
- /* (the direct effect of the write above) */
|
||||
- w1_buf[0] = W1_F29_FUNC_READ_PIO_REGS;
|
||||
- w1_buf[1] = W1_F29_REG_OUTPUT_LATCH_STATE;
|
||||
- w1_buf[2] = 0;
|
||||
- w1_write_block(sl->master, w1_buf, 3);
|
||||
- /* read the result of the READ_PIO_REGS command */
|
||||
- if (w1_read_8(sl->master) == *buf)
|
||||
-#endif
|
||||
- {
|
||||
- /* success! */
|
||||
- mutex_unlock(&sl->master->bus_mutex);
|
||||
- dev_dbg(&sl->dev,
|
||||
- "mutex unlocked, retries:%d", retries);
|
||||
- return 1;
|
||||
- }
|
||||
- }
|
||||
-error:
|
||||
+out:
|
||||
mutex_unlock(&sl->master->bus_mutex);
|
||||
- dev_dbg(&sl->dev, "mutex unlocked in error, retries:%d", retries);
|
||||
|
||||
- return -EIO;
|
||||
+ dev_dbg(&sl->dev, "%s, mutex unlocked retries:%d\n",
|
||||
+ (bytes_written > 0) ? "succeeded" : "error", retries);
|
||||
+
|
||||
+ return bytes_written;
|
||||
}
|
||||
|
||||
|
||||
--
|
||||
2.19.1
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
From afb1d05657278c16cca2a9fa96ef9a6c7170d07d Mon Sep 17 00:00:00 2001
|
||||
From: Mariusz Bialonczyk <manio@skyboo.net>
|
||||
Date: Thu, 21 Mar 2019 11:52:55 +0100
|
||||
Subject: [PATCH 501/515] w1: fix the resume command API
|
||||
|
||||
commit 62909da8aca048ecf9fbd7e484e5100608f40a63 upstream.
|
||||
|
||||
>From the DS2408 datasheet [1]:
|
||||
"Resume Command function checks the status of the RC flag and, if it is set,
|
||||
directly transfers control to the control functions, similar to a Skip ROM
|
||||
command. The only way to set the RC flag is through successfully executing
|
||||
the Match ROM, Search ROM, Conditional Search ROM, or Overdrive-Match ROM
|
||||
command"
|
||||
|
||||
The function currently works perfectly fine in a multidrop bus, but when we
|
||||
have only a single slave connected, then only a Skip ROM is used and Match
|
||||
ROM is not called at all. This is leading to problems e.g. with single one
|
||||
DS2408 connected, as the Resume Command is not working properly and the
|
||||
device is responding with failing results after the Resume Command.
|
||||
|
||||
This commit is fixing this by using a Skip ROM instead in those cases.
|
||||
The bandwidth / performance advantage is exactly the same.
|
||||
|
||||
Refs:
|
||||
[1] https://datasheets.maximintegrated.com/en/ds/DS2408.pdf
|
||||
|
||||
Signed-off-by: Mariusz Bialonczyk <manio@skyboo.net>
|
||||
Reviewed-by: Jean-Francois Dagenais <jeff.dagenais@gmail.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/w1/w1_io.c | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/w1/w1_io.c b/drivers/w1/w1_io.c
|
||||
index 0364d3329c52..3516ce6718d9 100644
|
||||
--- a/drivers/w1/w1_io.c
|
||||
+++ b/drivers/w1/w1_io.c
|
||||
@@ -432,8 +432,7 @@ int w1_reset_resume_command(struct w1_master *dev)
|
||||
if (w1_reset_bus(dev))
|
||||
return -1;
|
||||
|
||||
- /* This will make only the last matched slave perform a skip ROM. */
|
||||
- w1_write_8(dev, W1_RESUME_CMD);
|
||||
+ w1_write_8(dev, dev->slave_count > 1 ? W1_RESUME_CMD : W1_SKIP_ROM);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(w1_reset_resume_command);
|
||||
--
|
||||
2.19.1
|
||||
|
|
@ -0,0 +1,96 @@
|
|||
From 3f647927237babee492cbb6ce0ab29417af55ea0 Mon Sep 17 00:00:00 2001
|
||||
From: Mariusz Bialonczyk <manio@skyboo.net>
|
||||
Date: Mon, 4 Mar 2019 12:23:36 +0100
|
||||
Subject: [PATCH 502/515] w1: ds2482: cosmetic fixes after 54865314f5a1
|
||||
|
||||
commit 5cb27d30fc3a281e830a2099d520b469e2b82008 upstream.
|
||||
|
||||
We have a helper function ds2482_calculate_config() which is calculating
|
||||
the config value, so just use it instead of passing the same variable
|
||||
in all calls to this function.
|
||||
|
||||
Also fixes the placement of module parameters to match with:
|
||||
50fa2951bd74 (w1: Organize driver source to natural/common order)
|
||||
by Andrew F. Davis
|
||||
|
||||
Signed-off-by: Mariusz Bialonczyk <manio@skyboo.net>
|
||||
Cc: Andrew Worsley <amworsley@gmail.com>
|
||||
Cc: Andrew F. Davis <afd@ti.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/w1/masters/ds2482.c | 18 +++++++++++-------
|
||||
1 file changed, 11 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/drivers/w1/masters/ds2482.c b/drivers/w1/masters/ds2482.c
|
||||
index 8b5e598ffdb3..8f2b25f1614c 100644
|
||||
--- a/drivers/w1/masters/ds2482.c
|
||||
+++ b/drivers/w1/masters/ds2482.c
|
||||
@@ -37,6 +37,11 @@ module_param_named(active_pullup, ds2482_active_pullup, int, 0644);
|
||||
MODULE_PARM_DESC(active_pullup, "Active pullup (apply to all buses): " \
|
||||
"0-disable, 1-enable (default)");
|
||||
|
||||
+/* extra configurations - e.g. 1WS */
|
||||
+static int extra_config;
|
||||
+module_param(extra_config, int, S_IRUGO | S_IWUSR);
|
||||
+MODULE_PARM_DESC(extra_config, "Extra Configuration settings 1=APU,2=PPM,3=SPU,8=1WS");
|
||||
+
|
||||
/**
|
||||
* The DS2482 registers - there are 3 registers that are addressed by a read
|
||||
* pointer. The read pointer is set by the last command executed.
|
||||
@@ -70,8 +75,6 @@ MODULE_PARM_DESC(active_pullup, "Active pullup (apply to all buses): " \
|
||||
#define DS2482_REG_CFG_PPM 0x02 /* presence pulse masking */
|
||||
#define DS2482_REG_CFG_APU 0x01 /* active pull-up */
|
||||
|
||||
-/* extra configurations - e.g. 1WS */
|
||||
-static int extra_config;
|
||||
|
||||
/**
|
||||
* Write and verify codes for the CHANNEL_SELECT command (DS2482-800 only).
|
||||
@@ -130,6 +133,8 @@ struct ds2482_data {
|
||||
*/
|
||||
static inline u8 ds2482_calculate_config(u8 conf)
|
||||
{
|
||||
+ conf |= extra_config;
|
||||
+
|
||||
if (ds2482_active_pullup)
|
||||
conf |= DS2482_REG_CFG_APU;
|
||||
|
||||
@@ -405,7 +410,7 @@ static u8 ds2482_w1_reset_bus(void *data)
|
||||
/* If the chip did reset since detect, re-config it */
|
||||
if (err & DS2482_REG_STS_RST)
|
||||
ds2482_send_cmd_data(pdev, DS2482_CMD_WRITE_CONFIG,
|
||||
- ds2482_calculate_config(extra_config));
|
||||
+ ds2482_calculate_config(0x00));
|
||||
}
|
||||
|
||||
mutex_unlock(&pdev->access_lock);
|
||||
@@ -431,7 +436,8 @@ static u8 ds2482_w1_set_pullup(void *data, int delay)
|
||||
ds2482_wait_1wire_idle(pdev);
|
||||
/* note: it seems like both SPU and APU have to be set! */
|
||||
retval = ds2482_send_cmd_data(pdev, DS2482_CMD_WRITE_CONFIG,
|
||||
- ds2482_calculate_config(extra_config|DS2482_REG_CFG_SPU|DS2482_REG_CFG_APU));
|
||||
+ ds2482_calculate_config(DS2482_REG_CFG_SPU |
|
||||
+ DS2482_REG_CFG_APU));
|
||||
ds2482_wait_1wire_idle(pdev);
|
||||
}
|
||||
|
||||
@@ -484,7 +490,7 @@ static int ds2482_probe(struct i2c_client *client,
|
||||
|
||||
/* Set all config items to 0 (off) */
|
||||
ds2482_send_cmd_data(data, DS2482_CMD_WRITE_CONFIG,
|
||||
- ds2482_calculate_config(extra_config));
|
||||
+ ds2482_calculate_config(0x00));
|
||||
|
||||
mutex_init(&data->access_lock);
|
||||
|
||||
@@ -559,7 +565,5 @@ module_i2c_driver(ds2482_driver);
|
||||
|
||||
MODULE_AUTHOR("Ben Gardner <bgardner@wabtec.com>");
|
||||
MODULE_DESCRIPTION("DS2482 driver");
|
||||
-module_param(extra_config, int, S_IRUGO | S_IWUSR);
|
||||
-MODULE_PARM_DESC(extra_config, "Extra Configuration settings 1=APU,2=PPM,3=SPU,8=1WS");
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
--
|
||||
2.19.1
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
From 4ed0f310669e324505b2125619349312497d4a08 Mon Sep 17 00:00:00 2001
|
||||
From: Klaus Schulz <klsschlz@gmail.com>
|
||||
Date: Thu, 16 May 2019 13:35:32 +0200
|
||||
Subject: [PATCH 503/515] sound: pcm512x-codec: Adding 352.8kHz samplerate
|
||||
support
|
||||
|
||||
---
|
||||
sound/soc/codecs/pcm512x.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/sound/soc/codecs/pcm512x.c b/sound/soc/codecs/pcm512x.c
|
||||
index e6523e74fdd9..45f9644e53af 100644
|
||||
--- a/sound/soc/codecs/pcm512x.c
|
||||
+++ b/sound/soc/codecs/pcm512x.c
|
||||
@@ -542,7 +542,7 @@ static unsigned long pcm512x_ncp_target(struct pcm512x_priv *pcm512x,
|
||||
|
||||
static const u32 pcm512x_dai_rates[] = {
|
||||
8000, 11025, 16000, 22050, 32000, 44100, 48000, 64000,
|
||||
- 88200, 96000, 176400, 192000, 384000,
|
||||
+ 88200, 96000, 176400, 192000, 352800, 384000,
|
||||
};
|
||||
|
||||
static const struct snd_pcm_hw_constraint_list constraints_slave = {
|
||||
--
|
||||
2.19.1
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
From 00de9e45fe619d9fd3e810d10d99ac328ee5190c Mon Sep 17 00:00:00 2001
|
||||
From: Marcel Holtmann <marcel@holtmann.org>
|
||||
Date: Wed, 22 May 2019 09:05:40 +0200
|
||||
Subject: [PATCH 506/515] Bluetooth: Check key sizes only when Secure Simple
|
||||
Pairing is enabled
|
||||
|
||||
The encryption is only mandatory to be enforced when both sides are using
|
||||
Secure Simple Pairing and this means the key size check makes only sense
|
||||
in that case.
|
||||
|
||||
On legacy Bluetooth 2.0 and earlier devices like mice the encryption was
|
||||
optional and thus causing an issue if the key size check is not bound to
|
||||
using Secure Simple Pairing.
|
||||
|
||||
Fixes: d5bb334a8e17 ("Bluetooth: Align minimum encryption key size for LE and BR/EDR connections")
|
||||
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
|
||||
Cc: stable@vger.kernel.org
|
||||
---
|
||||
net/bluetooth/hci_conn.c | 9 +++++++--
|
||||
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
|
||||
index 3cf0764d5793..7516cdde3373 100644
|
||||
--- a/net/bluetooth/hci_conn.c
|
||||
+++ b/net/bluetooth/hci_conn.c
|
||||
@@ -1272,8 +1272,13 @@ int hci_conn_check_link_mode(struct hci_conn *conn)
|
||||
return 0;
|
||||
}
|
||||
|
||||
- if (hci_conn_ssp_enabled(conn) &&
|
||||
- !test_bit(HCI_CONN_ENCRYPT, &conn->flags))
|
||||
+ /* If Secure Simple Pairing is not enabled, then legacy connection
|
||||
+ * setup is used and no encryption or key sizes can be enforced.
|
||||
+ */
|
||||
+ if (!hci_conn_ssp_enabled(conn))
|
||||
+ return 1;
|
||||
+
|
||||
+ if (!test_bit(HCI_CONN_ENCRYPT, &conn->flags))
|
||||
return 0;
|
||||
|
||||
/* The minimum encryption key size needs to be enforced by the
|
||||
--
|
||||
2.19.1
|
||||
|
|
@ -0,0 +1,168 @@
|
|||
From d903e18191d372cf917b0db788b5cd43bcd16025 Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Tue, 7 May 2019 17:23:41 +0100
|
||||
Subject: [PATCH 507/515] usb: dwc_otg: Clean up interrupt claiming code
|
||||
|
||||
The FIQ/IRQ interrupt number identification code is scattered through
|
||||
the dwc_otg driver. Rationalise it, simplifying the code and solving
|
||||
an existing issue.
|
||||
|
||||
See: https://github.com/raspberrypi/linux/issues/2612
|
||||
|
||||
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
---
|
||||
drivers/usb/host/dwc_otg/dwc_otg_driver.c | 18 +++++++++-----
|
||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 10 +++-----
|
||||
drivers/usb/host/dwc_otg/dwc_otg_os_dep.h | 6 +++++
|
||||
drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c | 26 +++-----------------
|
||||
4 files changed, 25 insertions(+), 35 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_driver.c b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
||||
index 04535c3eff4a..3fd21c7ba360 100644
|
||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
||||
@@ -624,11 +624,7 @@ static int dwc_otg_driver_remove( struct platform_device *_dev )
|
||||
* Free the IRQ
|
||||
*/
|
||||
if (otg_dev->common_irq_installed) {
|
||||
-#ifdef PLATFORM_INTERFACE
|
||||
- free_irq(platform_get_irq(_dev, 0), otg_dev);
|
||||
-#else
|
||||
- free_irq(_dev->irq, otg_dev);
|
||||
-#endif
|
||||
+ free_irq(otg_dev->os_dep.irq_num, otg_dev);
|
||||
} else {
|
||||
DWC_DEBUGPL(DBG_ANY, "%s: There is no installed irq!\n", __func__);
|
||||
return REM_RETVAL(-ENXIO);
|
||||
@@ -905,7 +901,9 @@ static int dwc_otg_driver_probe(
|
||||
*/
|
||||
|
||||
#if defined(PLATFORM_INTERFACE)
|
||||
- devirq = platform_get_irq(_dev, fiq_enable ? 0 : 1);
|
||||
+ devirq = platform_get_irq_byname(_dev, fiq_enable ? "soft" : "usb");
|
||||
+ if (devirq < 0)
|
||||
+ devirq = platform_get_irq(_dev, fiq_enable ? 0 : 1);
|
||||
#else
|
||||
devirq = _dev->irq;
|
||||
#endif
|
||||
@@ -922,6 +920,14 @@ static int dwc_otg_driver_probe(
|
||||
} else {
|
||||
dwc_otg_device->common_irq_installed = 1;
|
||||
}
|
||||
+ dwc_otg_device->os_dep.irq_num = devirq;
|
||||
+ dwc_otg_device->os_dep.fiq_num = -EINVAL;
|
||||
+ if (fiq_enable) {
|
||||
+ int devfiq = platform_get_irq_byname(_dev, "usb");
|
||||
+ if (devfiq < 0)
|
||||
+ devfiq = platform_get_irq(_dev, 1);
|
||||
+ dwc_otg_device->os_dep.fiq_num = devfiq;
|
||||
+ }
|
||||
|
||||
#ifndef IRQF_TRIGGER_LOW
|
||||
#if defined(LM_INTERFACE) || defined(PLATFORM_INTERFACE)
|
||||
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||
index 028f7fd22ba9..fc43f2a66d6a 100644
|
||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||
@@ -492,7 +492,7 @@ static void hcd_init_fiq(void *cookie)
|
||||
#endif
|
||||
// Enable FIQ interrupt from USB peripheral
|
||||
#ifdef CONFIG_ARM64
|
||||
- irq = platform_get_irq(otg_dev->os_dep.platformdev, 1);
|
||||
+ irq = otg_dev->os_dep.fiq_num;
|
||||
|
||||
if (irq < 0) {
|
||||
DWC_ERROR("Can't get SIM-FIQ irq");
|
||||
@@ -509,7 +509,7 @@ static void hcd_init_fiq(void *cookie)
|
||||
simfiq_irq = irq;
|
||||
#else
|
||||
#ifdef CONFIG_GENERIC_IRQ_MULTI_HANDLER
|
||||
- irq = platform_get_irq(otg_dev->os_dep.platformdev, 1);
|
||||
+ irq = otg_dev->os_dep.fiq_num;
|
||||
#else
|
||||
irq = INTERRUPT_VC_USB;
|
||||
#endif
|
||||
@@ -626,11 +626,7 @@ int hcd_init(dwc_bus_dev_t *_dev)
|
||||
* allocates the DMA buffer pool, registers the USB bus, requests the
|
||||
* IRQ line, and calls hcd_start method.
|
||||
*/
|
||||
-#ifdef PLATFORM_INTERFACE
|
||||
- retval = usb_add_hcd(hcd, platform_get_irq(_dev, fiq_enable ? 0 : 1), IRQF_SHARED);
|
||||
-#else
|
||||
- retval = usb_add_hcd(hcd, _dev->irq, IRQF_SHARED);
|
||||
-#endif
|
||||
+ retval = usb_add_hcd(hcd, otg_dev->os_dep.irq_num, IRQF_SHARED);
|
||||
if (retval < 0) {
|
||||
goto error2;
|
||||
}
|
||||
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h b/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h
|
||||
index d7b700ff1782..3da96b253155 100644
|
||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h
|
||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h
|
||||
@@ -102,6 +102,12 @@ typedef struct os_dependent {
|
||||
/** Base address for MPHI peripheral */
|
||||
void *mphi_base;
|
||||
|
||||
+ /** IRQ number (<0 if not valid) */
|
||||
+ int irq_num;
|
||||
+
|
||||
+ /** FIQ number (<0 if not valid) */
|
||||
+ int fiq_num;
|
||||
+
|
||||
#ifdef LM_INTERFACE
|
||||
struct lm_device *lmdev;
|
||||
#elif defined(PCI_INTERFACE)
|
||||
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c
|
||||
index e799f15f2947..a5ed8e83711d 100644
|
||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c
|
||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c
|
||||
@@ -1224,30 +1224,16 @@ int pcd_init(dwc_bus_dev_t *_dev)
|
||||
/*
|
||||
* Setup interupt handler
|
||||
*/
|
||||
-#ifdef PLATFORM_INTERFACE
|
||||
DWC_DEBUGPL(DBG_ANY, "registering handler for irq%d\n",
|
||||
- platform_get_irq(_dev, fiq_enable ? 0 : 1));
|
||||
- retval = request_irq(platform_get_irq(_dev, fiq_enable ? 0 : 1), dwc_otg_pcd_irq,
|
||||
+ otg_dev->os_dep.irq_num);
|
||||
+ retval = request_irq(otg_dev->os_dep.irq_num, dwc_otg_pcd_irq,
|
||||
IRQF_SHARED, gadget_wrapper->gadget.name,
|
||||
otg_dev->pcd);
|
||||
if (retval != 0) {
|
||||
- DWC_ERROR("request of irq%d failed\n",
|
||||
- platform_get_irq(_dev, fiq_enable ? 0 : 1));
|
||||
+ DWC_ERROR("request of irq%d failed\n", otg_dev->os_dep.irq_num);
|
||||
free_wrapper(gadget_wrapper);
|
||||
return -EBUSY;
|
||||
}
|
||||
-#else
|
||||
- DWC_DEBUGPL(DBG_ANY, "registering handler for irq%d\n",
|
||||
- _dev->irq);
|
||||
- retval = request_irq(_dev->irq, dwc_otg_pcd_irq,
|
||||
- IRQF_SHARED | IRQF_DISABLED,
|
||||
- gadget_wrapper->gadget.name, otg_dev->pcd);
|
||||
- if (retval != 0) {
|
||||
- DWC_ERROR("request of irq%d failed\n", _dev->irq);
|
||||
- free_wrapper(gadget_wrapper);
|
||||
- return -EBUSY;
|
||||
- }
|
||||
-#endif
|
||||
|
||||
dwc_otg_pcd_start(gadget_wrapper->pcd, &fops);
|
||||
|
||||
@@ -1267,11 +1253,7 @@ void pcd_remove(dwc_bus_dev_t *_dev)
|
||||
/*
|
||||
* Free the IRQ
|
||||
*/
|
||||
-#ifdef PLATFORM_INTERFACE
|
||||
- free_irq(platform_get_irq(_dev, 0), pcd);
|
||||
-#else
|
||||
- free_irq(_dev->irq, pcd);
|
||||
-#endif
|
||||
+ free_irq(otg_dev->os_dep.irq_num, pcd);
|
||||
dwc_otg_pcd_remove(otg_dev->pcd);
|
||||
free_wrapper(gadget_wrapper);
|
||||
otg_dev->pcd = 0;
|
||||
--
|
||||
2.19.1
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
From 5efe78e312cef1b0eb699e54c680a59105967fec Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Tue, 7 May 2019 14:27:35 +0100
|
||||
Subject: [PATCH 508/515] overlays: Delete the deprecated sdio-1bit overlay
|
||||
|
||||
Use dtoverlay=sdio,bus_width=1,gpios_22_25 instead.
|
||||
|
||||
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
---
|
||||
arch/arm/boot/dts/overlays/Makefile | 1 -
|
||||
.../boot/dts/overlays/sdio-1bit-overlay.dts | 63 -------------------
|
||||
2 files changed, 64 deletions(-)
|
||||
delete mode 100644 arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts
|
||||
|
||||
diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile
|
||||
index cc70cf5c8579..ae7ba0bc3945 100644
|
||||
--- a/arch/arm/boot/dts/overlays/Makefile
|
||||
+++ b/arch/arm/boot/dts/overlays/Makefile
|
||||
@@ -126,7 +126,6 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
|
||||
sc16is752-spi1.dtbo \
|
||||
sdhost.dtbo \
|
||||
sdio.dtbo \
|
||||
- sdio-1bit.dtbo \
|
||||
sdtweak.dtbo \
|
||||
smi.dtbo \
|
||||
smi-dev.dtbo \
|
||||
diff --git a/arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts b/arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts
|
||||
deleted file mode 100644
|
||||
index 297daae8faf9..000000000000
|
||||
--- a/arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts
|
||||
+++ /dev/null
|
||||
@@ -1,63 +0,0 @@
|
||||
-/dts-v1/;
|
||||
-/plugin/;
|
||||
-
|
||||
-/* Enable 1-bit SDIO from MMC interface via GPIOs 22-25. Includes sdhost overlay. */
|
||||
-
|
||||
-/{
|
||||
- compatible = "brcm,bcm2708";
|
||||
-
|
||||
- fragment@0 {
|
||||
- target = <&mmc>;
|
||||
- __overlay__ {
|
||||
- status = "disabled";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- fragment@1 {
|
||||
- target = <&soc>;
|
||||
- __overlay__ {
|
||||
- #address-cells = <1>;
|
||||
- #size-cells = <1>;
|
||||
-
|
||||
- sdio_1bit: sdio@7e300000 {
|
||||
- compatible = "brcm,bcm2835-mmc",
|
||||
- "brcm,bcm2835-sdhci";
|
||||
- reg = <0x7e300000 0x100>;
|
||||
- interrupts = <2 30>;
|
||||
- clocks = <&clocks 28/*BCM2835_CLOCK_EMMC*/>;
|
||||
- dmas = <&dma 11>;
|
||||
- dma-names = "rx-tx";
|
||||
- brcm,overclock-50 = <0>;
|
||||
- status = "okay";
|
||||
- pinctrl-names = "default";
|
||||
- pinctrl-0 = <&sdio_1bit_pins>;
|
||||
- non-removable;
|
||||
- bus-width = <1>;
|
||||
- };
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- fragment@2 {
|
||||
- target = <&gpio>;
|
||||
- __overlay__ {
|
||||
- sdio_1bit_pins: sdio_1bit_pins {
|
||||
- brcm,pins = <22 23 24 25>;
|
||||
- brcm,function = <7>; /* ALT3 = SD1 */
|
||||
- brcm,pull = <0 2 2 2>;
|
||||
- };
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- fragment@3 {
|
||||
- target-path = "/aliases";
|
||||
- __overlay__ {
|
||||
- mmc1 = "/soc/sdio@7e300000";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
-
|
||||
- __overrides__ {
|
||||
- poll_once = <&sdio_1bit>,"non-removable?";
|
||||
- sdio_overclock = <&sdio_1bit>,"brcm,overclock-50:0";
|
||||
- };
|
||||
-};
|
||||
--
|
||||
2.19.1
|
||||
|
|
@ -0,0 +1,109 @@
|
|||
From 02c3ae26d1a5789b9b32de87f2e887807e74a200 Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Tue, 7 May 2019 10:06:04 +0100
|
||||
Subject: [PATCH 509/515] overlays: Remove upstream-aux-interrupt overlay
|
||||
|
||||
We no longer have a downstream-specific auxilliary interrupt
|
||||
driver, so the overlay to disable it is no longer needed.
|
||||
|
||||
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
---
|
||||
arch/arm/boot/dts/overlays/Makefile | 1 -
|
||||
arch/arm/boot/dts/overlays/README | 12 +++----
|
||||
.../upstream-aux-interrupt-overlay.dts | 33 -------------------
|
||||
.../boot/dts/overlays/upstream-overlay.dts | 2 +-
|
||||
4 files changed, 6 insertions(+), 42 deletions(-)
|
||||
delete mode 100644 arch/arm/boot/dts/overlays/upstream-aux-interrupt-overlay.dts
|
||||
|
||||
diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile
|
||||
index ae7ba0bc3945..9aea64b0d325 100644
|
||||
--- a/arch/arm/boot/dts/overlays/Makefile
|
||||
+++ b/arch/arm/boot/dts/overlays/Makefile
|
||||
@@ -151,7 +151,6 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
|
||||
uart1.dtbo \
|
||||
udrc.dtbo \
|
||||
upstream.dtbo \
|
||||
- upstream-aux-interrupt.dtbo \
|
||||
vc4-fkms-v3d.dtbo \
|
||||
vc4-kms-kippah-7inch.dtbo \
|
||||
vc4-kms-v3d.dtbo \
|
||||
diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README
|
||||
index fc71a917f495..42265637df37 100644
|
||||
--- a/arch/arm/boot/dts/overlays/README
|
||||
+++ b/arch/arm/boot/dts/overlays/README
|
||||
@@ -2206,18 +2206,16 @@ Params: alsaname Name of the ALSA audio device (default "udrc")
|
||||
|
||||
|
||||
Name: upstream
|
||||
-Info: Allow usage of downstream .dtb with upstream kernel. Comprises
|
||||
- vc4-kms-v3d, dwc2 and upstream-aux-interrupt overlays.
|
||||
+Info: Allow usage of downstream .dtb with upstream kernel. Comprises the
|
||||
+ vc4-kms-v3d and dwc2 overlays.
|
||||
Load: dtoverlay=upstream
|
||||
Params: <None>
|
||||
|
||||
|
||||
Name: upstream-aux-interrupt
|
||||
-Info: Allow usage of downstream .dtb with upstream kernel by binding AUX
|
||||
- devices directly to the shared AUX interrupt line. One of the parts
|
||||
- of the 'upstream' overlay
|
||||
-Load: dtoverlay=upstream-aux-interrupt
|
||||
-Params: <None>
|
||||
+Info: This overlay has been deprecated and removed because it is no longer
|
||||
+ necessary.
|
||||
+Load: <Deprecated>
|
||||
|
||||
|
||||
Name: vc4-fkms-v3d
|
||||
diff --git a/arch/arm/boot/dts/overlays/upstream-aux-interrupt-overlay.dts b/arch/arm/boot/dts/overlays/upstream-aux-interrupt-overlay.dts
|
||||
deleted file mode 100644
|
||||
index 04e271b72a3a..000000000000
|
||||
--- a/arch/arm/boot/dts/overlays/upstream-aux-interrupt-overlay.dts
|
||||
+++ /dev/null
|
||||
@@ -1,33 +0,0 @@
|
||||
-// Overlay for missing AUX interrupt controller
|
||||
-// Instead we bind all AUX devices to the generic AUX interrupt line
|
||||
-/dts-v1/;
|
||||
-/plugin/;
|
||||
-
|
||||
-/ {
|
||||
- compatible = "brcm,bcm2708";
|
||||
-
|
||||
- fragment@0 {
|
||||
- target = <&uart1>;
|
||||
- __overlay__ {
|
||||
- interrupt-parent = <&intc>;
|
||||
- interrupts = <0x1 0x1d>;
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- fragment@1 {
|
||||
- target = <&spi1>;
|
||||
- __overlay__ {
|
||||
- interrupt-parent = <&intc>;
|
||||
- interrupts = <0x1 0x1d>;
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- fragment@2 {
|
||||
- target = <&spi2>;
|
||||
- __overlay__ {
|
||||
- interrupt-parent = <&intc>;
|
||||
- interrupts = <0x1 0x1d>;
|
||||
- };
|
||||
- };
|
||||
-};
|
||||
-
|
||||
diff --git a/arch/arm/boot/dts/overlays/upstream-overlay.dts b/arch/arm/boot/dts/overlays/upstream-overlay.dts
|
||||
index b597f863c4a8..5ddc95b6d8fc 100644
|
||||
--- a/arch/arm/boot/dts/overlays/upstream-overlay.dts
|
||||
+++ b/arch/arm/boot/dts/overlays/upstream-overlay.dts
|
||||
@@ -1,4 +1,4 @@
|
||||
-// redo: ovmerge -c vc4-kms-v3d-overlay.dts,cma-96 dwc2-overlay.dts,dr_mode=otg upstream-aux-interrupt-overlay.dts,
|
||||
+// redo: ovmerge -c vc4-kms-v3d-overlay.dts,cma-96 dwc2-overlay.dts,dr_mode=otg
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
--
|
||||
2.19.1
|
||||
|
|
@ -0,0 +1,128 @@
|
|||
From b21d708869b4c87533d621cce93667c07261d88d Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Wed, 22 May 2019 12:58:47 +0100
|
||||
Subject: [PATCH 511/515] vc4: Remove interrupt and DMA trampling
|
||||
|
||||
As part of the effort to clean up the overlays, remove the interrupt
|
||||
and DMA mask declarations from the vc4 overlays which just duplicate
|
||||
that which is in the base DTBs.
|
||||
|
||||
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
---
|
||||
.../boot/dts/overlays/vc4-fkms-v3d-overlay.dts | 8 --------
|
||||
.../boot/dts/overlays/vc4-kms-v3d-overlay.dts | 18 ++----------------
|
||||
2 files changed, 2 insertions(+), 24 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/overlays/vc4-fkms-v3d-overlay.dts b/arch/arm/boot/dts/overlays/vc4-fkms-v3d-overlay.dts
|
||||
index aae52ac6f3ed..d9af97c8414f 100644
|
||||
--- a/arch/arm/boot/dts/overlays/vc4-fkms-v3d-overlay.dts
|
||||
+++ b/arch/arm/boot/dts/overlays/vc4-fkms-v3d-overlay.dts
|
||||
@@ -60,7 +60,6 @@
|
||||
fragment@7 {
|
||||
target = <&v3d>;
|
||||
__overlay__ {
|
||||
- interrupts = <1 10>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
@@ -72,13 +71,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
- fragment@9 {
|
||||
- target-path = "/soc/dma";
|
||||
- __overlay__ {
|
||||
- brcm,dma-channel-mask = <0x7f35>;
|
||||
- };
|
||||
- };
|
||||
-
|
||||
__overrides__ {
|
||||
cma-256 = <0>,"+0-1-2-3-4";
|
||||
cma-192 = <0>,"-0+1-2-3-4";
|
||||
diff --git a/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts b/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts
|
||||
index 62ed673404e0..19e1d2548e7b 100644
|
||||
--- a/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts
|
||||
+++ b/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts
|
||||
@@ -62,7 +62,6 @@
|
||||
fragment@7 {
|
||||
target = <&pixelvalve0>;
|
||||
__overlay__ {
|
||||
- interrupts = <2 13>; /* pwa0 */
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
@@ -70,7 +69,6 @@
|
||||
fragment@8 {
|
||||
target = <&pixelvalve1>;
|
||||
__overlay__ {
|
||||
- interrupts = <2 14>; /* pwa1 */
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
@@ -78,7 +76,6 @@
|
||||
fragment@9 {
|
||||
target = <&pixelvalve2>;
|
||||
__overlay__ {
|
||||
- interrupts = <2 10>; /* pixelvalve */
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
@@ -86,7 +83,6 @@
|
||||
fragment@10 {
|
||||
target = <&hvs>;
|
||||
__overlay__ {
|
||||
- interrupts = <2 1>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
@@ -94,7 +90,6 @@
|
||||
fragment@11 {
|
||||
target = <&hdmi>;
|
||||
__overlay__ {
|
||||
- interrupts = <2 8>, <2 9>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
@@ -102,7 +97,6 @@
|
||||
fragment@12 {
|
||||
target = <&v3d>;
|
||||
__overlay__ {
|
||||
- interrupts = <1 10>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
@@ -115,14 +109,6 @@
|
||||
};
|
||||
|
||||
fragment@14 {
|
||||
- target-path = "/soc/dma";
|
||||
- __overlay__ {
|
||||
- brcm,dma-channel-mask = <0x7f35>;
|
||||
- };
|
||||
- };
|
||||
-
|
||||
-
|
||||
- fragment@15 {
|
||||
target = <&clocks>;
|
||||
__overlay__ {
|
||||
claim-clocks = <
|
||||
@@ -134,14 +120,14 @@
|
||||
};
|
||||
};
|
||||
|
||||
- fragment@16 {
|
||||
+ fragment@15 {
|
||||
target = <&vec>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
- fragment@17 {
|
||||
+ fragment@16 {
|
||||
target = <&txp>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
--
|
||||
2.19.1
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
From 1e86eb066dfc16b23f397fb433fc9294ea06a99f Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Wed, 8 May 2019 10:08:31 +0100
|
||||
Subject: [PATCH 513/515] BCM270X_DT: usb: Refactor DTS and overlays
|
||||
|
||||
Move the IRQ interrupt declaration in the usb node before the FIQ
|
||||
declaration, so that the dwc2 driver will find it. Name the
|
||||
interrupts appropriately so that the dwc_otg driver can still find
|
||||
them. Then remove the interrupt rewriting from the overlays.
|
||||
|
||||
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
---
|
||||
arch/arm/boot/dts/bcm270x.dtsi | 6 ++++--
|
||||
arch/arm/boot/dts/overlays/dwc-otg-overlay.dts | 6 ------
|
||||
arch/arm/boot/dts/overlays/dwc2-overlay.dts | 2 --
|
||||
3 files changed, 4 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm270x.dtsi b/arch/arm/boot/dts/bcm270x.dtsi
|
||||
index 6d2563b25a42..86f3eb2d3f48 100644
|
||||
--- a/arch/arm/boot/dts/bcm270x.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm270x.dtsi
|
||||
@@ -131,8 +131,10 @@
|
||||
compatible = "brcm,bcm2708-usb";
|
||||
reg = <0x7e980000 0x10000>,
|
||||
<0x7e006000 0x1000>;
|
||||
- interrupts = <2 0>,
|
||||
- <1 9>;
|
||||
+ interrupt-names = "usb",
|
||||
+ "soft";
|
||||
+ interrupts = <1 9>,
|
||||
+ <2 0>;
|
||||
};
|
||||
|
||||
v3d@7ec00000 { /* vd3 */
|
||||
diff --git a/arch/arm/boot/dts/overlays/dwc-otg-overlay.dts b/arch/arm/boot/dts/overlays/dwc-otg-overlay.dts
|
||||
index 15dd7750813e..78c5e9f85048 100644
|
||||
--- a/arch/arm/boot/dts/overlays/dwc-otg-overlay.dts
|
||||
+++ b/arch/arm/boot/dts/overlays/dwc-otg-overlay.dts
|
||||
@@ -6,14 +6,8 @@
|
||||
|
||||
fragment@0 {
|
||||
target = <&usb>;
|
||||
- #address-cells = <1>;
|
||||
- #size-cells = <1>;
|
||||
__overlay__ {
|
||||
compatible = "brcm,bcm2708-usb";
|
||||
- reg = <0x7e980000 0x10000>,
|
||||
- <0x7e006000 0x1000>;
|
||||
- interrupts = <2 0>,
|
||||
- <1 9>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/overlays/dwc2-overlay.dts b/arch/arm/boot/dts/overlays/dwc2-overlay.dts
|
||||
index 7f04b2ab3762..732adbe3faaf 100644
|
||||
--- a/arch/arm/boot/dts/overlays/dwc2-overlay.dts
|
||||
+++ b/arch/arm/boot/dts/overlays/dwc2-overlay.dts
|
||||
@@ -10,8 +10,6 @@
|
||||
#size-cells = <1>;
|
||||
dwc2_usb: __overlay__ {
|
||||
compatible = "brcm,bcm2835-usb";
|
||||
- reg = <0x7e980000 0x10000>;
|
||||
- interrupts = <1 9>;
|
||||
dr_mode = "otg";
|
||||
g-np-tx-fifo-size = <32>;
|
||||
g-rx-fifo-size = <256>;
|
||||
--
|
||||
2.19.1
|
||||
|
|
@ -0,0 +1,131 @@
|
|||
From d2b14d32d3e417e5ef9434bb8ec9f1229035ee2e Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Wed, 22 May 2019 13:29:56 +0100
|
||||
Subject: [PATCH 514/515] overlays: Update upstream overlay
|
||||
|
||||
The recent DT/overlay changes have had a corresponding effect on the
|
||||
upstream overlay, which is a composite of the vc4-kms-v3d and dwc2
|
||||
overlays.
|
||||
|
||||
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
---
|
||||
.../boot/dts/overlays/upstream-overlay.dts | 41 ++-----------------
|
||||
1 file changed, 3 insertions(+), 38 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/overlays/upstream-overlay.dts b/arch/arm/boot/dts/overlays/upstream-overlay.dts
|
||||
index 2b91dc143945..1e069f3672f4 100644
|
||||
--- a/arch/arm/boot/dts/overlays/upstream-overlay.dts
|
||||
+++ b/arch/arm/boot/dts/overlays/upstream-overlay.dts
|
||||
@@ -52,42 +52,36 @@
|
||||
fragment@7 {
|
||||
target = <&pixelvalve0>;
|
||||
__overlay__ {
|
||||
- interrupts = <2 13>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@8 {
|
||||
target = <&pixelvalve1>;
|
||||
__overlay__ {
|
||||
- interrupts = <2 14>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@9 {
|
||||
target = <&pixelvalve2>;
|
||||
__overlay__ {
|
||||
- interrupts = <2 10>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@10 {
|
||||
target = <&hvs>;
|
||||
__overlay__ {
|
||||
- interrupts = <2 1>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@11 {
|
||||
target = <&hdmi>;
|
||||
__overlay__ {
|
||||
- interrupts = <2 8>, <2 9>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@12 {
|
||||
target = <&v3d>;
|
||||
__overlay__ {
|
||||
- interrupts = <1 10>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
@@ -98,37 +92,29 @@
|
||||
};
|
||||
};
|
||||
fragment@14 {
|
||||
- target-path = "/soc/dma";
|
||||
- __overlay__ {
|
||||
- brcm,dma-channel-mask = <0x7f35>;
|
||||
- };
|
||||
- };
|
||||
- fragment@15 {
|
||||
target = <&clocks>;
|
||||
__overlay__ {
|
||||
claim-clocks = <BCM2835_PLLD_DSI0 BCM2835_PLLD_DSI1 BCM2835_PLLH_AUX BCM2835_PLLH_PIX>;
|
||||
};
|
||||
};
|
||||
- fragment@16 {
|
||||
+ fragment@15 {
|
||||
target = <&vec>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
- fragment@17 {
|
||||
+ fragment@16 {
|
||||
target = <&txp>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
- fragment@18 {
|
||||
+ fragment@17 {
|
||||
target = <&usb>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
dwc2_usb: __overlay__ {
|
||||
compatible = "brcm,bcm2835-usb";
|
||||
- reg = <0x7e980000 0x10000>;
|
||||
- interrupts = <1 9>;
|
||||
dr_mode = "otg";
|
||||
g-np-tx-fifo-size = <32>;
|
||||
g-rx-fifo-size = <256>;
|
||||
@@ -136,25 +122,4 @@
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
- fragment@19 {
|
||||
- target = <&uart1>;
|
||||
- __overlay__ {
|
||||
- interrupt-parent = <&intc>;
|
||||
- interrupts = <0x1 0x1d>;
|
||||
- };
|
||||
- };
|
||||
- fragment@20 {
|
||||
- target = <&spi1>;
|
||||
- __overlay__ {
|
||||
- interrupt-parent = <&intc>;
|
||||
- interrupts = <0x1 0x1d>;
|
||||
- };
|
||||
- };
|
||||
- fragment@21 {
|
||||
- target = <&spi2>;
|
||||
- __overlay__ {
|
||||
- interrupt-parent = <&intc>;
|
||||
- interrupts = <0x1 0x1d>;
|
||||
- };
|
||||
- };
|
||||
};
|
||||
--
|
||||
2.19.1
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
From 1694cf065778a8508b6dd8ce8ce270ca0e643788 Mon Sep 17 00:00:00 2001
|
||||
From: Mariusz Bialonczyk <manio@skyboo.net>
|
||||
Date: Thu, 16 May 2019 14:39:21 +0200
|
||||
Subject: [PATCH 515/515] w1: ds2408: Fix typo after 49695ac46861 (reset on
|
||||
output_write retry with readback)
|
||||
|
||||
commit 6660a04feb7ef648e50c792e19084d675fa6f3a2 upstream.
|
||||
|
||||
Fix a typo in commit:
|
||||
49695ac46861 w1: ds2408: reset on output_write retry with readback
|
||||
|
||||
Fixes: 49695ac46861 ("w1: ds2408: reset on output_write retry with readback")
|
||||
Reported-by: Phil Elwell <phil@raspberrypi.org>
|
||||
Cc: Jean-Francois Dagenais <jeff.dagenais@gmail.com>
|
||||
Signed-off-by: Mariusz Bialonczyk <manio@skyboo.net>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/w1/slaves/w1_ds2408.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/w1/slaves/w1_ds2408.c b/drivers/w1/slaves/w1_ds2408.c
|
||||
index 92e8f0755b9a..edf0bc98012c 100644
|
||||
--- a/drivers/w1/slaves/w1_ds2408.c
|
||||
+++ b/drivers/w1/slaves/w1_ds2408.c
|
||||
@@ -138,7 +138,7 @@ static ssize_t status_control_read(struct file *filp, struct kobject *kobj,
|
||||
W1_F29_REG_CONTROL_AND_STATUS, buf);
|
||||
}
|
||||
|
||||
-#ifdef fCONFIG_W1_SLAVE_DS2408_READBACK
|
||||
+#ifdef CONFIG_W1_SLAVE_DS2408_READBACK
|
||||
static bool optional_read_back_valid(struct w1_slave *sl, u8 expected)
|
||||
{
|
||||
u8 w1_buf[3];
|
||||
--
|
||||
2.19.1
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue