Re: [PATCH 1/2] Compatibility layer for hrtimer API

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Trent,

On Sun, 5 Jul 2009 01:13:14 -0700 (PDT), Trent Piepho wrote:
> On Fri, 3 Jul 2009, Jean Delvare wrote:
> > Kernels 2.6.22 to 2.6.24 (inclusive) need some compatibility quirks
> > for the hrtimer API. For older kernels, some required functions were
> > not exported so there's nothing we can do. This means that drivers
> > using the hrtimer infrastructure will no longer work for kernels older
> > than 2.6.22.
> >
> > Signed-off-by: Jean Delvare <khali@xxxxxxxxxxxx>
> > ---
> >  v4l/compat.h |   18 ++++++++++++++++++
> >  1 file changed, 18 insertions(+)
> >
> > --- a/v4l/compat.h
> > +++ b/v4l/compat.h
> > @@ -480,4 +480,22 @@ static inline unsigned long v4l_compat_f
> >  }
> >  #endif
> >
> > +/*
> > + * Compatibility code for hrtimer API
> > + * This will make hrtimer usable for kernels 2.6.22 and later.
> > + * For earlier kernels, not all required functions are exported
> > + * so there's nothing we can do.
> > + */
> > +
> > +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 25) && \
> > +	LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22)
> > +#include <linux/hrtimer.h>
> 
> Instead of including hrtimer.h from compat.h it's better if you check if it
> has already been included and only enable the compat code in that case.
> That way hrtimer doesn't get included for files that don't need it and
> might define something that conflicts with something from hrtimer.  And it
> prevents someone from forgetting to include hrtimer when they needed it,
> but having the error masked because compat.h is doing it for them.

I see. But this will only work if compat.h is included after all
headers. If it always the case? I see for example that cx88-input
includes <media/ir-common.h> after "compat.h".

> > +/* Forward a hrtimer so it expires after the hrtimer's current now */
> > +static inline unsigned long hrtimer_forward_now(struct hrtimer *timer,
> > +						ktime_t interval)
> > +{
> > +	return hrtimer_forward(timer, timer->base->get_time(), interval);
> > +}
> > +#endif
> > +
> >  #endif /*  _COMPAT_H */


-- 
Jean Delvare
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux