Re: [PATCH v4 15/24] fpga: dfl-fme-pr: add compat_id support for dfl-fme-region platform device.

From: Alan Tull
Date: Thu Mar 01 2018 - 11:00:04 EST


On Wed, Feb 28, 2018 at 11:49 PM, Wu Hao <hao.wu@xxxxxxxxx> wrote:
> On Wed, Feb 28, 2018 at 05:06:57PM -0600, Alan Tull wrote:
>> On Tue, Feb 13, 2018 at 3:24 AM, Wu Hao <hao.wu@xxxxxxxxx> wrote:

>> > +
>> > + compat_id.id_l = readq(fme_pr + FME_PR_INTFC_ID_L);
>> > + compat_id.id_h = readq(fme_pr + FME_PR_INTFC_ID_H);
>>
>> I tried building for 32 bit ARM and ran into readq and writeq not
>> being defined. v2 had proper '#indef readq/writeq', so looks like we
>> need that after all.
>
> Sorry, it's missing a header file for dfl-fme-pr.h, as some files don't include
> dfl.h at this version. That header file has definitions for readq/writeq.
>
> +#include <linux/io-64-nonatomic-lo-hi.h>
>
> will fix it.

Hi Hao,

That sounds good. I was able to build if I added it. There are a
couple issues in the enumeration code:

In file included from
/home/atull/repos/linux-socfpga/include/linux/kernel.h:11:0,
from /home/atull/repos/linux-socfpga/include/linux/list.h:9,
from /home/atull/repos/linux-socfpga/include/linux/module.h:9,
from /home/atull/repos/linux-socfpga/drivers/fpga/dfl.c:13:
/home/atull/repos/linux-socfpga/drivers/fpga/dfl.c: In function
'parse_feature_list':
/home/atull/repos/linux-socfpga/include/linux/bitops.h:7:24: warning:
left shift count >= width of type [-Wshift-count-overflow]
#define BIT(nr) (1UL << (nr))
^
/home/atull/repos/linux-socfpga/drivers/fpga/dfl.h:73:19: note: in
expansion of macro 'BIT'
#define DFH_EOL BIT(40) /* End of list */
^
/home/atull/repos/linux-socfpga/drivers/fpga/dfl.c:643:12: note: in
expansion of macro 'DFH_EOL'
if ((v & DFH_EOL) || !ofst)
^

and

CC drivers/fpga/dfl-fme-mgr.o
In file included from
/home/atull/repos/linux-socfpga/include/linux/kernel.h:11:0,
from /home/atull/repos/linux-socfpga/include/linux/list.h:9,
from
/home/atull/repos/linux-socfpga/include/linux/kobject.h:19,
from /home/atull/repos/linux-socfpga/include/linux/device.h:16,
from
/home/atull/repos/linux-socfpga/drivers/fpga/dfl-fme-pr.c:20:
/home/atull/repos/linux-socfpga/drivers/fpga/dfl-fme-pr.c: In function
'pr_mgmt_init':
/home/atull/repos/linux-socfpga/include/linux/bitops.h:7:24: warning:
left shift count >= width of type [-Wshift-count-overflow]
#define BIT(nr) (1UL << (nr))
^
/home/atull/repos/linux-socfpga/drivers/fpga/dfl.h:113:27: note: in
expansion of macro 'BIT'
#define FME_PORT_OFST_IMP BIT(60)
^
/home/atull/repos/linux-socfpga/drivers/fpga/dfl-fme-pr.c:449:23:
note: in expansion of macro 'FME_PORT_OFST_IMP'
if (!(port_offset & FME_PORT_OFST_IMP))
^
Alan


>
> Thanks
> Hao
>
>> Alan