From 690289c33833de85957aa5a7d7e7f4605fb34028 Mon Sep 17 00:00:00 2001 From: internal <> Date: Thu, 8 Feb 2024 22:57:40 +0100 Subject: [PATCH] arm64 cannot handle unaligned readl --- ddbridge/ddbridge-ci.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ddbridge/ddbridge-ci.c b/ddbridge/ddbridge-ci.c index 2dd12ef..66e96ab 100644 --- a/ddbridge/ddbridge-ci.c +++ b/ddbridge/ddbridge-ci.c @@ -45,14 +45,15 @@ static int read_attribute_mem(struct dvb_ca_en50221 *ca, int slot, int address) { struct ddb_ci *ci = ca->data; - u32 val, off = (address >> 1) & (CI_BUFFER_SIZE - 1); + u32 off = (address >> 1) & (CI_BUFFER_SIZE - 1); + u8 val; if (address > CI_BUFFER_SIZE) return -1; ddbwritel(ci->port->dev, CI_READ_CMD | (1 << 16) | address, CI_DO_READ_ATTRIBUTES(ci)); wait_ci_ready(ci); - val = 0xff & ddbreadl(ci->port->dev, CI_BUFFER(ci->nr) + off); + ddbcpyfrom(ci->port->dev, &val, CI_BUFFER(ci->nr) + off, 1); return val; }