mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 23:24:22 -04:00
sr100: Decide the normal read or ext
UCI_MT_MASK is add in D35 to read the normal mode data or extended mode data calculation. Propagate_From (CR) Change-Id: Ica2701d26cc780d46587bfd08b0265626c6ff2cf Signed-off-by: Srihari Sathyanarayana <sriharis@motorola.com> Reviewed-on: https://gerrit.mot.com/2468566 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Vijayakumar Gn <vijaygn@motorola.com> Reviewed-by: Tao Sun <suntao2@motorola.com> Submit-Approved: Jira Key
This commit is contained in:
parent
7b65d3eff5
commit
acefd93782
1 changed files with 13 additions and 6 deletions
|
|
@ -64,6 +64,7 @@ static bool is_fw_dwnld_enabled = false;
|
|||
#define SR100_RXBUF_SIZE 4096
|
||||
#define SR100_MAX_TX_BUF_SIZE 2053
|
||||
#define MAX_READ_RETRY_COUNT 10
|
||||
#define UCI_MT_MASK 0xE0
|
||||
/* Macro to define SPI clock frequency */
|
||||
|
||||
#define SR100_SPI_CLOCK 16000000L;
|
||||
|
|
@ -472,13 +473,19 @@ static int sr100_dev_transceive(struct sr100_dev* sr100_dev, int op_mode, int co
|
|||
pr_info("sr100_dev_read: spi read error %d\n ", ret);
|
||||
goto transcive_end;
|
||||
}
|
||||
sr100_dev->IsExtndLenIndication = (sr100_dev->rx_buffer[EXTND_LEN_INDICATOR_OFFSET] & EXTND_LEN_INDICATOR_OFFSET_MASK);
|
||||
sr100_dev->totalBtyesToRead = sr100_dev->rx_buffer[NORMAL_MODE_LEN_OFFSET];
|
||||
if(sr100_dev->IsExtndLenIndication){
|
||||
|
||||
if ((sr100_dev->rx_buffer[0] & UCI_MT_MASK) == 0) {
|
||||
sr100_dev->totalBtyesToRead = sr100_dev->rx_buffer[NORMAL_MODE_LEN_OFFSET];
|
||||
sr100_dev->totalBtyesToRead = ((sr100_dev->totalBtyesToRead << 8) | sr100_dev->rx_buffer[EXTENDED_LENGTH_OFFSET]);
|
||||
} else {
|
||||
sr100_dev->IsExtndLenIndication = (sr100_dev->rx_buffer[EXTND_LEN_INDICATOR_OFFSET] & EXTND_LEN_INDICATOR_OFFSET_MASK);
|
||||
sr100_dev->totalBtyesToRead = sr100_dev->rx_buffer[NORMAL_MODE_LEN_OFFSET];
|
||||
if (sr100_dev->IsExtndLenIndication) {
|
||||
sr100_dev->totalBtyesToRead = ((sr100_dev->totalBtyesToRead << 8) | sr100_dev->rx_buffer[EXTENDED_LENGTH_OFFSET]);
|
||||
}
|
||||
}
|
||||
if(sr100_dev->totalBtyesToRead > MAX_UCI_PKT_SIZE) {
|
||||
printk("Length %d exceeds the max limit %d....",(int)sr100_dev->totalBtyesToRead,(int)SR100_RXBUF_SIZE);
|
||||
if(sr100_dev->totalBtyesToRead > (MAX_UCI_PKT_SIZE - NORMAL_MODE_HEADER_LEN)) {
|
||||
printk("Length %d exceeds the max limit %d....",(int)sr100_dev->totalBtyesToRead,(int)MAX_UCI_PKT_SIZE);
|
||||
ret = -1;
|
||||
goto transcive_end;
|
||||
}
|
||||
|
|
@ -495,7 +502,7 @@ static int sr100_dev_transceive(struct sr100_dev* sr100_dev, int op_mode, int co
|
|||
usleep_range(10,15);
|
||||
retry_count++;
|
||||
if(retry_count == 1000){
|
||||
printk("Slave not released the IRQ even after 1ms");
|
||||
printk("Slave not released the IRQ even after 10ms");
|
||||
break;
|
||||
}
|
||||
}while(gpio_get_value(sr100_dev->irq_gpio));
|
||||
|
|
|
|||
Loading…
Reference in a new issue