|
@@ -276,7 +276,7 @@ static void stm_disable(struct coresight_device *csdev,
|
|
|
spin_unlock(&drvdata->spinlock);
|
|
|
|
|
|
/* Wait until the engine has completely stopped */
|
|
|
- coresight_timeout(drvdata, STMTCSR, STMTCSR_BUSY_BIT, 0);
|
|
|
+ coresight_timeout(drvdata->base, STMTCSR, STMTCSR_BUSY_BIT, 0);
|
|
|
|
|
|
pm_runtime_put(drvdata->dev);
|
|
|
|
|
@@ -307,7 +307,8 @@ static inline bool stm_addr_unaligned(const void *addr, u8 write_bytes)
|
|
|
return ((unsigned long)addr & (write_bytes - 1));
|
|
|
}
|
|
|
|
|
|
-static void stm_send(void *addr, const void *data, u32 size, u8 write_bytes)
|
|
|
+static void stm_send(void __iomem *addr, const void *data,
|
|
|
+ u32 size, u8 write_bytes)
|
|
|
{
|
|
|
u8 paload[8];
|
|
|
|
|
@@ -414,7 +415,7 @@ static ssize_t notrace stm_generic_packet(struct stm_data *stm_data,
|
|
|
unsigned int size,
|
|
|
const unsigned char *payload)
|
|
|
{
|
|
|
- unsigned long ch_addr;
|
|
|
+ void __iomem *ch_addr;
|
|
|
struct stm_drvdata *drvdata = container_of(stm_data,
|
|
|
struct stm_drvdata, stm);
|
|
|
|
|
@@ -424,7 +425,7 @@ static ssize_t notrace stm_generic_packet(struct stm_data *stm_data,
|
|
|
if (channel >= drvdata->numsp)
|
|
|
return -EINVAL;
|
|
|
|
|
|
- ch_addr = (unsigned long)stm_channel_addr(drvdata, channel);
|
|
|
+ ch_addr = stm_channel_addr(drvdata, channel);
|
|
|
|
|
|
flags = (flags == STP_PACKET_TIMESTAMPED) ? STM_FLAG_TIMESTAMPED : 0;
|
|
|
flags |= test_bit(channel, drvdata->chs.guaranteed) ?
|
|
@@ -437,20 +438,20 @@ static ssize_t notrace stm_generic_packet(struct stm_data *stm_data,
|
|
|
|
|
|
switch (packet) {
|
|
|
case STP_PACKET_FLAG:
|
|
|
- ch_addr |= stm_channel_off(STM_PKT_TYPE_FLAG, flags);
|
|
|
+ ch_addr += stm_channel_off(STM_PKT_TYPE_FLAG, flags);
|
|
|
|
|
|
/*
|
|
|
* The generic STM core sets a size of '0' on flag packets.
|
|
|
* As such send a flag packet of size '1' and tell the
|
|
|
* core we did so.
|
|
|
*/
|
|
|
- stm_send((void *)ch_addr, payload, 1, drvdata->write_bytes);
|
|
|
+ stm_send(ch_addr, payload, 1, drvdata->write_bytes);
|
|
|
size = 1;
|
|
|
break;
|
|
|
|
|
|
case STP_PACKET_DATA:
|
|
|
- ch_addr |= stm_channel_off(STM_PKT_TYPE_DATA, flags);
|
|
|
- stm_send((void *)ch_addr, payload, size,
|
|
|
+ ch_addr += stm_channel_off(STM_PKT_TYPE_DATA, flags);
|
|
|
+ stm_send(ch_addr, payload, size,
|
|
|
drvdata->write_bytes);
|
|
|
break;
|
|
|
|