NXP/FSL SoC drivers updates for v4.20 take 2

- Update qbman driver to better work with CPU hotplug
 - Add Kconfig dependency of 64-bit DMA addressing for qbman driver
 - Use last reponse to determine valid bit for qbman driver
 - Defer bman_portals probe if bman is not probed
 - Add interrupt coalescing APIs to qbman driver
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEhb3UXAyxp6UQ0v6khtxQDvusFVQFAlu3uhEACgkQhtxQDvus
 FVTZuhAAg2G6q2ERXWe2CwI+Is8TYAc7HmD06q22+BZrmqtb1VlX56ON7HkTDzMN
 NXWw3smNs6OIKJp7f5bRpEKex8GIdqrUYOzE7vzavwXBKiQFjkYTlyyUpd1zygns
 dw8MPj5drvKWLRYonHdeLIlpuIdeau7pxOJze1odT3a5QlJQFnULIT5JA4b4LRjy
 9JNhlcr3eecQ9XMabW2cN00Ve0IjhXiIkf2sA4f8ZxHaHlt7lts7/f5fd6gnUxyc
 vLaNLj1Ul798SpiwwPEi+rog67tnuIijJggv0CM9+AAmwrs4dW5nlzKhe5WlGI53
 6o7PDFqfhD+2oeeePU8YMTwJwPv4h+8/gOM46NNs3M10VxbMwpbajXc2OLOi9qHO
 6B/+upql0kS6MORN8uMhr6Bg5QD+tTEMZUKmOi9eXxM7TIIsZPaUPkJa5SIlVXKm
 vqzA7fzmXIOlECEsXJOnXev6VARQjLK3aisZ8SCZMRV5NMIExSye5yqkEsMihblH
 qH+5CG19I24qPBp3ThnrOCkcVluzt9TWdnQ7x25752HY/UVv/lc0pbv47AZmIhdI
 MZyhjVXqXssX1EgDKEoc34KHRTj94XyLum6FaUsIc2NrO1wUTT92Q1kVdipIWC4g
 uHlr1swyUxglGAoJUIh51OZSMsu51PtTCG1pz6+uHmxfPAr+IQA=
 =2fhR
 -----END PGP SIGNATURE-----

Merge tag 'soc-fsl-next-v4.20-2' of git://git.kernel.org/pub/scm/linux/kernel/git/leo/linux into next/drivers

NXP/FSL SoC drivers updates for v4.20 take 2

- Update qbman driver to better work with CPU hotplug
- Add Kconfig dependency of 64-bit DMA addressing for qbman driver
- Use last reponse to determine valid bit for qbman driver
- Defer bman_portals probe if bman is not probed
- Add interrupt coalescing APIs to qbman driver

* tag 'soc-fsl-next-v4.20-2' of git://git.kernel.org/pub/scm/linux/kernel/git/leo/linux:
  soc: fsl: qbman: add interrupt coalesce changing APIs
  soc: fsl: bman_portals: defer probe after bman's probe
  soc: fsl: qbman: Use last response to determine valid bit
  soc: fsl: qbman: Add 64 bit DMA addressing requirement to QBMan
  soc: fsl: qbman: replace CPU 0 with any online CPU in hotplug handlers
  soc: fsl: qbman: Check if CPU is offline when initializing portals
  soc: fsl: qman_portals: defer probe after qman's probe
  soc: fsl: qbman: add APIs to retrieve the probing status
  soc: fsl: qe: Fix copy/paste bug in ucc_get_tdm_sync_shift()
  soc: fsl: qbman: qman: avoid allocating from non existing gen_pool

Signed-off-by: Arnd Bergmann <[email protected]>
This commit is contained in:
Arnd Bergmann 2018-10-08 14:44:40 +02:00
commit 75bda3609f
15 changed files with 176 additions and 25 deletions

View file

@ -126,4 +126,12 @@ int bman_release(struct bman_pool *pool, const struct bm_buffer *bufs, u8 num);
*/
int bman_acquire(struct bman_pool *pool, struct bm_buffer *bufs, u8 num);
/**
* bman_is_probed - Check if bman is probed
*
* Returns 1 if the bman driver successfully probed, -1 if the bman driver
* failed to probe or 0 if the bman driver did not probed yet.
*/
int bman_is_probed(void);
#endif /* __FSL_BMAN_H */

View file

@ -1186,4 +1186,40 @@ int qman_alloc_cgrid_range(u32 *result, u32 count);
*/
int qman_release_cgrid(u32 id);
/**
* qman_is_probed - Check if qman is probed
*
* Returns 1 if the qman driver successfully probed, -1 if the qman driver
* failed to probe or 0 if the qman driver did not probed yet.
*/
int qman_is_probed(void);
/**
* qman_dqrr_get_ithresh - Get coalesce interrupt threshold
* @portal: portal to get the value for
* @ithresh: threshold pointer
*/
void qman_dqrr_get_ithresh(struct qman_portal *portal, u8 *ithresh);
/**
* qman_dqrr_set_ithresh - Set coalesce interrupt threshold
* @portal: portal to set the new value on
* @ithresh: new threshold value
*/
void qman_dqrr_set_ithresh(struct qman_portal *portal, u8 ithresh);
/**
* qman_dqrr_get_iperiod - Get coalesce interrupt period
* @portal: portal to get the value for
* @iperiod: period pointer
*/
void qman_portal_get_iperiod(struct qman_portal *portal, u32 *iperiod);
/**
* qman_dqrr_set_iperiod - Set coalesce interrupt period
* @portal: portal to set the new value on
* @ithresh: new period value
*/
void qman_portal_set_iperiod(struct qman_portal *portal, u32 iperiod);
#endif /* __FSL_QMAN_H */