Re: [U-Boot] [PATCH] usb: f_mass_storage: Fix compile on x86
Hi, > On 04/26/2018 06:58 PM, Bryan O'Donoghue wrote: > > On 26/04/18 16:14, Marek Vasut wrote: > >> On 04/26/2018 04:41 PM, Bryan O'Donoghue wrote: > >>> Compiling the f_mass_storage driver for an x86 target results in a > >>> compilation error as set_bit and clear_bit are provided by > >>> bitops.h > >>> > >>> Fix that now by only compiling up the local definition of set_bit > >>> and clear_bit only if not already provided by the environment. > >>> > >>> Signed-off-by: Bryan O'Donoghue> >>> Cc: Lukasz Majewski > >>> Cc: Marek Vasut > >>> --- > >>> drivers/usb/gadget/f_mass_storage.c | 2 ++ > >>> 1 file changed, 2 insertions(+) > >>> > >>> diff --git a/drivers/usb/gadget/f_mass_storage.c > >>> b/drivers/usb/gadget/f_mass_storage.c > >>> index 1ecb92ac6b..2e856af6ed 100644 > >>> --- a/drivers/usb/gadget/f_mass_storage.c > >>> +++ b/drivers/usb/gadget/f_mass_storage.c > >>> @@ -283,6 +283,7 @@ static const char fsg_string_interface[] = > >>> "Mass Storage"; > >>> struct kref {int x; }; > >>> struct completion {int x; }; > >>> +#ifndef _I386_BITOPS_H > >>> inline void set_bit(int nr, volatile void *addr) > >>> { > >>> int mask; > >>> @@ -302,6 +303,7 @@ inline void clear_bit(int nr, volatile void > >>> *addr) mask = 1 << (nr & 0x1f); > >>> *a &= ~mask; > >>> } > >>> +#endif /* _I386_BITOPTS_H */ > >> > >> This doesn't look right, generic driver shouldn't contain > >> arch-specific fixup or ifdef. Can this be somehow abstracted out? > >> > > > > Hmm. > > > > On a second look - the name of these functions should change not to > > conflict with bitops.h - there's some funny bit-shifting going on > > there.. > > Better :) > The best option would be to replace those inlines with functions already provided in bitops.h - delete local instances and then re-use ones from the generic header. Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de pgpyRYLar28oa.pgp Description: OpenPGP digital signature ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH] usb: f_mass_storage: Fix compile on x86
On 04/26/2018 06:58 PM, Bryan O'Donoghue wrote: > On 26/04/18 16:14, Marek Vasut wrote: >> On 04/26/2018 04:41 PM, Bryan O'Donoghue wrote: >>> Compiling the f_mass_storage driver for an x86 target results in a >>> compilation error as set_bit and clear_bit are provided by bitops.h >>> >>> Fix that now by only compiling up the local definition of set_bit and >>> clear_bit only if not already provided by the environment. >>> >>> Signed-off-by: Bryan O'Donoghue>>> Cc: Lukasz Majewski >>> Cc: Marek Vasut >>> --- >>> drivers/usb/gadget/f_mass_storage.c | 2 ++ >>> 1 file changed, 2 insertions(+) >>> >>> diff --git a/drivers/usb/gadget/f_mass_storage.c >>> b/drivers/usb/gadget/f_mass_storage.c >>> index 1ecb92ac6b..2e856af6ed 100644 >>> --- a/drivers/usb/gadget/f_mass_storage.c >>> +++ b/drivers/usb/gadget/f_mass_storage.c >>> @@ -283,6 +283,7 @@ static const char fsg_string_interface[] = "Mass >>> Storage"; >>> struct kref {int x; }; >>> struct completion {int x; }; >>> +#ifndef _I386_BITOPS_H >>> inline void set_bit(int nr, volatile void *addr) >>> { >>> int mask; >>> @@ -302,6 +303,7 @@ inline void clear_bit(int nr, volatile void *addr) >>> mask = 1 << (nr & 0x1f); >>> *a &= ~mask; >>> } >>> +#endif /* _I386_BITOPTS_H */ >> >> This doesn't look right, generic driver shouldn't contain arch-specific >> fixup or ifdef. Can this be somehow abstracted out? >> > > Hmm. > > On a second look - the name of these functions should change not to > conflict with bitops.h - there's some funny bit-shifting going on there.. Better :) -- Best regards, Marek Vasut ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH] usb: f_mass_storage: Fix compile on x86
On 26/04/18 16:14, Marek Vasut wrote: On 04/26/2018 04:41 PM, Bryan O'Donoghue wrote: Compiling the f_mass_storage driver for an x86 target results in a compilation error as set_bit and clear_bit are provided by bitops.h Fix that now by only compiling up the local definition of set_bit and clear_bit only if not already provided by the environment. Signed-off-by: Bryan O'DonoghueCc: Lukasz Majewski Cc: Marek Vasut --- drivers/usb/gadget/f_mass_storage.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/usb/gadget/f_mass_storage.c b/drivers/usb/gadget/f_mass_storage.c index 1ecb92ac6b..2e856af6ed 100644 --- a/drivers/usb/gadget/f_mass_storage.c +++ b/drivers/usb/gadget/f_mass_storage.c @@ -283,6 +283,7 @@ static const char fsg_string_interface[] = "Mass Storage"; struct kref {int x; }; struct completion {int x; }; +#ifndef _I386_BITOPS_H inline void set_bit(int nr, volatile void *addr) { int mask; @@ -302,6 +303,7 @@ inline void clear_bit(int nr, volatile void *addr) mask = 1 << (nr & 0x1f); *a &= ~mask; } +#endif /* _I386_BITOPTS_H */ This doesn't look right, generic driver shouldn't contain arch-specific fixup or ifdef. Can this be somehow abstracted out? Hmm. On a second look - the name of these functions should change not to conflict with bitops.h - there's some funny bit-shifting going on there.. --- bod ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH] usb: f_mass_storage: Fix compile on x86
On 04/26/2018 04:41 PM, Bryan O'Donoghue wrote: > Compiling the f_mass_storage driver for an x86 target results in a > compilation error as set_bit and clear_bit are provided by bitops.h > > Fix that now by only compiling up the local definition of set_bit and > clear_bit only if not already provided by the environment. > > Signed-off-by: Bryan O'Donoghue> Cc: Lukasz Majewski > Cc: Marek Vasut > --- > drivers/usb/gadget/f_mass_storage.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/usb/gadget/f_mass_storage.c > b/drivers/usb/gadget/f_mass_storage.c > index 1ecb92ac6b..2e856af6ed 100644 > --- a/drivers/usb/gadget/f_mass_storage.c > +++ b/drivers/usb/gadget/f_mass_storage.c > @@ -283,6 +283,7 @@ static const char fsg_string_interface[] = "Mass Storage"; > struct kref {int x; }; > struct completion {int x; }; > > +#ifndef _I386_BITOPS_H > inline void set_bit(int nr, volatile void *addr) > { > int mask; > @@ -302,6 +303,7 @@ inline void clear_bit(int nr, volatile void *addr) > mask = 1 << (nr & 0x1f); > *a &= ~mask; > } > +#endif /* _I386_BITOPTS_H */ This doesn't look right, generic driver shouldn't contain arch-specific fixup or ifdef. Can this be somehow abstracted out? > struct fsg_dev; > struct fsg_common; > -- Best regards, Marek Vasut ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot