Subject: [PATCH 1/2] bus: mvebu-mbus: Provide stub function for mvebu_mbus_get_io_win_info()

From: [email-masked] (Gregory CLEMENT)
Date: Wed, 31 Aug 2016 17:23:00 +0200

Hi Stefan,
 
 On lun., ao?t 29 2016, Stefan Roese <[email-masked]> wrote:

> Hi Gregory,
>
> On 29.08.2016 16:02, Gregory CLEMENT wrote:
>>  On lun., ao?t 29 2016, Andrew Lunn <[email-masked]> wrote:
>>
>>> On Mon, Aug 29, 2016 at 01:04:55PM +0200, Stefan Roese wrote:
>>>> This patch provides a stub function for mvebu_mbus_get_io_win_info(),
>>>> which will be used for all non-Orion (ARM32 MVEBU) platforms for
>>>> compile test coverage.
>>>>
>>>> Signed-off-by: Stefan Roese <[email-masked]>
>>>> Cc: Gregory CLEMENT <[email-masked]>
>>>> Cc: Thomas Petazzoni <[email-masked]>
>>>> Cc: Marcin Wojtas <[email-masked]>
>>>> Cc: Arnd Bergmann <[email-masked]>
>>>> Cc: Vinod Koul <[email-masked]>
>>>> ---
>>>>  include/linux/mbus.h | 9 +++++++--
>>>>  1 file changed, 7 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/include/linux/mbus.h b/include/linux/mbus.h
>>>> index d610232..a884405 100644
>>>> --- a/include/linux/mbus.h
>>>> +++ b/include/linux/mbus.h
>>>> @@ -55,6 +55,8 @@ struct mbus_dram_target_info
>>>>  #ifdef CONFIG_PLAT_ORION
>>>>  extern const struct mbus_dram_target_info *mv_mbus_dram_info(void);
>>>>  extern const struct mbus_dram_target_info *mv_mbus_dram_info_nooverlap(void);
>>>> +int mvebu_mbus_get_io_win_info(phys_addr_t phyaddr, u32 *size, u8 *target,
>>>> +			       u8 *attr);
>>>>  #else
>>>>  static inline const struct mbus_dram_target_info *mv_mbus_dram_info(void)
>>>>  {
>>>> @@ -64,14 +66,17 @@ static inline const struct mbus_dram_target_info *mv_mbus_dram_info_nooverlap(vo
>>>>  {
>>>>  	return NULL;
>>>>  }
>>>> +static inline int mvebu_mbus_get_io_win_info(phys_addr_t phyaddr, u32 *size,
>>>> +					     u8 *target, u8 *attr)
>>>> +{
>>>> +	return 0;
>>>> +}
>>>>  #endif
>>>
>>> Hi Stefan
>>>
>>> If i understand it correctly, this should never be used for real, it
>>> is here only for compile testing?
>>>
>>> Maybe add a WARN_ON_ONCE(1) here? And a comment, why it should never
>>> happen.
>>
>> Actually arm64 mvebu SoC such as the Armada 3700 do not have mbus bus
>> but can still reuse the same driver than the other mvebu SoC. So in
>> this case I would prefer that the function return an error.
>
> I missed thinking about Armada 3700 while adding this IO (PCIe) support
> to the XOR DMA driver. Most likely because the Armada 3700 support was
> added after I started working on this IO (non SDRAM) DMA support for
> Armada XP.
>
> Its probably not possible to support these IO (PCIe) areas on Armada
> 3700 this way without any information from the MBus mapping as
> possible for the other ARM32 SoCs. So its perhaps best if I just
> disable this "feature" for Armada 3700 for now.
>
> What do you think?

My concern to return an error with mbus was not for the XOR
driver. It was the neta driver that I had in mind (which was not
converted yet).

Thanks,

Gregory

> Thanks,
> Stefan

-- 
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com