--8323328-435837720-1035529465=:25878
Content-Type: TEXT/PLAIN; charset=US-ASCII
Attached is a patch against 2.4.19 for basic support of the KB Gear
JamStudio USB tablet (it's a decent enough 30$ tablet--not quite wacom
quality, but definitely not wacom pricing).
Comments highly encouraged, thanks. I'd like to get this driver cleaned up
a little before submitting, but I'm not quite certain where to start.
The code is based heavily on the wacom driver, and a big "You Rule!" to
Pavel and anyone else involved with the Input layer. It may be a little
convoluted, and slightly non-intuitive, but it's a hell of a lot better
than the USB HID spec!
--
/jbm, but you can call me Josh. Really, you can!
this signature brought to you by the phrase,
"this signature brought to you by the phrase,
'...' and contributions by viewers like you"
7958 1C1C 306A CDF8 4468 3EDE 1F93 F49D 5FA1 49C4
--8323328-435837720-1035529465=:25878
Content-Type: TEXT/plain; name="kbgear.diff"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.44.0210250204250.25878@blessed>
Content-Description:
Content-Disposition: attachment; filename="kbgear.diff"
ZGlmZiAtdXJOIGxpbnV4LTIuNC4xOS9Eb2N1bWVudGF0aW9uL0NvbmZpZ3Vy
ZS5oZWxwIGxpbnV4LTIuNC4xOS1rYi9Eb2N1bWVudGF0aW9uL0NvbmZpZ3Vy
ZS5oZWxwDQotLS0gbGludXgtMi40LjE5L0RvY3VtZW50YXRpb24vQ29uZmln
dXJlLmhlbHAJMjAwMi0wOC0wMiAyMDozOTo0Mi4wMDAwMDAwMDAgLTA0MDAN
CisrKyBsaW51eC0yLjQuMTkta2IvRG9jdW1lbnRhdGlvbi9Db25maWd1cmUu
aGVscAkyMDAyLTEwLTI1IDAxOjU4OjI0LjAwMDAwMDAwMCAtMDQwMA0KQEAg
LTEzMTA4LDYgKzEzMTA4LDE3IEBADQogICBUaGUgbW9kdWxlIHdpbGwgYmUg
Y2FsbGVkIHdhY29tLm8uICBJZiB5b3Ugd2FudCB0byBjb21waWxlIGl0IGFz
IGENCiAgIG1vZHVsZSwgc2F5IE0gaGVyZSBhbmQgcmVhZCA8ZmlsZTpEb2N1
bWVudGF0aW9uL21vZHVsZXMudHh0Pi4NCiANCitLQiBHZWFyIEphbVN0dWRp
byB0YWJsZXQgc3VwcG9ydA0KK0NPTkZJR19VU0JfS0JHRUFSDQorICBTYXkg
WSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgS0IgR2VhciBKYW1TdHVk
aW8gVVNCIFRhYmxldC4NCisgICBNYWtlIHN1cmUgdG8gc2F5IFkgdG8gIk1v
dXNlIHN1cHBvcnQiIChDT05GSUdfSU5QVVRfTU9VU0VERVYpIA0KKyAgIGFu
ZC9vciAiRXZlbnQgaW50ZXJmYWNlIHN1cHBvcnQiIChDT05GSUdfSU5QVVRf
RVZERVYpIGFzIHdlbGwuDQorDQorICBUaGlzIGRyaXZlciBpcyBhbHNvIGF2
YWlsYWJsZSBhcyBhIG1vZHVsZSAoID0gY29kZSB3aGljaCBjYW4gYmUNCisg
IGluc2VydGVkIGluIGFuZCByZW1vdmVkIGZyb20gdGhlIHJ1bm5pbmcga2Vy
bmVsIHdoZW5ldmVyIHlvdSB3YW50KS4NCisgIFRoZSBtb2R1bGUgd2lsbCBi
ZSBjYWxsZWQgd2Fjb20uby4gIElmIHlvdSB3YW50IHRvIGNvbXBpbGUgaXQg
YXMgYQ0KKyAgbW9kdWxlLCBzYXkgTSBoZXJlIGFuZCByZWFkIDxmaWxlOkRv
Y3VtZW50YXRpb24vbW9kdWxlcy50eHQ+Lg0KKw0KIEFpcHRlayA4MDAwVSB0
YWJsZXQgc3VwcG9ydA0KIENPTkZJR19VU0JfQUlQVEVLDQogICBTYXkgWSBo
ZXJlIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgVVNCIHZlcnNpb24gb2YgdGhl
IEFpcHRlayA4MDAwVQ0KZGlmZiAtdXJOIGxpbnV4LTIuNC4xOS9kcml2ZXJz
L3VzYi9Db25maWcuaW4gbGludXgtMi40LjE5LWtiL2RyaXZlcnMvdXNiL0Nv
bmZpZy5pbg0KLS0tIGxpbnV4LTIuNC4xOS9kcml2ZXJzL3VzYi9Db25maWcu
aW4JMjAwMi0wOC0wMiAyMDozOTo0NC4wMDAwMDAwMDAgLTA0MDANCisrKyBs
aW51eC0yLjQuMTkta2IvZHJpdmVycy91c2IvQ29uZmlnLmluCTIwMDItMTAt
MjUgMDE6NTY6NDAuMDAwMDAwMDAwIC0wNDAwDQpAQCAtNjAsNiArNjAsNyBA
QA0KICAgICAgIGRlcF90cmlzdGF0ZSAnICBVU0IgSElEQlAgTW91c2UgKGJh
c2ljKSBzdXBwb3J0JyBDT05GSUdfVVNCX01PVVNFICRDT05GSUdfVVNCICRD
T05GSUdfSU5QVVQNCiAgICBmaQ0KICAgIGRlcF90cmlzdGF0ZSAnICBXYWNv
bSBJbnR1b3MvR3JhcGhpcmUgdGFibGV0IHN1cHBvcnQnIENPTkZJR19VU0Jf
V0FDT00gJENPTkZJR19VU0IgJENPTkZJR19JTlBVVA0KKyAgIGRlcF90cmlz
dGF0ZSAnICBLQiBHZWFyIEphbVN0dWRpbyB0YWJsZXQgc3VwcG9ydCcgQ09O
RklHX1VTQl9LQkdFQVIgJENPTkZJR19VU0IgJENPTkZJR19JTlBVVA0KIA0K
ICAgIGNvbW1lbnQgJ1VTQiBJbWFnaW5nIGRldmljZXMnDQogICAgZGVwX3Ry
aXN0YXRlICcgIFVTQiBLb2RhayBEQy0yeHggQ2FtZXJhIHN1cHBvcnQnIENP
TkZJR19VU0JfREMyWFggJENPTkZJR19VU0INCmRpZmYgLXVyTiBsaW51eC0y
LjQuMTkvZHJpdmVycy91c2IvTWFrZWZpbGUgbGludXgtMi40LjE5LWtiL2Ry
aXZlcnMvdXNiL01ha2VmaWxlDQotLS0gbGludXgtMi40LjE5L2RyaXZlcnMv
dXNiL01ha2VmaWxlCTIwMDItMDgtMDIgMjA6Mzk6NDQuMDAwMDAwMDAwIC0w
NDAwDQorKysgbGludXgtMi40LjE5LWtiL2RyaXZlcnMvdXNiL01ha2VmaWxl
CTIwMDItMTAtMjUgMDI6MDQ6NTEuMDAwMDAwMDAwIC0wNDAwDQpAQCAtNjMs
NiArNjMsNyBAQA0KIG9iai0kKENPTkZJR19VU0JfSElEKQkJKz0gaGlkLm8N
CiBvYmotJChDT05GSUdfVVNCX0tCRCkJCSs9IHVzYmtiZC5vDQogb2JqLSQo
Q09ORklHX1VTQl9XQUNPTSkJCSs9IHdhY29tLm8NCitvYmotJChDT05GSUdf
VVNCX0tCR0VBUikJKz0ga2JwYWQubw0KIA0KIG9iai0kKENPTkZJR19VU0Jf
U0NBTk5FUikJKz0gc2Nhbm5lci5vDQogb2JqLSQoQ09ORklHX1VTQl9BQ00p
CQkrPSBhY20ubw0KLS0tIGxpbnV4LTIuNC4xOS9kcml2ZXJzL3VzYi9rYnBh
ZC5jCTE5NjktMTItMzEgMTk6MDA6MDAuMDAwMDAwMDAwIC0wNTAwDQorKysg
bGludXgtMi40LjE5LWtiL2RyaXZlcnMvdXNiL2ticGFkLmMJMjAwMi0xMC0y
NSAwMjowMzozMi4wMDAwMDAwMDAgLTA0MDANCkBAIC0wLDAgKzEsMTc0IEBA
DQorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPg0KKyNpbmNsdWRlIDxsaW51
eC9zbGFiLmg+DQorI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+DQorI2luY2x1
ZGUgPGxpbnV4L21vZHVsZS5oPg0KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+
DQorI2luY2x1ZGUgPGxpbnV4L3VzYi5oPg0KKw0KKy8qDQorICogVmVyc2lv
biBJbmZvcm1hdGlvbg0KKyAqLw0KKyNkZWZpbmUgRFJJVkVSX1ZFUlNJT04g
InYwLjAuMSINCisjZGVmaW5lIERSSVZFUl9BVVRIT1IgIkpvc2ggTXllciA8
am9zaEBqb3NoaXNhbmVyZC5jb20+Ig0KKyNkZWZpbmUgRFJJVkVSX0RFU0Mg
IktCIEdlYXIgSmFtIFN0dWRpbyBUYWJsZXQgRHJpdmVyIg0KKw0KK01PRFVM
RV9BVVRIT1IoIERSSVZFUl9BVVRIT1IgKTsNCitNT0RVTEVfREVTQ1JJUFRJ
T04oIERSSVZFUl9ERVNDICk7DQorTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOw0K
Kw0KKyNkZWZpbmUgVVNCX1ZFTkRPUl9JRF9LQlRBQiAweDg0ZQ0KKw0KK3N0
cnVjdCBrYnRhYiB7DQorICBzaWduZWQgY2hhciBkYXRhWzhdOw0KKyAgc3Ry
dWN0IGlucHV0X2RldiBkZXY7DQorICBzdHJ1Y3QgdXNiX2RldmljZSAqdXNi
ZGV2Ow0KKyAgc3RydWN0IHVyYiBpcnE7DQorICBpbnQgb3BlbjsNCisgIGlu
dCB4LCB5Ow0KKyAgaW50IGJ1dHRvbjsNCisgIGludCBwcmVzc3VyZTsNCit9
Ow0KKw0KK3N0YXRpYyB2b2lkIGtidGFiX2lycShzdHJ1Y3QgdXJiICp1cmIp
DQorew0KKw0KKyAgc3RydWN0IGtidGFiICp0YWIgPSB1cmItPmNvbnRleHQ7
DQorICB1bnNpZ25lZCBjaGFyICpkYXRhID0gdGFiLT5kYXRhOw0KKyAgc3Ry
dWN0IGlucHV0X2RldiAqZGV2ID0gJnRhYi0+ZGV2Ow0KKw0KKyAgaWYodXJi
LT5zdGF0dXMpDQorICAgIHJldHVybjsNCisNCisgIHRhYi0+eCA9IChkYXRh
WzJdIDw8IDgpICsgZGF0YVsxXTsNCisgIHRhYi0+eSA9IChkYXRhWzRdIDw8
IDgpICsgZGF0YVszXTsNCisNCisgIHRhYi0+cHJlc3N1cmUgPSAoZGF0YVs1
XSk7DQorDQorICAvKiBYWFg6IGRvbid0IHJlcG9ydCB1bmxlc3MgYWN0dWFs
IGNoYW5nZSAqLw0KKw0KKyAgaW5wdXRfcmVwb3J0X2FicyhkZXYsIEFCU19Y
LCB0YWItPngpOw0KKyAgaW5wdXRfcmVwb3J0X2FicyhkZXYsIEFCU19ZLCB0
YWItPnkpOw0KKyAgaW5wdXRfcmVwb3J0X2FicyhkZXYsIEFCU19QUkVTU1VS
RSwgdGFiLT5wcmVzc3VyZSk7DQorDQorICBpbnB1dF9yZXBvcnRfa2V5KGRl
diwgQlROX1NUWUxVUywgKGRhdGFbMF0gJiAyKSk7DQorICBpbnB1dF9yZXBv
cnRfa2V5KGRldiwgQlROX1RPVUNILCAoZGF0YVswXSAmIDEpKTsNCisgIGlu
cHV0X3JlcG9ydF9rZXkoZGV2LCBCVE5fTEVGVCwgKHRhYi0+cHJlc3N1cmUg
PiAweDEwKSA/IDEgOiAwKTsNCisNCisgIGlucHV0X2V2ZW50KGRldiwgRVZf
TVNDLCBNU0NfU0VSSUFMLCAwKTsNCit9DQorDQorc3RydWN0IHVzYl9kZXZp
Y2VfaWQga2J0YWJfaWRzW10gPSB7DQorICB7IFVTQl9ERVZJQ0UoVVNCX1ZF
TkRPUl9JRF9LQlRBQiwgMHgxMDAxKSwgZHJpdmVyX2luZm8gOiAwIH0sDQor
ICB7IH0NCit9Ow0KKyAgDQorTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIGti
dGFiX2lkcyk7DQorDQorc3RhdGljIGludCBrYnRhYl9vcGVuKHN0cnVjdCBp
bnB1dF9kZXYgKmRldikNCit7DQorICBzdHJ1Y3Qga2J0YWIgKmtidGFiID0g
ZGV2LT5wcml2YXRlOw0KKw0KKyAgaWYoa2J0YWItPm9wZW4rKykNCisgICAg
cmV0dXJuIDA7DQorDQorICBrYnRhYi0+aXJxLmRldiA9IGtidGFiLT51c2Jk
ZXY7DQorICBpZih1c2Jfc3VibWl0X3VyYigma2J0YWItPmlycSkpDQorICAg
IHJldHVybiAtRUlPOw0KKw0KKyAgcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRp
YyB2b2lkIGtidGFiX2Nsb3NlKHN0cnVjdCBpbnB1dF9kZXYgKmRldikNCit7
DQorICBzdHJ1Y3Qga2J0YWIgKmtidGFiID0gZGV2LT5wcml2YXRlOw0KKw0K
KyAgaWYoIS0ta2J0YWItPm9wZW4pDQorICAgIHVzYl91bmxpbmtfdXJiKCZr
YnRhYi0+aXJxKTsNCit9DQorDQorc3RhdGljIHZvaWQgKmtidGFiX3Byb2Jl
KHN0cnVjdCB1c2JfZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBpZm51bSwg
Y29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKQ0KK3sNCisgIHN0cnVj
dCB1c2JfZW5kcG9pbnRfZGVzY3JpcHRvciAqZW5kcG9pbnQ7DQorICBzdHJ1
Y3Qga2J0YWIgKmtidGFiOw0KKw0KKyAgaWYoIShrYnRhYiA9IGttYWxsb2Mo
c2l6ZW9mKHN0cnVjdCBrYnRhYiksIEdGUF9LRVJORUwpKSkNCisgICAgcmV0
dXJuIE5VTEw7DQorDQorICBtZW1zZXQoa2J0YWIsIDAsIHNpemVvZihzdHJ1
Y3Qga2J0YWIpKTsNCisNCisgIGtidGFiLT5kZXYuZXZiaXRbMF0gfD0gQklU
KEVWX0tFWSkgfCBCSVQoRVZfQUJTKSB8IEJJVChFVl9NU0MpOw0KKyAga2J0
YWItPmRldi5hYnNiaXRbMF0gfD0gQklUKEFCU19YKSB8IEJJVChBQlNfWSkg
fCBCSVQoQUJTX1BSRVNTVVJFKTsNCisNCisgIGtidGFiLT5kZXYua2V5Yml0
W0xPTkcoQlROX0xFRlQpXSB8PSBCSVQoQlROX0xFRlQpIHwgQklUKEJUTl9S
SUdIVCkgfCBCSVQoQlROX01JRERMRSk7DQorICBrYnRhYi0+ZGV2LmtleWJp
dFtMT05HKEJUTl9ESUdJKV0gfD0gQklUKEJUTl9TVFlMVVMpOw0KKw0KKyAg
a2J0YWItPmRldi5tc2NiaXRbMF0gfD0gQklUKE1TQ19TRVJJQUwpOw0KKw0K
KyAga2J0YWItPmRldi5hYnNtYXhbQUJTX1hdID0gMHgyMDAwOw0KKyAga2J0
YWItPmRldi5hYnNtYXhbQUJTX1ldID0gMHgxNzUwOw0KKw0KKyAga2J0YWIt
PmRldi5hYnNtYXhbQUJTX1BSRVNTVVJFXSA9IDB4ZmY7DQorICANCisgIGti
dGFiLT5kZXYuYWJzZnV6eltBQlNfWF0gPSA0Ow0KKyAga2J0YWItPmRldi5h
YnNmdXp6W0FCU19ZXSA9IDQ7DQorICANCisgIGtidGFiLT5kZXYucHJpdmF0
ZSA9IGtidGFiOw0KKw0KKyAga2J0YWItPmRldi5vcGVuID0ga2J0YWJfb3Bl
bjsNCisgIGtidGFiLT5kZXYuY2xvc2UgPSBrYnRhYl9jbG9zZTsNCisNCisg
IGtidGFiLT5kZXYubmFtZSA9ICJLQiBHZWFyIFRhYmxldCI7DQorICBrYnRh
Yi0+ZGV2LmlkYnVzID0gQlVTX1VTQjsNCisgIA0KKyAga2J0YWItPmRldi5p
ZHZlbmRvciA9IGRldi0+ZGVzY3JpcHRvci5pZFZlbmRvcjsNCisgIGtidGFi
LT5kZXYuaWRwcm9kdWN0ID0gZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdDsN
CisgIGtidGFiLT5kZXYuaWR2ZXJzaW9uID0gZGV2LT5kZXNjcmlwdG9yLmJj
ZERldmljZTsNCisgIGtidGFiLT51c2JkZXYgPSBkZXY7DQorDQorDQorICBl
bmRwb2ludCA9IGRldi0+Y29uZmlnWzBdLmludGVyZmFjZVtpZm51bV0uYWx0
c2V0dGluZ1swXS5lbmRwb2ludCArIDA7DQorDQorICB1c2Jfc2V0X2lkbGUo
ZGV2LCBkZXYtPmNvbmZpZ1swXS5pbnRlcmZhY2VbaWZudW1dLmFsdHNldHRp
bmdbMF0uYkludGVyZmFjZU51bWJlciwgMCwgMCk7DQorDQorICBGSUxMX0lO
VF9VUkIoJmtidGFiLT5pcnEsIGRldiwgdXNiX3JjdmludHBpcGUoZGV2LCBl
bmRwb2ludC0+YkVuZHBvaW50QWRkcmVzcyksDQorCSAgICAgICBrYnRhYi0+
ZGF0YSwgOCwga2J0YWJfaXJxLCBrYnRhYiwgZW5kcG9pbnQtPmJJbnRlcnZh
bCk7DQorDQorICBpbnB1dF9yZWdpc3Rlcl9kZXZpY2UoJmtidGFiLT5kZXYp
Ow0KKw0KKyAgcHJpbnRrKEtFUk5fSU5GTyAiaW5wdXQlZDogS0IgR2VhciBU
YWJsZXQgb24gdXNiJWQ6JWQuJWRcbiIsDQorCSBrYnRhYi0+ZGV2Lm51bWJl
ciwgZGV2LT5idXMtPmJ1c251bSwgZGV2LT5kZXZudW0sIGlmbnVtKTsNCisN
CisgIHJldHVybiBrYnRhYjsNCisNCit9DQorDQorc3RhdGljIHZvaWQga2J0
YWJfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2RldmljZSAqZGV2LCB2b2lkICpw
dHIpDQorew0KKwlzdHJ1Y3Qga2J0YWIgKmtidGFiID0gcHRyOw0KKwl1c2Jf
dW5saW5rX3VyYigma2J0YWItPmlycSk7DQorCWlucHV0X3VucmVnaXN0ZXJf
ZGV2aWNlKCZrYnRhYi0+ZGV2KTsNCisJa2ZyZWUoa2J0YWIpOw0KK30NCisN
CitzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIga2J0YWJfZHJpdmVyID0gew0K
KwluYW1lOgkJImtidGFiIiwNCisJcHJvYmU6CQlrYnRhYl9wcm9iZSwNCisJ
ZGlzY29ubmVjdDoJa2J0YWJfZGlzY29ubmVjdCwNCisJaWRfdGFibGU6CWti
dGFiX2lkcywNCit9Ow0KKw0KK3N0YXRpYyBpbnQgX19pbml0IGtidGFiX2lu
aXQodm9pZCkNCit7DQorCXVzYl9yZWdpc3Rlcigma2J0YWJfZHJpdmVyKTsN
CisJaW5mbyhEUklWRVJfVkVSU0lPTiAiICIgRFJJVkVSX0FVVEhPUik7DQor
CWluZm8oRFJJVkVSX0RFU0MpOw0KKwlyZXR1cm4gMDsNCit9DQorDQorc3Rh
dGljIHZvaWQgX19leGl0IGtidGFiX2V4aXQodm9pZCkNCit7DQorCXVzYl9k
ZXJlZ2lzdGVyKCZrYnRhYl9kcml2ZXIpOw0KK30NCisNCittb2R1bGVfaW5p
dChrYnRhYl9pbml0KTsNCittb2R1bGVfZXhpdChrYnRhYl9leGl0KTsNCg==
--8323328-435837720-1035529465=:25878--
-
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/