Skip to content

Commit d091328

Browse files
committed
pcie-brcmstb: Revert to upstream
1 parent 208d9dc commit d091328

4 files changed

Lines changed: 61 additions & 736 deletions

File tree

drivers/i2c/busses/i2c-designware-common.c

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,6 @@ static char *abort_sources[] = {
6363
"slave lost the bus while transmitting data to a remote master",
6464
[ABRT_SLAVE_RD_INTX] =
6565
"incorrect slave-transmitter mode configuration",
66-
[ABRT_SLAVE_SDA_STUCK_AT_LOW] =
67-
"SDA stuck at low",
6866
};
6967

7068
static int dw_reg_read(void *context, unsigned int reg, unsigned int *val)
@@ -694,16 +692,8 @@ int i2c_dw_wait_bus_not_busy(struct dw_i2c_dev *dev)
694692
int i2c_dw_handle_tx_abort(struct dw_i2c_dev *dev)
695693
{
696694
unsigned long abort_source = dev->abort_source;
697-
unsigned int reg;
698695
int i;
699696

700-
if (abort_source & DW_IC_TX_ABRT_SLAVE_SDA_STUCK_AT_LOW) {
701-
regmap_write(dev->map, DW_IC_ENABLE,
702-
DW_IC_ENABLE_ENABLE | DW_IC_ENABLE_BUS_RECOVERY);
703-
regmap_read_poll_timeout(dev->map, DW_IC_ENABLE, reg,
704-
!(reg & DW_IC_ENABLE_BUS_RECOVERY),
705-
1100, 200000);
706-
}
707697
if (abort_source & DW_IC_TX_ABRT_NOACK) {
708698
for_each_set_bit(i, &abort_source, ARRAY_SIZE(abort_sources))
709699
dev_dbg(dev->dev,
@@ -718,8 +708,6 @@ int i2c_dw_handle_tx_abort(struct dw_i2c_dev *dev)
718708
return -EAGAIN;
719709
else if (abort_source & DW_IC_TX_ABRT_GCALL_READ)
720710
return -EINVAL; /* wrong msgs[] data */
721-
else if (abort_source & DW_IC_TX_ABRT_SLAVE_SDA_STUCK_AT_LOW)
722-
return -EREMOTEIO;
723711
else
724712
return -EIO;
725713
}

drivers/i2c/busses/i2c-designware-core.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,9 @@
7878
#define DW_IC_TX_ABRT_SOURCE 0x80
7979
#define DW_IC_ENABLE_STATUS 0x9c
8080
#define DW_IC_CLR_RESTART_DET 0xa8
81-
#define DW_IC_SCL_STUCK_AT_LOW_TIMEOUT 0xac
82-
#define DW_IC_SDA_STUCK_AT_LOW_TIMEOUT 0xb0
8381
#define DW_IC_COMP_PARAM_1 0xf4
8482
#define DW_IC_COMP_VERSION 0xf8
8583
#define DW_IC_SDA_HOLD_MIN_VERS 0x3131312A /* "111*" == v1.11* */
86-
#define DW_IC_BUS_CLEAR_MIN_VERS 0x3230302A /* "200*" == v2.00* */
8784
#define DW_IC_COMP_TYPE 0xfc
8885
#define DW_IC_COMP_TYPE_VALUE 0x44570140 /* "DW" + 0x0140 */
8986

@@ -113,15 +110,13 @@
113110

114111
#define DW_IC_ENABLE_ENABLE BIT(0)
115112
#define DW_IC_ENABLE_ABORT BIT(1)
116-
#define DW_IC_ENABLE_BUS_RECOVERY BIT(3)
117113

118114
#define DW_IC_STATUS_ACTIVITY BIT(0)
119115
#define DW_IC_STATUS_TFE BIT(2)
120116
#define DW_IC_STATUS_RFNE BIT(3)
121117
#define DW_IC_STATUS_MASTER_ACTIVITY BIT(5)
122118
#define DW_IC_STATUS_SLAVE_ACTIVITY BIT(6)
123119
#define DW_IC_STATUS_MASTER_HOLD_TX_FIFO_EMPTY BIT(7)
124-
#define DW_IC_STATUS_SDA_STUCK_NOT_RECOVERED BIT(11)
125120

126121
#define DW_IC_SDA_HOLD_RX_SHIFT 16
127122
#define DW_IC_SDA_HOLD_RX_MASK GENMASK(23, 16)
@@ -169,7 +164,6 @@
169164
#define ABRT_SLAVE_FLUSH_TXFIFO 13
170165
#define ABRT_SLAVE_ARBLOST 14
171166
#define ABRT_SLAVE_RD_INTX 15
172-
#define ABRT_SLAVE_SDA_STUCK_AT_LOW 17
173167

174168
#define DW_IC_TX_ABRT_7B_ADDR_NOACK BIT(ABRT_7B_ADDR_NOACK)
175169
#define DW_IC_TX_ABRT_10ADDR1_NOACK BIT(ABRT_10ADDR1_NOACK)
@@ -185,7 +179,6 @@
185179
#define DW_IC_RX_ABRT_SLAVE_RD_INTX BIT(ABRT_SLAVE_RD_INTX)
186180
#define DW_IC_RX_ABRT_SLAVE_ARBLOST BIT(ABRT_SLAVE_ARBLOST)
187181
#define DW_IC_RX_ABRT_SLAVE_FLUSH_TXFIFO BIT(ABRT_SLAVE_FLUSH_TXFIFO)
188-
#define DW_IC_TX_ABRT_SLAVE_SDA_STUCK_AT_LOW BIT(ABRT_SLAVE_SDA_STUCK_AT_LOW)
189182

190183
#define DW_IC_TX_ABRT_NOACK (DW_IC_TX_ABRT_7B_ADDR_NOACK | \
191184
DW_IC_TX_ABRT_10ADDR1_NOACK | \

drivers/i2c/busses/i2c-designware-master.c

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,6 @@ static int i2c_dw_set_timings_master(struct dw_i2c_dev *dev)
234234
*/
235235
static int i2c_dw_init_master(struct dw_i2c_dev *dev)
236236
{
237-
unsigned int timeout = 0;
238237
int ret;
239238

240239
ret = i2c_dw_acquire_lock(dev);
@@ -258,17 +257,6 @@ static int i2c_dw_init_master(struct dw_i2c_dev *dev)
258257
regmap_write(dev->map, DW_IC_HS_SCL_LCNT, dev->hs_lcnt);
259258
}
260259

261-
if (dev->master_cfg & DW_IC_CON_BUS_CLEAR_CTRL) {
262-
/* Set a sensible timeout if not already configured */
263-
regmap_read(dev->map, DW_IC_SDA_STUCK_AT_LOW_TIMEOUT, &timeout);
264-
if (timeout == ~0) {
265-
/* Use 10ms as a timeout, which is 1000 cycles at 100kHz */
266-
timeout = i2c_dw_clk_rate(dev) * 10; /* clock rate is in kHz */
267-
regmap_write(dev->map, DW_IC_SDA_STUCK_AT_LOW_TIMEOUT, timeout);
268-
regmap_write(dev->map, DW_IC_SCL_STUCK_AT_LOW_TIMEOUT, timeout);
269-
}
270-
}
271-
272260
/* Write SDA hold time if supported */
273261
if (dev->sda_hold_time)
274262
regmap_write(dev->map, DW_IC_SDA_HOLD, dev->sda_hold_time);
@@ -1049,7 +1037,6 @@ int i2c_dw_probe_master(struct dw_i2c_dev *dev)
10491037
struct i2c_adapter *adap = &dev->adapter;
10501038
unsigned long irq_flags;
10511039
unsigned int ic_con;
1052-
unsigned int id_ver;
10531040
int ret;
10541041

10551042
init_completion(&dev->cmd_complete);
@@ -1084,11 +1071,7 @@ int i2c_dw_probe_master(struct dw_i2c_dev *dev)
10841071
if (ret)
10851072
return ret;
10861073

1087-
ret = regmap_read(dev->map, DW_IC_COMP_VERSION, &id_ver);
1088-
if (ret)
1089-
return ret;
1090-
1091-
if (ic_con & DW_IC_CON_BUS_CLEAR_CTRL || id_ver >= DW_IC_BUS_CLEAR_MIN_VERS)
1074+
if (ic_con & DW_IC_CON_BUS_CLEAR_CTRL)
10921075
dev->master_cfg |= DW_IC_CON_BUS_CLEAR_CTRL;
10931076

10941077
ret = dev->init(dev);

0 commit comments

Comments
 (0)