From: Laurentiu Tudor <[email protected]>
'type' and 'flags' fields were missing from dprc_rsp_get_obj_region
structure therefore the MC Bus driver was not receiving proper flags
from MC like DPRC_REGION_CACHEABLE.
Signed-off-by: Cristian Sovaiala <[email protected]>
Signed-off-by: Laurentiu Tudor <[email protected]>
---
drivers/bus/fsl-mc/dprc.c | 2 ++
drivers/bus/fsl-mc/fsl-mc-private.h | 5 +++--
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/bus/fsl-mc/dprc.c b/drivers/bus/fsl-mc/dprc.c
index 57b097caf255..27b0a01bad9b 100644
--- a/drivers/bus/fsl-mc/dprc.c
+++ b/drivers/bus/fsl-mc/dprc.c
@@ -576,6 +576,8 @@ int dprc_get_obj_region(struct fsl_mc_io *mc_io,
rsp_params = (struct dprc_rsp_get_obj_region *)cmd.params;
region_desc->base_offset = le64_to_cpu(rsp_params->base_offset);
region_desc->size = le32_to_cpu(rsp_params->size);
+ region_desc->type = rsp_params->type;
+ region_desc->flags = le32_to_cpu(rsp_params->flags);
if (dprc_major_ver > 6 || (dprc_major_ver == 6 && dprc_minor_ver >= 3))
region_desc->base_address = le64_to_cpu(rsp_params->base_addr);
else
diff --git a/drivers/bus/fsl-mc/fsl-mc-private.h b/drivers/bus/fsl-mc/fsl-mc-private.h
index 85ca5fdee581..c932387641fa 100644
--- a/drivers/bus/fsl-mc/fsl-mc-private.h
+++ b/drivers/bus/fsl-mc/fsl-mc-private.h
@@ -211,12 +211,13 @@ struct dprc_cmd_get_obj_region {
struct dprc_rsp_get_obj_region {
/* response word 0 */
- __le64 pad;
+ __le64 pad0;
/* response word 1 */
__le64 base_offset;
/* response word 2 */
__le32 size;
- __le32 pad2;
+ u8 type;
+ u8 pad2[3];
/* response word 3 */
__le32 flags;
__le32 pad3;
--
2.17.1
On Tue, Nov 24, 2020 at 01:12:00PM +0200, [email protected] wrote:
> From: Laurentiu Tudor <[email protected]>
>
> 'type' and 'flags' fields were missing from dprc_rsp_get_obj_region
> structure therefore the MC Bus driver was not receiving proper flags
> from MC like DPRC_REGION_CACHEABLE.
>
> Signed-off-by: Cristian Sovaiala <[email protected]>
> Signed-off-by: Laurentiu Tudor <[email protected]>
Reviewed-by: Ioana Ciornei <[email protected]>
> ---
> drivers/bus/fsl-mc/dprc.c | 2 ++
> drivers/bus/fsl-mc/fsl-mc-private.h | 5 +++--
> 2 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/bus/fsl-mc/dprc.c b/drivers/bus/fsl-mc/dprc.c
> index 57b097caf255..27b0a01bad9b 100644
> --- a/drivers/bus/fsl-mc/dprc.c
> +++ b/drivers/bus/fsl-mc/dprc.c
> @@ -576,6 +576,8 @@ int dprc_get_obj_region(struct fsl_mc_io *mc_io,
> rsp_params = (struct dprc_rsp_get_obj_region *)cmd.params;
> region_desc->base_offset = le64_to_cpu(rsp_params->base_offset);
> region_desc->size = le32_to_cpu(rsp_params->size);
> + region_desc->type = rsp_params->type;
> + region_desc->flags = le32_to_cpu(rsp_params->flags);
> if (dprc_major_ver > 6 || (dprc_major_ver == 6 && dprc_minor_ver >= 3))
> region_desc->base_address = le64_to_cpu(rsp_params->base_addr);
> else
> diff --git a/drivers/bus/fsl-mc/fsl-mc-private.h b/drivers/bus/fsl-mc/fsl-mc-private.h
> index 85ca5fdee581..c932387641fa 100644
> --- a/drivers/bus/fsl-mc/fsl-mc-private.h
> +++ b/drivers/bus/fsl-mc/fsl-mc-private.h
> @@ -211,12 +211,13 @@ struct dprc_cmd_get_obj_region {
>
> struct dprc_rsp_get_obj_region {
> /* response word 0 */
> - __le64 pad;
> + __le64 pad0;
> /* response word 1 */
> __le64 base_offset;
> /* response word 2 */
> __le32 size;
> - __le32 pad2;
> + u8 type;
> + u8 pad2[3];
> /* response word 3 */
> __le32 flags;
> __le32 pad3;
> --
> 2.17.1
>