Qualcomm driver fixes for v5.15

This restricts the QCOM_SCM driver to depend on ARCH_QCOM, to reduce
 it's presence after becoming a loadable module.
 
 It then fixes a regression in the mdt_loader, where firmware with the
 hash segment marked as PT_LOAD would no longer be accepted, preventing
 several MSM8974 and SDM660 devices from loading remoteproc firmware.
 
 Lastly it corrects the drvdata associated with the socinfo device during
 probe, to match that expected by the remove function.
 -----BEGIN PGP SIGNATURE-----
 
 iQJPBAABCAA5FiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmFVJj0bHGJqb3JuLmFu
 ZGVyc3NvbkBsaW5hcm8ub3JnAAoJEAsfOT8Nma3FvDEP/iON76XThrTEUVeNGSoj
 19UvpdYhdZuD81H5hHxyqQR1MA2GODoYRzvp3UiWxvJbTN8a3TGX+67O1b5Pe+1g
 CtauaLgUpi8OzariDrLUomvxco1D0Gpmoi1eBmwGD88ZDxnH12qHrvTlezm9NDNa
 GvIdSPBh5ScbICtWQlNu5aYQDlXYLOF6tV85jSdsuA3pGiDtgOriHMwZqVsgLaRG
 ARvvBMPCt3876wEg2mBbLSay/69KHUIGEa8n/j0+oaiGQBlCg3VGKHzUPtwBotpw
 1vPJz3QBg+kJlCAVqv2c+vnTllRwZkpZv7uFteu5IQsnqaRQa3a6OD6G2ywaKDtS
 1wbHTb8cCjLhUU+P1bUXpQwjrB4g1r0OroWiAMA0zK1yf8Qe5RfYfZ8uOkviHhS0
 6dZbHm5i9B2Tj+aCva4BLTTqGUy6Ui0IR8QGo4C437EvXHPVNEYo7xlX2LCN3+31
 zBW9LmGDLbABbRmxi6Xb66JPwlt6RKzNfUxNCEtUiVSrVUEHnkaiqrZ2Mx+2c2iV
 WyrmqPE2oLN5yBk1rfgoZ8klHAcaCZ50/WDIHADyIlxYclW7MybEWAhRrBx8Strj
 V3bj23ek2c0OvZ92FppeFH7xChEzPyMdigoVybOb7LkhJUI7AiNgWS21T55AuR+2
 XdOLoj7vFBkQBiIWGTE/n4rT
 =c3Iv
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmFcVTwACgkQmmx57+YA
 GNl7IhAAj2kkD3PKGfeonFoYThA3G0Fze8j/cJ9cjNnrIJWtly7dAR6CYgbcVzjk
 0jCZl6+OUJAyNN06mDU1aeWNw56iUvLfNyRonHHqIY6uDerYlqme17DcAmTeHS20
 1+wdWGRDZjHmat1gqwtDojxVw+vmYbv21oVm80JaxgbR1ZBpZcrU47j1w5aXV9Jy
 LaehiomJ5LgS1sSpdh8sNq+we7+zuwJV2V4ERR9mIdOWrpD2+nPTVPNMR5tn41ei
 tKl672t9JcbpGaS3h6KDjIGZM5kEJSJyjBlBqgVagHoLebnvaRrugqcBpbGqbuXR
 YkfA87cnMBene0JjO12Ms1S7B2zqKmAUBZQaTwT48SEroE2hfCCos98MYKlMFulU
 GoJoMPN/oCJ9PfOOXcCCC2yaKHc9yDxklWbImVBnl41Lzg6rAFaw33wFdC40jV2X
 bLG3yFeFZpCTM1xpbE3rhC1ilu89/iqQ2ko+ggD+Yl74Sx5qfP/2UxGAY+AqeMdz
 mkRKTMaZIBWOLWPH/tNRxefmOOWzD27gzcelJLc7NG6Zc9/pifXNQ0sRyM0I8uYA
 +RyzToJrguwyfSzL7EdxrGn9HrWFtx1olYpD69VH+XzHHYPsLLc+EzyNFIQgNPvT
 MwvCimWl2NqR/w4bZJ3Az0Mfkk61bOdYjrNrxdv3ndImrZhEbbM=
 =x5sv
 -----END PGP SIGNATURE-----

Merge tag 'qcom-drivers-fixes-for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/fixes

Qualcomm driver fixes for v5.15

This restricts the QCOM_SCM driver to depend on ARCH_QCOM, to reduce
it's presence after becoming a loadable module.

It then fixes a regression in the mdt_loader, where firmware with the
hash segment marked as PT_LOAD would no longer be accepted, preventing
several MSM8974 and SDM660 devices from loading remoteproc firmware.

Lastly it corrects the drvdata associated with the socinfo device during
probe, to match that expected by the remove function.

* tag 'qcom-drivers-fixes-for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  firmware: qcom_scm: QCOM_SCM should depend on ARCH_QCOM
  soc: qcom: mdt_loader: Drop PT_LOAD check on hash segment
  soc: qcom: socinfo: Fixed argument passed to platform_set_data()

Link: https://lore.kernel.org/r/20210930025456.1035-1-bjorn.andersson@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2021-10-05 15:38:03 +02:00
Родитель 04e0ae8d2b 4382c73a12
Коммит 6147eb53bb
3 изменённых файлов: 3 добавлений и 3 удалений

Просмотреть файл

@ -204,7 +204,7 @@ config INTEL_STRATIX10_RSU
config QCOM_SCM
tristate "Qcom SCM driver"
depends on ARM || ARM64
depends on ARCH_QCOM || COMPILE_TEST
depends on HAVE_ARM_SMCCC
select RESET_CONTROLLER

Просмотреть файл

@ -98,7 +98,7 @@ void *qcom_mdt_read_metadata(const struct firmware *fw, size_t *data_len)
if (ehdr->e_phnum < 2)
return ERR_PTR(-EINVAL);
if (phdrs[0].p_type == PT_LOAD || phdrs[1].p_type == PT_LOAD)
if (phdrs[0].p_type == PT_LOAD)
return ERR_PTR(-EINVAL);
if ((phdrs[1].p_flags & QCOM_MDT_TYPE_MASK) != QCOM_MDT_TYPE_HASH)

Просмотреть файл

@ -628,7 +628,7 @@ static int qcom_socinfo_probe(struct platform_device *pdev)
/* Feed the soc specific unique data into entropy pool */
add_device_randomness(info, item_size);
platform_set_drvdata(pdev, qs->soc_dev);
platform_set_drvdata(pdev, qs);
return 0;
}