mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
platform/x86/intel/sdsi: Fix bug in multi packet reads
Fix bug that added an offset to the mailbox addr during multi-packet
reads. Did not affect current ABI since it doesn't support multi-packet
transactions.
Fixes: 2546c60004
("platform/x86: Add Intel Software Defined Silicon driver")
Signed-off-by: David E. Box <david.e.box@linux.intel.com>
Link: https://lore.kernel.org/r/20220420155622.1763633-4-david.e.box@linux.intel.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
parent
5a79615c0e
commit
20b5ec315a
@ -83,7 +83,7 @@ enum sdsi_command {
|
||||
|
||||
struct sdsi_mbox_info {
|
||||
u64 *payload;
|
||||
u64 *buffer;
|
||||
void *buffer;
|
||||
int size;
|
||||
};
|
||||
|
||||
@ -165,9 +165,7 @@ static int sdsi_mbox_cmd_read(struct sdsi_priv *priv, struct sdsi_mbox_info *inf
|
||||
total = 0;
|
||||
loop = 0;
|
||||
do {
|
||||
int offset = SDSI_SIZE_MAILBOX * loop;
|
||||
void __iomem *addr = priv->mbox_addr + offset;
|
||||
u64 *buf = info->buffer + offset / SDSI_SIZE_CMD;
|
||||
void *buf = info->buffer + (SDSI_SIZE_MAILBOX * loop);
|
||||
u32 packet_size;
|
||||
|
||||
/* Poll on ready bit */
|
||||
@ -198,7 +196,7 @@ static int sdsi_mbox_cmd_read(struct sdsi_priv *priv, struct sdsi_mbox_info *inf
|
||||
break;
|
||||
}
|
||||
|
||||
sdsi_memcpy64_fromio(buf, addr, round_up(packet_size, SDSI_SIZE_CMD));
|
||||
sdsi_memcpy64_fromio(buf, priv->mbox_addr, round_up(packet_size, SDSI_SIZE_CMD));
|
||||
|
||||
total += packet_size;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user