The initial settings will be written before the codec probe function. But, the rt711->component doesn't be assigned yet. If IO error happened during initial settings operations, it will cause the kernel panic. This patch changed component->dev to slave->dev to fix this issue.
Unified · Split
| @@ -34,7 +34,7 @@ static int rt711_sdca_index_write(struct rt711_sdca_priv *rt711, · 33 unmodified lines | |||
| 34 | 34 | ||
| 35 | ret = regmap_write(regmap, addr, value); | 35 | ret = regmap_write(regmap, addr, value); |
| 36 | if (ret < 0) | 36 | if (ret < 0) |
| 37 | dev_err(rt711->component->dev, | 37 | dev_err(&rt711->slave->dev, |
| 38 | "Failed to set private value: %06x <= %04x ret=%d\n", | 38 | "Failed to set private value: %06x <= %04x ret=%d\n", |
| 39 | addr, value, ret); | 39 | addr, value, ret); |
| 40 | 40 | ||
| @@ -50,7 +50,7 @@ static int rt711_sdca_index_read(struct rt711_sdca_priv *rt711, · 9 unmodified lines | |||
| 50 | 50 | ||
| 51 | ret = regmap_read(regmap, addr, value); | 51 | ret = regmap_read(regmap, addr, value); |
| 52 | if (ret < 0) | 52 | if (ret < 0) |
| 53 | dev_err(rt711->component->dev, | 53 | dev_err(&rt711->slave->dev, |
| 54 | "Failed to get private value: %06x => %04x ret=%d\n", | 54 | "Failed to get private value: %06x => %04x ret=%d\n", |
| 55 | addr, *value, ret); | 55 | addr, *value, ret); |
| 56 | 56 | ||