Quoting Sibi Sankar (2020-09-16 07:52:52) > On secure devices which support warm reset, the MBA firmware requires > access to the modem region to clear them out. Hence provide Q6 access > to this region before MBA boot. This will be a nop during a modem SSR. > Does it need a Fixes: tag? Probably. > Signed-off-by: Sibi Sankar <sibis@xxxxxxxxxxxxxx> > --- > Trivia time! > > diff --git a/drivers/remoteproc/qcom_q6v5_mss.c b/drivers/remoteproc/qcom_q6v5_mss.c > index c401bcc263fa..f989ca81d374 100644 > --- a/drivers/remoteproc/qcom_q6v5_mss.c > +++ b/drivers/remoteproc/qcom_q6v5_mss.c > @@ -931,6 +931,16 @@ static int q6v5_mba_load(struct q6v5 *qproc) > goto assert_reset; > } > > + /* Some versions of the MBA firmware will upon boot wipe the MPSS region as well, so provide Should have /* on a line by itself. > + * the Q6 access to this region. > + */ > + ret = q6v5_xfer_mem_ownership(qproc, &qproc->mpss_perm, false, true, > + qproc->mpss_phys, qproc->mpss_size); > + if (ret) { > + dev_err(qproc->dev, "assigning Q6 access to mpss memory failed: %d\n", ret); > + goto disable_active_clks; > + } > + > /* Assign MBA image access in DDR to q6 */ > ret = q6v5_xfer_mem_ownership(qproc, &qproc->mba_perm, false, true, > qproc->mba_phys, qproc->mba_size); > @@ -1137,8 +1147,7 @@ static int q6v5_mpss_load(struct q6v5 *qproc) > > /** Should be /* instead of /**, the latter is for kernel-doc which this is not. > * In case of a modem subsystem restart on secure devices, the modem > - * memory can be reclaimed only after MBA is loaded. For modem cold > - * boot this will be a nop > + * memory can be reclaimed only after MBA is loaded. > */ > q6v5_xfer_mem_ownership(qproc, &qproc->mpss_perm, true, false, > qproc->mpss_phys, qproc->mpss_size);