mirror of
https://github.com/DigitalDevices/dddvb.git
synced 2025-03-01 10:35:23 +00:00
arm64 cannot handle unaligned readl
This commit is contained in:
parent
09021aec73
commit
690289c338
@ -45,14 +45,15 @@ static int read_attribute_mem(struct dvb_ca_en50221 *ca,
|
|||||||
int slot, int address)
|
int slot, int address)
|
||||||
{
|
{
|
||||||
struct ddb_ci *ci = ca->data;
|
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)
|
if (address > CI_BUFFER_SIZE)
|
||||||
return -1;
|
return -1;
|
||||||
ddbwritel(ci->port->dev, CI_READ_CMD | (1 << 16) | address,
|
ddbwritel(ci->port->dev, CI_READ_CMD | (1 << 16) | address,
|
||||||
CI_DO_READ_ATTRIBUTES(ci));
|
CI_DO_READ_ATTRIBUTES(ci));
|
||||||
wait_ci_ready(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;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user