summaryrefslogtreecommitdiff
path: root/drivers/usb/renesas_usbhs
diff options
context:
space:
mode:
authorChris Brandt <chris.brandt@renesas.com>2019-05-15 10:20:43 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-05-21 10:25:59 +0200
commitf756066990607dbe8ea5579c925b48e646891f3e (patch)
treee2cb8b70920d5f003621e48ec055eca111ec7628 /drivers/usb/renesas_usbhs
parent2195e3af9079ea067079e98446ea6a457c81a98c (diff)
usb: renesas_usbhs: support byte addressable CFIFO
Some SoC have a CFIFO register that is byte addressable. This means when the CFIFO access is set to 32-bit, you can write 8-bit values to addresses CFIFO+0, CFIFO+1, CFIFO+2, CFIFO+3. Signed-off-by: Chris Brandt <chris.brandt@renesas.com> Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Reviewed-by: Simon Horman <horms+renesas@verge.net.au> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/renesas_usbhs')
-rw-r--r--drivers/usb/renesas_usbhs/fifo.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/usb/renesas_usbhs/fifo.c b/drivers/usb/renesas_usbhs/fifo.c
index 39fa2fc1b8b7..452b456ac24e 100644
--- a/drivers/usb/renesas_usbhs/fifo.c
+++ b/drivers/usb/renesas_usbhs/fifo.c
@@ -543,8 +543,13 @@ static int usbhsf_pio_try_push(struct usbhs_pkt *pkt, int *is_done)
}
/* the rest operation */
- for (i = 0; i < len; i++)
- iowrite8(buf[i], addr + (0x03 - (i & 0x03)));
+ if (usbhs_get_dparam(priv, cfifo_byte_addr)) {
+ for (i = 0; i < len; i++)
+ iowrite8(buf[i], addr + (i & 0x03));
+ } else {
+ for (i = 0; i < len; i++)
+ iowrite8(buf[i], addr + (0x03 - (i & 0x03)));
+ }
/*
* variable update
than Huckleberry 2022-07-14dm/dm-integrity: Combine request operation and flagsBart Van Assche 2022-07-14dm/core: Reduce the size of struct dm_io_requestBart Van Assche 2022-07-14treewide: Rename enum req_opf into enum req_opBart Van Assche 2022-05-09dm integrity: fix error code in dm_integrity_ctr()Dan Carpenter 2022-04-13dm integrity: fix memory corruption when tag_size is less than digest sizeMikulas Patocka 2022-04-01dm integrity: set journal entry unused when shrinking deviceMikulas Patocka 2022-03-07dm-integrity: stop using bio_devnameChristoph Hellwig 2022-01-06dm integrity: Use struct_group() to zero struct journal_sectorKees Cook 2021-12-15dm integrity: fix data corruption due to improper use of bvec_kmap_localMike Snitzer 2021-11-09Merge tag 'for-5.16/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/...Linus Torvalds 2021-11-01dm integrity: use bvec_kmap_local in __journal_read_writeChristoph Hellwig 2021-11-01dm integrity: use bvec_kmap_local in integrity_metadataChristoph Hellwig 2021-10-27dm integrity: log audit events for dm-integrity targetMichael Weiß 2021-10-18dm: use bdev_nr_sectors and bdev_nr_bytes instead of open coding themChristoph Hellwig 2021-08-31Merge tag 'for-5.15/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/...Linus Torvalds 2021-08-20dm ima: update dm target attributes for ima measurementsTushar Sugandhi 2021-08-16dm-integrity: use bvec_virtChristoph Hellwig 2021-08-10dm: update target status functions to support IMA measurementTushar Sugandhi