summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorFranky Lin <frankyl@broadcom.com>2013-06-26 14:20:18 +0200
committerJohn W. Linville <linville@tuxdriver.com>2013-06-27 13:42:18 -0400
commit3b81a6809480f3fc7d9d06562704c8df18ecec00 (patch)
tree8272324d8c51da6b79ffaf57911ba4d973716f2e /include
parent356bae6fb77b9ed74989bab4d919afd598f921a8 (diff)
downloadlinux-3b81a6809480f3fc7d9d06562704c8df18ecec00.tar.gz
linux-3b81a6809480f3fc7d9d06562704c8df18ecec00.tar.bz2
linux-3b81a6809480f3fc7d9d06562704c8df18ecec00.zip
brcmfmac: add broken scatter-gather DMA support
DMA engine of some old SDIO host controllers require block size alignment for data length of each scatterlist item. This patch introduces an intermediate buffer list to support this kind of platform. It decreases the throughput because of an extra memcpy in critical data path. So don't turn this on unless it's necessary. Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/platform_data/brcmfmac-sdio.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/platform_data/brcmfmac-sdio.h b/include/linux/platform_data/brcmfmac-sdio.h
index 1ade657d5fc1..b7174998c24a 100644
--- a/include/linux/platform_data/brcmfmac-sdio.h
+++ b/include/linux/platform_data/brcmfmac-sdio.h
@@ -90,6 +90,10 @@ void __init brcmfmac_init_pdata(void)
* oob_irq_nr, oob_irq_flags: the OOB interrupt information. The values are
* used for registering the irq using request_irq function.
*
+ * broken_sg_support: flag for broken sg list support of SDIO host controller.
+ * Set this to true if the SDIO host controller has higher align requirement
+ * than 32 bytes for each scatterlist item.
+ *
* power_on: This function is called by the brcmfmac when the module gets
* loaded. This can be particularly useful for low power devices. The platform
* spcific routine may for example decide to power up the complete device.
@@ -116,6 +120,7 @@ struct brcmfmac_sdio_platform_data {
bool oob_irq_supported;
unsigned int oob_irq_nr;
unsigned long oob_irq_flags;
+ bool broken_sg_support;
void (*power_on)(void);
void (*power_off)(void);
void (*reset)(void);