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 | 35 | ret = regmap_write(regmap, addr, value); |
| 36 | 36 | if (ret < 0) |
| 37 | − dev_err(rt711->component->dev, | |
| 37 | + dev_err(&rt711->slave->dev, | |
| 38 | 38 | "Failed to set private value: %06x <= %04x ret=%d\n", |
| 39 | 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 | 51 | ret = regmap_read(regmap, addr, value); |
| 52 | 52 | if (ret < 0) |
| 53 | − dev_err(rt711->component->dev, | |
| 53 | + dev_err(&rt711->slave->dev, | |
| 54 | 54 | "Failed to get private value: %06x => %04x ret=%d\n", |
| 55 | 55 | addr, *value, ret); |
| 56 | 56 | |