Bug 6970
Summary: | ISDN/hisax doesn't work on ARM architecture | ||
---|---|---|---|
Product: | Drivers | Reporter: | Tomasz Chmielewski (tch) |
Component: | ISDN | Assignee: | Karsten Keil (kernel) |
Status: | CLOSED PATCH_ALREADY_AVAILABLE | ||
Severity: | high | ||
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.17 | Subsystem: | |
Regression: | --- | Bisected commit-id: |
Description
Tomasz Chmielewski
2006-08-07 02:55:17 UTC
I do not understand the formula, why using 268435456 here ? I took the idea from http://lwn.net/Articles/142512/ - perhaps it was wrong to use, but worked for me. You should received a patch on 07.08.2006: diff -puN drivers/isdn/hisax/hisax.h~isdn-work-around-excessive-udelay drivers/isdn/hisax/hisax.h --- a/drivers/isdn/hisax/hisax.h~isdn-work-around-excessive-udelay +++ a/drivers/isdn/hisax/hisax.h @@ -1316,7 +1316,18 @@ void dlogframe(struct IsdnCardState *cs, void iecpy(u_char * dest, u_char * iestart, int ieoffset); #endif /* __KERNEL__ */ -#define HZDELAY(jiffs) {int tout = jiffs; while (tout--) udelay(1000000/HZ);} +/* + * Busywait delay for `jiffs' jiffies + */ +#define HZDELAY(jiffs) do { \ + int tout = jiffs; \ + \ + while (tout--) { \ + int loops = USEC_PER_SEC / HZ; \ + while (loops--) \ + udelay(1); \ + } \ + } while (0) int ll_run(struct IsdnCardState *cs, int addfeatures); int CallcNew(void); The patch was already The patch was already added on 02.10.2006: The patch titled isdn: work around excessive udelay() has been removed from the -mm tree. Its filename is isdn-work-around-excessive-udelay.patch This patch was dropped because it was merged into mainline or a subsystem tree |