[patch] 2.6.8-rc1-mm1: USB w9968cf compile error

From: Adrian Bunk (bunk_at_fs.tum.de)
Date: 07/14/04

  • Next message: Chris Wedgwood: "Re: XFS: how to NOT null files on fsck?"
    Date:	Wed, 14 Jul 2004 20:49:53 +0200
    To: Andrew Morton <akpm@osdl.org>, Luca Risolia <luca.risolia@studio.unibo.it>
    
    

    On Tue, Jul 13, 2004 at 06:25:59PM -0700, Andrew Morton wrote:
    >...
    > All 252 patches:
    >...
    > bk-usb.patch
    >...

    This patch marks w9968cf_valid_depth as inline, although it's used
    before it's defined.

    gcc 3.4 therefore correctly fails with:

    <-- snip -->

    ...
      CC drivers/usb/media/w9968cf.o
    drivers/usb/media/w9968cf.c: In function `w9968cf_set_picture':
    drivers/usb/media/w9968cf.c:487: sorry, unimplemented: inlining failed
    in call to 'w9968cf_valid_depth': function body not available
    drivers/usb/media/w9968cf.c:1722: sorry, unimplemented: called from here
    make[3]: *** [drivers/usb/media/w9968cf.o] Error 1

    <-- snip -->

    This patch moves w9968cf_valid_depth above it's first user (it also uses
    two other functions to keep the ordering of functions a bit more
    consistent).

    diffstat output:
     drivers/usb/media/w9968cf.c | 92 ++++++++++++++++++------------------
     1 files changed, 46 insertions(+), 46 deletions(-)

    Signed-off-by: Adrian Bunk <bunk@fs.tum.de>

    --- linux-2.6.8-rc1-mm1-full-3.4/drivers/usb/media/w9968cf.c.old 2004-07-14 20:31:39.000000000 +0200
    +++ linux-2.6.8-rc1-mm1-full-3.4/drivers/usb/media/w9968cf.c 2004-07-14 20:42:52.000000000 +0200
    @@ -481,11 +481,11 @@
     static void w9968cf_adjust_configuration(struct w9968cf_device*);
     static int w9968cf_turn_on_led(struct w9968cf_device*);
     static int w9968cf_init_chip(struct w9968cf_device*);
    -static int w9968cf_set_picture(struct w9968cf_device*, struct video_picture);
    -static int w9968cf_set_window(struct w9968cf_device*, struct video_window);
     static inline u16 w9968cf_valid_palette(u16 palette);
     static inline u16 w9968cf_valid_depth(u16 palette);
     static inline u8 w9968cf_need_decompression(u16 palette);
    +static int w9968cf_set_picture(struct w9968cf_device*, struct video_picture);
    +static int w9968cf_set_window(struct w9968cf_device*, struct video_window);
     static int w9968cf_postprocess_frame(struct w9968cf_device*,
                                          struct w9968cf_frame_t*);
     static int w9968cf_adjust_window_size(struct w9968cf_device*, u16* w, u16* h);
    @@ -1709,6 +1709,50 @@
     
     
     /*--------------------------------------------------------------------------
    + Return non-zero if the palette is supported, 0 otherwise.
    + --------------------------------------------------------------------------*/
    +static inline u16 w9968cf_valid_palette(u16 palette)
    +{
    + u8 i = 0;
    + while (w9968cf_formatlist[i].palette != 0) {
    + if (palette == w9968cf_formatlist[i].palette)
    + return palette;
    + i++;
    + }
    + return 0;
    +}
    +
    +
    +/*--------------------------------------------------------------------------
    + Return the depth corresponding to the given palette.
    + Palette _must_ be supported !
    + --------------------------------------------------------------------------*/
    +static inline u16 w9968cf_valid_depth(u16 palette)
    +{
    + u8 i=0;
    + while (w9968cf_formatlist[i].palette != palette)
    + i++;
    +
    + return w9968cf_formatlist[i].depth;
    +}
    +
    +
    +/*--------------------------------------------------------------------------
    + Return non-zero if the format requires decompression, 0 otherwise.
    + --------------------------------------------------------------------------*/
    +static inline u8 w9968cf_need_decompression(u16 palette)
    +{
    + u8 i = 0;
    + while (w9968cf_formatlist[i].palette != 0) {
    + if (palette == w9968cf_formatlist[i].palette)
    + return w9968cf_formatlist[i].compression;
    + i++;
    + }
    + return 0;
    +}
    +
    +
    +/*--------------------------------------------------------------------------
       Change the picture settings of the camera.
       Return 0 on success, a negative number otherwise.
       --------------------------------------------------------------------------*/
    @@ -1966,50 +2010,6 @@
     }
     
     
    -/*--------------------------------------------------------------------------
    - Return non-zero if the palette is supported, 0 otherwise.
    - --------------------------------------------------------------------------*/
    -static inline u16 w9968cf_valid_palette(u16 palette)
    -{
    - u8 i = 0;
    - while (w9968cf_formatlist[i].palette != 0) {
    - if (palette == w9968cf_formatlist[i].palette)
    - return palette;
    - i++;
    - }
    - return 0;
    -}
    -
    -
    -/*--------------------------------------------------------------------------
    - Return the depth corresponding to the given palette.
    - Palette _must_ be supported !
    - --------------------------------------------------------------------------*/
    -static inline u16 w9968cf_valid_depth(u16 palette)
    -{
    - u8 i=0;
    - while (w9968cf_formatlist[i].palette != palette)
    - i++;
    -
    - return w9968cf_formatlist[i].depth;
    -}
    -
    -
    -/*--------------------------------------------------------------------------
    - Return non-zero if the format requires decompression, 0 otherwise.
    - --------------------------------------------------------------------------*/
    -static inline u8 w9968cf_need_decompression(u16 palette)
    -{
    - u8 i = 0;
    - while (w9968cf_formatlist[i].palette != 0) {
    - if (palette == w9968cf_formatlist[i].palette)
    - return w9968cf_formatlist[i].compression;
    - i++;
    - }
    - return 0;
    -}
    -
    -
     /*--------------------------------------------------------------------------
       Adjust the asked values for window width and height.
       Return 0 on success, -1 otherwise.

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/


  • Next message: Chris Wedgwood: "Re: XFS: how to NOT null files on fsck?"

    Relevant Pages

    • [PATCH 15/52] KVM: Move some static inline functions out from kvm.h into x86.h
      ... -static inline u16 read_fs ... -static inline void load_fs ... +static inline u16 read_fs ...
      (Linux-Kernel)
    • Re: powernow-k8-acpi driver
      ... -static inline u32 freq_from_fid(u8 fid) ... static inline u32 kfreq_from_fid ... -static inline int check_supported_cpu ...
      (Linux-Kernel)
    • [git pull] generic bitops
      ... this started out as improvements/generalizations to x86 bitops, ... * @addr: The address to base the search on ... -static inline long ... +static inline unsigned long __fls ...
      (Linux-Kernel)
    • [git pull] generic bitops, take 2
      ... * @addr: The address to base the search on ... -static inline long ... +static inline unsigned long __fls ... static inline int fls64 ...
      (Linux-Kernel)
    • [git pull] generic bitops, take 3
      ... UML seems unaffected and properly picks up these symbols from the x86 ... * @addr: The address to base the search on ... -static inline long ... +static inline unsigned long __fls ...
      (Linux-Kernel)