forked from microsoft/WSL2-Linux-Kernel
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/gi…
…t/davem/net-2.6
- Loading branch information
Showing
613 changed files
with
11,365 additions
and
7,843 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
Understanding fbdev's cmap | ||
-------------------------- | ||
|
||
These notes explain how X's dix layer uses fbdev's cmap structures. | ||
|
||
*. example of relevant structures in fbdev as used for a 3-bit grayscale cmap | ||
struct fb_var_screeninfo { | ||
.bits_per_pixel = 8, | ||
.grayscale = 1, | ||
.red = { 4, 3, 0 }, | ||
.green = { 0, 0, 0 }, | ||
.blue = { 0, 0, 0 }, | ||
} | ||
struct fb_fix_screeninfo { | ||
.visual = FB_VISUAL_STATIC_PSEUDOCOLOR, | ||
} | ||
for (i = 0; i < 8; i++) | ||
info->cmap.red[i] = (((2*i)+1)*(0xFFFF))/16; | ||
memcpy(info->cmap.green, info->cmap.red, sizeof(u16)*8); | ||
memcpy(info->cmap.blue, info->cmap.red, sizeof(u16)*8); | ||
|
||
*. X11 apps do something like the following when trying to use grayscale. | ||
for (i=0; i < 8; i++) { | ||
char colorspec[64]; | ||
memset(colorspec,0,64); | ||
sprintf(colorspec, "rgb:%x/%x/%x", i*36,i*36,i*36); | ||
if (!XParseColor(outputDisplay, testColormap, colorspec, &wantedColor)) | ||
printf("Can't get color %s\n",colorspec); | ||
XAllocColor(outputDisplay, testColormap, &wantedColor); | ||
grays[i] = wantedColor; | ||
} | ||
There's also named equivalents like gray1..x provided you have an rgb.txt. | ||
|
||
Somewhere in X's callchain, this results in a call to X code that handles the | ||
colormap. For example, Xfbdev hits the following: | ||
|
||
xc-011010/programs/Xserver/dix/colormap.c: | ||
|
||
FindBestPixel(pentFirst, size, prgb, channel) | ||
|
||
dr = (long) pent->co.local.red - prgb->red; | ||
dg = (long) pent->co.local.green - prgb->green; | ||
db = (long) pent->co.local.blue - prgb->blue; | ||
sq = dr * dr; | ||
UnsignedToBigNum (sq, &sum); | ||
BigNumAdd (&sum, &temp, &sum); | ||
|
||
co.local.red are entries that were brought in through FBIOGETCMAP which come | ||
directly from the info->cmap.red that was listed above. The prgb is the rgb | ||
that the app wants to match to. The above code is doing what looks like a least | ||
squares matching function. That's why the cmap entries can't be set to the left | ||
hand side boundaries of a color range. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
Metronomefb | ||
----------- | ||
Maintained by Jaya Kumar <jayakumar.lkml.gmail.com> | ||
Last revised: Nov 20, 2007 | ||
|
||
Metronomefb is a driver for the Metronome display controller. The controller | ||
is from E-Ink Corporation. It is intended to be used to drive the E-Ink | ||
Vizplex display media. E-Ink hosts some details of this controller and the | ||
display media here http://www.e-ink.com/products/matrix/metronome.html . | ||
|
||
Metronome is interfaced to the host CPU through the AMLCD interface. The | ||
host CPU generates the control information and the image in a framebuffer | ||
which is then delivered to the AMLCD interface by a host specific method. | ||
Currently, that's implemented for the PXA's LCDC controller. The display and | ||
error status are each pulled through individual GPIOs. | ||
|
||
Metronomefb was written for the PXA255/gumstix/lyre combination and | ||
therefore currently has board set specific code in it. If other boards based on | ||
other architectures are available, then the host specific code can be separated | ||
and abstracted out. | ||
|
||
Metronomefb requires waveform information which is delivered via the AMLCD | ||
interface to the metronome controller. The waveform information is expected to | ||
be delivered from userspace via the firmware class interface. The waveform file | ||
can be compressed as long as your udev or hotplug script is aware of the need | ||
to uncompress it before delivering it. metronomefb will ask for waveform.wbf | ||
which would typically go into /lib/firmware/waveform.wbf depending on your | ||
udev/hotplug setup. I have only tested with a single waveform file which was | ||
originally labeled 23P01201_60_WT0107_MTC. I do not know what it stands for. | ||
Caution should be exercised when manipulating the waveform as there may be | ||
a possibility that it could have some permanent effects on the display media. | ||
I neither have access to nor know exactly what the waveform does in terms of | ||
the physical media. | ||
|
||
Metronomefb uses the deferred IO interface so that it can provide a memory | ||
mappable frame buffer. It has been tested with tinyx (Xfbdev). It is known | ||
to work at this time with xeyes, xclock, xloadimage, xpdf. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
Keyboard notifier | ||
|
||
One can use register_keyboard_notifier to get called back on keyboard | ||
events (see kbd_keycode() function for details). The passed structure is | ||
keyboard_notifier_param: | ||
|
||
- 'vc' always provide the VC for which the keyboard event applies; | ||
- 'down' is 1 for a key press event, 0 for a key release; | ||
- 'shift' is the current modifier state, mask bit indexes are KG_*; | ||
- 'value' depends on the type of event. | ||
|
||
- KBD_KEYCODE events are always sent before other events, value is the keycode. | ||
- KBD_UNBOUND_KEYCODE events are sent if the keycode is not bound to a keysym. | ||
value is the keycode. | ||
- KBD_UNICODE events are sent if the keycode -> keysym translation produced a | ||
unicode character. value is the unicode value. | ||
- KBD_KEYSYM events are sent if the keycode -> keysym translation produced a | ||
non-unicode character. value is the keysym. | ||
- KBD_POST_KEYSYM events are sent after the treatment of non-unicode keysyms. | ||
That permits one to inspect the resulting LEDs for instance. | ||
|
||
For each kind of event but the last, the callback may return NOTIFY_STOP in | ||
order to "eat" the event: the notify loop is stopped and the keyboard event is | ||
dropped. | ||
|
||
In a rough C snippet, we have: | ||
|
||
kbd_keycode(keycode) { | ||
... | ||
params.value = keycode; | ||
if (notifier_call_chain(KBD_KEYCODE,¶ms) == NOTIFY_STOP) | ||
|| !bound) { | ||
notifier_call_chain(KBD_UNBOUND_KEYCODE,¶ms); | ||
return; | ||
} | ||
|
||
if (unicode) { | ||
param.value = unicode; | ||
if (notifier_call_chain(KBD_UNICODE,¶ms) == NOTIFY_STOP) | ||
return; | ||
emit unicode; | ||
return; | ||
} | ||
|
||
params.value = keysym; | ||
if (notifier_call_chain(KBD_KEYSYM,¶ms) == NOTIFY_STOP) | ||
return; | ||
apply keysym; | ||
notifier_call_chain(KBD_POST_KEYSYM,¶ms); | ||
} | ||
|
||
NOTE: This notifier is usually called from interrupt context. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.