--==_Exmh_14804942520
Content-Type: text/plain; charset=us-ascii
Hello folks,
I hope I've battled this f***ing mailer now... :-((
> I am one of many which use the pa0hzp opto-scc card
> But since kernel 2.1.23 the linux driver
> freezes the who linux system without leaving any message
> in the /var/log files
Does AltGr + ScrLck still give you a register dump? What's the
value after EIP?
Anyone with problems those problems: Could you please try the
attached patch? Even if it won't work I've include a calibrate
routine. Currently it seems to send out only zero's, but I'll
have to find my Z8530 programming manual first and need
access to an oszilloscope first... The second attachment is
a small program to start the calibration. Scc.h has undergone
some cosmetic changes as well (changed some #defines into
enums).
If the lock-ups remain: Can you try to #define SCC_DISABLE_ALL_INTS
and tell me the results, please?
73 de Joerg
BTW, the patch is against z8530drv-3.0, coming with kernel 2.1.x...
--==_Exmh_14804942520
Content-Type: application/patch ; name="z8530drv-diff.gz"
Content-Description: z8530drv-diff.gz
Content-Transfer-Encoding: x-uuencode
Content-Disposition: attachment; filename="z8530drv-diff.gz"
begin 664 z8530drv-diff.gz
M'XL("*'?0C,"`WHX-3,P9')V+61I9F8`S5IY=^+($?];_A05;]XN&'%(7#[B
MG6%`MLE@[``^LDF>GBP)6P$D5A(^,CO?/57=K0,A//9DDQ>_&4#=U=5U_*JZ
MNEOE<AGFCKMZKEJ^\VC[0=6UPVI@wwc.lzpg@mail.dy.fi:6E7V054.:[7#VH&D5%KM
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
MGW#W8V[E=W&)`.M(]2Q''`OA@TW'>:%G8K:<&R^IW$E=#T\)dwlsyl.jagoxkvk@tk137066.telekabel.at(Q1WS6
M=/*KEENG)V[R=UALG0N92OXN2ZWS$2;Z;@,EJZ<3F)4$:T%R/-=6Z%ZYK48O
M5##R"-_;P$G].L:Z?C%,+YA)\\E)>LUD[9W!0!]37E.%X\0DND>GJ^2W%%=Y
M[?'D)'Z.N*1TBTX)[WUOM:2SWUBW?556:U#:;]+Y8ZS<Y+DZ>N:OHT#@K7S3
MSE::W<%GO7>)L9..N0=C/N4>V!)Y-$J[G>">HB.BSGZF?12.99.1:(73^NCJ
MK-H[.>CSMV`607:]_W>_ALL%B#44]!A*&KD+QI^4\.A8ZI)`@`IZ<\(%Q
MD?@;-)PQ:_96H5#5M^]M-XU[YH3NX*+[68_,0%Z(E)??H#NGCI26WZ>SF(HK
M*[]7U])[5&4S?1J=2ES"Y*V\5%SQ',W8DPA5)*>+ZM1<YQ<][7QS+M-[M/V7
M]7A#\7FYN0ZLR6U491*_"<\AM-D&;SJ5Z<TG=JNSM%U+`'EMZ*>K\5\YLIX,
M)R0*$A"UB1)1Z/'SIBK0\1^[Q<WRZ'0G_6N-8VM-`%=F8XDK$R([<*C=B.HV
M6=NZHR[@3HU/6N`O3TTI96R,)JU5J9$WZ[>TIH598@OJ34KK<W%+C2KS"ZN-
M<52^7%Q->!5[@SG1L,!83]S$@5P9A\/D5N=^HTB(Y);?ZBP^A+PDO]M)?"SW
MCOP6Y_`!D5?D-SHET4J5W^@,/H251V]R`J>/K/\FV_.X"5^6-KU+L'Z]XW@Z
MO6O*[N>(`IB+'1;;)(/AXC+J`=&`85EH@^"GU.V36F<OV=95F2\!R5DC'4#>
MK:9T>L:8KP)L%%>RV,9X,,'*.Y`^!J6,PUX=8>(%2]NV^.LI`T(>>Y;A;AF(
MEUGH1).EBL`W.5TMSG(*_HH2I@QJ*N5%+[@T#]@;CTJK'9]SYBH@1"WEGKBN
M76/3*++]VBL'Z7OOH\@?/SA3<H>NTSF9-M#U]51&BS_/1N+`AKDC?0%:S,0D
MJPMX[K,0,G'4?>%=XK+TZ]$W>?(D>VV;(?8NC&!&-[4P&JF?4IYO<\_O-X3G
MXQ?&;_M8A4BUYUHC=89P&36VN,>%\G2VP'8;"6G?O2L0VHJ2X][I2_X[Z697
MQ-0FPZ,Q+TJ(<:)Z)`]S4GY`6F/GHVKT.A\[#R=<B[=@HZK&?G:",/@@M)8V
MS_TYIN:..Z,P%!U1+1A?^_+R0(RVZ1Z!72T$H6,&-(@]'I%C.(-4+PMI,9(&
MBN-YHGC#4(AB`*'H6D(YNIV?&DPPRJ:L9+WS#-_B,<-?K*&8$?0L-/EZBP3_
)!AD8`-RD,```
`
end
--==_Exmh_14804942520
Content-Type: application/octet-stream ; name="sccparam.c"
Content-Description: sccparam.c
Content-Disposition: attachment; filename="sccparam.c"
/*
sccparam.c - Set Z8530 SCC driver parameters
Copyright 1994-1996, by Joerg Reuter terhi.victor@logonet.com
This program is intended for Amateur Radio use. If you are running it
for commercial purposes, please drop me a note. I am nosy...
! You m u s t recognize the appropriate legislations of your country !
! before you connect a radio to the SCC board and start to transmit or !
! receive. The GPL allows you to use the d r i v e r, NOT the RADIO! !
For non-Amateur-Radio use please note that you might need a special
allowance/licence from the designer of the SCC Board and/or the
MODEM.
This program is free software; you can redistribute it and/or modify
it under the terms of the (modified) GNU General Public License
delivered with the LinuX kernel source.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should find a copy of the GNU General Public License in
/usr/src/linux/COPYING;
*/
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <termios.h>
#include <string.h>
#include <ctype.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <linux/timer.h>
#ifdef CONFIG_SCC_STANDALONE
#include "scc.h"
#else
#include <linux/scc.h>
#endif
#include <linux/fs.h>
#include <linux/tty.h>
#include <linux/if.h>
#include "sccutils.h"
#define RCS_ID "$Id: sccparam.c,v 1.7 1995/11/17 01:10:47 jreuter Exp jreuter $"
struct cmds {
char *name;
int token;
};
#define C_BUFSIZE 0x80
#define C_RXBUFFERS 0x81
#define C_TXBUFFERS 0x82
struct cmds clist[] = {{"bufsize", C_BUFSIZE},
{"fullduplex", PARAM_FULLDUP},
{"group", PARAM_GROUP},
{"idletime", PARAM_IDLE},
{"maxdefer", PARAM_MAXDEFER},
{"maxkeyup", PARAM_MAXKEY},
{"mintime", PARAM_MIN},
{"persistence", PARAM_PERSIST},
{"slottime", PARAM_SLOTTIME},
{"speed", PARAM_SPEED},
{"softdcd", PARAM_SOFTDCD},
{"tailtime", PARAM_TXTAIL},
{"txdelay", PARAM_TXDELAY},
{"txoff", PARAM_TX},
{"txtailtime", PARAM_TXTAIL},
{"waittime", PARAM_WAIT},
{"", 0}
};
struct cmds plist[] = {{"no", -1}, {"off", -1}, {"normal", -1},
{"on", 1}, {"yes", 1}, {"hwctrl", 1}, {"", 0}};
int parse_param(struct cmds *list, char *s)
{
struct cmds *c;
for (c = &list[0]; *(c->name) != '\0' ; c++)
{
if (!strncmp(s, c->name, strlen(s)))
return c->token;
}
return -2;
}
void handle_error(int error, char *op, char *par)
{
char buf[30];
switch(error)
{
case -ENODATA:
fprintf(stderr,"Error: parameter %s not supported\n", par);
exit(1);
case -ENODEV:
fprintf(stderr,"Error: Channel not attached\n");
exit(1);
default:
sprintf(buf, "Error: ioctl() failed on %s", op);
perror(buf);
exit(1);
}
}
#define ISDIGIT(x) ((x >= '0') && (x <= '9'))
int main(int argc, char **argv)
{
int fd;
int param, val;
struct scc_kiss_cmd cmd;
struct scc_stat stat;
struct scc_mem_config memcfg;
int error;
struct ifreq ifr;
check_version();
if (argc < 3)
{
fprintf(stderr, "\nusage: %s dev param [value]\n", argv[0]);
fprintf(stderr, "example: %s scc1 txdelay 20\n\n", argv[0]);
exit(1);
}
fd = socket(AF_AX25, SOCK_DGRAM, 0);
strcpy(ifr.ifr_name, argv[1]);
ifr.ifr_data = (caddr_t) &stat;
if (ioctl(fd, SIOCSCCGSTAT, &ifr) < 0)
{
perror("ERROR: Cannot get device\n");
exit(1);
}
if (ISDIGIT(*argv[2]))
{
param=atoi(argv[2]);
} else {
if ((param = parse_param(clist, argv[2])) < 0)
{
fprintf(stderr,"error: unknown command %s\n",argv[2]);
exit(1);
}
}
if (argc < 4)
{
if (param < 0x80)
{
cmd.command = param;
ifr.ifr_data = (caddr_t) &cmd;
error = ioctl(fd, SIOCSCCGKISS, &ifr);
if (error < 0)
handle_error(error, "SIOCSCCGKISS", argv[2]);
if (cmd.param == NO_SUCH_PARAM)
handle_error(-ENODATA, "SIOCSCCGKISS", argv[2]);
printf("%s %u\n", argv[2], cmd.param);
}
} else {
if (ISDIGIT(*argv[3]))
{
if (*(argv[3]+1) == 'x')
sscanf(argv[3], "%x", &val);
else
val = atoi(argv[3]);
} else {
val = parse_param(plist, argv[3]);
if (val < -1)
{
fprintf(stderr,"error: wrong parameter %s ", argv[3]);
exit(1);
}
}
if (val < 0)
{
switch(param)
{
case PARAM_MAXKEY:
case PARAM_MIN:
case PARAM_MAXDEFER:
case PARAM_IDLE: val = TIMER_OFF; break;
case PARAM_PERSIST: val = 255; break;
default: val = 0;
}
}
else if (val == 0)
{
switch(param)
{
case PARAM_MAXKEY:
case PARAM_MIN:
case PARAM_MAXDEFER: val = TIMER_OFF; break;
}
}
if (param >= 0x80)
{
ifr.ifr_data = (caddr_t) &stat;
error = ioctl(fd, SIOCSCCGSTAT, &ifr);
if (error < 0)
{
perror("Can't get channel status: ");
exit(1);
}
memcfg.bufsize = stat.bufsize;
switch(param)
{
case C_BUFSIZE:
memcfg.bufsize = val;
break;
}
ifr.ifr_data = (caddr_t) &memcfg;
error = ioctl(fd, SIOCSCCSMEM, &ifr);
if ( error < 0) handle_error(error, "SIOCSCCSMEM", "");
} else {
cmd.command = param;
cmd.param = val;
ifr.ifr_data = (caddr_t) &cmd;
error = ioctl(fd, SIOCSCCSKISS, &ifr);
if (error < 0) handle_error(error, "SIOCSCCSKISS", argv[2]);
}
}
close(fd);
return 0;
}
--==_Exmh_14804942520
Content-Type: text/plain; charset=us-ascii
Joerg Reuter ampr-net: terhi.victor@logonet.com
AX-25 : DL1BKE @ DB0ACH.#NRW.DEU.EU
Internet: ctolebd.sdjuvcegi@bshnet.ru
Fur? I'd rather grow my own!
--==_Exmh_14804942520--