Commit 897d341d authored by Prameela Rani Garnepudi's avatar Prameela Rani Garnepudi Committed by Kalle Valo

rsi: Changes to sdio reads and writes

SDIO read or write maximum size is limited to 2^16. This is done to make
the host interface operations common for SDIO and USB.
Signed-off-by: default avatarPrameela Rani Garnepudi <prameela.j04cs@gmail.com>
Signed-off-by: default avatarAmitkumar Karwar <amit.karwar@redpinesignals.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent d7af6bb7
...@@ -487,8 +487,8 @@ void rsi_sdio_ack_intr(struct rsi_hw *adapter, u8 int_bit) ...@@ -487,8 +487,8 @@ void rsi_sdio_ack_intr(struct rsi_hw *adapter, u8 int_bit)
*/ */
static int rsi_sdio_read_register_multiple(struct rsi_hw *adapter, static int rsi_sdio_read_register_multiple(struct rsi_hw *adapter,
u32 addr, u32 addr,
u32 count, u8 *data,
u8 *data) u16 count)
{ {
struct rsi_91x_sdiodev *dev = struct rsi_91x_sdiodev *dev =
(struct rsi_91x_sdiodev *)adapter->rsi_dev; (struct rsi_91x_sdiodev *)adapter->rsi_dev;
...@@ -518,7 +518,7 @@ static int rsi_sdio_read_register_multiple(struct rsi_hw *adapter, ...@@ -518,7 +518,7 @@ static int rsi_sdio_read_register_multiple(struct rsi_hw *adapter,
int rsi_sdio_write_register_multiple(struct rsi_hw *adapter, int rsi_sdio_write_register_multiple(struct rsi_hw *adapter,
u32 addr, u32 addr,
u8 *data, u8 *data,
u32 count) u16 count)
{ {
struct rsi_91x_sdiodev *dev = struct rsi_91x_sdiodev *dev =
(struct rsi_91x_sdiodev *)adapter->rsi_dev; (struct rsi_91x_sdiodev *)adapter->rsi_dev;
...@@ -614,8 +614,8 @@ int rsi_sdio_host_intf_read_pkt(struct rsi_hw *adapter, ...@@ -614,8 +614,8 @@ int rsi_sdio_host_intf_read_pkt(struct rsi_hw *adapter,
status = rsi_sdio_read_register_multiple(adapter, status = rsi_sdio_read_register_multiple(adapter,
length, length,
length, /*num of bytes*/ (u8 *)pkt,
(u8 *)pkt); length); /*num of bytes*/
if (status) if (status)
rsi_dbg(ERR_ZONE, "%s: Failed to read frame: %d\n", __func__, rsi_dbg(ERR_ZONE, "%s: Failed to read frame: %d\n", __func__,
......
...@@ -75,13 +75,13 @@ static int rsi_sdio_master_access_msword(struct rsi_hw *adapter, ...@@ -75,13 +75,13 @@ static int rsi_sdio_master_access_msword(struct rsi_hw *adapter,
static int rsi_copy_to_card(struct rsi_common *common, static int rsi_copy_to_card(struct rsi_common *common,
const u8 *fw, const u8 *fw,
u32 len, u32 len,
u32 num_blocks) u16 num_blocks)
{ {
struct rsi_hw *adapter = common->priv; struct rsi_hw *adapter = common->priv;
struct rsi_91x_sdiodev *dev = struct rsi_91x_sdiodev *dev =
(struct rsi_91x_sdiodev *)adapter->rsi_dev; (struct rsi_91x_sdiodev *)adapter->rsi_dev;
u32 indx, ii; u32 indx, ii;
u32 block_size = dev->tx_blk_size; u16 block_size = dev->tx_blk_size;
u32 lsb_address; u32 lsb_address;
__le32 data[] = { TA_HOLD_THREAD_VALUE, TA_SOFT_RST_CLR, __le32 data[] = { TA_HOLD_THREAD_VALUE, TA_SOFT_RST_CLR,
TA_PC_ZERO, TA_RELEASE_THREAD_VALUE }; TA_PC_ZERO, TA_RELEASE_THREAD_VALUE };
...@@ -171,10 +171,10 @@ static int rsi_load_ta_instructions(struct rsi_common *common) ...@@ -171,10 +171,10 @@ static int rsi_load_ta_instructions(struct rsi_common *common)
struct rsi_91x_sdiodev *dev = struct rsi_91x_sdiodev *dev =
(struct rsi_91x_sdiodev *)adapter->rsi_dev; (struct rsi_91x_sdiodev *)adapter->rsi_dev;
u32 len; u32 len;
u32 num_blocks; u16 num_blocks;
const u8 *fw; const u8 *fw;
const struct firmware *fw_entry = NULL; const struct firmware *fw_entry = NULL;
u32 block_size = dev->tx_blk_size; u16 block_size = dev->tx_blk_size;
int status = 0; int status = 0;
u32 base_address; u32 base_address;
u16 msb_address; u16 msb_address;
......
...@@ -110,7 +110,7 @@ struct rsi_91x_sdiodev { ...@@ -110,7 +110,7 @@ struct rsi_91x_sdiodev {
u8 sdio_clock_speed; u8 sdio_clock_speed;
u32 cardcapability; u32 cardcapability;
u8 prev_desc[16]; u8 prev_desc[16];
u32 tx_blk_size; u16 tx_blk_size;
u8 write_fail; u8 write_fail;
}; };
...@@ -122,7 +122,7 @@ int rsi_sdio_host_intf_read_pkt(struct rsi_hw *adapter, u8 *pkt, u32 length); ...@@ -122,7 +122,7 @@ int rsi_sdio_host_intf_read_pkt(struct rsi_hw *adapter, u8 *pkt, u32 length);
int rsi_sdio_write_register(struct rsi_hw *adapter, u8 function, int rsi_sdio_write_register(struct rsi_hw *adapter, u8 function,
u32 addr, u8 *data); u32 addr, u8 *data);
int rsi_sdio_write_register_multiple(struct rsi_hw *adapter, u32 addr, int rsi_sdio_write_register_multiple(struct rsi_hw *adapter, u32 addr,
u8 *data, u32 count); u8 *data, u16 count);
void rsi_sdio_ack_intr(struct rsi_hw *adapter, u8 int_bit); void rsi_sdio_ack_intr(struct rsi_hw *adapter, u8 int_bit);
int rsi_sdio_determine_event_timeout(struct rsi_hw *adapter); int rsi_sdio_determine_event_timeout(struct rsi_hw *adapter);
int rsi_sdio_read_buffer_status_register(struct rsi_hw *adapter, u8 q_num); int rsi_sdio_read_buffer_status_register(struct rsi_hw *adapter, u8 q_num);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment