Commit ab4d309d8708035bd323b2e2446eb68cda5e61e5

Authored by Tony Lindgren
1 parent e64c021fd9

bus: ti-sysc: Improve reset to work with modules with no sysconfig

At least display susbsystem (DSS) has modules with no sysconfig registers
and rely on custom function for module reset handling. Let's make reset
work with that too.

Signed-off-by: Tony Lindgren <tony@atomide.com>

Showing 1 changed file with 6 additions and 4 deletions Side-by-side Diff

drivers/bus/ti-sysc.c
... ... @@ -1571,7 +1571,7 @@
1571 1571 sysc_offset = ddata->offsets[SYSC_SYSCONFIG];
1572 1572 syss_offset = ddata->offsets[SYSC_SYSSTATUS];
1573 1573  
1574   - if (ddata->legacy_mode || sysc_offset < 0 ||
  1574 + if (ddata->legacy_mode ||
1575 1575 ddata->cap->regbits->srst_shift < 0 ||
1576 1576 ddata->cfg.quirks & SYSC_QUIRK_NO_RESET_ON_INIT)
1577 1577 return 0;
... ... @@ -1586,9 +1586,11 @@
1586 1586 if (ddata->pre_reset_quirk)
1587 1587 ddata->pre_reset_quirk(ddata);
1588 1588  
1589   - sysc_val = sysc_read_sysconfig(ddata);
1590   - sysc_val |= sysc_mask;
1591   - sysc_write(ddata, sysc_offset, sysc_val);
  1589 + if (sysc_offset >= 0) {
  1590 + sysc_val = sysc_read_sysconfig(ddata);
  1591 + sysc_val |= sysc_mask;
  1592 + sysc_write(ddata, sysc_offset, sysc_val);
  1593 + }
1592 1594  
1593 1595 if (ddata->cfg.srst_udelay)
1594 1596 usleep_range(ddata->cfg.srst_udelay,