mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-29 04:45:05 +00:00
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: Prameela Rani Garnepudi <prameela.j04cs@gmail.com> Signed-off-by: Amitkumar Karwar <amit.karwar@redpinesignals.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
d7af6bb7e5
commit
897d341dee
@ -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,
|
|||||||
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,
|
|||||||
|
|
||||||
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,
|
|||||||
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)
|
|||||||
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 {
|
|||||||
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);
|
|||||||
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);
|
||||||
|
Loading…
Reference in New Issue
Block a user