|
@@ -633,19 +633,17 @@ static void ads7846_rx_val(void *ads)
|
|
|
struct ads7846 *ts = ads;
|
|
|
struct spi_message *m;
|
|
|
struct spi_transfer *t;
|
|
|
- u16 *rx_val;
|
|
|
int val;
|
|
|
int action;
|
|
|
int status;
|
|
|
|
|
|
m = &ts->msg[ts->msg_idx];
|
|
|
t = list_entry(m->transfers.prev, struct spi_transfer, transfer_list);
|
|
|
- rx_val = t->rx_buf;
|
|
|
|
|
|
/* adjust: on-wire is a must-ignore bit, a BE12 value, then padding;
|
|
|
* built from two 8 bit values written msb-first.
|
|
|
*/
|
|
|
- val = be16_to_cpu(*rx_val) >> 3;
|
|
|
+ val = be16_to_cpup((__be16 *)t->rx_buf) >> 3;
|
|
|
|
|
|
action = ts->filter(ts->filter_data, ts->msg_idx, &val);
|
|
|
switch (action) {
|
|
@@ -659,7 +657,7 @@ static void ads7846_rx_val(void *ads)
|
|
|
m = ts->last_msg;
|
|
|
break;
|
|
|
case ADS7846_FILTER_OK:
|
|
|
- *rx_val = val;
|
|
|
+ *(u16 *)t->rx_buf = val;
|
|
|
ts->tc.ignore = 0;
|
|
|
m = &ts->msg[++ts->msg_idx];
|
|
|
break;
|