Skip to content

Commit f6cef5f

Browse files
committed
Merge tag 'i3c/for-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux
Pull i3c updates from Alexandre Belloni: "Not much this cycle with only three patches. Core: - i3c_bus_type is now const Drivers: - dw: disabling IBI is only allowed when hot join and SIR are disabled" * tag 'i3c/for-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux: i3c: Make i3c_bus_type const i3c: dw: Disable IBI IRQ depends on hot-join and SIR enabling dt-bindings: i3c: drop "master" node name suffix
2 parents 906a93b + 8f06fb4 commit f6cef5f

File tree

9 files changed

+12
-10
lines changed

9 files changed

+12
-10
lines changed

Documentation/devicetree/bindings/i3c/aspeed,ast2600-i3c.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ examples:
5757
- |
5858
#include <dt-bindings/interrupt-controller/arm-gic.h>
5959
60-
i3c-master@2000 {
60+
i3c@2000 {
6161
compatible = "aspeed,ast2600-i3c";
6262
reg = <0x2000 0x1000>;
6363
#address-cells = <3>;

Documentation/devicetree/bindings/i3c/cdns,i3c-master.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ unevaluatedProperties: false
4141

4242
examples:
4343
- |
44-
i3c-master@d040000 {
44+
i3c@d040000 {
4545
compatible = "cdns,i3c-master";
4646
clocks = <&coreclock>, <&i3csysclock>;
4747
clock-names = "pclk", "sysclk";

Documentation/devicetree/bindings/i3c/i3c.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ description: |
1717
1818
properties:
1919
$nodename:
20-
pattern: "^i3c-master@[0-9a-f]+$"
20+
pattern: "^i3c@[0-9a-f]+$"
2121

2222
"#address-cells":
2323
const: 3
@@ -153,7 +153,7 @@ additionalProperties: true
153153

154154
examples:
155155
- |
156-
i3c-master@d040000 {
156+
i3c@d040000 {
157157
compatible = "cdns,i3c-master";
158158
clocks = <&coreclock>, <&i3csysclock>;
159159
clock-names = "pclk", "sysclk";

Documentation/devicetree/bindings/i3c/mipi-i3c-hci.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ unevaluatedProperties: false
4343

4444
examples:
4545
- |
46-
i3c-master@a0000000 {
46+
i3c@a0000000 {
4747
compatible = "mipi-i3c-hci";
4848
reg = <0xa0000000 0x2000>;
4949
interrupts = <89>;

Documentation/devicetree/bindings/i3c/silvaco,i3c-master.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ unevaluatedProperties: false
4848

4949
examples:
5050
- |
51-
i3c-master@a0000000 {
51+
i3c@a0000000 {
5252
compatible = "silvaco,i3c-master-v1";
5353
clocks = <&zynqmp_clk 71>, <&fclk>, <&sclk>;
5454
clock-names = "pclk", "fast_clk", "slow_clk";

Documentation/devicetree/bindings/i3c/snps,dw-i3c-master.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ unevaluatedProperties: false
3535

3636
examples:
3737
- |
38-
i3c-master@2000 {
38+
i3c@2000 {
3939
compatible = "snps,dw-i3c-master-1.00a";
4040
#address-cells = <3>;
4141
#size-cells = <0>;

drivers/i3c/internals.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
#include <linux/i3c/master.h>
1212

13-
extern struct bus_type i3c_bus_type;
13+
extern const struct bus_type i3c_bus_type;
1414

1515
void i3c_bus_normaluse_lock(struct i3c_bus *bus);
1616
void i3c_bus_normaluse_unlock(struct i3c_bus *bus);

drivers/i3c/master.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ static void i3c_device_remove(struct device *dev)
335335
i3c_device_free_ibi(i3cdev);
336336
}
337337

338-
struct bus_type i3c_bus_type = {
338+
const struct bus_type i3c_bus_type = {
339339
.name = "i3c",
340340
.match = i3c_device_match,
341341
.probe = i3c_device_probe,

drivers/i3c/master/dw-i3c-master.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1163,8 +1163,10 @@ static void dw_i3c_master_set_sir_enabled(struct dw_i3c_master *master,
11631163
global = reg == 0xffffffff;
11641164
reg &= ~BIT(idx);
11651165
} else {
1166-
global = reg == 0;
1166+
bool hj_rejected = !!(readl(master->regs + DEVICE_CTRL) & DEV_CTRL_HOT_JOIN_NACK);
1167+
11671168
reg |= BIT(idx);
1169+
global = (reg == 0xffffffff) && hj_rejected;
11681170
}
11691171
writel(reg, master->regs + IBI_SIR_REQ_REJECT);
11701172

0 commit comments

Comments
 (0)