Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • trisquel/package-helpers
  • aklis/package-helpers
  • leny2010/package-helpers
  • fr33domlover/package-helpers
  • Legimet/package-helpers
  • ralphtheninja/package-helpers
  • damo22/package-helpers
  • wherrfrye/package-helpers
  • habs/package-helpers
  • pehjota/package-helpers
  • kpengboy/package-helpers
  • alvaro/package-helpers
  • salman/package-helpers
  • pabloyoyoista/package-helpers
  • mixalis/package-helpers
  • jorgesumle/package-helpers
  • a_slacker_here/package-helpers
  • chaosmonk/package-helpers
  • Beformed/package-helpers
  • dknight/package-helpers
  • proninyaroslav/package-helpers
  • adfeno/package-helpers
  • snd/package-helpers
  • davidpgil/package-helpers
  • diopon/package-helpers
  • ruben/package-helpers
  • bandali/package-helpers
  • joshaspinall/package-helpers
  • GNUtoo/package-helpers
  • Ark74/package-helpers
  • dragestil/package-helpers
  • bill-auger/package-helpers
  • andi89gi/package-helpers
  • Fikar/package-helpers
  • davidl/package-helpers
  • jas/package-helpers
  • parodper/package-helpers
  • David_Hedlund/package-helpers
  • dinomug/package-helpers
  • bf/package-helpers
  • hartkemd/package-helpers
  • del111/package-helpers
  • jxself/package-helpers
  • JacobK/package-helpers
44 results
Show changes
Commits on Source (3)
Showing
with 47039 additions and 0 deletions
Index: gnome-menus-2.28.0/layout/applications.menu
===================================================================
--- gnome-menus-2.28.0.orig/layout/applications.menu 2009-09-24 11:34:44.000000000 +0200
+++ gnome-menus-2.28.0/layout/applications.menu 2009-09-24 11:34:44.000000000 +0200
@@ -157,4 +157,29 @@
<Directory>Debian.directory</Directory>
</Menu>
+<Include>
+ <Filename>gnome-app-install.desktop</Filename>
+</Include>
+
+<!-- Separator between menus and gnome-app-install -->
+<Layout>
+ <Merge type="menus"/>
+ <Menuname>Internet</Menuname>
+ <Menuname>Office</Menuname>
+ <Menuname>Education</Menuname>
+ <Menuname>Development</Menuname>
+ <Menuname>Graphics</Menuname>
+ <Menuname>Multimedia</Menuname>
+ <Menuname>Games</Menuname>
+ <Menuname>Accessories</Menuname>
+ <Menuname>System</Menuname>
+ <Menuname>Universal Access</Menuname>
+ <Menuname>Debian</Menuname>
+ <Menuname>Other</Menuname>
+ <Menuname>wine-wine</Menuname>
+ <Merge type="files"/>
+ <Separator/>
+ <Filename>gnome-app-install.desktop</Filename>
+</Layout>
+
</Menu> <!-- End Applications -->
Index: gnome-menus-2.28.0/layout/settings.menu
===================================================================
--- gnome-menus-2.28.0.orig/layout/settings.menu 2009-09-24 11:34:47.000000000 +0200
+++ gnome-menus-2.28.0/layout/settings.menu 2009-09-24 11:35:22.000000000 +0200
@@ -43,6 +43,7 @@
<And>
<Category>Settings</Category>
<Category>System</Category>
+ <Not><Filename>gnome-app-install.desktop</Filename></Not>
</And>
</Include>
</Menu> <!-- End System Settings -->
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=Web Browser
Name[bg]=Интернет браузър
Name[ca]=Navegador web
Name[cs]=Webový prohlížeč
Name[el]=Περιηγήτης Ιστού
Name[es]=Navegador web
Name[gl_ES]=Navegador web
Name[fa]=مرورگر اینترنتی
Name[fi]=Webselain
Name[fr]=Navigateur Web
Name[hu]=Webböngésző
Name[it]=Browser Web
Name[ja]=ウェブ・ブラウザ
Name[ko]=웹 브라우저
Name[nb]=Nettleser
Name[nl]=Webbrowser
Name[nn]=Nettlesar
Name[no]=Nettleser
Name[pl]=Przeglądarka WWW
Name[pt]=Navegador Web
Name[pt_BR]=Navegador Web
Name[sk]=Internetový prehliadač
Comment=Browse the World Wide Web
Comment[bg]=Сърфиране в Мрежата
Comment[ca]=Navegueu per el web
Comment[cs]=Prohlížení stránek World Wide Webu
Comment[de]=Im Internet surfen
Comment[el]=Περιηγηθείτε στον παγκόσμιο ιστό
Comment[es]=Navegue por la web
Comment[gl_ES]=Navegue pola web
Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
Comment[fi]=Selaa Internetin www-sivuja
Comment[fr]=Navigue sur Internet
Comment[hu]=A világháló böngészése
Comment[it]=Esplora il web
Comment[ja]=ウェブを閲覧します
Comment[ko]=웹을 돌아 다닙니다
Comment[nb]=Surf på nettet
Comment[nl]=Verken het internet
Comment[nn]=Surf på nettet
Comment[no]=Surf på nettet
Comment[pl]=Przeglądanie stron WWW
Comment[pt]=Navegue na Internet
Comment[pt_BR]=Navegue na Internet
Comment[sk]=Prehliadanie internetu
GenericName=Web Browser
GenericName[bg]=Интернет браузър
GenericName[ca]=Navegador web
GenericName[cs]=Webový prohlížeč
GenericName[el]=Περιηγητής ιστού
GenericName[es]=Navegador web
GenericName[fa]=مرورگر اینترنتی
GenericName[fi]=Webselain
GenericName[fr]=Navigateur Web
GenericName[hu]=Webböngésző
GenericName[it]=Browser Web
GenericName[ja]=ウェブ・ブラウザ
GenericName[ko]=웹 브라우저
GenericName[nb]=Nettleser
GenericName[nl]=Webbrowser
GenericName[nn]=Nettlesar
GenericName[no]=Nettleser
GenericName[pl]=Przeglądarka WWW
GenericName[pt]=Navegador Web
GenericName[pt_BR]=Navegador Web
GenericName[sk]=Internetový prehliadač
Exec=abrowser-3.5 %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=web-browser
Categories=Application;Network;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;
StartupWMClass=Firefox
StartupNotify=true
helpers/DATA/firefox-3.5/default16.png

982 B

helpers/DATA/firefox-3.5/default32.png

2.2 KiB

helpers/DATA/firefox-3.5/default48.png

4.32 KiB

#!/bin/bash
sed -i 's/\(^.*missingPluginInstaller\.prototype.*$\)/\1\nreturn;/; s/\(^.*get the urls of missing plugins.*$\)/\1\nreturn;/' build-tree/mozilla/browser/base/content/browser.js
cp debian/default*.png build-tree/mozilla/browser/app/
cp debian/default*.png build-tree/mozilla/browser/branding/unofficial/
cp debian/default*.png build-tree/mozilla/browser/branding/awesome-browser/
cp debian/default*.png build-tree/mozilla/other-licenses/branding/firefox/
cp debian/default*.png build-tree/mozilla/xulrunner/app/
#Hides the link to mozilla.org in the search engine manager
sed -i 's/\(.*addEngine.label.*\)/\1 hidden="true"/' build-tree/mozilla/browser/components/search/content/engineManager.xul
sed -i 's/\(.*releaseNotes.*\)/\1 hidden="true"/' build-tree/mozilla/browser/base/content/baseMenuOverlay.xul
# This file hides the search form in the extensions manager, and also adds a
# nice "new tab" button in the bookmarks toolbar.
cat << EOF > build-tree/mozilla/browser/locales/en-US/profile/localstore.rdf
<?xml version="1.0"?>
<RDF:RDF xmlns:NC="http://home.netscape.com/NC-rdf#"
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<RDF:Description RDF:about="chrome://browser/content/browser.xul">
<NC:persist RDF:resource="chrome://browser/content/browser.xul#main-window"/>
<NC:persist RDF:resource="chrome://browser/content/browser.xul#sidebar-box"/>
<NC:persist RDF:resource="chrome://browser/content/browser.xul#sidebar-title"/>
<NC:persist RDF:resource="chrome://browser/content/browser.xul#toolbar-menubar"/>
<NC:persist RDF:resource="chrome://browser/content/browser.xul#nav-bar"/>
<NC:persist RDF:resource="chrome://browser/content/browser.xul#PersonalToolbar"/>
</RDF:Description>
<RDF:Description RDF:about="chrome://browser/content/browser.xul#main-window"
sizemode="maximized"
width="610"
height="450" />
<RDF:Description RDF:about="chrome://mozapps/content/extensions/extensions.xul#viewGroup"
last-selected="extensions" />
<RDF:Description RDF:about="chrome://mozapps/content/extensions/extensions.xul#extensions-view"
selected="true" />
<RDF:Description RDF:about="chrome://browser/content/browser.xul#PersonalToolbar"
currentset="new-tab-button,personal-bookmarks" />
<RDF:Description RDF:about="chrome://mozapps/content/extensions/extensions.xul#extensionsManager"
width="520"
height="380"
sizemode="normal"
screenX="1"
screenY="48" />
<RDF:Description RDF:about="chrome://mozapps/content/extensions/extensions.xul">
<NC:persist RDF:resource="chrome://mozapps/content/extensions/extensions.xul#search-view"/>
<NC:persist RDF:resource="chrome://mozapps/content/extensions/extensions.xul#viewGroup"/>
<NC:persist RDF:resource="chrome://mozapps/content/extensions/extensions.xul#extensionsManager"/>
<NC:persist RDF:resource="chrome://mozapps/content/extensions/extensions.xul#extensions-view"/>
</RDF:Description>
<RDF:Description RDF:about="chrome://browser/content/browser.xul#toolbar-menubar"
currentset="menubar-items,spring,throbber-box" />
<RDF:Description RDF:about="chrome://global/content/customizeToolbar.xul">
<NC:persist RDF:resource="chrome://global/content/customizeToolbar.xul#CustomizeToolbarWindow"/>
</RDF:Description>
<RDF:Description RDF:about="chrome://global/content/customizeToolbar.xul#CustomizeToolbarWindow"
width="636"
height="400" />
<RDF:Description RDF:about="chrome://browser/content/browser.xul#nav-bar"
currentset="unified-back-forward-button,back-button,forward-button,reload-button,stop-button,home-button,urlbar-container,search-container" />
<RDF:Description RDF:about="chrome://browser/content/browser.xul#sidebar-title"
value="" />
</RDF:RDF>
EOF
cat << EOF > build-tree/mozilla/browser/branding/awesome-browser/locales/browserconfig.properties
# Do NOT localize or otherwise change these values
browser.startup.homepage=http://trisquel.info/
EOF
cat << EOF >> build-tree/mozilla/browser/app/profile/firefox.js
pref("app.support.baseURL", "http://trisquel.info/wiki/");
pref("xpinstall.whitelist.add", "trisquel.info");
EOF
cat << EOF >> build-tree/mozilla/browser/branding/awesome-browser/pref/firefox-branding.js
pref("app.releaseNotesURL", "http://trisquel.info/newbrowser");
EOF
cat << EOF >> build-tree/mozilla/browser/app/firefox-branding.js
pref("app.releaseNotesURL", "http://trisquel.info/newbrowser");
EOF
#Trisquel custom bookmarks
sed -i /ubuntu_bookmarks/d debian/patches/series
cat << EOF > build-tree/mozilla/browser/locales/generic/profile/bookmarks.html.in
<!DOCTYPE NETSCAPE-Bookmark-file-1>
<!-- This is an automatically generated file.
It will be read and overwritten.
DO NOT EDIT! -->
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<TITLE>Bookmarks</TITLE>
<H1>Bookmarks Menu</H1>
<DL><p>
<DT><H3 ADD_DATE="1245542278" LAST_MODIFIED="1245543070" PERSONAL_TOOLBAR_FOLDER="true">Bookmarks Toolbar</H3>
<DD>Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar
<DL><p>
<HR>
<DT><A HREF="http://trisquel.info/" ADD_DATE="1245542718" LAST_MODIFIED="1245542736" ICON_URI="http://trisquel.info/sites/default/themes/trisquel2/favicon.ico" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACi0lEQVQ4jY2T3UtTARiH92/0DxR0E10EZTeBF3VhBEqF9EEXUURUpn2AmohNS60oUrRMQ1D86ItKKz+atjmd25w5S82zlXPOqfNsc27nzOPOeboQJlakL/xuXnifi+d9Xx1bLEVZxTHhxzjsRZJXkn3dVob9gQhp+d1kFhs5rv9C6s1ufnjEjQDHhJ+bNXbOlJsprHfwyxdMAgrrHbzvcxONxXF7F6l47eRUaR+qqq4BWgwCO85+5KjeyMm7Jraf62DnhU5aDZMA3KodJByR0DSNmjdDCFML7L/Wy4IYQReNxUm52oXB7sEzG6Lb5sEx7uNgXi8pOT04JuYwO308bB3mrclNfbuTFoNAWoGJmLSCzusPcij3M6GlGJUvhzDYpymuH6Tvq5cDuX0cKzHjW1jCMxtk1DWPecRLZqkFfcPwmoNgOMrhgl5m5sJJu2UNVqZnRY7oLaSXWDlRZuFGjZ3LlVYOFpg5c6+fxVB0XeLjV07OP7LwosfFs7YxGjvGsI3Nkl5iJTW/nz3Zvey+1Mm+rA7y6uyEI9LGNWqahlOY59Ogh1HXPAA51Va2ne4gv86GazqQlPhn/fMOFCXB3qxOMu+YCASXud80RNFzC7Yx/9YAYijKrotd1LZP8OTtKG6viCSvcL16AGF6cXNATFohJbubqnffefruG+M/51FVlWaDQE3b+OYAgOyqQTKKTATEZT6YXQieAOXNIzR2Tf4N0DQNVVVZXV1FURQURcHrF8m4beTsgwFaewTKm0c4qjcy5RNJJBJJoTpN04jH40QiEUKhEKIoJuOemuFBs40rFWbuN9kYFzwEg0HC4TCSJK3/QiKRQJZlZFkmHo//N7IsI0kSiqKgaRq/AbKDgxgo7zYPAAAAAElFTkSuQmCC">Trisquel GNU/Linux</A>
<DT><A HREF="http://trisquel.info/wiki/" ADD_DATE="1245542718" LAST_MODIFIED="1245542736" ICON_URI="http://trisquel.info/sites/default/themes/trisquel2/favicon.ico" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACi0lEQVQ4jY2T3UtTARiH92/0DxR0E10EZTeBF3VhBEqF9EEXUURUpn2AmohNS60oUrRMQ1D86ItKKz+atjmd25w5S82zlXPOqfNsc27nzOPOeboQJlakL/xuXnifi+d9Xx1bLEVZxTHhxzjsRZJXkn3dVob9gQhp+d1kFhs5rv9C6s1ufnjEjQDHhJ+bNXbOlJsprHfwyxdMAgrrHbzvcxONxXF7F6l47eRUaR+qqq4BWgwCO85+5KjeyMm7Jraf62DnhU5aDZMA3KodJByR0DSNmjdDCFML7L/Wy4IYQReNxUm52oXB7sEzG6Lb5sEx7uNgXi8pOT04JuYwO308bB3mrclNfbuTFoNAWoGJmLSCzusPcij3M6GlGJUvhzDYpymuH6Tvq5cDuX0cKzHjW1jCMxtk1DWPecRLZqkFfcPwmoNgOMrhgl5m5sJJu2UNVqZnRY7oLaSXWDlRZuFGjZ3LlVYOFpg5c6+fxVB0XeLjV07OP7LwosfFs7YxGjvGsI3Nkl5iJTW/nz3Zvey+1Mm+rA7y6uyEI9LGNWqahlOY59Ogh1HXPAA51Va2ne4gv86GazqQlPhn/fMOFCXB3qxOMu+YCASXud80RNFzC7Yx/9YAYijKrotd1LZP8OTtKG6viCSvcL16AGF6cXNATFohJbubqnffefruG+M/51FVlWaDQE3b+OYAgOyqQTKKTATEZT6YXQieAOXNIzR2Tf4N0DQNVVVZXV1FURQURcHrF8m4beTsgwFaewTKm0c4qjcy5RNJJBJJoTpN04jH40QiEUKhEKIoJuOemuFBs40rFWbuN9kYFzwEg0HC4TCSJK3/QiKRQJZlZFkmHo//N7IsI0kSiqKgaRq/AbKDgxgo7zYPAAAAAElFTkSuQmCC">Wiki</A>
<DT><A HREF="http://trisquel.info/project/issues/" ADD_DATE="1245542718" LAST_MODIFIED="1245542736" ICON_URI="http://trisquel.info/sites/default/themes/trisquel2/favicon.ico" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACi0lEQVQ4jY2T3UtTARiH92/0DxR0E10EZTeBF3VhBEqF9EEXUURUpn2AmohNS60oUrRMQ1D86ItKKz+atjmd25w5S82zlXPOqfNsc27nzOPOeboQJlakL/xuXnifi+d9Xx1bLEVZxTHhxzjsRZJXkn3dVob9gQhp+d1kFhs5rv9C6s1ufnjEjQDHhJ+bNXbOlJsprHfwyxdMAgrrHbzvcxONxXF7F6l47eRUaR+qqq4BWgwCO85+5KjeyMm7Jraf62DnhU5aDZMA3KodJByR0DSNmjdDCFML7L/Wy4IYQReNxUm52oXB7sEzG6Lb5sEx7uNgXi8pOT04JuYwO308bB3mrclNfbuTFoNAWoGJmLSCzusPcij3M6GlGJUvhzDYpymuH6Tvq5cDuX0cKzHjW1jCMxtk1DWPecRLZqkFfcPwmoNgOMrhgl5m5sJJu2UNVqZnRY7oLaSXWDlRZuFGjZ3LlVYOFpg5c6+fxVB0XeLjV07OP7LwosfFs7YxGjvGsI3Nkl5iJTW/nz3Zvey+1Mm+rA7y6uyEI9LGNWqahlOY59Ogh1HXPAA51Va2ne4gv86GazqQlPhn/fMOFCXB3qxOMu+YCASXud80RNFzC7Yx/9YAYijKrotd1LZP8OTtKG6viCSvcL16AGF6cXNATFohJbubqnffefruG+M/51FVlWaDQE3b+OYAgOyqQTKKTATEZT6YXQieAOXNIzR2Tf4N0DQNVVVZXV1FURQURcHrF8m4beTsgwFaewTKm0c4qjcy5RNJJBJJoTpN04jH40QiEUKhEKIoJuOemuFBs40rFWbuN9kYFzwEg0HC4TCSJK3/QiKRQJZlZFkmHo//N7IsI0kSiqKgaRq/AbKDgxgo7zYPAAAAAElFTkSuQmCC">Bugs</A>
<HR>
<DT><A HREF="http://www.gnu.org/" ADD_DATE="1245542746" LAST_MODIFIED="1245542763" ICON_URI="http://www.gnu.org/graphics/gnu-head-mini.png" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAGFBMVEVFRUV+fn6mpqa/v7/Ozs7Y2Njg4OD8/Pwuhn+TAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAALEQAACxEBf2RfkQAAAAd0SU1FB9MBDhQ6Gd8s57cAAAEkSURBVHicXdFNc4JADAbgoP0Bi4d6dcGBMzp2z2rrnjulcsavnKuQ9+83K37vDAN5yIZsILws0uv3i7ugLTnAwpjBOsTLOE4VmmKQTFYBioGNKkI5drcCReRItmNAyinSCjianJo6A/aGRtRjtPadpB5CRkQRUaYPGbXW4UgKMfXQxDnJPIeJ0qyOrclrLXoqou8+5p7HM9EkT/JtyEsqB2QYnRv7sT2ArRPLf0kWOp1sA3hYPq3Oh/t0EAjjVIG703II9awr3l3BhxAf5foMLaaasPEZqm5A+0RzGCmuIKJbWi284csIJbzykBQ3aIADsL2CFtBWpovhA1Td7Q6NzqZ/B+38APG3HxU+sYO4B9Akt+AnqGbp/gmwTN6eAWt+gcv6B4rivVin0bWbAAAAAElFTkSuQmCC">GNU&#39;s not UNIX!</A>
<DT><A FEEDURL="http://planet.gnu.org/atom.xml" HREF="http://planet.gnu.org/">GNU Planet</A>
<DT><A HREF="http://www.fsf.org/" ADD_DATE="1245542771" LAST_MODIFIED="1245542780" ICON_URI="http://www.fsf.org/favicon.ico" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAADG0lEQVQoFQEQA+/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQECAAAAAAAAAAAAAAAAAAAA2qOp7tTXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAP///wAAAAAAAOCyt7pUXQcSEgcQDwAAAP///wAAAAAAAAD//x9NSDqNhQEBAQQAAAAAAAAAAAAAAAAQJiQGDQ0aPToZPjoAAQEAAAAAAAAAAAABAQEpZV4AAAAAAAAAAAAA////////////////pSIv05KZ////////////////////////////////AAAAAQAAAP///6krNwAAAAAAAPHc3ggSEQcSEQAAAAAAAAAAABY3NEGelQAAAAAAAAEBAQEAAAD///+YARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGDg1g690CBgYAAAABAQEEAAAAAAAAS7etAAAAAAAAwGVtHklFIlJOAAAAAAAAAAAAAAAA+/X2BwYGAAAAAAAABAAAAAAAAB1IQwAAAAAAAAYNDBAmJB1IQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAgL//v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQEB//7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAECAv/+/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////////////cqK3qzM////////////////////////////////8AAAABAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGuLjDf9F8oBAAAAAElFTkSuQmCC">Free Software Foundation</A>
<DT><A HREF="http://www.wikipedia.org/" ADD_DATE="1245542807" ICON_URI="http://en.wikipedia.org/favicon.ico" ICON="data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAEAgQAhIOEAMjHyABIR0gA6ejpAGlqaQCpqKkAKCgoAPz9/AAZGBkAmJiYANjZ2ABXWFcAent6ALm6uQA8OjwAiIiIiIiIiIiIiI4oiL6IiIiIgzuIV4iIiIhndo53KIiIiB/WvXoYiIiIfEZfWBSIiIEGi/foqoiIgzuL84i9iIjpGIoMiEHoiMkos3FojmiLlUipYliEWIF+iDe0GoRa7D6GPbjcu1yIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA">Wikipedia</A>
</DL><p>
</DL><p>
EOF
Source: firefox-3.5
Section: web
Priority: optional
Maintainer: Trisquel GNU/Linux developers <trisquel-devel@listas.trisquel.info>
Vcs-Bzr: https://code.launchpad.net/~mozillateam/firefox/firefox-3.5.karmic
Build-Depends: cdbs, debhelper (>= 5), sharutils, m4,
autotools-dev, autoconf2.13,
quilt, patchutils (>= 0.2.25),
bzip2, zlib1g-dev, zip,
libx11-dev, libxt-dev,
libgtk2.0-dev (>= 2.10),
liborbit2-dev, libidl-dev (>= 0.8.0),
libxft-dev, libfreetype6-dev,
libpng12-dev, libjpeg62-dev,
libxrender-dev, libxinerama-dev,
libcairo2-dev, libpixman-1-dev,
libgnome2-dev, libgconf2-dev, libgnomevfs2-dev, libgnomeui-dev,
libstartup-notification0-dev,
libasound2-dev,
binutils (>= 2.17-1) [mips mipsel],
libhunspell-dev,
libdbus-glib-1-dev (>= 0.60),
libnspr4-dev, libnss3-dev,
mozilla-devscripts (>= 0.10~),
hardening-wrapper,
lsb-release,
libiw-dev,
libnotify-dev (>= 0.4)
Standards-Version: 3.8.1
Package: firefox
Architecture: any
Depends: fontconfig,
psmisc,
lsb-release,
debianutils (>= 1.16),
${misc:Depends},
${shlibs:Depends},
abrowser-branding
Suggests: firefox-gnome-support (= ${binary:Version}), latex-xft-fonts, libthai0
Provides: www-browser,
firefox-3.6,
firefox-3.5,
firefox-3.1,
firefox-3.0,
firefox-2,
firefox-3.0-venkman,
firefox-3.0-dom-inspector,
firefox-dom-inspector
Conflicts: firefox-3.6 (<< 3.6~hg20100117r33523),
firefox-3.5 (<< 3.6~hg20100117r33523),
firefox-3.1 (<< 3.1~b4~hg20090317),
firefox-3.0 (<< 3.6~hg20100117r33523),
firefox-2 (<< 3.6~),
firefox-3.0-venkman (<< 3.1~),
firefox-3.0-dom-inspector (<< 3.1~),
firefox-dom-inspector (<< 3.1~),
firefox-3.6-gnome-support (<< 3.6~hg20100117r33523)
Replaces: firefox-3.6,
firefox-3.5,
firefox-3.1,
firefox-3.0,
firefox-2,
firefox-3.0-venkman (<< 3.1~),
firefox-3.0-dom-inspector (<< 3.1~),
firefox-dom-inspector (<< 3.1~),
firefox-3.6-gnome-support
XB-Xul-AppId: {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
Description: safe and easy web browser from Mozilla
Firefox delivers safe, easy web browsing. A familiar user interface,
enhanced security features including protection from online identity theft,
and integrated search let you get the most out of the web.
Package: firefox-gnome-support
Architecture: any
Section: gnome
Depends: ${shlibs:Depends}, ${misc:Depends}, firefox (= ${binary:Version})
Provides: gnome-www-browser,
firefox-3.6-gnome-support,
firefox-3.5-gnome-support,
firefox-3.1-gnome-support,
firefox-3.0-gnome-support,
firefox-2-gnome-support
Conflicts: firefox-3.6-gnome-support (<< 3.6~hg20100117r33523+nobinonly),
firefox-3.5-gnome-support (<< 3.6~hg20100117r33523),
firefox-3.1-gnome-support (<< 3.1~b4~hg20090317),
firefox-3.0-gnome-support (<< 3.6~hg20100117r33523),
firefox-2-gnome-support (<< 3.6~)
Replaces: firefox-3.6-gnome-support,
firefox-3.5-gnome-support,
firefox-3.1-gnome-support,
firefox-3.0-gnome-support,
firefox-2-gnome-support
Description: Support for GNOME in Mozilla Firefox
This is an extension to Firefox that allows it to use protocol
handlers from GnomeVFS, such as smb or sftp, and other GNOME
integration features.
Package: firefox-dbg
Architecture: any
Section: debug
Priority: extra
Depends: ${shlibs:Depends}, ${misc:Depends}, firefox (= ${binary:Version})
Conflicts: firefox-3.6-dbg (<< 3.6~hg20100117r33523+nobinonly),
firefox-3.5-dbg (<< 3.6~hg20100117r33523),
firefox-2-dbg (<< 3.6~)
Replaces: firefox-3.6-dbg,
firefox-3.5-dbg,
firefox-2-dbg
Provides: firefox-3.6-dbg,
firefox-3.5-dbg,
firefox-2-dbg
Description: firefox debug symbols
Debug symbols for Firefox 3.6.
Package: firefox-gnome-support-dbg
Architecture: any
Section: debug
Priority: extra
Depends: ${shlibs:Depends}, ${misc:Depends}, firefox-gnome-support (= ${binary:Version}), firefox-dbg (= ${binary:Version})
Conflicts: firefox-3.6-dbg (<< 3.6~hg20100117r33523+nobinonly),
firefox-3.5-dbg (<< 3.6~hg20100117r33523),
firefox-2-dbg (<< 3.6~)
Replaces: firefox-3.6-dbg,
firefox-3.5-dbg,
firefox-2-dbg
Provides: firefox-3.6-dbg,
firefox-3.5-dbg,
firefox-2-dbg
Description: firefox gnome support debug symbols
Debug symbols for the GNOME support files of Firefox 3.6.
Package: firefox-dev
Architecture: any
Section: devel
Depends: firefox (= ${binary:Version}), ${misc:Depends}
Conflicts: firefox-3.6-dev (<< 3.6~hg20100117r33523+nobinonly),
firefox-3.5-dev (<< 3.6~hg20100117r33523),
firefox-3.1-dev (<< 3.1~b4~hg20090317),
firefox-3.0-dev (<< 3.6~hg20100117r33523),
firefox-2-dev (<< 3.6~)
Replaces: firefox-3.6-dev,
firefox-3.5-dev,
firefox-3.1-dev,
firefox-3.0-dev,
firefox-2-dev
Provides: firefox-3.6-dev,
firefox-3.5-dev,
firefox-3.1-dev,
firefox-3.0-dev,
firefox-2-dev
Description: Development files for Mozilla Firefox
This package contains the development headers, idl files and static
libraries needed to develop applications using Mozilla Firefox.
Package: abrowser-branding
Architecture: any
Depends: firefox (= ${binary:Version}), ${misc:Depends}
Replaces: firefox,
firefox-3.5,
abrowser-3.1-branding,
abrowser-3.0-branding (<< 3.1~),
abrowser-3.6-branding,
abrowser-3.5-branding,
firefox-3.5-branding,
firefox-3.6-branding
Conflicts: firefox-branding,
firefox-3.5-branding,
firefox-3.6-branding,
abrowser-3.6-branding (<< 3.6~hg20100117r33523+nobinonly),
abrowser-3.5-branding (<< 3.6~hg20100117r33523),
abrowser-3.1-branding (<< 3.1~b4~hg20090317),
abrowser-3.0-branding (<< 3.1~)
Provides: abrowser-3.6-branding,
abrowser-3.5-branding,
abrowser-3.1-branding,
abrowser-3.0-branding,
firefox-branding
Description: package that ships the abrowser branding
The ABrowser refers to the unbranded build of firefox.
Install the firefox package if you want a branded build.
.
This is a metapackage that will point to the latest abrowser package
in your distribution. Don't remove this if you want to receive automatic
major version upgrades for this package in future.
Package: abrowser
Architecture: all
Depends: firefox, abrowser-branding, ${misc:Depends}
Conflicts: abrowser-3.6 (<< 3.6~hg20100117r33523+nobinonly),
abrowser-3.5 (<< 3.6~hg20100117r33523),
abrowser-3.1 (<< 3.1~b4~hg20090317),
abrowser-3.0 (<< 3.1~)
Replaces: abrowser-3.6,
abrowser-3.5,
abrowser-3.1,
abrowser-3.0 (<< 3.1~)
Provides: abrowser-3.6,
abrowser-3.5,
abrowser-3.1,
abrowser-3.0
XB-Xul-AppId: {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
Description: metapackage for the unbranded abrowser
ABrowser is an unbranded version of the popular Firefox webbrowser;
it is written in the XUL language and designed to be lightweight and
cross-platform.
.
This is a metapackage that will point to the latest abrowser package in
your distribution.
Don't remove this if you want to receive automatic major version upgrades
for this package in future.
Package: firefox-3.5
Architecture: all
Depends: firefox
Description: dummy upgrade package for firefox-3.5 -> firefox
This is a transitional package so firefox-3.5 users get firefox on
upgrades. It can be safely removed.
Package: firefox-3.5-gnome-support
Architecture: all
Depends: firefox-gnome-support
Description: dummy upgrade package for firefox-3.5 -> firefox
This is a transitional package so firefox-3.5 users get firefox on
upgrades. It can be safely removed.
Package: firefox-3.5-dev
Architecture: all
Depends: firefox-dev
Description: dummy upgrade package for firefox-3.5 -> firefox
This is a transitional package so firefox-3.5 users get firefox on
upgrades. It can be safely removed.
Package: firefox-3.5-dbg
Architecture: all
Depends: firefox-dbg
Description: dummy upgrade package for firefox-3.5 -> firefox
This is a transitional package so firefox-3.5 users get firefox on
upgrades. It can be safely removed.
Package: abrowser-3.5-branding
Architecture: all
Depends: abrowser-branding
Description: dummy upgrade package for firefox-3.5 -> firefox
This is a transitional package so firefox-3.5 users get firefox on
upgrades. It can be safely removed.
Package: abrowser-3.5
Architecture: all
Depends: abrowser
Description: dummy upgrade package for firefox-3.5 -> firefox
This is a transitional package so firefox-3.5 users get firefox on
upgrades. It can be safely removed.
Package: firefox-3.0
Architecture: all
Depends: firefox
Description: dummy upgrade package for firefox-3.0 -> firefox
This is a transitional package so firefox-3.0 users get firefox on
upgrades. It can be safely removed.
Package: firefox-dom-inspector
Architecture: all
Depends: firefox
Description: dummy upgrade package for firefox-3.0 -> firefox-3.5
This is a transitional package so firefox-3.0 users get firefox-3.5 on
upgrades. It can be safely removed.
Package: firefox-3.0-dom-inspector
Architecture: all
Depends: firefox
Description: dummy upgrade package for firefox-3.0 -> firefox-3.5
This is a transitional package so firefox-3.0 users get firefox-3.5 on
upgrades. It can be safely removed.
Package: firefox-3.0-venkman
Architecture: all
Depends: firefox
Description: dummy upgrade package for firefox-3.0 -> firefox-3.5
This is a transitional package so firefox-3.0 users get firefox-3.5 on
upgrades. It can be safely removed.
Package: firefox-3.0-gnome-support
Architecture: all
Depends: firefox-gnome-support
Description: dummy upgrade package for firefox-3.0 -> firefox
This is a transitional package so firefox-3.0 users get firefox on
upgrades. It can be safely removed.
Package: firefox-3.0-dev
Architecture: all
Depends: firefox-dev
Description: dummy upgrade package for firefox-3.0 -> firefox
This is a transitional package so firefox-3.0 users get firefox on
upgrades. It can be safely removed.
Package: abrowser-3.0-branding
Architecture: all
Depends: abrowser-branding
Description: dummy upgrade package for firefox-3.0 -> firefox-3.5
This is a transitional package so firefox-3.0 users get firefox-3.5 on
upgrades. It can be safely removed.
Package: abrowser-3.0
Architecture: all
Depends: abrowser
Description: dummy upgrade package for firefox-3.0 -> firefox-3.5
This is a transitional package so firefox-3.0 users get firefox-3.5 on
upgrades. It can be safely removed.
Package: firefox-3.1
Architecture: all
Depends: firefox
Description: dummy upgrade package for firefox-3.1 -> firefox-3.5
This is a transitional package so firefox-3.1 users get firefox-3.5 on
upgrades. It can be safely removed.
Package: firefox-3.1-gnome-support
Architecture: all
Depends: firefox-gnome-support
Description: dummy upgrade package for firefox-3.1 -> firefox-3.5
This is a transitional package so firefox-3.1 users get firefox-3.5 on
upgrades. It can be safely removed.
Package: firefox-3.1-dev
Architecture: all
Depends: firefox-dev
Description: dummy upgrade package for firefox-3.1 -> firefox-3.5
This is a transitional package so firefox-3.1 users get firefox-3.5 on
upgrades. It can be safely removed.
Package: firefox-3.1-dbg
Architecture: all
Depends: firefox-dbg
Description: dummy upgrade package for firefox-3.1 -> firefox-3.5
This is a transitional package so firefox-3.1 users get firefox-3.5 on
upgrades. It can be safely removed.
Package: abrowser-3.1-branding
Architecture: all
Depends: abrowser-branding
Description: dummy upgrade package for firefox-3.1 -> firefox-3.5
This is a transitional package so firefox-3.1 users get firefox-3.5 on
upgrades. It can be safely removed.
Package: abrowser-3.1
Architecture: all
Depends: abrowser
Description: dummy upgrade package for firefox-3.1 -> firefox-3.5
This is a transitional package so firefox-3.1 users get firefox-3.5 on
upgrades. It can be safely removed.
Package: firefox-2
Architecture: all
Depends: firefox
Description: dummy upgrade package for old firefox-2 -> firefox
This is a transitional package so firefox-2 users get firefox on
upgrades. It can be safely removed.
Package: firefox-2-libthai
Architecture: all
Depends: firefox
Description: dummy upgrade package for old firefox-2 -> firefox
This is a transitional package so firefox-2 users get firefox on
upgrades. It can be safely removed.
Package: firefox-2-dom-inspector
Architecture: all
Depends: firefox
Description: dummy upgrade package for old firefox-2 -> firefox
This is a transitional package so firefox-2 users get firefox on
upgrades. It can be safely removed.
Package: firefox-2-gnome-support
Architecture: all
Depends: firefox-gnome-support
Description: dummy upgrade package for old firefox-2 -> firefox
This is a transitional package so firefox-2 users get firefox on
upgrades. It can be safely removed.
Package: firefox-2-dbg
Architecture: all
Depends: firefox-dbg
Description: dummy upgrade package for old firefox-2 -> firefox
This is a transitional package so firefox-2 users get firefox on
upgrades. It can be safely removed.
Package: firefox-2-dev
Architecture: all
Depends: firefox-dev
Description: dummy upgrade package for old firefox-2 -> firefox
This is a transitional package so firefox-2 users get firefox on
upgrades. It can be safely removed.
diff -ru data-orig/gnome-app-install.glade data/gnome-app-install.glade
--- data-orig/gnome-app-install.glade 2009-03-31 12:55:04.000000000 +0000
+++ data/gnome-app-install.glade 2009-06-12 21:35:02.846384370 +0000
@@ -1008,7 +1008,7 @@
<child>
<widget class="GtkHBox" id="hbox24">
- <property name="visible">True</property>
+ <property name="visible">False</property>
<property name="homogeneous">False</property>
<property name="spacing">12</property>
@@ -1294,9 +1294,7 @@
<child>
<widget class="GtkLabel" id="label_progress">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;big&gt;&lt;b&gt;Checking installed and available applications&lt;/b&gt;&lt;/big&gt;
-
-Ubuntu and third party vendors offer you a large variety of applications that you can install on your system.</property>
+ <property name="label" translatable="yes">&lt;big&gt;&lt;b&gt;Loading...&lt;/b&gt;&lt;/big&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
import Default
from AppInstall.Menu import SHOW_ALL, SHOW_ONLY_SUPPORTED, SHOW_ONLY_FREE, SHOW_ONLY_MAIN, SHOW_ONLY_PROPRIETARY, SHOW_ONLY_THIRD_PARTY, SHOW_ONLY_INSTALLED
from AppInstall.Util import *
import datetime
import locale
from gettext import gettext as _
class Distribution(Default.Distribution):
def __init__(self):
Default.Distribution.__init__(self)
# Dictonary of all available filters with corresponding choser name
# and tooltip
# The installed filter will be automatically added in non-installer mode
# The primary and secondary filters are separated
self.filters_primary = {
SHOW_ALL : (_("All available applications"), ""),
SHOW_ONLY_FREE : (_("All Open Source applications"), ""),
}
self.filters_secondary = {
SHOW_ONLY_SUPPORTED : (_("Canonical-maintained applications"), ""),
SHOW_ONLY_THIRD_PARTY :(_("Third party applications"), ""),
}
# List of components whose applications should not be installed
# before asking for a confirmation
self.components_ask = ["universe", "multiverse"]
# Dictonary that provides dialog messages that are shown,
# before a component gets activated or when it requires to be confirmed
self.components_activation = {
# Fallback
None : [_("Enable the installation of software from the %s "
"component of Ubuntu?"),
# %s is the name of the component
_("%s is not officially supported with security "
"updates.")],
"main" : [_("Enable the installaion of officially "
"supported Ubuntu software?"),
# %s is the name of the application
_("%s is part of the Ubuntu main distribution. "
"Canonical Ltd. provides support and security "
"updates, which will be enabled too.")],
"universe" : [_("Enable the installation of community maintained "
"software?"),
# %s is the name of the application
_("%s is maintained by the Ubuntu community. "
"The Ubuntu community provides support and "
"security updates, which will be enabled too.")],
"multiverse" : [_("Enable the installation of unsupported and "
"restricted software?"),
# %s is the name of the application
_("The use, modification and distribution of %s "
"is restricted by copyright or by legal terms in "
"some countries.")]
}
self.dependencies_map = [
# KDE
(("kdelibs5","python-kde4","libqtgui4"),
# %s is the name of an application
None,
"application-kde"),
# GNOME
(("libgnome2-0","python-gnome2","libgtk2.0-0","python-gtk2"),
# %s is the name of an application
None,
"application-gnome"),
# XUBUNTU
# FIXME: get an icon from xubuntu
(("libxfce4util4",),
# %s is the name of an application
None,
None)]
self.comp_depend_map = { "universe":["main"],
"multiverse":["main", "universe"]}
def get_app_emblems(self, app, cache):
# A short statement about the freedom, legal status and level of
# support of the application
emblems = []
icon_name = None
tooltip = None
if app.channel.endswith("-partner") and app.supported:
tooltip = _("%s is provided by a third party vendor "
"from the Canonical partner repository.") % app.name
icon_name = "application-partner"
emblems.append((icon_name, tooltip))
elif app.component == "main" or app.supported:
tooltip = _("Canonical Ltd. provides technical support and "
"security updates for %s") % app.name
icon_name = "application-supported"
emblems.append((icon_name, tooltip))
elif app.thirdparty or app.channel:
tooltip = ("%s is provided by a third party vendor "
"and is therefore not an official part "
"of Ubuntu. The third party vendor is "
"responsible for support and security "
"updates.") % app.name
icon_name = "application-proprietary"
emblems.append((icon_name, tooltip))
if app.component == "universe":
tooltip =_("This application is provided by the "
"Ubuntu community.")
icon_name = "application-community"
emblems.append((icon_name, tooltip))
if app.component == "multiverse" or app.thirdparty:
tooltip = _("The use, modification and distribution "
"of %s is restricted by copyright or by "
"legal terms in some countries.") % app.name
icon_name = "application-proprietary"
emblems.append((icon_name, tooltip))
# Add an emblem corresponding to the dependencies of the app
if cache.has_key(app.pkgname):
for (deps, tooltip, icon_name) in self.dependencies_map:
for dep in deps:
if cache.pkgDependsOn(app.pkgname, dep):
if type(tooltip) == str:
tooltip = tooltip % app.name
emblems.append((icon_name, tooltip))
break
icon_name = None
tooltip = None
return emblems
def get_codec_information_link(self):
url = "https://codecs.canonical.com"
label = _("Buy Licensed Plug-ins...")
return (label, url)
def get_maintenance_status(self, app, cache):
# try to figure out the support dates of the release and make
# sure to look only for stuff in "Ubuntu" and "distro_codename"
# (to exclude stuff in ubuntu-updates for the support time
# calculation because the "Release" file time for that gets
# updated regularly)
releasef = get_release_filename_for_pkg(cache, app.pkgname,
"Ubuntu", self.get_codename())
time_t = get_release_date_from_release_file(releasef)
# check the release date and show support information
# based on this
if time_t:
release_date = datetime.datetime.fromtimestamp(time_t)
#print "release_date: ", release_date
now = datetime.datetime.now()
release_age = (now - release_date).days
#print "release age: ", release_age
# mvo: we do not define the end date very precisely
# currently this is why it will just display a end
# range
(support_end_year, support_end_month) = get_maintenance_end_date(release_date, 18)
support_end_month_str = locale.nl_langinfo(getattr(locale,"MON_%d" % support_end_month))
# check if the support has ended
support_ended = (now.year >= support_end_year and
now.month > support_end_month)
if app.component == "main":
if support_ended:
return _("Canonical does no longer provide "
"updates for %s in Ubuntu %s. "
"Updates may be available in a newer version of "
"Ubuntu.") % (app.name, self.get_distro_release())
else:
return _("Canonical provides critical updates for "
"%(appname)s until %(support_end_month_str)s "
"%(support_end_year)s.") % {'appname' : app.name,
'support_end_month_str' : support_end_month_str,
'support_end_year' : support_end_year}
elif app.component == "restricted":
if support_ended:
return _("Canonical does no longer provide "
"updates for %s in Ubuntu %s. "
"Updates may be available in a newer version of "
"Ubuntu.") % (app.name, self.get_distro_release())
else:
return _("Canonical provides critical updates supplied "
"by the developers of %(appname)s until "
"%(support_end_month_str)s "
"%(support_end_year)s.") % {'appname' : app.name,
'support_end_month_str' : support_end_month_str,
'support_end_year' : support_end_year}
return _("") % app.name
Index: gnome-panel-2.27.92/gnome-panel/panel-menu-items.c
===================================================================
--- gnome-panel-2.27.92.orig/gnome-panel/panel-menu-items.c 2009-09-08 02:08:42.000000000 +0200
+++ gnome-panel-2.27.92/gnome-panel/panel-menu-items.c 2009-09-18 16:01:01.000000000 +0200
@@ -991,6 +991,7 @@
GtkWidget *item;
char *gconf_name;
char *name;
+ char *path;
char *uri;
GFile *file;
@@ -1157,9 +1158,18 @@
if (add_separator)
add_menu_separator (menu);
- panel_menu_items_append_from_desktop (menu, "yelp.desktop", NULL, FALSE);
+ panel_menu_items_append_from_desktop (menu, "yelp.desktop", _("Help and Support"), FALSE);
+
panel_menu_items_append_from_desktop (menu, "gnome-about.desktop", NULL, FALSE);
+ /*if (g_file_test (DATADIR"/omf/about-ubuntu/about-ubuntu-C.omf",
+ G_FILE_TEST_IS_REGULAR))
+ panel_menu_items_append_from_desktop (menu, "ubuntu-about.desktop", NULL, FALSE);
+
+ if (g_file_test (DATADIR"/omf/about-edubuntu/about-edubuntu-C.omf",
+ G_FILE_TEST_IS_REGULAR)) */
+ panel_menu_items_append_from_desktop (menu, "trisquel-about.desktop", NULL, FALSE);
+
if (parent->priv->append_lock_logout)
panel_menu_items_append_lock_logout (menu);
}
Source: linux-meta
Section: devel
Priority: optional
Maintainer: Trisquel GNU/Linux developers <trisquel-devel@listas.trisquel.info>
Standards-Version: 3.6.1
Build-Depends: dpkg (>= 1.13.19), debhelper (>= 3), gawk
Package: linux
Architecture: i386 amd64
Section: metapackages
Priority: optional
Depends: linux-image (= ${binary:Version})
Description: Generic complete Linux-libre kernel.
This package will always depend on the latest generic complete Linux-libre kernel
available.
Package: linux-source
Architecture: all
Section: devel
Priority: optional
Depends: linux-source-${kernel-version}
Description: Linux-libre kernel source with Ubuntu patches
This package will always depend on the latest Linux-libre kernel source code
available. The Ubuntu patches have been applied.
Package: linux-image
Architecture: i386 amd64
Section: metapackages
Priority: optional
Depends: linux-image-${generic-depends} (= ${binary:Version})
Description: Generic Linux-libre kernel image.
This package will always depend on the latest generic Linux-libre kernel image
available.
Package: linux-crashdump
Architecture: i386 amd64
Section: devel
Depends: kexec-tools, makedumpfile, grub-pc (>= 1.96+20090611-1ubuntu2) | grub (>= 0.97-29ubuntu24)
Recommends: apport
Suggests: crash
Description: Linux-libre kernel crashdump setup for the latest generic kernel
This package installs all the needed infrstracture to get crashdumps from
your running system. If you are experiencing kernel crashes that cannot
be debugged normally (because the problem is infrequent or panic's the
system in such a way as to make information gathering impossible), then
you can install this package to automatically enable capture of the
vmcore on crashes.
Package: linux-headers-386
Architecture: i386
Section: devel
Priority: optional
Depends: linux-headers-${kernel-abi-version}-386
Description: Generic Linux-libre kernel headers
This package will always depend on the latest 386 kernel headers
available.
Package: linux-image-386
Architecture: i386
Section: metapackages
Priority: optional
Depends: linux-image-${kernel-abi-version}-386
Description: Generic Linux-libre kernel image
This package will always depend on the latest 386 kernel image
available.
Package: linux-386
Architecture: i386
Section: metapackages
Priority: optional
Depends: linux-image-386 (= ${binary:Version})
Description: Complete Generic Linux-libre kernel
This package will always depend on the latest complete 386 Linux-libre kernel
available.
Package: linux-headers-generic
Architecture: i386 amd64
Section: devel
Priority: optional
Depends: linux-headers-${kernel-abi-version}-generic
Description: Generic Linux-libre kernel headers
This package will always depend on the latest generic kernel headers
available.
Package: linux-image-generic
Architecture: i386 amd64
Section: metapackages
Priority: optional
Depends: linux-image-${kernel-abi-version}-generic
Description: Generic Linux-libre kernel image
This package will always depend on the latest generic kernel image
available.
Package: linux-generic
Architecture: i386 amd64
Section: metapackages
Priority: optional
Depends: linux-image-generic (= ${binary:Version})
Description: Complete Generic Linux-libre kernel
This package will always depend on the latest complete generic Linux-libre kernel
available.
Package: linux-headers-generic-pae
Architecture: i386
Section: devel
Priority: optional
Depends: linux-headers-${kernel-abi-version}-generic-pae
Description: Generic Linux-libre kernel headers
This package will always depend on the latest generic kernel headers
available.
Package: linux-image-generic-pae
Architecture: i386
Section: metapackages
Priority: optional
Depends: linux-image-${kernel-abi-version}-generic-pae
Description: Generic Linux-libre kernel image
This package will always depend on the latest generic kernel image
available.
Package: linux-generic-pae
Architecture: i386
Section: metapackages
Priority: optional
Depends: linux-image-generic-pae (= ${binary:Version})
Description: Complete Generic Linux-libre kernel
This package will always depend on the latest complete generic Linux-libre kernel
available.
Package: linux-headers-server
Architecture: amd64 i386
Section: devel
Priority: optional
Depends: linux-headers-${kernel-abi-version}-server [amd64], linux-headers-generic-pae [i386]
Description: Linux-libre kernel headers on Server Equipment.
This package will always depend on the latest kernel headers available
for Server Equipment.
Package: linux-image-server
Architecture: amd64 i386
Section: metapackages
Priority: optional
Depends: linux-image-${kernel-abi-version}-server [amd64], linux-image-generic-pae [i386]
Description: Linux-libre kernel image on Server Equipment.
This package will always depend on the latest kernel image available
for Server Equipment.
Package: linux-server
Architecture: amd64 i386
Section: metapackages
Priority: optional
Depends: linux-image-server (= ${binary:Version}) [amd64], linux-generic-pae [i386]
Description: Complete Linux-libre kernel on Server Equipment.
This package will always depend on the latest complete Linux-libre kernel available
for Server Equipment.
Package: linux-headers-virtual
Architecture: i386 amd64
Section: devel
Priority: optional
Depends: linux-headers-${kernel-abi-version}-server | linux-headers-${kernel-abi-version}-generic-pae
Description: Linux-libre kernel headers for virtual machines
This package will always depend on the latest kernel headers available
for virtual machines (which are the same headers as for the server flavour).
Package: linux-image-virtual
Architecture: i386 amd64
Section: metapackages
Priority: optional
Depends: linux-image-${kernel-abi-version}-virtual
Description: Linux-libre kernel image for virtual machines
This package will always depend on the latest kernel image available
for virtual machines.
Package: linux-virtual
Architecture: i386 amd64
Section: metapackages
Priority: optional
Depends: linux-image-virtual (= ${binary:Version})
Description: Complete Linux-libre kernel for virtual machines
This package will always depend on the latest complete Linux-libre kernel available
for virtual machines.
#!/bin/sh
# Copyright (C) 2008, 2009 Alexandre Oliva <lxoliva@fsfla.org>
# Copyright (C) 2008 Jeff Moe
# Copyright (C) 2009 Rubén Rodríguez <ruben@gnu.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# 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 have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# deblob - remove non-free blobs from the vanilla linux kernel
# http://www.fsfla.org/svn/fsfla/software/linux-libre
# This script, suited for the kernel version named below, in kver,
# attempts to remove only non-Free Software bits, without removing
# Free Software that happens to be in the same file.
# Drivers that currently require non-Free firmware are retained, but
# firmware included in GPLed sources is replaced with /*(DEBLOBBED)*/
# if the deblob-check script, that knows how to do this, is present.
# -lxoliva
# See also:
# http://wiki.debian.org/KernelFirmwareLicensing
# svn://svn.debian.org/kernel/dists/trunk/linux-2.6/debian/patches/debian/dfsg/files-1
# http://svn.gnewsense.svnhopper.net/gnewsense/builder/trunk/firmware/firmware-removed
# http://svn.gnewsense.svnhopper.net/gnewsense/builder/trunk/gen-kernel
# Thanks to Brian Brazil @ gnewsense
# For each kver release, start extra with an empty string, then count
# from 1 if changes are needed that require rebuilding the tarball.
kver=2.6.31 extra=2
case $1 in
--force)
echo "WARNING: Using the force, ignored errors will be" >&2
die () {
echo ERROR: "$@" >&2
errors=:
}
forced=: errors=false
shift
;;
*)
die () {
echo ERROR: "$@" >&2
echo Use --force to ignore
exit 1
}
forced=false errors=false
;;
esac
check=`echo "$0" | sed 's,[^/]*$,,;s,^$,.,;s,/*$,,'`/deblob-check
if [ ! -f $check ] ; then
if $forced; then
die deblob-check script missing, will remove entire files
else
die deblob-check script missing
fi
have_check=false
else
have_check=:
fi
filelist="/tmp/filelist"
filetest () {
export FILES=$1
if ! [ -f $1 ]
then
if [ $( basename $1) = Makefile ] || [ $( basename $1) = Kconfig ]
then
die File not found: $1
return 1
fi
file=$( basename $1)
[ -f $filelist ] || find > $filelist
if FILES=$(egrep /$file$ $filelist)
then
die File not found: $1
echo WARNING: Alternative\(s\) to $1 found: $FILES
echo WARNING: Deblobbing alternative\(s\)
return 0
else
die File not found: $1, no alternatives found
fi
return 1
fi
}
announce () {
echo
echo "$@"
}
clean_file () {
#$1 = filename
filetest $1 || return
rm $FILES
echo WARNING: Removing $FILES
}
check_changed () {
#$1 = filename
if cmp $1.deblob $1 > /dev/null; then
rm $1.deblob
die $1 did not change, something is wrong && return 1
fi
mv $1.deblob $1
}
clean_blob () {
#$1 = filename
filetest $1 || return
for FILE in $FILES
do
if $have_check; then
name=$FILE
set fnord "$@" -d
shift 2
$check "$@" -i linux-$kver $name > $name.deblob
check_changed $name && echo $name: removed blobs
else
clean_file $FILE
fi
done
}
dummy_blob () {
#$1 = filename
if test -f $1; then
die $1 exists, something is wrong && return
elif test ! -f firmware/Makefile; then
die firmware/Makefile does not exist, something is wrong && return
fi
clean_sed "s,`echo $1 | sed s,^firmware/,,`,\$(DEBLOBBED),g" \
firmware/Makefile "dropped $1"
}
clean_fw () {
#$1 = firmware text input, $2 = firmware output
filetest $1 || return
for FILE in $FILES
do
if test -f $2; then
die $2 exists, something is wrong && return
fi
clean_blob $FILE -s 4
dummy_blob $2
done
}
drop_fw_file () {
#$1 = firmware text input, $2 = firmware output
filetest $1 || return
for FILE in $FILES
do
if test -f $2; then
die $2 exists, something is wrong && return
fi
clean_file $FILE
dummy_blob $2
done
}
clean_kconfig () {
#$1 = filename $2 = things to remove
case $1 in
-f)
shift
;;
*)
if $have_check; then
return
fi
;;
esac
filetest $1 || return
for FILE in $FILES
do
sed "/^config \\($2\\)\$/{p;i\
depends on NONFREE
d;}" $FILE > $FILE.deblob
check_changed $FILE && echo $FILE: marked config $2 as depending on NONFREE
done
}
clean_mk () {
#$1 = config $2 = Makefile name
# We don't clean up Makefiles any more --lxoliva
# sed -i "/\\($1\\)/d" $2
# echo $2: removed $1 support
# check_changed $2
filetest $2 || return
if sed -n "/\\($1\\)/p" $2 | grep . > /dev/null; then
:
else
die $2 does not contain matches for $1
fi
}
clean_sed () {
#$1 = sed-script $2 = file $3 = comment
filetest $2 || return
for FILE in $FILES
do
sed -e "$1" "$FILE" > "$FILE".deblob || {
die $2: failed: ${3-applied sed script $1} && return 1; }
check_changed $FILE && echo $FILE: ${3-applied sed script $1}
done
}
reject_firmware () {
#$1 = file
filetest $1 || return
for FILE in $FILES
do
clean_sed '
s,request\(_ihex\)\?_firmware\(_nowait\)\?,reject_firmware\2,g
' "$FILE" 'disabled non-Free firmware-loading machinery'
done
}
maybe_reject_firmware () {
#$1 = file
filetest $1 || return
for FILE in $FILES
do
clean_sed '
s,request_firmware\(_nowait\)\?,maybe_reject_firmware\1,g
' "$FILE" 'retain Free firmware-loading machinery, disabling non-Free one'
done
}
undefine_macro () {
#$1 - macro name
#$2 - substitution
#$3 - message
#rest - file names
macro=$1 repl=$2 msg=$3; shift 3
for f in "$@"; do
clean_sed "
s,^#define $macro .*\$,/*(DEBLOBBED)*/,;
s,$macro,$repl,g;
" "$f" "$msg"
done
}
undefault_firmware () {
#$1 - pattern such that $1_DEFAULT_FIRMWARE is #defined to non-Free firmware
#$@ other than $1 - file names
macro="$1"_DEFAULT_FIRMWARE; shift
undefine_macro "$macro" "\"/*(DEBLOBBED)*/\"" \
"disabled non-Free firmware" "$@"
}
# First, check that files that contain firmwares and their
# corresponding sources are present.
for f in \
drivers/char/ser_a2232fw.h \
drivers/char/ser_a2232fw.ax \
drivers/net/ixp2000/ixp2400_rx.ucode \
drivers/net/ixp2000/ixp2400_rx.uc \
drivers/net/ixp2000/ixp2400_tx.ucode \
drivers/net/ixp2000/ixp2400_rx.uc \
drivers/net/wan/wanxlfw.inc_shipped \
drivers/net/wan/wanxlfw.S \
drivers/net/wireless/atmel.c \
drivers/net/wireless/atmel.c \
drivers/scsi/53c700_d.h_shipped \
drivers/scsi/53c700.scr \
drivers/scsi/aic7xxx/aic79xx_seq.h_shipped \
drivers/scsi/aic7xxx/aic79xx.seq \
drivers/scsi/aic7xxx/aic7xxx_seq.h_shipped \
drivers/scsi/aic7xxx/aic7xxx.seq \
drivers/scsi/aic7xxx_old/aic7xxx_seq.c \
drivers/scsi/aic7xxx_old/aic7xxx.seq \
drivers/scsi/53c7xx_d.h_shipped \
drivers/scsi/53c7xx.scr \
drivers/scsi/sym53c8xx_2/sym_fw1.h \
drivers/scsi/sym53c8xx_2/sym_fw1.h \
drivers/scsi/sym53c8xx_2/sym_fw2.h \
drivers/scsi/sym53c8xx_2/sym_fw2.h \
firmware/dsp56k/bootstrap.bin.ihex \
firmware/dsp56k/bootstrap.asm \
firmware/keyspan_pda/keyspan_pda.HEX \
firmware/keyspan_pda/keyspan_pda.S \
firmware/keyspan_pda/xircom_pgs.HEX \
firmware/keyspan_pda/xircom_pgs.S \
sound/pci/cs46xx/imgs/cwcdma.h \
sound/pci/cs46xx/imgs/cwcdma.asp \
; do
if test ! $f; then
die $f is not present, something is amiss && return
fi
done
# Identify the tarball.
grep -q 'EXTRAVERSION.*-libre' Makefile ||
clean_sed "s,^EXTRAVERSION.*,&-libre$extra,
" Makefile 'added -libre to EXTRAVERSION'
# Add reject_firmware and maybe_reject_firmware
grep -q _LINUX_LIBRE_FIRMWARE_H include/linux/firmware.h ||
clean_sed '$i\
#ifndef _LINUX_LIBRE_FIRMWARE_H\
#define _LINUX_LIBRE_FIRMWARE_H\
\
#include <linux/device.h>\
\
#define NONFREE_FIRMWARE "/*(DEBLOBBED)*/"\
\
static inline int\
report_missing_free_firmware(const char *name, const char *what)\
{\
printk(KERN_ERR "%s: Missing Free %s\\n", name,\
what ? what : "firmware");\
return -EINVAL;\
}\
static inline int\
reject_firmware(const struct firmware **fw,\
const char *name, struct device *device)\
{\
const struct firmware *xfw = NULL;\
int retval;\
report_missing_free_firmware(dev_name(device), NULL);\
retval = request_firmware(&xfw, NONFREE_FIRMWARE, device);\
if (!retval)\
release_firmware(xfw);\
return -EINVAL;\
}\
static inline int\
maybe_reject_firmware(const struct firmware **fw,\
const char *name, struct device *device)\
{\
if (strstr (name, NONFREE_FIRMWARE))\
return reject_firmware(fw, name, device);\
else\
return request_firmware(fw, name, device);\
}\
static inline void\
discard_rejected_firmware(const struct firmware *fw, void *context)\
{\
release_firmware(fw);\
}\
static inline int\
reject_firmware_nowait(struct module *module, int uevent,\
const char *name, struct device *device,\
void *context,\
void (*cont)(const struct firmware *fw,\
void *context))\
{\
int retval;\
report_missing_free_firmware(dev_name(device), NULL);\
retval = request_firmware_nowait(module, uevent, NONFREE_FIRMWARE,\
device, NULL,\
discard_rejected_firmware);\
if (retval)\
return retval;\
return -EINVAL;\
}\
static inline int\
maybe_reject_firmware_nowait(struct module *module, int uevent,\
const char *name, struct device *device,\
void *context,\
void (*cont)(const struct firmware *fw,\
void *context))\
{\
if (strstr (name, NONFREE_FIRMWARE))\
return reject_firmware_nowait(module, uevent, name,\
device, context, cont);\
else\
return request_firmware_nowait(module, uevent, name,\
device, context, cont);\
}\
\
#endif /* _LINUX_LIBRE_FIRMWARE_H */\
' include/linux/firmware.h 'added non-Free firmware notification support'
########
# Arch #
########
# x86
announce MICROCODE_AMD - "AMD microcode patch loading support"
reject_firmware arch/x86/kernel/microcode_amd.c
clean_blob arch/x86/kernel/microcode_amd.c
clean_kconfig arch/x86/Kconfig 'MICROCODE_AMD'
clean_mk CONFIG_MICROCODE_AMD arch/x86/kernel/Makefile
announce MICROCODE_INTEL - "Intel microcode patch loading support"
reject_firmware arch/x86/kernel/microcode_intel.c
clean_blob arch/x86/kernel/microcode_intel.c
clean_kconfig arch/x86/Kconfig 'MICROCODE_INTEL'
clean_mk CONFIG_MICROCODE_INTEL arch/x86/kernel/Makefile
# arm
announce IXP4XX_NPE - "IXP4xx Network Processor Engine support"
reject_firmware arch/arm/mach-ixp4xx/ixp4xx_npe.c
clean_blob Documentation/arm/IXP4xx
announce ARCH_NETX - "Hilscher NetX based"
clean_sed '
s,\([" ]\)request_firmware(,\1reject_firmware(,
' arch/arm/mach-netx/xc.c 'disabled non-Free firmware-loading machinery'
clean_blob arch/arm/mach-netx/xc.c
clean_kconfig arch/arm/Kconfig 'ARCH_NETX'
clean_mk CONFIG_ARCH_NETX arch/arm/Makefile
###########
# Chipset #
###########
announce STLC45XX - "stlc4550/4560 chipset support"
reject_firmware drivers/staging/stlc45xx/stlc45xx.c
clean_blob drivers/staging/stlc45xx/stlc45xx.c
clean_kconfig drivers/staging/stlc45xx/Kconfig 'STLC45XX'
clean_mk CONFIG_STLC45XX drivers/staging/stlc45xx/Makefile
#######
# ATM #
#######
announce ATM_AMBASSADOR - "Madge Ambassador, Collage PCI 155 Server"
reject_firmware drivers/atm/ambassador.c
clean_blob drivers/atm/ambassador.c
clean_fw firmware/atmsar11.HEX firmware/atmsar11.fw
clean_kconfig drivers/atm/Kconfig 'ATM_AMBASSADOR'
clean_mk CONFIG_ATM_AMBASSADOR drivers/atm/Makefile
announce ATM_FORE200E - "FORE Systems 200E-series"
reject_firmware drivers/atm/fore200e.c
clean_blob drivers/atm/fore200e.c
clean_blob Documentation/networking/fore200e.txt
clean_blob drivers/atm/.gitignore
clean_blob Documentation/dontdiff
clean_kconfig drivers/atm/Kconfig 'ATM_FORE200E'
clean_mk CONFIG_ATM_FORE200E drivers/atm/Makefile
announce ATM_SOLOS - "Solos ADSL2+ PCI Multiport card driver"
reject_firmware drivers/atm/solos-pci.c
clean_blob drivers/atm/solos-pci.c
clean_kconfig drivers/atm/Kconfig 'ATM_SOLOS'
clean_mk CONFIG_ATM_SOLOS drivers/atm/Makefile
########
# char #
########
announce COMPUTONE - "Computone IntelliPort Plus serial"
drop_fw_file firmware/intelliport2.bin.ihex firmware/intelliport2.bin
reject_firmware drivers/char/ip2/ip2main.c
clean_blob drivers/char/ip2/ip2main.c
clean_kconfig drivers/char/Kconfig 'COMPUTONE'
clean_mk CONFIG_COMPUTONE drivers/char/Makefile
announce CYCLADES - "Cyclades async mux support"
reject_firmware drivers/char/cyclades.c
clean_blob drivers/char/cyclades.c
clean_kconfig drivers/char/Kconfig 'CYCLADES'
clean_mk CONFIG_CYCLADES drivers/char/Makefile
announce ISI - "Multi-Tech multiport card support"
reject_firmware drivers/char/isicom.c
clean_blob drivers/char/isicom.c
clean_kconfig drivers/char/Kconfig 'ISI'
clean_mk CONFIG_ISI drivers/char/Makefile
announce MOXA_INTELLIO - "Moxa Intellio support"
reject_firmware drivers/char/moxa.c
clean_blob drivers/char/moxa.c
clean_kconfig drivers/char/Kconfig 'MOXA_INTELLIO'
clean_mk CONFIG_MOXA_INTELLIO drivers/char/Makefile
# gpu drm
announce DRM_MGA - "Matrox g200/g400"
clean_blob drivers/gpu/drm/mga/mga_ucode.h
clean_blob drivers/gpu/drm/mga/mga_warp.c
clean_kconfig -f drivers/gpu/drm/Kconfig 'DRM_MGA'
clean_mk CONFIG_DRM_MGA drivers/gpu/drm/Makefile
announce DRM_R128 - "ATI Rage 128"
clean_sed '
/^static void r128_cce_load_microcode(drm_r128_private_t \* dev_priv)/i\
#define r128_cce_load_microcode(dev_priv) \\\
do { \\\
DRM_ERROR("Missing Free microcode!\\n"); \\\
dev->dev_private = (void *)dev_priv; \\\
r128_do_cleanup_cce(dev); \\\
return -EINVAL; \\\
} while (0)
' drivers/gpu/drm/r128/r128_cce.c 'report missing Free microcode'
clean_blob drivers/gpu/drm/r128/r128_cce.c
clean_kconfig -f drivers/gpu/drm/Kconfig 'DRM_R128'
clean_mk CONFIG_DRM_R128 drivers/gpu/drm/Makefile
announce DRM_RADEON - "ATI Radeon"
clean_sed '
/^static void radeon_cp_load_microcode(drm_radeon_private_t \* dev_priv)/i\
#define radeon_cp_load_microcode(dev_priv) \\\
do { \\\
DRM_ERROR("Missing Free microcode!\\n"); \\\
radeon_do_cleanup_cp(dev); \\\
return -EINVAL; \\\
} while (0)
' drivers/gpu/drm/radeon/radeon_cp.c 'report missing Free microcode'
clean_blob drivers/gpu/drm/radeon/radeon_cp.c
clean_blob drivers/gpu/drm/radeon/radeon_microcode.h
clean_sed '
/^static void r100_cp_load_microcode(struct radeon_device \*rdev)/i\
#define r100_cp_load_microcode(rdev) \\\
do { \\\
DRM_ERROR("Missing Free microcode!\\n"); \\\
return -EINVAL; \\\
} while (0)
' drivers/gpu/drm/radeon/r100.c 'report missing Free microcode'
clean_blob drivers/gpu/drm/radeon/r100.c
clean_sed '
/^static void r600_cp_load_microcode(drm_radeon_private_t \*dev_priv)/i\
#define r600_cp_load_microcode(dev_priv) \\\
do { \\\
DRM_ERROR("Missing Free microcode!\\n"); \\\
r600_do_cleanup_cp(dev); \\\
return -EINVAL; \\\
} while (0)
' drivers/gpu/drm/radeon/r600_cp.c 'report missing Free r600 microcode'
clean_sed '
/^static void r700_cp_load_microcode(drm_radeon_private_t \*dev_priv)/i\
#define r700_cp_load_microcode(dev_priv) \\\
do { \\\
DRM_ERROR("Missing Free microcode!\\n"); \\\
r600_do_cleanup_cp(dev); \\\
return -EINVAL; \\\
} while (0)
' drivers/gpu/drm/radeon/r600_cp.c 'report missing Free r700 microcode'
clean_blob drivers/gpu/drm/radeon/r600_cp.c
clean_blob drivers/gpu/drm/radeon/r600_microcode.h
clean_kconfig -f drivers/gpu/drm/Kconfig 'DRM_RADEON'
clean_mk CONFIG_DRM_RADEON drivers/gpu/drm/Makefile
#########
# Media #
#########
# media/tuner
announce MEDIA_TUNER_XC2028 - "XCeive xc2028/xc3028 tuners"
undefault_firmware 'XC\(2028\|3028L\)' \
drivers/media/common/tuners/tuner-xc2028.h \
drivers/media/video/saa7134/saa7134-cards.c \
drivers/media/video/ivtv/ivtv-driver.c \
drivers/media/video/cx18/cx18-driver.c \
drivers/media/video/cx18/cx18-dvb.c \
drivers/media/video/cx23885/cx23885-dvb.c \
drivers/media/video/cx88/cx88-dvb.c \
drivers/media/video/cx88/cx88-cards.c \
drivers/media/video/em28xx/em28xx-cards.c \
drivers/media/dvb/dvb-usb/dib0700_devices.c \
drivers/media/dvb/dvb-usb/cxusb.c
reject_firmware drivers/media/common/tuners/tuner-xc2028.c
clean_kconfig drivers/media/common/tuners/Kconfig 'MEDIA_TUNER_XC2028'
clean_mk CONFIG_MEDIA_TUNER_XC2028 drivers/media/common/tuners/Makefile
announce MEDIA_TUNER_XC5000 - "Xceive XC5000 silicon tuner"
undefine_macro 'XC5000_DEFAULT_FIRMWARE_SIZE' 0 \
'removed non-Free firmware size' drivers/media/common/tuners/xc5000.c
undefault_firmware 'XC5000' \
drivers/media/common/tuners/xc5000.c \
drivers/media/video/cx231xx/cx231xx-cards.c
reject_firmware drivers/media/common/tuners/xc5000.c
clean_kconfig drivers/media/common/tuners/Kconfig 'MEDIA_TUNER_XC5000'
clean_mk CONFIG_MEDIA_TUNER_XC5000 drivers/media/common/tuners/Makefile
announce DVB_USB - "Support for various USB DVB devices"
reject_firmware drivers/media/dvb/dvb-usb/dvb-usb-firmware.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB'
clean_mk CONFIG_DVB_USB drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_AF9005 - "Afatech AF9005 DVB-T USB1.1"
clean_file drivers/media/dvb/dvb-usb/af9005-script.h
clean_sed '
s,^ deb_info("load init script\\n");$, {\n err("Missing Free init script\\n");\n return scriptlen = ret = -EINVAL;\n ,;
' drivers/media/dvb/dvb-usb/af9005-fe.c 'report missing Free init script'
clean_blob drivers/media/dvb/dvb-usb/af9005-fe.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_AF9005'
clean_mk CONFIG_DVB_USB_AF9005 drivers/media/dvb/dvb-usb/Makefile
announce DVB_B2C2_FLEXCOP - "Technisat/B2C2 FlexCopII(b) and FlexCopIII adapters"
reject_firmware drivers/media/dvb/b2c2/flexcop-fe-tuner.c
announce DVB_BT8XX - "BT8xx based PCI cards"
reject_firmware drivers/media/dvb/bt8xx/dvb-bt8xx.c
announce DVB_USB_A800 - "AVerMedia AverTV DVB-T USB 2.0 (A800)"
clean_blob drivers/media/dvb/dvb-usb/a800.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_A800'
clean_mk CONFIG_DVB_USB_A800 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_AF9005 - "Afatech AF9005 DVB-T USB1.1 support"
clean_blob drivers/media/dvb/dvb-usb/af9005.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_AF9005'
clean_mk CONFIG_DVB_USB_AF9005 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_AF9015 - "Afatech AF9015 DVB-T USB2.0 support"
clean_blob drivers/media/dvb/dvb-usb/af9015.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_AF9015'
clean_mk CONFIG_DVB_USB_AF9015 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_CXUSB - "Conexant USB2.0 hybrid reference design support"
clean_blob drivers/media/dvb/dvb-usb/cxusb.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_CXUSB'
clean_mk CONFIG_DVB_USB_CXUSB drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_DIB0700 - "DiBcom DiB0700 USB DVB devices"
clean_blob drivers/media/dvb/dvb-usb/dib0700_devices.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DIB0700'
clean_mk CONFIG_DVB_USB_DIB0700 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_DIBUSB_MB - "DiBcom USB DVB-T devices (based on the DiB3000M-B)"
clean_blob drivers/media/dvb/dvb-usb/dibusb-mb.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DIBUSB_MB'
clean_mk CONFIG_DVB_USB_DIBUSB_MB drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_DIBUSB_MC - "DiBcom USB DVB-T devices (based on the DiB3000M-C/P)"
clean_blob drivers/media/dvb/dvb-usb/dibusb-mc.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DIBUSB_MC'
clean_mk CONFIG_DVB_USB_DIBUSB_MC drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_DIGITV - "Nebula Electronics uDigiTV DVB-T USB2.0 support"
clean_blob drivers/media/dvb/dvb-usb/digitv.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DIGITV'
clean_mk CONFIG_DVB_USB_DIGITV drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_DTT200U - "WideView WT-200U and WT-220U (pen) DVB-T USB2.0 support (Yakumo/Hama/Typhoon/Yuan)"
clean_blob drivers/media/dvb/dvb-usb/dtt200u.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DTT200U'
clean_mk CONFIG_DVB_USB_DTT200U drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_DW2102 - "DvbWorld DVB-S/S2 USB2.0 support"
reject_firmware drivers/media/dvb/dvb-usb/dw2102.c
clean_blob drivers/media/dvb/dvb-usb/dw2102.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DW2102'
clean_mk CONFIG_DVB_USB_DW2102 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_GP8PSK - "GENPIX 8PSK->USB module support"
reject_firmware drivers/media/dvb/dvb-usb/gp8psk.c
clean_blob drivers/media/dvb/dvb-usb/gp8psk.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_GP8PSK'
clean_mk CONFIG_DVB_USB_GP8PSK drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_M920X - "Uli m920x DVB-T USB2.0 support"
reject_firmware drivers/media/dvb/dvb-usb/m920x.c
clean_blob drivers/media/dvb/dvb-usb/m920x.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_M920X'
clean_mk CONFIG_DVB_USB_M920X drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_NOVA_T_USB2 - "Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 support"
clean_blob drivers/media/dvb/dvb-usb/nova-t-usb2.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_NOVA_T_USB2'
clean_mk CONFIG_DVB_USB_NOVA_T_USB2 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_OPERA1 - "Opera1 DVB-S USB2.0 receiver"
reject_firmware drivers/media/dvb/dvb-usb/opera1.c
clean_blob drivers/media/dvb/dvb-usb/opera1.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_OPERA1'
clean_mk CONFIG_DVB_USB_OPERA1 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_TTUSB2 - "Pinnacle 400e DVB-S USB2.0 support"
clean_blob drivers/media/dvb/dvb-usb/ttusb2.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_TTUSB2'
clean_mk CONFIG_DVB_USB_TTUSB2 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_UMT_010 - "HanfTek UMT-010 DVB-T USB2.0 support"
clean_blob drivers/media/dvb/dvb-usb/umt-010.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_UMT_010'
clean_mk CONFIG_DVB_USB_UMT_010 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_VP702X - "TwinhanDTV StarBox and clones DVB-S USB2.0 support"
clean_blob drivers/media/dvb/dvb-usb/vp702x.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_VP702X'
clean_mk CONFIG_DVB_USB_VP702X drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_VP7045 - "TwinhanDTV Alpha/MagicBoxII, DNTV tinyUSB2, Beetle USB2.0 support"
clean_blob drivers/media/dvb/dvb-usb/vp7045.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_VP7045'
clean_mk CONFIG_DVB_USB_VP7045 drivers/media/dvb/dvb-usb/Makefile
# dvb/frontends
announce DVB_AF9013 - "Afatech AF9013 demodulator"
undefault_firmware 'AF9013' \
drivers/media/dvb/frontends/af9013.c \
drivers/media/dvb/frontends/af9013_priv.h
reject_firmware drivers/media/dvb/frontends/af9013.c
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_AF9013'
clean_mk CONFIG_DVB_AF9013 drivers/media/dvb/frontends/Makefile
announce DVB_BCM3510 - "Broadcom BCM3510"
undefault_firmware 'BCM3510' drivers/media/dvb/frontends/bcm3510.c
reject_firmware drivers/media/dvb/frontends/bcm3510.c
reject_firmware drivers/media/dvb/frontends/bcm3510.h
clean_sed '
/You.ll need a firmware/,/dvb-fe-bcm/d;
' drivers/media/dvb/frontends/bcm3510.c \
"removed non-Free firmware notes"
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_BCM3510'
clean_mk CONFIG_DVB_BCM3510 drivers/media/dvb/frontends/Makefile
announce DVB_NXT200X - "NxtWave Communications NXT2002/NXT2004 based"
undefault_firmware 'NXT200[24]' drivers/media/dvb/frontends/nxt200x.c
reject_firmware drivers/media/dvb/frontends/nxt200x.c
clean_blob drivers/media/dvb/frontends/nxt200x.c
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_NXT200X'
clean_mk CONFIG_DVB_NXT200X drivers/media/dvb/frontends/Makefile
announce DVB_OR51132 - "Oren OR51132 based"
reject_firmware drivers/media/dvb/frontends/or51132.c
clean_blob drivers/media/dvb/frontends/or51132.c
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_OR51132'
clean_mk CONFIG_DVB_OR51132 drivers/media/dvb/frontends/Makefile
announce DVB_OR51211 - "Oren OR51211 based"
undefault_firmware 'OR51211' drivers/media/dvb/frontends/or51211.c
reject_firmware drivers/media/dvb/frontends/or51211.c
reject_firmware drivers/media/dvb/frontends/or51211.h
clean_blob drivers/media/dvb/frontends/or51211.c
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_OR51211'
clean_mk CONFIG_DVB_OR51211 drivers/media/dvb/frontends/Makefile
announce DVB_SP8870 - "Spase sp8870"
undefault_firmware 'SP8870' drivers/media/dvb/frontends/sp8870.c
reject_firmware drivers/media/dvb/frontends/sp8870.c
reject_firmware drivers/media/dvb/frontends/sp8870.h
clean_blob drivers/media/dvb/frontends/sp8870.c
clean_kconfig drivers/media/dvb/frontends 'DVB_SP8870'
clean_mk CONFIG_DVB_SP8870 drivers/media/dvb/frontends/Makefile
announce DVB_CX24116 - "Conexant CX24116 based"
undefault_firmware CX24116 drivers/media/dvb/frontends/cx24116.c
reject_firmware drivers/media/dvb/frontends/cx24116.c
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_CX24116'
clean_mk CONFIG_DVB_CX24116 drivers/media/dvb/frontends/Makefile
announce DVB_SP887X - "Spase sp887x based"
undefault_firmware 'SP887X' drivers/media/dvb/frontends/sp887x.c
reject_firmware drivers/media/dvb/frontends/sp887x.c
reject_firmware drivers/media/dvb/frontends/sp887x.h
clean_blob drivers/media/dvb/frontends/sp887x.c
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_SP887X'
clean_mk CONFIG_DVB_SP887X drivers/media/dvb/frontends/Makefile
announce DVB_TDA10048 - "Philips TDA10048HN based"
undefine_macro 'TDA10048_DEFAULT_FIRMWARE_SIZE' 0 \
'removed non-Free firmware size' drivers/media/dvb/frontends/tda10048.c
undefault_firmware 'TDA10048' drivers/media/dvb/frontends/tda10048.c
reject_firmware drivers/media/dvb/frontends/tda10048.c
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_TDA10048'
clean_mk CONFIG_DVB_TDA10048 drivers/media/dvb/frontends/Makefile
announce DVB_TDA1004X - "Philips TDA10045H/TDA10046H"
undefault_firmware 'TDA1004[56]' drivers/media/dvb/frontends/tda1004x.c
reject_firmware drivers/media/dvb/frontends/tda1004x.c
reject_firmware drivers/media/dvb/frontends/tda1004x.h
clean_blob drivers/media/dvb/frontends/tda1004x.c
clean_kconfig drivers/media/dvb/frontends 'DVB_TDA1004X'
clean_mk CONFIG_DVB_TDA1004X drivers/media/dvb/frontends/Makefile
# dvb
announce DVB_AV7110 - "AV7110 cards"
reject_firmware drivers/media/dvb/ttpci/av7110.c
clean_blob drivers/media/dvb/ttpci/av7110.c
clean_kconfig drivers/media/dvb/ttpci/Kconfig 'DVB_AV7110'
clean_mk CONFIG_DVB_AV7110 drivers/media/dvb/ttpci/Makefile
announce DVB_BUDGET - "Budget cards"
reject_firmware drivers/media/dvb/ttpci/budget.c
reject_firmware drivers/media/dvb/frontends/tdhd1.h
announce DVB_BUDGET_AV - "Budget cards with analog video inputs"
reject_firmware drivers/media/dvb/ttpci/budget-av.c
announce DVB_BUDGET_CI - "Budget cards with onboard CI connector"
reject_firmware drivers/media/dvb/ttpci/budget-ci.c
announce DVB_DRX397XD - "Micronas DRX3975D/DRX3977D based"
reject_firmware drivers/media/dvb/frontends/drx397xD.c
clean_blob drivers/media/dvb/frontends/drx397xD_fw.h
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_DRX397XD'
clean_mk CONFIG_DVB_DRX397XD drivers/media/dvb/frontends/Makefile
announce DVB_PLUTO2 - "Pluto2 cards"
reject_firmware drivers/media/dvb/pluto2/pluto2.c
announce SMS_SIANO_MDTV - "Siano SMS1xxx based MDTV receiver"
reject_firmware drivers/media/dvb/siano/smscoreapi.c
clean_blob drivers/media/dvb/siano/smscoreapi.c
clean_blob drivers/media/dvb/siano/sms-cards.c
clean_kconfig drivers/media/dvb/siano/Kconfig 'SMS_SIANO_MDTV'
clean_mk CONFIG_SMS_SIANO_MDTV drivers/media/dvb/siano/Makefile
announce SMS_USB_DRV - "Siano's USB interface support"
reject_firmware drivers/media/dvb/siano/smsusb.c
clean_blob drivers/media/dvb/siano/smsusb.c
clean_kconfig drivers/media/dvb/siano/Kconfig 'SMS_USB_DRV'
clean_mk CONFIG_SMS_USB_DRV drivers/media/dvb/siano/Makefile
announce DVB_TTUSB_BUDGET - "Technotrend/Hauppauge Nova-USB devices"
drop_fw_file firmware/ttusb-budget/dspbootcode.bin.ihex firmware/ttusb-budget/dspbootcode.bin
reject_firmware drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
clean_blob drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
clean_kconfig drivers/media/dvb/ttusb-budget/Kconfig 'DVB_TTUSB_BUDGET'
clean_mk CONFIG_DVB_TTUSB_BUDGET drivers/media/dvb/ttusb-budget/Makefile
announce DVB_TTUSB_DEC - "Technotrend/Hauppauge USB DEC devices"
reject_firmware drivers/media/dvb/ttusb-dec/ttusb_dec.c
clean_blob drivers/media/dvb/ttusb-dec/ttusb_dec.c
clean_kconfig drivers/media/dvb/ttusb-dec/Kconfig 'DVB_TTUSB_DEC'
clean_mk CONFIG_DVB_TTUSB_DEC drivers/media/dvb/ttusb-dec/Makefile
# video
announce VIDEO_BT848 - "BT848 Video For Linux"
reject_firmware drivers/media/video/bt8xx/bttv-cards.c
clean_kconfig drivers/media/video/bt8xx/Kconfig 'VIDEO_BT848'
clean_mk CONFIG_VIDEO_BT848 drivers/media/video/bt8xx/Makefile
announce VIDEO_CPIA2 - "CPiA2 Video For Linux"
clean_fw firmware/cpia2/stv0672_vp4.bin.ihex firmware/cpia2/stv0672_vp4.bin
reject_firmware drivers/media/video/cpia2/cpia2_core.c
clean_blob drivers/media/video/cpia2/cpia2_core.c
clean_kconfig drivers/media/video/cpia2/Kconfig 'VIDEO_CPIA2'
clean_mk CONFIG_VIDEO_CPIA2 drivers/media/video/cpia2/Makefile
announce VIDEO_CX18 - "Conexant cx23418 MPEG encoder support"
reject_firmware drivers/media/video/cx18/cx18-av-firmware.c
reject_firmware drivers/media/video/cx18/cx18-dvb.c
reject_firmware drivers/media/video/cx18/cx18-firmware.c
clean_blob drivers/media/video/cx18/cx18-av-firmware.c
clean_blob drivers/media/video/cx18/cx18-dvb.c
clean_blob drivers/media/video/cx18/cx18-firmware.c
clean_kconfig drivers/media/video/cx18/Kconfig 'VIDEO_CX18'
clean_mk CONFIG_VIDEO_CX18 drivers/media/video/cx18/Makefile
announce VIDEO_CX23885 - "Conexant cx23885 (2388x successor) support"
reject_firmware drivers/media/video/cx23885/cx23885-417.c
clean_blob drivers/media/video/cx23885/cx23885-417.c
clean_kconfig drivers/media/video/cx23885/Kconfig 'VIDEO_CX23885'
clean_mk CONFIG_VIDEO_CX23885 drivers/media/video/cx23885/Makefile
announce VIDEO_CX25840 - "Conexant CX2584x audio/video decoders"
reject_firmware drivers/media/video/cx25840/cx25840-firmware.c
clean_blob drivers/media/video/cx25840/cx25840-firmware.c
clean_kconfig drivers/media/video/cx25840/Kconfig 'VIDEO_CX25840'
clean_mk CONFIG_VIDEO_CX25840 drivers/media/video/cx25840/Makefile
announce VIDEO_CX88_BLACKBIRD - "Blackbird MPEG encoder support (cx2388x + cx23416)"
reject_firmware drivers/media/video/cx88/cx88-blackbird.c
clean_kconfig drivers/media/video/cx88/Kconfig 'VIDEO_CX88_BLACKBIRD'
clean_mk CONFIG_VIDEO_CX88_BLACKBIRD drivers/media/video/cx88/Makefile
announce VIDEO_IVTV - "Conexant cx23416/cx23415 MPEG encoder/decoder support"
reject_firmware drivers/media/video/ivtv/ivtv-firmware.c
clean_blob drivers/media/video/ivtv/ivtv-firmware.c
clean_kconfig drivers/media/video/ivtv/Kconfig 'VIDEO_IVTV'
clean_mk CONFIG_VIDEO_IVTV drivers/media/video/ivtv/Makefile
announce VIDEO_PVRUSB2 - "Hauppauge WinTV-PVR USB2 support"
reject_firmware drivers/media/video/pvrusb2/pvrusb2-hdw.c
clean_blob drivers/media/video/pvrusb2/pvrusb2-devattr.c
clean_kconfig drivers/media/video/pvrusb2/Kconfig 'VIDEO_PVRUSB2'
clean_mk CONFIG_VIDEO_PVRUSB2 drivers/media/video/pvrusb2/Makefile
announce "VIDEO_CX23885, VIDEO_CX88_BLACKBIRD, VIDEO_IVTV, VIDEO_PVRUSB2" - "See above"
clean_blob include/media/cx2341x.h
announce VIDEO_GO7007 - "Go 7007 support"
reject_firmware drivers/staging/go7007/go7007-driver.c
clean_blob drivers/staging/go7007/go7007-driver.c
reject_firmware drivers/staging/go7007/go7007-fw.c
clean_blob drivers/staging/go7007/go7007-usb.c
clean_blob drivers/staging/go7007/saa7134-go7007.c
clean_kconfig drivers/staging/go7007/Kconfig 'VIDEO_GO7007'
clean_mk CONFIG_VIDEO_GO7007 drivers/staging/go7007/Makefile
announce VIDEO_GO7007_USB_S2250_BOARD - "Sensoray 2250/2251 support"
reject_firmware drivers/staging/go7007/s2250-loader.c
clean_blob drivers/staging/go7007/s2250-loader.c
clean_kconfig drivers/staging/go7007/Kconfig 'VIDEO_GO7007_USB_S2250_BOARD'
clean_mk CONFIG_VIDEO_GO7007_USB_S2250_BOARD drivers/staging/go7007/Makefile
announce VIDEO_SAA7134_DVB - "DVB/ATSC Support for saa7134 based TV cards"
reject_firmware drivers/media/video/saa7134/saa7134-dvb.c
clean_kconfig drivers/media/video/saa7134/Kconfig 'VIDEO_SAA7134_DVB'
clean_mk CONFIG_VIDEO_SAA7134_DVB drivers/media/video/saa7134/Makefile
announce USB_DABUSB - "DABUSB driver"
clean_fw firmware/dabusb/bitstream.bin.ihex firmware/dabusb/bitstream.bin
clean_fw firmware/dabusb/firmware.HEX firmware/dabusb/firmware.fw
reject_firmware drivers/media/video/dabusb.c
clean_blob drivers/media/video/dabusb.c
clean_kconfig drivers/media/Kconfig 'USB_DABUSB'
clean_mk CONFIG_USB_DABUSB drivers/media/video/Makefile
announce USB_S2255 - "USB Sensoray 2255 video capture device"
reject_firmware drivers/media/video/s2255drv.c
clean_blob drivers/media/video/s2255drv.c
clean_kconfig drivers/media/video/Kconfig 'USB_S2255'
clean_mk CONFIG_USB_S2255 drivers/media/video/Makefile
announce USB_VICAM - "USB 3com HomeConnect, AKA vicam"
drop_fw_file firmware/vicam/firmware.H16 firmware/vicam/firmware.fw
reject_firmware drivers/media/video/usbvideo/vicam.c
clean_blob drivers/media/video/usbvideo/vicam.c
clean_kconfig drivers/media/video/usbvideo/Kconfig 'USB_VICAM'
clean_mk CONFIG_USB_VICAM drivers/media/video/usbvideo/Makefile
#######
# net #
#######
announce ACENIC - "Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit"
drop_fw_file firmware/acenic/tg1.bin.ihex firmware/acenic/tg1.bin
drop_fw_file firmware/acenic/tg2.bin.ihex firmware/acenic/tg2.bin
reject_firmware drivers/net/acenic.c
clean_blob drivers/net/acenic.c
clean_kconfig drivers/net/Kconfig 'ACENIC'
clean_mk CONFIG_ACENIC drivers/net/Makefile
announce ADAPTEC_STARFIRE - "Adaptec Starfire/DuraLAN support"
clean_fw firmware/adaptec/starfire_rx.bin.ihex firmware/adaptec/starfire_rx.bin
clean_fw firmware/adaptec/starfire_tx.bin.ihex firmware/adaptec/starfire_tx.bin
reject_firmware drivers/net/starfire.c
clean_blob drivers/net/starfire.c
clean_kconfig drivers/net/Kconfig 'ADAPTEC_STARFIRE'
clean_mk CONFIG_ADAPTEC_STARFIRE drivers/net/Makefile
announce BNX2 - "Broadcom NetXtremeII"
drop_fw_file firmware/bnx2/bnx2-mips-09-4.6.17.fw.ihex firmware/bnx2/bnx2-mips-09-4.6.17.fw
drop_fw_file firmware/bnx2/bnx2-rv2p-09-4.6.15.fw.ihex firmware/bnx2/bnx2-rv2p-09-4.6.15.fw
drop_fw_file firmware/bnx2/bnx2-mips-06-4.6.16.fw.ihex firmware/bnx2/bnx2-mips-06-4.6.16.fw
drop_fw_file firmware/bnx2/bnx2-rv2p-06-4.6.16.fw.ihex firmware/bnx2/bnx2-rv2p-06-4.6.16.fw
reject_firmware drivers/net/bnx2.c
clean_blob drivers/net/bnx2.c
clean_kconfig drivers/net/Kconfig 'BNX2'
clean_mk CONFIG_BNX2 drivers/net/Makefile
announce BNX2X - "Broadcom NetXtremeII 10Gb support"
drop_fw_file firmware/bnx2x-e1-4.8.53.0.fw.ihex firmware/bnx2x-e1-4.8.53.0.fw
drop_fw_file firmware/bnx2x-e1h-4.8.53.0.fw.ihex firmware/bnx2x-e1h-4.8.53.0.fw
reject_firmware drivers/net/bnx2x_main.c
clean_sed '
/^#include "bnx2x_init\.h"/,/^$/{
/^$/i\
#define bnx2x_init_block(bp, start, end) \\\
return (printk(KERN_ERR PFX "%s: Missing Free firmware\\n", bp->dev->name),\\\
-EINVAL)
}' drivers/net/bnx2x_main.c 'report missing Free firmware'
clean_blob drivers/net/bnx2x_main.c
clean_blob drivers/net/bnx2x_hsi.h
clean_blob drivers/net/bnx2x_init_ops.h
clean_kconfig drivers/net/Kconfig 'BNX2X'
clean_mk CONFIG_BNX2X drivers/net/Makefile
announce CASSINI - "Sun Cassini"
drop_fw_file firmware/sun/cassini.bin.ihex firmware/sun/cassini.bin
reject_firmware drivers/net/cassini.c
clean_blob drivers/net/cassini.c
clean_kconfig drivers/net/Kconfig 'CASSINI'
clean_mk CONFIG_CASSINI drivers/net/Makefile
announce CHELSIO_T3 - "Chelsio AEL 2005 support"
drop_fw_file firmware/cxgb3/t3b_psram-1.1.0.bin.ihex firmware/cxgb3/t3b_psram-1.1.0.bin
drop_fw_file firmware/cxgb3/t3c_psram-1.1.0.bin.ihex firmware/cxgb3/t3c_psram-1.1.0.bin
drop_fw_file firmware/cxgb3/t3fw-7.4.0.bin.ihex firmware/cxgb3/t3fw-7.4.0.bin
reject_firmware drivers/net/cxgb3/cxgb3_main.c
clean_sed '
/^static int ael2005_setup_\(sr\|twinax\)_edc([^;]*$/,/^}$/{
/for.*ARRAY_SIZE(\(sr\|twinax\)_edc)/i\
CH_ERR(phy->adapter, "Missing Free firwmare\\n");\
err = -EINVAL;
}' drivers/net/cxgb3/ael1002.c 'report missing Free firmware'
clean_blob drivers/net/cxgb3/cxgb3_main.c
clean_blob drivers/net/cxgb3/ael1002.c
clean_kconfig drivers/net/Kconfig 'CHELSIO_T3'
clean_mk CONFIG_CHELSIO_T3 drivers/net/cxgb3/Makefile
announce E100 - "Intel PRO/100+"
drop_fw_file firmware/e100/d101m_ucode.bin.ihex firmware/e100/d101m_ucode.bin
drop_fw_file firmware/e100/d101s_ucode.bin.ihex firmware/e100/d101s_ucode.bin
drop_fw_file firmware/e100/d102e_ucode.bin.ihex firmware/e100/d102e_ucode.bin
reject_firmware drivers/net/e100.c
clean_sed '
/^static const struct firmware \*e100_\(reject\|request\)_firmware(/,/^}$/{
s:^\(.*\)return ERR_PTR(err);$:\1DPRINTK(PROBE,ERR, "Proceeding without firmware\\n");\n\1return NULL;:
}' drivers/net/e100.c 'proceed without firmware'
clean_blob drivers/net/e100.c
clean_kconfig drivers/net/Kconfig 'E100'
clean_mk CONFIG_E100 drivers/net/Makefile
announce MYRI_SBUS - "MyriCOM Gigabit Ethernet"
drop_fw_file firmware/myricom/lanai.bin.ihex firmware/myricom/lanai.bin
reject_firmware drivers/net/myri_sbus.c
clean_blob drivers/net/myri_sbus.c
clean_kconfig drivers/net/Kconfig 'MYRI_SBUS'
clean_mk CONFIG_MYRI_SBUS drivers/net/Makefile
announce MYRI10GE - "Myricom Myri-10G Ethernet support"
reject_firmware drivers/net/myri10ge/myri10ge.c
clean_blob drivers/net/myri10ge/myri10ge.c
clean_kconfig drivers/net/Kconfig 'MYRI10GE'
clean_mk CONFIG_MYRI10GE drivers/net/myri10ge/Makefile
announce NETXEN_NIC - "NetXen Multi port (1/10) Gigabit Ethernet NIC"
reject_firmware drivers/net/netxen/netxen_nic.h
reject_firmware drivers/net/netxen/netxen_nic_main.c
reject_firmware drivers/net/netxen/netxen_nic_init.c
clean_blob drivers/net/netxen/netxen_nic_init.c
clean_kconfig drivers/net/Kconfig 'NETXEN_NIC'
clean_mk CONFIG_NETXEN_NIC drivers/net/Makefile
announce SLICOSS - "Alacritech Gigabit IS-NIC cards"
reject_firmware drivers/staging/slicoss/slicoss.c
clean_blob drivers/staging/slicoss/slicoss.c
clean_kconfig drivers/staging/slicoss/Kconfig 'SLICOSS'
clean_mk CONFIG_SLICOSS drivers/staging/slicoss/Makefile
announce SPIDER_NET - "Spider Gigabit Ethernet driver"
reject_firmware drivers/net/spider_net.c
clean_sed 's,spider_fw\.bin,DEBLOBBED.bin,g' \
drivers/net/spider_net.c 'removed non-Free firmware notes'
clean_blob drivers/net/spider_net.h
clean_kconfig drivers/net/Kconfig 'SPIDER_NET'
clean_mk CONFIG_SPIDER_NET drivers/net/Makefile
announce SXG - "Alacritech SLIC Technology Non-Accelerated 10Gbe cards"
clean_file drivers/staging/sxg/sxgphycode-1.2.h
reject_firmware drivers/staging/sxg/sxg.c
clean_sed '
/^static int sxg_phy_init(/,/^}$/{
/for (p = PhyUcode/i\
printk("%s: missing Free firmware\\n", __func__);\
return (STATUS_FAILURE);\
#define PhyUcode NULL
}' drivers/staging/sxg/sxg.c 'report missing Free firmware'
clean_blob drivers/staging/sxg/sxg.c
clean_kconfig drivers/staging/sxg/Kconfig 'SXG'
clean_mk CONFIG_SXG drivers/staging/sxg/Makefile
announce TEHUTI - "Tehuti Networks 10G Ethernet"
drop_fw_file firmware/tehuti/bdx.bin.ihex firmware/tehuti/bdx.bin
reject_firmware drivers/net/tehuti.c
clean_blob drivers/net/tehuti.c
clean_kconfig drivers/net/Kconfig 'TEHUTI'
clean_mk CONFIG_TEHUTI drivers/net/Makefile
announce TIGON3 - "Broadcom Tigon3"
drop_fw_file firmware/tigon/tg3.bin.ihex firmware/tigon/tg3.bin
drop_fw_file firmware/tigon/tg3_tso.bin.ihex firmware/tigon/tg3_tso.bin
drop_fw_file firmware/tigon/tg3_tso5.bin.ihex firmware/tigon/tg3_tso5.bin
reject_firmware drivers/net/tg3.c
clean_blob drivers/net/tg3.c
clean_kconfig drivers/net/Kconfig 'TIGON3'
clean_mk CONFIG_TIGON3 drivers/net/Makefile
announce TYPHOON - "3cr990 series Typhoon"
drop_fw_file firmware/3com/typhoon.bin.ihex firmware/3com/typhoon.bin
reject_firmware drivers/net/typhoon.c
clean_blob drivers/net/typhoon.c
clean_kconfig drivers/net/Kconfig 'TYPHOON'
clean_mk CONFIG_TYPHOON drivers/net/Makefile
# appletalk
announce COPS - "COPS LocalTalk PC"
clean_sed '
/sizeof(\(ff\|lt\)drv_code)/{
i\
printk(KERN_INFO "%s: Missing Free firmware.\\n", dev->name);\
return;
}
/\(ff\|lt\)drv_code/d;
' drivers/net/appletalk/cops.c 'report missing Free firmware'
clean_blob drivers/net/appletalk/cops.c
clean_file drivers/net/appletalk/cops_ffdrv.h
clean_file drivers/net/appletalk/cops_ltdrv.h
clean_kconfig drivers/net/appletalk/Kconfig 'COPS'
clean_mk CONFIG_COPS drivers/net/appletalk/Makefile
# hamradio
announce YAM - "YAM driver for AX.25"
drop_fw_file firmware/yam/1200.bin.ihex firmware/yam/1200.bin
drop_fw_file firmware/yam/9600.bin.ihex firmware/yam/9600.bin
reject_firmware drivers/net/hamradio/yam.c
clean_blob drivers/net/hamradio/yam.c
clean_kconfig drivers/net/hamradio/Kconfig 'YAM'
clean_mk CONFIG_YAM drivers/net/hamradio/Makefile
# irda
announce USB_IRDA - "IrDA USB dongles"
reject_firmware drivers/net/irda/irda-usb.c
clean_blob drivers/net/irda/irda-usb.c
clean_kconfig drivers/net/irda/Kconfig 'USB_IRDA'
clean_mk CONFIG_USB_IRDA drivers/net/irda/Makefile
# pcmcia
announce PCMCIA_SMC91C92 - "SMC 91Cxx PCMCIA"
drop_fw_file firmware/ositech/Xilinx7OD.bin.ihex firmware/ositech/Xilinx7OD.bin
reject_firmware drivers/net/pcmcia/smc91c92_cs.c
clean_blob drivers/net/pcmcia/smc91c92_cs.c
clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_SMC91C92'
clean_mk CONFIG_PCMCIA_SMC91C92 drivers/net/pcmcia/Makefile
announce PCCARD - "PCCard (PCMCIA/CardBus) support"
reject_firmware drivers/pcmcia/ds.c
clean_kconfig drivers/pcmcia/Kconfig 'PCCARD'
clean_mk CONFIG_PCCARD drivers/pcmcia/Makefile
announce PCMCIA_3C574 - "3Com 3c574 PCMCIA support"
drop_fw_file firmware/cis/3CCFEM556.cis.ihex firmware/cis/3CCFEM556.cis
clean_blob drivers/net/pcmcia/3c574_cs.c
clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_3C574'
clean_mk CONFIG_PCMCIA_3C574 drivers/net/pcmcia/Makefile
announce PCMCIA_3C589 - "3Com 3c589 PCMCIA support"
drop_fw_file firmware/cis/3CXEM556.cis.ihex firmware/cis/3CXEM556.cis
clean_blob drivers/net/pcmcia/3c589_cs.c
clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_3C589'
clean_mk CONFIG_PCMCIA_3C589 drivers/net/pcmcia/Makefile
announce PCMCIA_PCNET - "NE2000 compatible PCMCIA support"
drop_fw_file firmware/cis/LA-PCM.cis.ihex firmware/cis/LA-PCM.cis
clean_blob drivers/net/pcmcia/pcnet_cs.c
clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_PCNET'
clean_mk CONFIG_PCMCIA_PCNET drivers/net/pcmcia/Makefile
# tokenring
announce 3C359 - "3Com 3C359 Token Link Velocity XL adapter"
drop_fw_file firmware/3com/3C359.bin.ihex firmware/3com/3C359.bin
clean_blob drivers/net/tokenring/3c359.c
clean_kconfig drivers/net/tokenring/Kconfig '3C359'
clean_mk CONFIG_3C359 drivers/net/tokenring/Makefile
announce SMCTR - "SMC ISA/MCA adapter"
drop_fw_file firmware/tr_smctr.bin.ihex firmware/tr_smctr.bin
reject_firmware drivers/net/tokenring/smctr.c
clean_blob drivers/net/tokenring/smctr.c
clean_kconfig drivers/net/tokenring/Kconfig 'SMCTR'
clean_mk CONFIG_SMCTR drivers/net/tokenring/Makefile
announce TMS380TR - "Generic TMS380 Token Ring ISA/PCI adapter support"
reject_firmware drivers/net/tokenring/tms380tr.c
clean_blob drivers/net/tokenring/tms380tr.c
clean_kconfig drivers/net/tokenring/Kconfig 'TMS380TR'
clean_mk CONFIG_TMS380TR drivers/net/tokenring/Makefile
# usb
announce USB_KAWETH - "USB KLSI KL5USB101-based ethernet device support"
drop_fw_file firmware/kaweth/new_code.bin.ihex firmware/kaweth/new_code.bin
drop_fw_file firmware/kaweth/new_code_fix.bin.ihex firmware/kaweth/new_code_fix.bin
drop_fw_file firmware/kaweth/trigger_code.bin.ihex firmware/kaweth/trigger_code.bin
drop_fw_file firmware/kaweth/trigger_code_fix.bin.ihex firmware/kaweth/trigger_code_fix.bin
reject_firmware drivers/net/usb/kaweth.c
clean_blob drivers/net/usb/kaweth.c
clean_kconfig drivers/net/usb/Kconfig 'USB_KAWETH'
clean_mk CONFIG_USB_KAWETH drivers/net/usb/Makefile
# wireless
announce ATMEL "Atmel at76c50x chipset 802.11b support"
reject_firmware drivers/net/wireless/atmel.c
clean_blob drivers/net/wireless/atmel.c
clean_kconfig drivers/net/wireless/Kconfig 'ATMEL'
clean_mk CONFIG_ATMEL drivers/net/wireless/Makefile
announce AT76C50X_USB - "Atmel at76c503/at76c505/at76c505a USB cards"
reject_firmware drivers/net/wireless/at76c50x-usb.c
clean_blob drivers/net/wireless/at76c50x-usb.c
clean_kconfig drivers/net/wireless/Kconfig 'AT76C50X_USB'
clean_mk CONFIG_AT76C50X_USB drivers/net/wireless/Makefile
announce USB_ATMEL - "Atmel at76c503/at76c505/at76c505a USB cards (in staging)"
reject_firmware drivers/staging/at76_usb/at76_usb.c
clean_blob drivers/staging/at76_usb/at76_usb.c
clean_kconfig drivers/staging/at76_usb/Kconfig 'USB_ATMEL'
clean_mk CONFIG_USB_ATMEL drivers/staging/at76_usb/Makefile
announce B43 - "Broadcom 43xx wireless support (mac80211 stack)"
maybe_reject_firmware drivers/net/wireless/b43/main.c
clean_sed '
/^static int b43_upload_microcode(/,/^}$/{
/ if (dev->fw\.opensource) {$/i\
if (!dev->fw.opensource) {\
b43err(dev->wl, "Rejected non-Free firmware\\n");\
err = -EOPNOTSUPP;\
goto error;\
}
}' drivers/net/wireless/b43/main.c 'double-check and reject non-Free firmware'
# Major portions of firmware filenames not deblobbed.
clean_blob drivers/net/wireless/b43/main.c
clean_kconfig drivers/net/wireless/b43/Kconfig 'B43'
clean_mk CONFIG_B43 drivers/net/wireless/b43/Makefile
announce B43LEGACY - "Broadcom 43xx-legacy wireless support (mac80211 stack)"
reject_firmware drivers/net/wireless/b43legacy/main.c
# Major portions of firwmare filenames not deblobbed.
clean_blob drivers/net/wireless/b43legacy/main.c
clean_kconfig drivers/net/wireless/b43legacy/Kconfig 'B43LEGACY'
clean_mk CONFIG_B43LEGACY drivers/net/wireless/b43legacy/Makefile
announce HERMES - "Hermes chipset 802.11b support (Orinoco/Prism2/Symbol)"
reject_firmware drivers/net/wireless/orinoco/fw.c
clean_blob drivers/net/wireless/orinoco/fw.c
clean_kconfig drivers/net/wireless/Kconfig 'HERMES'
clean_mk CONFIG_HERMES drivers/net/wireless/orinoco/Makefile
announce IPW2100 - "Intel PRO/Wireless 2100 Network Connection"
reject_firmware drivers/net/wireless/ipw2x00/ipw2100.c
clean_blob drivers/net/wireless/ipw2x00/ipw2100.c
clean_kconfig drivers/net/wireless/Kconfig 'IPW2100'
clean_mk CONFIG_IPW2100 drivers/net/wireless/ipw2x00/Makefile
announce IPW2200 - "Intel PRO/Wireless 2200BG and 2915ABG Network Connection"
reject_firmware drivers/net/wireless/ipw2x00/ipw2200.c
clean_blob drivers/net/wireless/ipw2x00/ipw2200.c
clean_kconfig drivers/net/wireless/Kconfig 'IPW2200'
clean_mk CONFIG_IPW2200 drivers/net/wireless/ipw2x00/Makefile
announce IWL3945 - "Intel PRO/Wireless 3945ABG/BG Network Connection"
reject_firmware drivers/net/wireless/iwlwifi/iwl3945-base.c
clean_blob drivers/net/wireless/iwlwifi/iwl3945-base.c
clean_blob drivers/net/wireless/iwlwifi/iwl-3945.h
clean_kconfig drivers/net/wireless/iwlwifi/Kconfig 'IWL3945'
clean_mk CONFIG_IWL3945 drivers/net/wireless/iwlwifi/Makefile
announce IWLAGN - "Intel Wireless WiFi Next Gen AGN"
reject_firmware drivers/net/wireless/iwlwifi/iwl-agn.c
clean_blob drivers/net/wireless/iwlwifi/iwl-agn.c
clean_kconfig drivers/net/wireless/iwlwifi/Kconfig 'IWLAGN'
clean_mk CONFIG_IWLAGN drivers/net/wireless/iwlwifi/Makefile
announce IWL4965 - "Intel Wireless WiFi 4965AGN"
clean_blob drivers/net/wireless/iwlwifi/iwl-4965.c
clean_kconfig drivers/net/wireless/iwlwifi/Kconfig 'IWL4965'
clean_mk CONFIG_IWL4965 drivers/net/wireless/iwlwifi/Makefile
announce IWL5000 - "Intel Wireless WiFi 5000AGN"
clean_blob drivers/net/wireless/iwlwifi/iwl-5000.c
clean_blob drivers/net/wireless/iwlwifi/iwl-6000.c
clean_blob drivers/net/wireless/iwlwifi/iwl-1000.c
clean_kconfig drivers/net/wireless/iwlwifi/Kconfig 'IWL5000'
clean_mk CONFIG_IWL5000 drivers/net/wireless/iwlwifi/Makefile
announce IWM - "Intel Wireless Multicomm 3200 WiFi driver"
reject_firmware drivers/net/wireless/iwmc3200wifi/fw.c
clean_blob drivers/net/wireless/iwmc3200wifi/sdio.c
clean_kconfig drivers/net/wireless/iwmc3200wifi/Kconfig 'IWM'
clean_mk CONFIG_IWM drivers/net/wireless/iwmc3200wifi/Makefile
announce LIBERTAS_CS - "Marvell Libertas 8385 CompactFlash 802.11b/g cards"
reject_firmware drivers/net/wireless/libertas/if_cs.c
clean_blob drivers/net/wireless/libertas/if_cs.c
clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_CS'
clean_mk CONFIG_LIBERTAS_CS drivers/net/wireless/libertas/Makefile
announce LIBERTAS_SDIO - "Marvell Libertas 8385 and 8686 SDIO 802.11b/g cards"
reject_firmware drivers/net/wireless/libertas/if_sdio.c
clean_blob drivers/net/wireless/libertas/if_sdio.c
clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_SDIO'
clean_mk CONFIG_LIBERTAS_SDIO drivers/net/wireless/libertas/Makefile
announce LIBERTAS_SPI - "Marvell Libertas 8686 SPI 802.11b/g cards"
reject_firmware drivers/net/wireless/libertas/if_spi.c
clean_blob drivers/net/wireless/libertas/if_spi.c
clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_SPI'
clean_mk CONFIG_LIBERTAS_SPI drivers/net/wireless/libertas/Makefile
announce LIBERTAS_USB - "Marvell Libertas 8388 USB 802.11b/g cards"
reject_firmware drivers/net/wireless/libertas/if_usb.c
clean_blob drivers/net/wireless/libertas/if_usb.c
clean_blob drivers/net/wireless/libertas/README
clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_USB'
clean_mk CONFIG_LIBERTAS_USB drivers/net/wireless/libertas/Makefile
announce LIBERTAS_THINFIRM_USB - "Marvell Libertas 8388 USB 802.11b/g cards with thin firmware"
reject_firmware drivers/net/wireless/libertas_tf/if_usb.c
clean_blob drivers/net/wireless/libertas_tf/if_usb.c
clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_THINFIRM_USB'
clean_mk CONFIG_LIBERTAS_THINFIRM_USB drivers/net/wireless/libertas_tf/Makefile
announce MWL8K - 'Marvell 88W8xxx PCI/PCIe Wireless support'
reject_firmware drivers/net/wireless/mwl8k.c
clean_blob drivers/net/wireless/mwl8k.c
clean_kconfig drivers/net/wireless/Kconfig 'MWL8K'
clean_mk CONFIG_MWL8K drivers/net/wireless/Makefile
announce OTUS - "Atheros OTUS 802.11n USB wireless support"
clean_blob drivers/staging/otus/hal/hpDKfwu.c
clean_blob drivers/staging/otus/hal/hpfw2.c
clean_blob drivers/staging/otus/hal/hpfwbu.c
clean_blob drivers/staging/otus/hal/hpfwspiu.c
clean_blob drivers/staging/otus/hal/hpfwu.c
clean_blob drivers/staging/otus/hal/hpfwu.c.drv_ba_resend
clean_blob drivers/staging/otus/hal/hpfwu_2k.c
clean_blob drivers/staging/otus/hal/hpfwu_BA.c
clean_blob drivers/staging/otus/hal/hpfwu_FB50_mdk.c
clean_blob drivers/staging/otus/hal/hpfwu_OTUS_RC.c
clean_blob drivers/staging/otus/hal/hpfwu_txstream.c
clean_blob drivers/staging/otus/hal/hpfwuinit.c
clean_sed '
/^u16_t zfFirmwareDownload\(NotJump\)\?(.*)$/,/^}$/ {
/ image = (u8_t\*) fw;/i\
zm_msg0_init(ZM_LV_0, "Missing Free firmware");\
ret = ZM_ERR_FIRMWARE_WRONG_TYPE;\
goto exit;\
}
' drivers/staging/otus/hal/hpusb.c \
'disabled non-Free firmware-loading machinery'
clean_sed 's/^extern u16_t \(zfFirmwareDownload\(NotJump\)\?\)([^;]*);/&\n#define \1(dev,fw,len,offset) (\1)(dev,NULL,0,offset)/
' drivers/staging/otus/hal/hpmain.c \
'disabled non-Free firmware-loading machinery'
clean_blob drivers/staging/otus/hal/hpmain.c
clean_kconfig drivers/staging/otus/Kconfig OTUS
clean_mk CONFIG_OTUS drivers/staging/otus/Makefile
announce PRISM2_USB - "Prism2.5/3 USB driver"
reject_firmware drivers/staging/wlan-ng/prism2fw.c
clean_blob drivers/staging/wlan-ng/prism2fw.c
clean_kconfig drivers/staging/wlan-ng/Kconfig PRISM2_USB
clean_mk CONFIG_PRISM2_USB drivers/staging/wlan-ng/Makefile
announce P54_PCI - "Prism54 PCI support"
reject_firmware drivers/net/wireless/p54/p54pci.c
clean_blob drivers/net/wireless/p54/p54pci.c
clean_kconfig drivers/net/wireless/p54/Kconfig 'P54_PCI'
clean_mk CONFIG_P54_PCI drivers/net/wireless/p54/Makefile
announce P54_SPI - "Prism54 SPI (stlc45xx) support"
# There's support for loading custom 3826.eeprom here, with a default
# eeprom that is clearly pure data. Without Free 3826.arm, there's
# little point in trying to retain the ability to load 3826.eeprom, so
# we drop it altogether.
reject_firmware drivers/net/wireless/p54/p54spi.c
clean_blob drivers/net/wireless/p54/p54spi.c
clean_kconfig drivers/net/wireless/p54/Kconfig 'P54_SPI'
clean_mk CONFIG_P54_SPI drivers/net/wireless/p54/Makefile
announce P54_USB - "Prism54 USB support"
reject_firmware drivers/net/wireless/p54/p54usb.c
clean_blob drivers/net/wireless/p54/p54usb.c
clean_blob drivers/net/wireless/p54/p54usb.h
clean_kconfig drivers/net/wireless/p54/Kconfig 'P54_USB'
clean_mk CONFIG_P54_USB drivers/net/wireless/p54/Makefile
announce PRISM54 - 'Intersil Prism GT/Duette/Indigo PCI/Cardbus'
reject_firmware drivers/net/wireless/prism54/islpci_dev.c
clean_blob drivers/net/wireless/prism54/islpci_dev.c
clean_sed '
/^config PRISM54$/,/^config /{
/If you enable this/,/^$/d;
}' drivers/net/wireless/Kconfig 'removed firmware notes'
clean_kconfig drivers/net/wireless/Kconfig 'PRISM54'
clean_mk CONFIG_PRISM54 drivers/net/wireless/prism54/Makefile
announce RT2X00_LIB_FIRMWARE - "Ralink driver firmware support"
reject_firmware drivers/net/wireless/rt2x00/rt2x00firmware.c
clean_kconfig drivers/net/wireless/rt2x00/Kconfig 'RT2X00_LIB_FIRMWARE'
clean_mk CONFIG_RT2X00_LIB_FIRMWARE drivers/net/wireless/rt2x00/Makefile
announce RT61PCI - "Ralink rt2501/rt61 (PCI/PCMCIA) support"
clean_blob drivers/net/wireless/rt2x00/rt61pci.h
clean_blob drivers/net/wireless/rt2x00/rt61pci.c
clean_kconfig drivers/net/wireless/rt2x00/Kconfig 'RT61PCI'
clean_mk CONFIG_RT61PCI drivers/net/wireless/rt2x00/Makefile
announce RT73USB - "Ralink rt2501/rt73 (USB) support"
clean_blob drivers/net/wireless/rt2x00/rt73usb.h
clean_blob drivers/net/wireless/rt2x00/rt73usb.c
clean_kconfig drivers/net/wireless/rt2x00/Kconfig 'RT73USB'
clean_mk CONFIG_RT73USB drivers/net/wireless/rt2x00/Makefile
announce RT2800USB - "Ralink rt2800 (USB) support"
clean_blob drivers/net/wireless/rt2x00/rt2800usb.h
clean_blob drivers/net/wireless/rt2x00/rt2800usb.c
clean_kconfig drivers/net/wireless/rt2x00/Kconfig RT2800USB
clean_mk CONFIG_RT2800USB drivers/net/wireless/rt2x00/Makefile
announce RT2860 - "Ralink 2860 wireless support"
clean_file drivers/staging/rt2860/common/firmware.h
clean_blob drivers/staging/rt2860/rt_linux.h
clean_sed '
/^NDIS_STATUS NICLoadFirmware(/,/^}$/{
s/^\( *\)pFirmwareImage = .*FirmwareImage.*;/\1printk("%s: missing Free firmware\\n", __func__);\n\1return NDIS_STATUS_FAILURE;\n&/
}' drivers/staging/rt2860/common/rtmp_init.c 'report missing Free firmware'
clean_blob drivers/staging/rt2860/common/rtmp_init.c
clean_sed '
/^INT[ ]set_eFuseLoadFromBin_Proc(/,/^}$/{
/src = kmalloc/i\
printk("%s: missing Free firmware\\n", __func__);\
return FALSE;
}' drivers/staging/rt2860/common/eeprom.c 'report missing Free firmware'
clean_blob drivers/staging/rt2860/common/eeprom.c
clean_kconfig drivers/staging/rt2860/Kconfig RT2860
clean_mk CONFIG_RT2860 drivers/staging/rt2860/Makefile
announce RT2870 - "Ralink 2870 wireless support"
clean_file drivers/staging/rt2870/common/firmware.h
clean_kconfig drivers/staging/rt2870/Kconfig RT2870
clean_mk CONFIG_RT2870 drivers/staging/rt2870/Makefile
announce RT3070 - "Ralink 3070 wireless support"
clean_file drivers/staging/rt3070/firmware.h
clean_kconfig drivers/staging/rt3070/Kconfig RT3070
clean_mk CONFIG_RT3070 drivers/staging/rt3070/Makefile
announce RTL8192SU - "RealTek RTL8192SU Wireless LAN NIC driver"
reject_firmware drivers/staging/rtl8192su/r819xU_firmware.c
reject_firmware drivers/staging/rtl8192su/r8192S_firmware.c
clean_blob drivers/staging/rtl8192su/r8192SU_HWImg.c
clean_blob drivers/staging/rtl8192su/r8192S_FwImgDTM.h
clean_blob drivers/staging/rtl8192su/r8192S_firmware.c
clean_blob drivers/staging/rtl8192su/r819xU_firmware_img.c
clean_blob drivers/staging/rtl8192su/r819xU_firmware.c
clean_kconfig drivers/staging/rtl8192su/Kconfig 'RTL8192SU'
clean_mk CONFIG_RTL8192SU drivers/staging/rtl8192su/Makefile
announce WL12XX - "TI wl1251/wl1271 support"
reject_firmware drivers/net/wireless/wl12xx/main.c
clean_blob drivers/net/wireless/wl12xx/wl1251.h
clean_kconfig drivers/net/wireless/wl12xx/Kconfig 'WL12XX'
clean_mk CONFIG_WL12XX drivers/net/wireless/wl12xx/Makefile
announce USB_ZD1201 - "USB ZD1201 based Wireless device support"
reject_firmware drivers/net/wireless/zd1201.c
clean_blob drivers/net/wireless/zd1201.c
clean_kconfig drivers/net/wireless/Kconfig 'USB_ZD1201'
clean_mk CONFIG_USB_ZD1201 drivers/net/wireless/Makefile
announce ZD1211RW - "ZyDAS ZD1211/ZD1211B USB-wireless support"
reject_firmware drivers/net/wireless/zd1211rw/zd_usb.c
clean_blob drivers/net/wireless/zd1211rw/zd_usb.c
clean_kconfig drivers/net/wireless/zd1211rw/Kconfig 'ZD1211RW'
clean_mk CONFIG_ZD1211RW drivers/net/wireless/zd1211rw/Makefile
# bluetooth
announce BT_HCIBCM203X - "HCI BCM203x USB driver"
reject_firmware drivers/bluetooth/bcm203x.c
clean_blob drivers/bluetooth/bcm203x.c
clean_kconfig drivers/bluetooth/Kconfig 'BT_HCIBCM203X'
clean_mk CONFIG_BT_HCIBCM203X drivers/bluetooth/Makefile
announce BT_HCIBFUSB - "HCI BlueFRITZ! USB driver"
reject_firmware drivers/bluetooth/bfusb.c
clean_blob drivers/bluetooth/bfusb.c
clean_kconfig drivers/bluetooth/Kconfig 'BT_HCIBFUSB'
clean_mk CONFIG_BT_HCIBFUSB drivers/bluetooth/Makefile
announce BT_HCIBT3C - "HCI BT3C (PC Card) driver"
reject_firmware drivers/bluetooth/bt3c_cs.c
clean_blob drivers/bluetooth/bt3c_cs.c
clean_kconfig drivers/bluetooth/Kconfig 'BT_HCIBT3C'
clean_mk CONFIG_BT_HCIBT3C drivers/bluetooth/Makefile
# wimax
announce WIMAX_I2400M - "Intel Wireless WiMAX Connection 2400"
reject_firmware drivers/net/wimax/i2400m/fw.c
clean_blob drivers/net/wimax/i2400m/sdio.c
clean_blob drivers/net/wimax/i2400m/usb.c
clean_blob Documentation/wimax/README.i2400m
clean_kconfig drivers/net/wimax/i2400m/Kconfig CONFIG_WIMAX_I2400M
clean_mk CONFIG_WIMAX_I2400M drivers/net/wimax/i2400m/Makefile
########
# ISDN #
########
announce ISDN_DIVAS - "Support Eicon DIVA Server cards"
clean_blob drivers/isdn/hardware/eicon/cardtype.h
clean_blob drivers/isdn/hardware/eicon/dsp_defs.h
clean_kconfig drivers/isdn/hardware/eicon/Kconfig 'ISDN_DIVAS'
clean_mk CONFIG_ISDN_DIVAS drivers/isdn/hardware/eicon/Makefile
##########
# Serial #
##########
announce SERIAL_8250_CS - "8250/16550 PCMCIA device support"
clean_blob drivers/serial/serial_cs.c
clean_kconfig drivers/serial/Kconfig 'SERIAL_8250_CS'
clean_mk CONFIG_SERIAL_8250_CS drivers/serial/Makefile
announce SERIAL_ICOM - "IBM Multiport Serial Adapter"
reject_firmware drivers/serial/icom.c
clean_blob drivers/serial/icom.c
clean_kconfig drivers/serial/Kconfig 'SERIAL_ICOM'
clean_mk CONFIG_SERIAL_ICOM drivers/serial/Makefile
announce SERIAL_QE - "Freescale QUICC Engine serial port support"
reject_firmware drivers/serial/ucc_uart.c
clean_blob drivers/serial/ucc_uart.c
clean_kconfig drivers/serial/Kconfig 'SERIAL_QE'
clean_mk CONFIG_SERIAL_QE drivers/serial/Makefile
####################
# Data acquisition #
####################
announce COMEDI_PCI_DRIVERS - "Data acquisition support Comedi PCI drivers"
reject_firmware drivers/staging/comedi/drivers/jr3_pci.c
clean_blob drivers/staging/comedi/drivers/jr3_pci.c
clean_kconfig drivers/staging/comedi/Kconfig 'COMEDI_PCI_DRIVERS'
clean_mk CONFIG_COMEDI_PCI_DRIVERS drivers/staging/comedi/drivers/Makefile
announce COMEDI_USB_DRIVERS - "Data acquisition support Comedi USB drivers"
reject_firmware drivers/staging/comedi/drivers/usbdux.c
clean_blob drivers/staging/comedi/drivers/usbdux.c
reject_firmware drivers/staging/comedi/drivers/usbduxfast.c
clean_blob drivers/staging/comedi/drivers/usbduxfast.c
clean_kconfig drivers/staging/comedi/Kconfig 'COMEDI_USB_DRIVERS'
clean_mk CONFIG_COMEDI_USB_DRIVERS drivers/staging/comedi/drivers/Makefile
announce ME4000 - "Meilhaus ME-4000 I/O board"
clean_file drivers/staging/me4000/me4000_firmware.h
clean_file drivers/staging/me4000/me4610_firmware.h
clean_sed '
/^static int me4000_xilinx_download([^;]*$/,/^}$/{
/firm = .*xilinx_firm.*/i\
printk(KERN_ERR "me4000: Missing Free firmware\\n");\
return -EIO;
}
' drivers/staging/me4000/me4000.c 'report missing Free firmware'
clean_blob drivers/staging/me4000/me4000.c
clean_kconfig drivers/staging/me4000/Kconfig 'ME4000'
clean_mk CONFIG_ME4000 drivers/staging/me4000/Makefile
announce MEILHAUS - "Meilhaus support"
reject_firmware drivers/staging/meilhaus/mefirmware.c
clean_kconfig drivers/staging/meilhaus/Kconfig 'MEILHAUS'
clean_mk CONFIG_MEILHAUS drivers/staging/meilhaus/Makefile
announce ME4600 - "Meilhaus ME-4600 support"
clean_blob drivers/staging/meilhaus/me4600_device.c
clean_kconfig drivers/staging/meilhaus/Kconfig 'ME4600'
clean_mk CONFIG_ME4600 drivers/staging/meilhaus/Makefile
announce ME6000 - "Meilhaus ME-6000 support"
clean_blob drivers/staging/meilhaus/me6000_device.c
clean_kconfig drivers/staging/meilhaus/Kconfig 'ME6000'
clean_mk CONFIG_ME6000 drivers/staging/meilhaus/Makefile
########
# SCSI #
########
announce SCSI_QLOGICPTI - "PTI Qlogic, ISP Driver"
drop_fw_file firmware/qlogic/isp1000.bin.ihex firmware/qlogic/isp1000.bin
reject_firmware drivers/scsi/qlogicpti.c
clean_blob drivers/scsi/qlogicpti.c
clean_kconfig drivers/scsi/Kconfig 'SCSI_QLOGICPTI'
clean_mk CONFIG_SCSI_QLOGICPTI drivers/scsi/Makefile
announce SCSI_ADVANSYS - "AdvanSys SCSI"
drop_fw_file firmware/advansys/mcode.bin.ihex firmware/advansys/mcode.bin
drop_fw_file firmware/advansys/3550.bin.ihex firmware/advansys/3550.bin
drop_fw_file firmware/advansys/38C0800.bin.ihex firmware/advansys/38C0800.bin
drop_fw_file firmware/advansys/38C1600.bin.ihex firmware/advansys/38C1600.bin
reject_firmware drivers/scsi/advansys.c
clean_blob drivers/scsi/advansys.c
clean_kconfig drivers/scsi/Kconfig 'SCSI_ADVANSYS'
clean_mk CONFIG_SCSI_ADVANSYS drivers/scsi/Makefile
announce SCSI_QLOGIC_1280 - "Qlogic QLA 1240/1x80/1x160 SCSI"
drop_fw_file firmware/qlogic/1040.bin.ihex firmware/qlogic/1040.bin
drop_fw_file firmware/qlogic/1280.bin.ihex firmware/qlogic/1280.bin
drop_fw_file firmware/qlogic/12160.bin.ihex firmware/qlogic/12160.bin
reject_firmware drivers/scsi/qla1280.c
clean_blob drivers/scsi/qla1280.c
clean_kconfig drivers/scsi/Kconfig 'SCSI_QLOGIC_1280'
clean_mk CONFIG_SCSI_QLOGIC_1280 drivers/scsi/Makefile
announce SCSI_AIC94XX - "Adaptec AIC94xx SAS/SATA support"
reject_firmware drivers/scsi/aic94xx/aic94xx_seq.c
clean_blob drivers/scsi/aic94xx/aic94xx_seq.c
clean_blob drivers/scsi/aic94xx/aic94xx_seq.h
clean_kconfig drivers/scsi/aic94xx/Kconfig 'SCSI_AIC94XX'
clean_mk CONFIG_SCSI_AIC94XX drivers/scsi/aic94xx/Makefile
announce SCSI_QLA_FC - "QLogic QLA2XXX Fibre Channel Support"
reject_firmware drivers/scsi/qla2xxx/qla_gbl.h
reject_firmware drivers/scsi/qla2xxx/qla_init.c
reject_firmware drivers/scsi/qla2xxx/qla_os.c
clean_sed '
/^config SCSI_QLA_FC$/,/^config /{
/^ By default, firmware/i\
/*(DEBLOBBED)*/
/^ By default, firmware/,/ftp:[/][/].*firmware[/]/d
}' drivers/scsi/qla2xxx/Kconfig 'removed firmware notes'
clean_blob drivers/scsi/qla2xxx/qla_os.c
clean_kconfig drivers/scsi/qla2xxx/Kconfig 'SCSI_QLA_FC'
clean_mk CONFIG_SCSI_QLA_FC drivers/scsi/qla2xxx/Makefile
#######
# USB #
#######
# atm
announce USB_CXACRU - "Conexant AccessRunner USB support"
reject_firmware drivers/usb/atm/cxacru.c
clean_blob drivers/usb/atm/cxacru.c
clean_kconfig drivers/usb/atm/Kconfig 'USB_CXACRU'
clean_mk CONFIG_USB_CXACRU drivers/usb/atm/Makefile
announce USB_SPEEDTOUCH - "Speedtouch USB support"
reject_firmware drivers/usb/atm/speedtch.c
clean_blob drivers/usb/atm/speedtch.c
clean_kconfig drivers/usb/atm/Kconfig 'USB_SPEEDTOUCH'
clean_mk CONFIG_USB_SPEEDTOUCH drivers/usb/atm/Makefile
announce USB_UEAGLEATM - "ADI 930 and eagle USB DSL modem"
reject_firmware drivers/usb/atm/ueagle-atm.c
clean_blob drivers/usb/atm/ueagle-atm.c
clean_kconfig drivers/usb/atm/Kconfig 'USB_UEAGLEATM'
clean_mk CONFIG_USB_UEAGLEATM drivers/usb/atm/Makefile
# misc
announce USB_EMI26 - "EMI 2|6 USB Audio interface"
# These files are not under the GPL, better remove them all.
drop_fw_file firmware/emi26/bitstream.HEX firmware/emi26/bitstream.fw
drop_fw_file firmware/emi26/firmware.HEX firmware/emi26/firmware.fw
drop_fw_file firmware/emi26/loader.HEX firmware/emi26/loader.fw
reject_firmware drivers/usb/misc/emi26.c
clean_blob drivers/usb/misc/emi26.c
clean_kconfig drivers/usb/misc/Kconfig 'USB_EMI26'
clean_mk CONFIG_USB_EMI26 drivers/usb/misc/Makefile
announce USB_EMI62 - "EMI 6|2m USB Audio interface"
# These files are probably not under the GPL, better remove them all.
drop_fw_file firmware/emi62/bitstream.HEX firmware/emi62/bitstream.fw
drop_fw_file firmware/emi62/loader.HEX firmware/emi62/loader.fw
drop_fw_file firmware/emi62/midi.HEX firmware/emi62/midi.fw
drop_fw_file firmware/emi62/spdif.HEX firmware/emi62/spdif.fw
reject_firmware drivers/usb/misc/emi62.c
clean_blob drivers/usb/misc/emi62.c
clean_kconfig drivers/usb/misc/Kconfig 'USB_EMI62'
clean_mk CONFIG_USB_EMI62 drivers/usb/misc/Makefile
announce USB_ISIGHTFW - "iSight firmware loading support"
reject_firmware drivers/usb/misc/isight_firmware.c
clean_blob drivers/usb/misc/isight_firmware.c
clean_kconfig drivers/usb/misc/Kconfig 'USB_ISIGHTFW'
clean_mk CONFIG_USB_ISIGHTFW drivers/usb/misc/Makefile
# serial
announce USB_SERIAL_KEYSPAN - "USB Keyspan USA-xxx Serial Driver"
drop_fw_file firmware/keyspan/mpr.HEX firmware/keyspan/mpr.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_MPR'
drop_fw_file firmware/keyspan/usa18x.HEX firmware/keyspan/usa18x.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA18X'
drop_fw_file firmware/keyspan/usa19.HEX firmware/keyspan/usa19.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19'
drop_fw_file firmware/keyspan/usa19qi.HEX firmware/keyspan/usa19qi.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19QI'
drop_fw_file firmware/keyspan/usa19qw.HEX firmware/keyspan/usa19qw.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19QW'
drop_fw_file firmware/keyspan/usa19w.HEX firmware/keyspan/usa19w.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19W'
drop_fw_file firmware/keyspan/usa28.HEX firmware/keyspan/usa28.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28'
drop_fw_file firmware/keyspan/usa28xa.HEX firmware/keyspan/usa28xa.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28XA'
drop_fw_file firmware/keyspan/usa28xb.HEX firmware/keyspan/usa28xb.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28XB'
drop_fw_file firmware/keyspan/usa28x.HEX firmware/keyspan/usa28x.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28X'
drop_fw_file firmware/keyspan/usa49w.HEX firmware/keyspan/usa49w.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA49W'
drop_fw_file firmware/keyspan/usa49wlc.HEX firmware/keyspan/usa49wlc.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA49WLC'
reject_firmware drivers/usb/serial/keyspan.c
clean_blob drivers/usb/serial/keyspan.c
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN'
clean_mk CONFIG_USB_SERIAL_KEYSPAN drivers/usb/serial/Makefile
announce USB_SERIAL_KEYSPAN_PDA - "USB Keyspan PDA Single Port Serial Driver"
clean_sed '
s,request_ihex_firmware,/*KEYSPAN_PDA*/&,
' drivers/usb/serial/keyspan_pda.c 'accept Free firmware'
announce USB_SERIAL_EDGEPORT - "USB Inside Out Edgeport Serial Driver"
clean_fw firmware/edgeport/boot.H16 firmware/edgeport/boot.fw
clean_fw firmware/edgeport/boot2.H16 firmware/edgeport/boot2.fw
clean_fw firmware/edgeport/down.H16 firmware/edgeport/down.fw
clean_fw firmware/edgeport/down2.H16 firmware/edgeport/down2.fw
reject_firmware drivers/usb/serial/io_edgeport.c
clean_blob drivers/usb/serial/io_edgeport.c
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_EDGEPORT'
clean_mk CONFIG_USB_SERIAL_EDGEPORT drivers/usb/serial/Makefile
announce USB_SERIAL_EDGEPORT_TI - "USB Inside Out Edgeport Serial Driver (TI devices)"
clean_fw firmware/edgeport/down3.bin.ihex firmware/edgeport/down3.bin
reject_firmware drivers/usb/serial/io_ti.c
clean_blob drivers/usb/serial/io_ti.c
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_EDGEPORT_TI'
clean_mk CONFIG_USB_SERIAL_EDGEPORT_TI drivers/usb/serial/Makefile
announce USB_SERIAL_TI - "USB TI 3410/5052 Serial Driver"
drop_fw_file firmware/ti_3410.fw.ihex firmware/ti_3410.fw
drop_fw_file firmware/ti_5052.fw.ihex firmware/ti_5052.fw
drop_fw_file firmware/mts_cdma.fw.ihex firmware/mts_cdma.fw
drop_fw_file firmware/mts_gsm.fw.ihex firmware/mts_gsm.fw
drop_fw_file firmware/mts_edge.fw.ihex firmware/mts_edge.fw
reject_firmware drivers/usb/serial/ti_usb_3410_5052.c
clean_blob drivers/usb/serial/ti_usb_3410_5052.c
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_TI'
clean_mk CONFIG_USB_SERIAL_TI drivers/usb/serial/Makefile
announce USB_SERIAL_WHITEHEAT - "USB ConnectTech WhiteHEAT Serial Driver"
clean_fw firmware/whiteheat.HEX firmware/whiteheat.fw
clean_fw firmware/whiteheat_loader.HEX firmware/whiteheat_loader.fw
clean_fw firmware/whiteheat_loader_debug.HEX firmware/whiteheat_loader_debug.fw
reject_firmware drivers/usb/serial/whiteheat.c
clean_blob drivers/usb/serial/whiteheat.c
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_WHITEHEAT'
clean_mk CONFIG_USB_SERIAL_WHITEHEAT drivers/usb/serial/Makefile
# uwb
announce UWB_I1480U - Support for Intel Wireless UWB Link 1480 HWA
reject_firmware drivers/uwb/i1480/dfu/i1480-dfu.h
reject_firmware drivers/uwb/i1480/dfu/mac.c
reject_firmware drivers/uwb/i1480/dfu/phy.c
clean_blob drivers/uwb/i1480/dfu/usb.c
clean_kconfig drivers/uwb/Kconfig 'UWB_I1480U'
clean_mk CONFIG_UWB_I1480U drivers/uwb/i1480/dfu/Makefile
#########
# Sound #
#########
announce SND_CS46XX - "Cirrus Logic (Sound Fusion) CS4280/CS461x/CS462x/CS463x"
# This appears to have been extracted from some non-Free driver
clean_file sound/pci/cs46xx/cs46xx_image.h
# The following blobs are definitely extracted from non-Free drivers.
clean_file sound/pci/cs46xx/imgs/cwc4630.h
clean_file sound/pci/cs46xx/imgs/cwcasync.h
clean_file sound/pci/cs46xx/imgs/cwcsnoop.h
clean_sed '
/^\(int \)\?snd_cs46xx_download_image([^;]*$/,/^}$/{
/for.*BA1_MEMORY_COUNT/i\
#if 0
/^}$/{
i\
#else\
snd_printk(KERN_ERR "cs46xx: Missing Free firmware\\n");\
return -EINVAL;\
#endif
}
}
s/cs46xx_dsp_load_module(chip, [&]cwc\(4630\|async\|snoop\)_module)/(snd_printk(KERN_ERR "cs46xx: Missing Free firmware\\n"),-EINVAL)/
' sound/pci/cs46xx/cs46xx_lib.c 'report missing Free firmware'
clean_blob sound/pci/cs46xx/cs46xx_lib.c
clean_kconfig sound/pci/Kconfig 'SND_CS46XX'
clean_mk 'CONFIG_SND_CS46XX' sound/pci/cs46xx/Makefile
announce SND_KORG1212 - "Korg 1212 IO"
drop_fw_file firmware/korg/k1212.dsp.ihex firmware/korg/k1212.dsp
reject_firmware sound/pci/korg1212/korg1212.c
clean_blob sound/pci/korg1212/korg1212.c
clean_kconfig sound/pci/Kconfig 'SND_KORG1212'
clean_mk 'CONFIG_SND_KORG1212' sound/pci/korg1212/Makefile
announce SND_MAESTRO3 - "ESS Allegro/Maestro3"
drop_fw_file firmware/ess/maestro3_assp_kernel.fw.ihex firmware/ess/maestro3_assp_kernel.fw
drop_fw_file firmware/ess/maestro3_assp_minisrc.fw.ihex firmware/ess/maestro3_assp_minisrc.fw
reject_firmware sound/pci/maestro3.c
clean_blob sound/pci/maestro3.c
clean_kconfig sound/pci/Kconfig 'SND_MAESTRO3'
clean_mk 'CONFIG_SND_MAESTRO3' sound/pci/Makefile
announce SND_YMFPCI - "Yamaha YMF724/740/744/754"
drop_fw_file firmware/yamaha/ds1_ctrl.fw.ihex firmware/yamaha/ds1_ctrl.fw
drop_fw_file firmware/yamaha/ds1_dsp.fw.ihex firmware/yamaha/ds1_dsp.fw
drop_fw_file firmware/yamaha/ds1e_ctrl.fw.ihex firmware/yamaha/ds1e_ctrl.fw
reject_firmware sound/pci/ymfpci/ymfpci_main.c
clean_blob sound/pci/ymfpci/ymfpci_main.c
clean_kconfig sound/pci/Kconfig 'SND_YMFPCI'
clean_mk 'CONFIG_SND_YMFPCI' sound/pci/ymfpci/Makefile
announce SND_SB16_CSP - "SB16 Advanced Signal Processor"
drop_fw_file firmware/sb16/alaw_main.csp.ihex firmware/sb16/alaw_main.csp
drop_fw_file firmware/sb16/mulaw_main.csp.ihex firmware/sb16/mulaw_main.csp
drop_fw_file firmware/sb16/ima_adpcm_init.csp.ihex firmware/sb16/ima_adpcm_init.csp
drop_fw_file firmware/sb16/ima_adpcm_capture.csp.ihex firmware/sb16/ima_adpcm_capture.csp
drop_fw_file firmware/sb16/ima_adpcm_playback.csp.ihex firmware/sb16/ima_adpcm_playback.csp
reject_firmware sound/isa/sb/sb16_csp.c
clean_blob sound/isa/sb/sb16_csp.c
clean_kconfig sound/isa/Kconfig 'SND_SB16_CSP'
clean_mk 'CONFIG_SND_SB16_CSP' sound/isa/sb/Makefile
announce SND_WAVEFRONT - "Turtle Beach Maui,Tropez,Tropez+ (Wavefront)"
drop_fw_file firmware/yamaha/yss225_registers.bin.ihex firmware/yamaha/yss225_registers.bin
reject_firmware sound/isa/wavefront/wavefront_fx.c
clean_blob sound/isa/wavefront/wavefront_fx.c
reject_firmware sound/isa/wavefront/wavefront_synth.c
clean_blob sound/isa/wavefront/wavefront_synth.c
clean_kconfig sound/isa/Kconfig 'SND_WAVEFRONT'
clean_mk 'CONFIG_SND_WAVEFRONT' sound/isa/wavefront/Makefile
announce SND_VX_LIB - Digigram VX soundcards
reject_firmware sound/drivers/vx/vx_hwdep.c
clean_blob sound/drivers/vx/vx_hwdep.c
clean_kconfig sound/drivers/Kconfig 'SND_VX_LIB'
clean_mk CONFIG_SND_VX_LIB sound/drivers/vx/Makefile
announce SND_DARLA20 - "(Echoaudio) Darla20"
clean_blob sound/pci/echoaudio/darla20.c
clean_kconfig sound/pci/Kconfig 'SND_DARLA20'
clean_mk CONFIG_SND_DARLA20 sound/pci/echoaudio/Makefile
announce SND_DARLA24 - "(Echoaudio) Darla24"
clean_blob sound/pci/echoaudio/darla24.c
clean_kconfig sound/pci/Kconfig 'SND_DARLA24'
clean_mk CONFIG_SND_DARLA24 sound/pci/echoaudio/Makefile
announce SND_ECHO3G - "(Echoaudio) 3G cards"
clean_blob sound/pci/echoaudio/echo3g.c
clean_kconfig sound/pci/Kconfig 'SND_ECHO3G'
clean_mk CONFIG_SND_ECHO3G sound/pci/echoaudio/Makefile
announce SND_GINA20 - "(Echoaudio) Gina20"
clean_blob sound/pci/echoaudio/gina20.c
clean_kconfig sound/pci/Kconfig 'SND_GINA20'
clean_mk CONFIG_SND_GINA20 sound/pci/echoaudio/Makefile
announce SND_GINA24 - "(Echoaudio) Gina24"
clean_blob sound/pci/echoaudio/gina24.c
clean_kconfig sound/pci/Kconfig 'SND_GINA24'
clean_mk CONFIG_SND_GINA24 sound/pci/echoaudio/Makefile
announce SND_INDIGO - "(Echoaudio) Indigo"
clean_blob sound/pci/echoaudio/indigo.c
clean_kconfig sound/pci/Kconfig 'SND_INDIGO'
clean_mk CONFIG_SND_INDIGO sound/pci/echoaudio/Makefile
announce SND_INDIGODJ - "(Echoaudio) Indigo DJ"
clean_blob sound/pci/echoaudio/indigodj.c
clean_kconfig sound/pci/Kconfig 'SND_INDIGODJ'
clean_mk CONFIG_SND_INDIGODJ sound/pci/echoaudio/Makefile
announce SND_INDIGODJX - "(Echoaudio) Indigo DJx"
clean_blob sound/pci/echoaudio/indigodjx.c
clean_kconfig sound/pci/Kconfig 'SND_INDIGODJX'
clean_mk CONFIG_SND_INDIGODJX sound/pci/echoaudio/Makefile
announce SND_INDIGOIO - "(Echoaudio) Indigo IO"
clean_blob sound/pci/echoaudio/indigoio.c
clean_kconfig sound/pci/Kconfig 'SND_INDIGOIO'
clean_mk CONFIG_SND_INDIGOIO sound/pci/echoaudio/Makefile
announce SND_INDIGOIOX - "(Echoaudio) Indigo IOx"
clean_blob sound/pci/echoaudio/indigoiox.c
clean_kconfig sound/pci/Kconfig 'SND_INDIGOIOX'
clean_mk CONFIG_SND_INDIGOIOX sound/pci/echoaudio/Makefile
announce SND_LAYLA20 - "(Echoaudio) Layla20"
clean_blob sound/pci/echoaudio/layla20.c
clean_kconfig sound/pci/Kconfig 'SND_LAYLA20'
clean_mk CONFIG_SND_LAYLA20 sound/pci/echoaudio/Makefile
announce SND_LAYLA24 - "(Echoaudio) Layla24"
clean_blob sound/pci/echoaudio/layla24.c
clean_kconfig sound/pci/Kconfig 'SND_LAYLA24'
clean_mk CONFIG_SND_LAYLA24 sound/pci/echoaudio/Makefile
announce SND_MIA - "(Echoaudio) Mia"
clean_blob sound/pci/echoaudio/mia.c
clean_kconfig sound/pci/Kconfig 'SND_MIA'
clean_mk CONFIG_SND_MIA sound/pci/echoaudio/Makefile
announce SND_MONA - "(Echoaudio) Mona"
clean_blob sound/pci/echoaudio/mona.c
clean_kconfig sound/pci/Kconfig 'SND_MONA'
clean_mk CONFIG_SND_MONA sound/pci/echoaudio/Makefile
announce SND_'<(Echoaudio)>' - "(Echoaudio) all of the above "
reject_firmware sound/pci/echoaudio/echoaudio.c
clean_blob sound/pci/echoaudio/echoaudio.c
announce SND_EMU10K1 - "Emu10k1 (SB Live!, Audigy, E-mu APS)"
reject_firmware sound/pci/emu10k1/emu10k1_main.c
clean_blob sound/pci/emu10k1/emu10k1_main.c
clean_kconfig sound/pci/Kconfig 'SND_EMU10K1'
clean_mk CONFIG_SND_EMU10K1 sound/pci/emu10k1/Makefile
announce SND_MIXART - "Digigram miXart"
reject_firmware sound/pci/mixart/mixart_hwdep.c
clean_blob sound/pci/mixart/mixart_hwdep.c
clean_kconfig sound/pci/Kconfig 'SND_MIXART'
clean_mk CONFIG_SND_MIXART sound/pci/mixart/Makefile
announce SND_PCXHR - "Digigram PCXHR"
reject_firmware sound/pci/pcxhr/pcxhr_hwdep.c
clean_blob sound/pci/pcxhr/pcxhr_hwdep.c
clean_kconfig sound/pci/Kconfig 'SND_PCXHR'
clean_mk CONFIG_SND_PCXHR sound/pci/pcxhr/Makefile
announce SND_RIPTIDE - "Conexant Riptide"
reject_firmware sound/pci/riptide/riptide.c
clean_blob sound/pci/riptide/riptide.c
clean_kconfig sound/pci/Kconfig 'SND_RIPTIDE'
clean_mk CONFIG_SND_RIPTIDE sound/pci/riptide/Makefile
announce SND_HDSP - "RME Hammerfall DSP Audio"
reject_firmware sound/pci/rme9652/hdsp.c
clean_blob sound/pci/rme9652/hdsp.c
clean_kconfig sound/pci/Kconfig 'SND_HDSP'
clean_mk CONFIG_SND_HDSP sound/pci/rme9652/Makefile
announce SND_AICA - "Dreamcast Yamaha AICA sound"
reject_firmware sound/sh/aica.c
clean_blob sound/sh/aica.c
clean_kconfig sound/sh/Kconfig 'SND_AICA'
clean_mk CONFIG_SND_AICA sound/sh/Makefile
announce SND_MSND_PINNACLE - "Support for Turtle Beach MultiSound Pinnacle"
clean_blob sound/isa/msnd/msnd_pinnacle.h
reject_firmware sound/isa/msnd/msnd_pinnacle.c
clean_blob sound/isa/msnd/msnd_pinnacle.c
clean_kconfig sound/isa/Kconfig 'SND_MSND_PINNACLE'
clean_mk CONFIG_SND_MSND_PINNACLE sound/isa/msnd/Makefile
announce SND_MSND_CLASSIC - "Support for Turtle Beach MultiSound Classic, Tahiti, Monterey"
clean_blob sound/isa/msnd/msnd_classic.h
clean_kconfig sound/isa/Kconfig 'SND_MSND_CLASSIC'
clean_mk CONFIG_SND_MSND_CLASSIC sound/isa/msnd/Makefile
announce SOUND_MSNDCLAS - "Support for Turtle Beach MultiSound Classic, Tahiti, Monterey (oss)"
clean_blob sound/oss/msnd_classic.h
clean_kconfig sound/oss/Kconfig 'SOUND_MSNDCLAS'
clean_sed '
/^config MSNDCLAS_INIT_FILE$/, /^config / {
/^ default.*msndinit\.bin/ s,".*","/*(DEBLOBBED)*/",;
}
/^config MSNDCLAS_PERM_FILE$/, /^config / {
/^ default.*msndperm\.bin/ s,".*","/*(DEBLOBBED)*/",;
}' sound/oss/Kconfig 'removed default firmware'
clean_mk CONFIG_SOUND_MSNDCLAS sound/oss/Makefile
announce SOUND_MSNDPIN - "Support for Turtle Beach MultiSound Pinnacle (oss)"
clean_blob sound/oss/msnd_pinnacle.h
clean_kconfig sound/oss/Kconfig 'SOUND_MSNDPIN'
clean_sed '
/^config MSNDPIN_INIT_FILE$/, /^config / {
/^ default.*pndspini\.bin/ s,".*","/*(DEBLOBBED)*/",;
}
/^config MSNDPIN_PERM_FILE$/, /^config / {
/^ default.*pndsperm\.bin/ s,".*","/*(DEBLOBBED)*/",;
}' sound/oss/Kconfig 'removed default firmware'
clean_mk CONFIG_SOUND_MSNDPIN sound/oss/Makefile
announce SOUND_SSCAPE - "Ensoniq SoundScape support"
clean_blob sound/oss/sscape.c
clean_kconfig sound/oss/Kconfig 'SOUND_SSCAPE'
clean_mk CONFIG_SOUND_SSCAPE sound/oss/Makefile
announce SOUND_TRIX - "MediaTrix AudioTrix Pro support"
clean_blob sound/oss/trix.c
clean_kconfig sound/oss/Kconfig 'SOUND_TRIX'
clean_sed '
/^config TRIX_BOOT_FILE$/, /^config / {
/^ default.*trxpro\.hex/ s,".*","/*(DEBLOBBED)*/",;
}' sound/oss/Kconfig 'removed default firmware'
clean_mk CONFIG_SOUND_TRIX sound/oss/Makefile
announce SOUND_TRIX - "See above,"
announce SOUND_PAS - "ProAudioSpectrum 16 support,"
announce SOUND_SB - "100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support"
clean_blob sound/oss/sb_common.c
clean_kconfig sound/oss/Kconfig 'SOUND_PAS'
clean_kconfig sound/oss/Kconfig 'SOUND_SB'
clean_mk CONFIG_SOUND_PAS sound/oss/Makefile
clean_mk CONFIG_SOUND_SB sound/oss/Makefile
announce SOUND_PSS - "PSS (AD1848, ADSP-2115, ESC614) support"
clean_sed 's,^\( [*] .*synth"\)\.$,\1/*.,' sound/oss/pss.c 'avoid nested comments'
clean_blob sound/oss/pss.c
clean_kconfig sound/oss/Kconfig 'SOUND_PSS'
clean_sed '
/^config PSS_BOOT_FILE$/, /^config / {
/^ default.*dsp001\.ld/ s,".*","/*(DEBLOBBED)*/",;
}' sound/oss/Kconfig 'removed default firmware'
clean_mk CONFIG_SOUND_PSS sound/oss/Makefile
#################
# Documentation #
#################
announce Documentation - "non-Free firmware scripts and documentation"
clean_blob Documentation/dvb/avermedia.txt
clean_blob Documentation/dvb/opera-firmware.txt
clean_blob Documentation/dvb/ttusb-dec.txt
clean_blob Documentation/sound/alsa/ALSA-Configuration.txt
clean_blob Documentation/sound/oss/MultiSound
clean_blob Documentation/sound/oss/PSS
clean_blob Documentation/sound/oss/PSS-updates
clean_file Documentation/dvb/get_dvb_firmware
clean_file Documentation/video4linux/extract_xc3028.pl
clean_sed s,usb8388,whatever,g drivers/base/Kconfig 'removed blob name'
clean_blob firmware/README.AddingFirmware
clean_blob firmware/WHENCE
if $errors; then
echo errors above were ignored because of --force >&2
fi
exit 0
#!/bin/sh
# Copyright (C) 2008, 2009, 2010 Alexandre Oliva <lxoliva@fsfla.org>
# Copyright (C) 2008 Jeff Moe
# Copyright (C) 2009 Rubén Rodríguez <ruben@gnu.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# 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 have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# deblob - remove non-free blobs from the vanilla linux kernel
# http://www.fsfla.org/svn/fsfla/software/linux-libre
# This script, suited for the kernel version named below, in kver,
# attempts to remove only non-Free Software bits, without removing
# Free Software that happens to be in the same file.
# Drivers that currently require non-Free firmware are retained, but
# firmware included in GPLed sources is replaced with /*(DEBLOBBED)*/
# if the deblob-check script, that knows how to do this, is present.
# -lxoliva
# See also:
# http://wiki.debian.org/KernelFirmwareLicensing
# svn://svn.debian.org/kernel/dists/trunk/linux-2.6/debian/patches/debian/dfsg/files-1
# http://svn.gnewsense.svnhopper.net/gnewsense/builder/trunk/firmware/firmware-removed
# http://svn.gnewsense.svnhopper.net/gnewsense/builder/trunk/gen-kernel
# Thanks to Brian Brazil @ gnewsense
# For each kver release, start extra with an empty string, then count
# from 1 if changes are needed that require rebuilding the tarball.
kver=2.6.31 extra=3
case $1 in
--force)
echo "WARNING: Using the force, ignored errors will be" >&2
die () {
echo ERROR: "$@" >&2
errors=:
}
forced=: errors=false
shift
;;
*)
die () {
echo ERROR: "$@" >&2
echo Use --force to ignore
exit 1
}
forced=false errors=false
;;
esac
check=`echo "$0" | sed 's,[^/]*$,,;s,^$,.,;s,/*$,,'`/deblob-check
if [ ! -f $check ] ; then
if $forced; then
die deblob-check script missing, will remove entire files
else
die deblob-check script missing
fi
have_check=false
else
have_check=:
fi
filetest () {
if [ ! -f $1 ]; then
die $1 does not exist, something is wrong && return 1
fi
}
announce () {
echo
echo "$@"
}
clean_file () {
#$1 = filename
filetest $1 || return
rm $1
echo $1: removed
}
check_changed () {
#$1 = filename
if cmp $1.deblob $1 > /dev/null; then
rm $1.deblob
die $1 did not change, something is wrong && return 1
fi
mv $1.deblob $1
}
clean_blob () {
#$1 = filename
filetest $1 || return
if $have_check; then
name=$1
set fnord "$@" -d
shift 2
$check "$@" -i linux-$kver $name > $name.deblob
check_changed $name && echo $name: removed blobs
else
clean_file $1
fi
}
dummy_blob () {
#$1 = filename
if test -f $1; then
die $1 exists, something is wrong && return
elif test ! -f firmware/Makefile; then
die firmware/Makefile does not exist, something is wrong && return
fi
clean_sed "s,`echo $1 | sed s,^firmware/,,`,\$(DEBLOBBED),g" \
firmware/Makefile "dropped $1"
}
clean_fw () {
#$1 = firmware text input, $2 = firmware output
filetest $1 || return
if test -f $2; then
die $2 exists, something is wrong && return
fi
clean_blob $1 -s 4
dummy_blob $2
}
drop_fw_file () {
#$1 = firmware text input, $2 = firmware output
filetest $1 || return
if test -f $2; then
die $2 exists, something is wrong && return
fi
clean_file $1
dummy_blob $2
}
clean_kconfig () {
#$1 = filename $2 = things to remove
case $1 in
-f)
shift
;;
*)
if $have_check; then
return
fi
;;
esac
filetest $1 || return
sed "/^config \\($2\\)\$/{p;i\
depends on NONFREE
d;}" $1 > $1.deblob
check_changed $1 && echo $1: marked config $2 as depending on NONFREE
}
clean_mk () {
#$1 = config $2 = Makefile name
# We don't clean up Makefiles any more --lxoliva
# sed -i "/\\($1\\)/d" $2
# echo $2: removed $1 support
# check_changed $2
filetest $2 || return
if sed -n "/\\($1\\)/p" $2 | grep . > /dev/null; then
:
else
die $2 does not contain matches for $1
fi
}
clean_sed () {
#$1 = sed-script $2 = file $3 = comment
filetest $2 || return
sed -e "$1" "$2" > "$2".deblob || {
die $2: failed: ${3-applied sed script $1} && return 1; }
check_changed $2 && echo $2: ${3-applied sed script $1}
}
reject_firmware () {
#$1 = file
filetest $1 || return
clean_sed '
s,request\(_ihex\)\?_firmware\(_nowait\)\?,reject_firmware\2,g
' "$1" 'disabled non-Free firmware-loading machinery'
}
maybe_reject_firmware () {
#$1 = file
filetest $1 || return
clean_sed '
s,request_firmware\(_nowait\)\?,maybe_reject_firmware\1,g
' "$1" 'retain Free firmware-loading machinery, disabling non-Free one'
}
undefine_macro () {
#$1 - macro name
#$2 - substitution
#$3 - message
#rest - file names
macro=$1 repl=$2 msg=$3; shift 3
for f in "$@"; do
clean_sed "
s,^#define $macro .*\$,/*(DEBLOBBED)*/,;
s,$macro,$repl,g;
" "$f" "$msg"
done
}
undefault_firmware () {
#$1 - pattern such that $1_DEFAULT_FIRMWARE is #defined to non-Free firmware
#$@ other than $1 - file names
macro="$1"_DEFAULT_FIRMWARE; shift
undefine_macro "$macro" "\"/*(DEBLOBBED)*/\"" \
"disabled non-Free firmware" "$@"
}
# First, check that files that contain firmwares and their
# corresponding sources are present.
for f in \
drivers/char/ser_a2232fw.h \
drivers/char/ser_a2232fw.ax \
drivers/net/ixp2000/ixp2400_rx.ucode \
drivers/net/ixp2000/ixp2400_rx.uc \
drivers/net/ixp2000/ixp2400_tx.ucode \
drivers/net/ixp2000/ixp2400_rx.uc \
drivers/net/wan/wanxlfw.inc_shipped \
drivers/net/wan/wanxlfw.S \
drivers/net/wireless/atmel.c \
drivers/net/wireless/atmel.c \
drivers/scsi/53c700_d.h_shipped \
drivers/scsi/53c700.scr \
drivers/scsi/aic7xxx/aic79xx_seq.h_shipped \
drivers/scsi/aic7xxx/aic79xx.seq \
drivers/scsi/aic7xxx/aic7xxx_seq.h_shipped \
drivers/scsi/aic7xxx/aic7xxx.seq \
drivers/scsi/aic7xxx_old/aic7xxx_seq.c \
drivers/scsi/aic7xxx_old/aic7xxx.seq \
drivers/scsi/53c7xx_d.h_shipped \
drivers/scsi/53c7xx.scr \
drivers/scsi/sym53c8xx_2/sym_fw1.h \
drivers/scsi/sym53c8xx_2/sym_fw1.h \
drivers/scsi/sym53c8xx_2/sym_fw2.h \
drivers/scsi/sym53c8xx_2/sym_fw2.h \
firmware/dsp56k/bootstrap.bin.ihex \
firmware/dsp56k/bootstrap.asm \
firmware/keyspan_pda/keyspan_pda.HEX \
firmware/keyspan_pda/keyspan_pda.S \
firmware/keyspan_pda/xircom_pgs.HEX \
firmware/keyspan_pda/xircom_pgs.S \
sound/pci/cs46xx/imgs/cwcdma.h \
sound/pci/cs46xx/imgs/cwcdma.asp \
; do
if test ! $f; then
die $f is not present, something is amiss && return
fi
done
# Identify the tarball.
grep -q 'EXTRAVERSION.*-libre' Makefile ||
clean_sed "s,^EXTRAVERSION.*,&-libre$extra,
" Makefile 'added -libre to EXTRAVERSION'
# Add reject_firmware and maybe_reject_firmware
grep -q _LINUX_LIBRE_FIRMWARE_H include/linux/firmware.h ||
clean_sed '$i\
#ifndef _LINUX_LIBRE_FIRMWARE_H\
#define _LINUX_LIBRE_FIRMWARE_H\
\
#include <linux/device.h>\
\
#define NONFREE_FIRMWARE "/*(DEBLOBBED)*/"\
\
static inline int\
report_missing_free_firmware(const char *name, const char *what)\
{\
printk(KERN_ERR "%s: Missing Free %s\\n", name,\
what ? what : "firmware");\
return -EINVAL;\
}\
static inline int\
reject_firmware(const struct firmware **fw,\
const char *name, struct device *device)\
{\
const struct firmware *xfw = NULL;\
int retval;\
report_missing_free_firmware(dev_name(device), NULL);\
retval = request_firmware(&xfw, NONFREE_FIRMWARE, device);\
if (!retval)\
release_firmware(xfw);\
return -EINVAL;\
}\
static inline int\
maybe_reject_firmware(const struct firmware **fw,\
const char *name, struct device *device)\
{\
if (strstr (name, NONFREE_FIRMWARE))\
return reject_firmware(fw, name, device);\
else\
return request_firmware(fw, name, device);\
}\
static inline void\
discard_rejected_firmware(const struct firmware *fw, void *context)\
{\
release_firmware(fw);\
}\
static inline int\
reject_firmware_nowait(struct module *module, int uevent,\
const char *name, struct device *device,\
void *context,\
void (*cont)(const struct firmware *fw,\
void *context))\
{\
int retval;\
report_missing_free_firmware(dev_name(device), NULL);\
retval = request_firmware_nowait(module, uevent, NONFREE_FIRMWARE,\
device, NULL,\
discard_rejected_firmware);\
if (retval)\
return retval;\
return -EINVAL;\
}\
static inline int\
maybe_reject_firmware_nowait(struct module *module, int uevent,\
const char *name, struct device *device,\
void *context,\
void (*cont)(const struct firmware *fw,\
void *context))\
{\
if (strstr (name, NONFREE_FIRMWARE))\
return reject_firmware_nowait(module, uevent, name,\
device, context, cont);\
else\
return request_firmware_nowait(module, uevent, name,\
device, context, cont);\
}\
\
#endif /* _LINUX_LIBRE_FIRMWARE_H */\
' include/linux/firmware.h 'added non-Free firmware notification support'
########
# Arch #
########
# x86
announce MICROCODE_AMD - "AMD microcode patch loading support"
reject_firmware arch/x86/kernel/microcode_amd.c
clean_blob arch/x86/kernel/microcode_amd.c
clean_kconfig arch/x86/Kconfig 'MICROCODE_AMD'
clean_mk CONFIG_MICROCODE_AMD arch/x86/kernel/Makefile
announce MICROCODE_INTEL - "Intel microcode patch loading support"
reject_firmware arch/x86/kernel/microcode_intel.c
clean_blob arch/x86/kernel/microcode_intel.c
clean_kconfig arch/x86/Kconfig 'MICROCODE_INTEL'
clean_mk CONFIG_MICROCODE_INTEL arch/x86/kernel/Makefile
# arm
announce IXP4XX_NPE - "IXP4xx Network Processor Engine support"
reject_firmware arch/arm/mach-ixp4xx/ixp4xx_npe.c
clean_blob Documentation/arm/IXP4xx
announce ARCH_NETX - "Hilscher NetX based"
clean_sed '
s,\([" ]\)request_firmware(,\1reject_firmware(,
' arch/arm/mach-netx/xc.c 'disabled non-Free firmware-loading machinery'
clean_blob arch/arm/mach-netx/xc.c
clean_kconfig arch/arm/Kconfig 'ARCH_NETX'
clean_mk CONFIG_ARCH_NETX arch/arm/Makefile
###########
# Chipset #
###########
announce STLC45XX - "stlc4550/4560 chipset support"
reject_firmware drivers/staging/stlc45xx/stlc45xx.c
clean_blob drivers/staging/stlc45xx/stlc45xx.c
clean_kconfig drivers/staging/stlc45xx/Kconfig 'STLC45XX'
clean_mk CONFIG_STLC45XX drivers/staging/stlc45xx/Makefile
#######
# ATM #
#######
announce ATM_AMBASSADOR - "Madge Ambassador, Collage PCI 155 Server"
reject_firmware drivers/atm/ambassador.c
clean_blob drivers/atm/ambassador.c
clean_fw firmware/atmsar11.HEX firmware/atmsar11.fw
clean_kconfig drivers/atm/Kconfig 'ATM_AMBASSADOR'
clean_mk CONFIG_ATM_AMBASSADOR drivers/atm/Makefile
announce ATM_FORE200E - "FORE Systems 200E-series"
reject_firmware drivers/atm/fore200e.c
clean_blob drivers/atm/fore200e.c
clean_blob Documentation/networking/fore200e.txt
clean_blob drivers/atm/.gitignore
clean_blob Documentation/dontdiff
clean_kconfig drivers/atm/Kconfig 'ATM_FORE200E'
clean_mk CONFIG_ATM_FORE200E drivers/atm/Makefile
announce ATM_SOLOS - "Solos ADSL2+ PCI Multiport card driver"
reject_firmware drivers/atm/solos-pci.c
clean_blob drivers/atm/solos-pci.c
clean_kconfig drivers/atm/Kconfig 'ATM_SOLOS'
clean_mk CONFIG_ATM_SOLOS drivers/atm/Makefile
########
# char #
########
announce COMPUTONE - "Computone IntelliPort Plus serial"
drop_fw_file firmware/intelliport2.bin.ihex firmware/intelliport2.bin
reject_firmware drivers/char/ip2/ip2main.c
clean_blob drivers/char/ip2/ip2main.c
clean_kconfig drivers/char/Kconfig 'COMPUTONE'
clean_mk CONFIG_COMPUTONE drivers/char/Makefile
announce CYCLADES - "Cyclades async mux support"
reject_firmware drivers/char/cyclades.c
clean_blob drivers/char/cyclades.c
clean_kconfig drivers/char/Kconfig 'CYCLADES'
clean_mk CONFIG_CYCLADES drivers/char/Makefile
announce ISI - "Multi-Tech multiport card support"
reject_firmware drivers/char/isicom.c
clean_blob drivers/char/isicom.c
clean_kconfig drivers/char/Kconfig 'ISI'
clean_mk CONFIG_ISI drivers/char/Makefile
announce MOXA_INTELLIO - "Moxa Intellio support"
reject_firmware drivers/char/moxa.c
clean_blob drivers/char/moxa.c
clean_kconfig drivers/char/Kconfig 'MOXA_INTELLIO'
clean_mk CONFIG_MOXA_INTELLIO drivers/char/Makefile
# gpu drm
announce DRM_MGA - "Matrox g200/g400"
clean_blob drivers/gpu/drm/mga/mga_ucode.h
clean_blob drivers/gpu/drm/mga/mga_warp.c
clean_kconfig -f drivers/gpu/drm/Kconfig 'DRM_MGA'
clean_mk CONFIG_DRM_MGA drivers/gpu/drm/Makefile
announce DRM_R128 - "ATI Rage 128"
clean_sed '
/^static void r128_cce_load_microcode(drm_r128_private_t \* dev_priv)/i\
#define r128_cce_load_microcode(dev_priv) \\\
do { \\\
DRM_ERROR("Missing Free microcode!\\n"); \\\
dev->dev_private = (void *)dev_priv; \\\
r128_do_cleanup_cce(dev); \\\
return -EINVAL; \\\
} while (0)
' drivers/gpu/drm/r128/r128_cce.c 'report missing Free microcode'
clean_blob drivers/gpu/drm/r128/r128_cce.c
clean_kconfig -f drivers/gpu/drm/Kconfig 'DRM_R128'
clean_mk CONFIG_DRM_R128 drivers/gpu/drm/Makefile
announce DRM_RADEON - "ATI Radeon"
clean_sed '
/^static void radeon_cp_load_microcode(drm_radeon_private_t \* dev_priv)/i\
#define radeon_cp_load_microcode(dev_priv) \\\
do { \\\
DRM_ERROR("Missing Free microcode!\\n"); \\\
radeon_do_cleanup_cp(dev); \\\
return -EINVAL; \\\
} while (0)
' drivers/gpu/drm/radeon/radeon_cp.c 'report missing Free microcode'
clean_blob drivers/gpu/drm/radeon/radeon_cp.c
clean_blob drivers/gpu/drm/radeon/radeon_microcode.h
clean_sed '
/^static void r100_cp_load_microcode(struct radeon_device \*rdev)/i\
#define r100_cp_load_microcode(rdev) \\\
do { \\\
DRM_ERROR("Missing Free microcode!\\n"); \\\
return -EINVAL; \\\
} while (0)
' drivers/gpu/drm/radeon/r100.c 'report missing Free microcode'
clean_blob drivers/gpu/drm/radeon/r100.c
clean_sed '
/^static void r600_cp_load_microcode(drm_radeon_private_t \*dev_priv)/i\
#define r600_cp_load_microcode(dev_priv) \\\
do { \\\
DRM_ERROR("Missing Free microcode!\\n"); \\\
r600_do_cleanup_cp(dev); \\\
return -EINVAL; \\\
} while (0)
' drivers/gpu/drm/radeon/r600_cp.c 'report missing Free r600 microcode'
clean_sed '
/^static void r700_cp_load_microcode(drm_radeon_private_t \*dev_priv)/i\
#define r700_cp_load_microcode(dev_priv) \\\
do { \\\
DRM_ERROR("Missing Free microcode!\\n"); \\\
r600_do_cleanup_cp(dev); \\\
return -EINVAL; \\\
} while (0)
' drivers/gpu/drm/radeon/r600_cp.c 'report missing Free r700 microcode'
clean_blob drivers/gpu/drm/radeon/r600_cp.c
clean_blob drivers/gpu/drm/radeon/r600_microcode.h
clean_kconfig -f drivers/gpu/drm/Kconfig 'DRM_RADEON'
clean_mk CONFIG_DRM_RADEON drivers/gpu/drm/Makefile
#########
# Media #
#########
# media/tuner
announce MEDIA_TUNER_XC2028 - "XCeive xc2028/xc3028 tuners"
undefault_firmware 'XC\(2028\|3028L\)' \
drivers/media/common/tuners/tuner-xc2028.h \
drivers/media/video/saa7134/saa7134-cards.c \
drivers/media/video/ivtv/ivtv-driver.c \
drivers/media/video/cx18/cx18-driver.c \
drivers/media/video/cx18/cx18-dvb.c \
drivers/media/video/cx23885/cx23885-dvb.c \
drivers/media/video/cx88/cx88-dvb.c \
drivers/media/video/cx88/cx88-cards.c \
drivers/media/video/em28xx/em28xx-cards.c \
drivers/media/dvb/dvb-usb/dib0700_devices.c \
drivers/media/dvb/dvb-usb/cxusb.c
reject_firmware drivers/media/common/tuners/tuner-xc2028.c
clean_kconfig drivers/media/common/tuners/Kconfig 'MEDIA_TUNER_XC2028'
clean_mk CONFIG_MEDIA_TUNER_XC2028 drivers/media/common/tuners/Makefile
announce MEDIA_TUNER_XC5000 - "Xceive XC5000 silicon tuner"
undefine_macro 'XC5000_DEFAULT_FIRMWARE_SIZE' 0 \
'removed non-Free firmware size' drivers/media/common/tuners/xc5000.c
undefault_firmware 'XC5000' \
drivers/media/common/tuners/xc5000.c \
drivers/media/video/cx231xx/cx231xx-cards.c
reject_firmware drivers/media/common/tuners/xc5000.c
clean_kconfig drivers/media/common/tuners/Kconfig 'MEDIA_TUNER_XC5000'
clean_mk CONFIG_MEDIA_TUNER_XC5000 drivers/media/common/tuners/Makefile
announce DVB_USB - "Support for various USB DVB devices"
reject_firmware drivers/media/dvb/dvb-usb/dvb-usb-firmware.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB'
clean_mk CONFIG_DVB_USB drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_AF9005 - "Afatech AF9005 DVB-T USB1.1"
clean_file drivers/media/dvb/dvb-usb/af9005-script.h
clean_sed '
s,^ deb_info("load init script\\n");$, {\n err("Missing Free init script\\n");\n return scriptlen = ret = -EINVAL;\n ,;
' drivers/media/dvb/dvb-usb/af9005-fe.c 'report missing Free init script'
clean_blob drivers/media/dvb/dvb-usb/af9005-fe.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_AF9005'
clean_mk CONFIG_DVB_USB_AF9005 drivers/media/dvb/dvb-usb/Makefile
announce DVB_B2C2_FLEXCOP - "Technisat/B2C2 FlexCopII(b) and FlexCopIII adapters"
reject_firmware drivers/media/dvb/b2c2/flexcop-fe-tuner.c
announce DVB_BT8XX - "BT8xx based PCI cards"
reject_firmware drivers/media/dvb/bt8xx/dvb-bt8xx.c
announce DVB_USB_A800 - "AVerMedia AverTV DVB-T USB 2.0 (A800)"
clean_blob drivers/media/dvb/dvb-usb/a800.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_A800'
clean_mk CONFIG_DVB_USB_A800 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_AF9005 - "Afatech AF9005 DVB-T USB1.1 support"
clean_blob drivers/media/dvb/dvb-usb/af9005.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_AF9005'
clean_mk CONFIG_DVB_USB_AF9005 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_AF9015 - "Afatech AF9015 DVB-T USB2.0 support"
clean_blob drivers/media/dvb/dvb-usb/af9015.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_AF9015'
clean_mk CONFIG_DVB_USB_AF9015 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_CXUSB - "Conexant USB2.0 hybrid reference design support"
clean_blob drivers/media/dvb/dvb-usb/cxusb.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_CXUSB'
clean_mk CONFIG_DVB_USB_CXUSB drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_DIB0700 - "DiBcom DiB0700 USB DVB devices"
clean_blob drivers/media/dvb/dvb-usb/dib0700_devices.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DIB0700'
clean_mk CONFIG_DVB_USB_DIB0700 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_DIBUSB_MB - "DiBcom USB DVB-T devices (based on the DiB3000M-B)"
clean_blob drivers/media/dvb/dvb-usb/dibusb-mb.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DIBUSB_MB'
clean_mk CONFIG_DVB_USB_DIBUSB_MB drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_DIBUSB_MC - "DiBcom USB DVB-T devices (based on the DiB3000M-C/P)"
clean_blob drivers/media/dvb/dvb-usb/dibusb-mc.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DIBUSB_MC'
clean_mk CONFIG_DVB_USB_DIBUSB_MC drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_DIGITV - "Nebula Electronics uDigiTV DVB-T USB2.0 support"
clean_blob drivers/media/dvb/dvb-usb/digitv.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DIGITV'
clean_mk CONFIG_DVB_USB_DIGITV drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_DTT200U - "WideView WT-200U and WT-220U (pen) DVB-T USB2.0 support (Yakumo/Hama/Typhoon/Yuan)"
clean_blob drivers/media/dvb/dvb-usb/dtt200u.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DTT200U'
clean_mk CONFIG_DVB_USB_DTT200U drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_DW2102 - "DvbWorld DVB-S/S2 USB2.0 support"
reject_firmware drivers/media/dvb/dvb-usb/dw2102.c
clean_blob drivers/media/dvb/dvb-usb/dw2102.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DW2102'
clean_mk CONFIG_DVB_USB_DW2102 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_GP8PSK - "GENPIX 8PSK->USB module support"
reject_firmware drivers/media/dvb/dvb-usb/gp8psk.c
clean_blob drivers/media/dvb/dvb-usb/gp8psk.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_GP8PSK'
clean_mk CONFIG_DVB_USB_GP8PSK drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_M920X - "Uli m920x DVB-T USB2.0 support"
reject_firmware drivers/media/dvb/dvb-usb/m920x.c
clean_blob drivers/media/dvb/dvb-usb/m920x.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_M920X'
clean_mk CONFIG_DVB_USB_M920X drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_NOVA_T_USB2 - "Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 support"
clean_blob drivers/media/dvb/dvb-usb/nova-t-usb2.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_NOVA_T_USB2'
clean_mk CONFIG_DVB_USB_NOVA_T_USB2 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_OPERA1 - "Opera1 DVB-S USB2.0 receiver"
reject_firmware drivers/media/dvb/dvb-usb/opera1.c
clean_blob drivers/media/dvb/dvb-usb/opera1.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_OPERA1'
clean_mk CONFIG_DVB_USB_OPERA1 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_TTUSB2 - "Pinnacle 400e DVB-S USB2.0 support"
clean_blob drivers/media/dvb/dvb-usb/ttusb2.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_TTUSB2'
clean_mk CONFIG_DVB_USB_TTUSB2 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_UMT_010 - "HanfTek UMT-010 DVB-T USB2.0 support"
clean_blob drivers/media/dvb/dvb-usb/umt-010.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_UMT_010'
clean_mk CONFIG_DVB_USB_UMT_010 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_VP702X - "TwinhanDTV StarBox and clones DVB-S USB2.0 support"
clean_blob drivers/media/dvb/dvb-usb/vp702x.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_VP702X'
clean_mk CONFIG_DVB_USB_VP702X drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_VP7045 - "TwinhanDTV Alpha/MagicBoxII, DNTV tinyUSB2, Beetle USB2.0 support"
clean_blob drivers/media/dvb/dvb-usb/vp7045.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_VP7045'
clean_mk CONFIG_DVB_USB_VP7045 drivers/media/dvb/dvb-usb/Makefile
# dvb/frontends
announce DVB_AF9013 - "Afatech AF9013 demodulator"
undefault_firmware 'AF9013' \
drivers/media/dvb/frontends/af9013.c \
drivers/media/dvb/frontends/af9013_priv.h
reject_firmware drivers/media/dvb/frontends/af9013.c
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_AF9013'
clean_mk CONFIG_DVB_AF9013 drivers/media/dvb/frontends/Makefile
announce DVB_BCM3510 - "Broadcom BCM3510"
undefault_firmware 'BCM3510' drivers/media/dvb/frontends/bcm3510.c
reject_firmware drivers/media/dvb/frontends/bcm3510.c
reject_firmware drivers/media/dvb/frontends/bcm3510.h
clean_sed '
/You.ll need a firmware/,/dvb-fe-bcm/d;
' drivers/media/dvb/frontends/bcm3510.c \
"removed non-Free firmware notes"
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_BCM3510'
clean_mk CONFIG_DVB_BCM3510 drivers/media/dvb/frontends/Makefile
announce DVB_NXT200X - "NxtWave Communications NXT2002/NXT2004 based"
undefault_firmware 'NXT200[24]' drivers/media/dvb/frontends/nxt200x.c
reject_firmware drivers/media/dvb/frontends/nxt200x.c
clean_blob drivers/media/dvb/frontends/nxt200x.c
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_NXT200X'
clean_mk CONFIG_DVB_NXT200X drivers/media/dvb/frontends/Makefile
announce DVB_OR51132 - "Oren OR51132 based"
reject_firmware drivers/media/dvb/frontends/or51132.c
clean_blob drivers/media/dvb/frontends/or51132.c
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_OR51132'
clean_mk CONFIG_DVB_OR51132 drivers/media/dvb/frontends/Makefile
announce DVB_OR51211 - "Oren OR51211 based"
undefault_firmware 'OR51211' drivers/media/dvb/frontends/or51211.c
reject_firmware drivers/media/dvb/frontends/or51211.c
reject_firmware drivers/media/dvb/frontends/or51211.h
clean_blob drivers/media/dvb/frontends/or51211.c
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_OR51211'
clean_mk CONFIG_DVB_OR51211 drivers/media/dvb/frontends/Makefile
announce DVB_SP8870 - "Spase sp8870"
undefault_firmware 'SP8870' drivers/media/dvb/frontends/sp8870.c
reject_firmware drivers/media/dvb/frontends/sp8870.c
reject_firmware drivers/media/dvb/frontends/sp8870.h
clean_blob drivers/media/dvb/frontends/sp8870.c
clean_kconfig drivers/media/dvb/frontends 'DVB_SP8870'
clean_mk CONFIG_DVB_SP8870 drivers/media/dvb/frontends/Makefile
announce DVB_CX24116 - "Conexant CX24116 based"
undefault_firmware CX24116 drivers/media/dvb/frontends/cx24116.c
reject_firmware drivers/media/dvb/frontends/cx24116.c
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_CX24116'
clean_mk CONFIG_DVB_CX24116 drivers/media/dvb/frontends/Makefile
announce DVB_SP887X - "Spase sp887x based"
undefault_firmware 'SP887X' drivers/media/dvb/frontends/sp887x.c
reject_firmware drivers/media/dvb/frontends/sp887x.c
reject_firmware drivers/media/dvb/frontends/sp887x.h
clean_blob drivers/media/dvb/frontends/sp887x.c
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_SP887X'
clean_mk CONFIG_DVB_SP887X drivers/media/dvb/frontends/Makefile
announce DVB_TDA10048 - "Philips TDA10048HN based"
undefine_macro 'TDA10048_DEFAULT_FIRMWARE_SIZE' 0 \
'removed non-Free firmware size' drivers/media/dvb/frontends/tda10048.c
undefault_firmware 'TDA10048' drivers/media/dvb/frontends/tda10048.c
reject_firmware drivers/media/dvb/frontends/tda10048.c
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_TDA10048'
clean_mk CONFIG_DVB_TDA10048 drivers/media/dvb/frontends/Makefile
announce DVB_TDA1004X - "Philips TDA10045H/TDA10046H"
undefault_firmware 'TDA1004[56]' drivers/media/dvb/frontends/tda1004x.c
reject_firmware drivers/media/dvb/frontends/tda1004x.c
reject_firmware drivers/media/dvb/frontends/tda1004x.h
clean_blob drivers/media/dvb/frontends/tda1004x.c
clean_kconfig drivers/media/dvb/frontends 'DVB_TDA1004X'
clean_mk CONFIG_DVB_TDA1004X drivers/media/dvb/frontends/Makefile
# dvb
announce DVB_AV7110 - "AV7110 cards"
reject_firmware drivers/media/dvb/ttpci/av7110.c
clean_blob drivers/media/dvb/ttpci/av7110.c
clean_kconfig drivers/media/dvb/ttpci/Kconfig 'DVB_AV7110'
clean_mk CONFIG_DVB_AV7110 drivers/media/dvb/ttpci/Makefile
announce DVB_BUDGET - "Budget cards"
reject_firmware drivers/media/dvb/ttpci/budget.c
reject_firmware drivers/media/dvb/frontends/tdhd1.h
announce DVB_BUDGET_AV - "Budget cards with analog video inputs"
reject_firmware drivers/media/dvb/ttpci/budget-av.c
announce DVB_BUDGET_CI - "Budget cards with onboard CI connector"
reject_firmware drivers/media/dvb/ttpci/budget-ci.c
announce DVB_DRX397XD - "Micronas DRX3975D/DRX3977D based"
reject_firmware drivers/media/dvb/frontends/drx397xD.c
clean_blob drivers/media/dvb/frontends/drx397xD_fw.h
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_DRX397XD'
clean_mk CONFIG_DVB_DRX397XD drivers/media/dvb/frontends/Makefile
announce DVB_PLUTO2 - "Pluto2 cards"
reject_firmware drivers/media/dvb/pluto2/pluto2.c
announce SMS_SIANO_MDTV - "Siano SMS1xxx based MDTV receiver"
reject_firmware drivers/media/dvb/siano/smscoreapi.c
clean_blob drivers/media/dvb/siano/smscoreapi.c
clean_blob drivers/media/dvb/siano/sms-cards.c
clean_kconfig drivers/media/dvb/siano/Kconfig 'SMS_SIANO_MDTV'
clean_mk CONFIG_SMS_SIANO_MDTV drivers/media/dvb/siano/Makefile
announce SMS_USB_DRV - "Siano's USB interface support"
reject_firmware drivers/media/dvb/siano/smsusb.c
clean_blob drivers/media/dvb/siano/smsusb.c
clean_kconfig drivers/media/dvb/siano/Kconfig 'SMS_USB_DRV'
clean_mk CONFIG_SMS_USB_DRV drivers/media/dvb/siano/Makefile
announce DVB_TTUSB_BUDGET - "Technotrend/Hauppauge Nova-USB devices"
drop_fw_file firmware/ttusb-budget/dspbootcode.bin.ihex firmware/ttusb-budget/dspbootcode.bin
reject_firmware drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
clean_blob drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
clean_kconfig drivers/media/dvb/ttusb-budget/Kconfig 'DVB_TTUSB_BUDGET'
clean_mk CONFIG_DVB_TTUSB_BUDGET drivers/media/dvb/ttusb-budget/Makefile
announce DVB_TTUSB_DEC - "Technotrend/Hauppauge USB DEC devices"
reject_firmware drivers/media/dvb/ttusb-dec/ttusb_dec.c
clean_blob drivers/media/dvb/ttusb-dec/ttusb_dec.c
clean_kconfig drivers/media/dvb/ttusb-dec/Kconfig 'DVB_TTUSB_DEC'
clean_mk CONFIG_DVB_TTUSB_DEC drivers/media/dvb/ttusb-dec/Makefile
# video
announce VIDEO_BT848 - "BT848 Video For Linux"
reject_firmware drivers/media/video/bt8xx/bttv-cards.c
clean_kconfig drivers/media/video/bt8xx/Kconfig 'VIDEO_BT848'
clean_mk CONFIG_VIDEO_BT848 drivers/media/video/bt8xx/Makefile
announce VIDEO_CPIA2 - "CPiA2 Video For Linux"
clean_fw firmware/cpia2/stv0672_vp4.bin.ihex firmware/cpia2/stv0672_vp4.bin
reject_firmware drivers/media/video/cpia2/cpia2_core.c
clean_blob drivers/media/video/cpia2/cpia2_core.c
clean_kconfig drivers/media/video/cpia2/Kconfig 'VIDEO_CPIA2'
clean_mk CONFIG_VIDEO_CPIA2 drivers/media/video/cpia2/Makefile
announce VIDEO_CX18 - "Conexant cx23418 MPEG encoder support"
reject_firmware drivers/media/video/cx18/cx18-av-firmware.c
reject_firmware drivers/media/video/cx18/cx18-dvb.c
reject_firmware drivers/media/video/cx18/cx18-firmware.c
clean_blob drivers/media/video/cx18/cx18-av-firmware.c
clean_blob drivers/media/video/cx18/cx18-dvb.c
clean_blob drivers/media/video/cx18/cx18-firmware.c
clean_kconfig drivers/media/video/cx18/Kconfig 'VIDEO_CX18'
clean_mk CONFIG_VIDEO_CX18 drivers/media/video/cx18/Makefile
announce VIDEO_CX23885 - "Conexant cx23885 (2388x successor) support"
reject_firmware drivers/media/video/cx23885/cx23885-417.c
clean_blob drivers/media/video/cx23885/cx23885-417.c
clean_kconfig drivers/media/video/cx23885/Kconfig 'VIDEO_CX23885'
clean_mk CONFIG_VIDEO_CX23885 drivers/media/video/cx23885/Makefile
announce VIDEO_CX25840 - "Conexant CX2584x audio/video decoders"
reject_firmware drivers/media/video/cx25840/cx25840-firmware.c
clean_blob drivers/media/video/cx25840/cx25840-firmware.c
clean_kconfig drivers/media/video/cx25840/Kconfig 'VIDEO_CX25840'
clean_mk CONFIG_VIDEO_CX25840 drivers/media/video/cx25840/Makefile
announce VIDEO_CX88_BLACKBIRD - "Blackbird MPEG encoder support (cx2388x + cx23416)"
reject_firmware drivers/media/video/cx88/cx88-blackbird.c
clean_kconfig drivers/media/video/cx88/Kconfig 'VIDEO_CX88_BLACKBIRD'
clean_mk CONFIG_VIDEO_CX88_BLACKBIRD drivers/media/video/cx88/Makefile
announce VIDEO_IVTV - "Conexant cx23416/cx23415 MPEG encoder/decoder support"
reject_firmware drivers/media/video/ivtv/ivtv-firmware.c
clean_blob drivers/media/video/ivtv/ivtv-firmware.c
clean_kconfig drivers/media/video/ivtv/Kconfig 'VIDEO_IVTV'
clean_mk CONFIG_VIDEO_IVTV drivers/media/video/ivtv/Makefile
announce VIDEO_PVRUSB2 - "Hauppauge WinTV-PVR USB2 support"
reject_firmware drivers/media/video/pvrusb2/pvrusb2-hdw.c
clean_blob drivers/media/video/pvrusb2/pvrusb2-devattr.c
clean_kconfig drivers/media/video/pvrusb2/Kconfig 'VIDEO_PVRUSB2'
clean_mk CONFIG_VIDEO_PVRUSB2 drivers/media/video/pvrusb2/Makefile
announce "VIDEO_CX23885, VIDEO_CX88_BLACKBIRD, VIDEO_IVTV, VIDEO_PVRUSB2" - "See above"
clean_blob include/media/cx2341x.h
announce VIDEO_GO7007 - "Go 7007 support"
reject_firmware drivers/staging/go7007/go7007-driver.c
clean_blob drivers/staging/go7007/go7007-driver.c
reject_firmware drivers/staging/go7007/go7007-fw.c
clean_blob drivers/staging/go7007/go7007-usb.c
clean_blob drivers/staging/go7007/saa7134-go7007.c
clean_kconfig drivers/staging/go7007/Kconfig 'VIDEO_GO7007'
clean_mk CONFIG_VIDEO_GO7007 drivers/staging/go7007/Makefile
announce VIDEO_GO7007_USB_S2250_BOARD - "Sensoray 2250/2251 support"
reject_firmware drivers/staging/go7007/s2250-loader.c
clean_blob drivers/staging/go7007/s2250-loader.c
clean_kconfig drivers/staging/go7007/Kconfig 'VIDEO_GO7007_USB_S2250_BOARD'
clean_mk CONFIG_VIDEO_GO7007_USB_S2250_BOARD drivers/staging/go7007/Makefile
announce VIDEO_SAA7134_DVB - "DVB/ATSC Support for saa7134 based TV cards"
reject_firmware drivers/media/video/saa7134/saa7134-dvb.c
clean_kconfig drivers/media/video/saa7134/Kconfig 'VIDEO_SAA7134_DVB'
clean_mk CONFIG_VIDEO_SAA7134_DVB drivers/media/video/saa7134/Makefile
announce USB_DABUSB - "DABUSB driver"
clean_fw firmware/dabusb/bitstream.bin.ihex firmware/dabusb/bitstream.bin
clean_fw firmware/dabusb/firmware.HEX firmware/dabusb/firmware.fw
reject_firmware drivers/media/video/dabusb.c
clean_blob drivers/media/video/dabusb.c
clean_kconfig drivers/media/Kconfig 'USB_DABUSB'
clean_mk CONFIG_USB_DABUSB drivers/media/video/Makefile
announce USB_S2255 - "USB Sensoray 2255 video capture device"
reject_firmware drivers/media/video/s2255drv.c
clean_blob drivers/media/video/s2255drv.c
clean_kconfig drivers/media/video/Kconfig 'USB_S2255'
clean_mk CONFIG_USB_S2255 drivers/media/video/Makefile
announce USB_VICAM - "USB 3com HomeConnect, AKA vicam"
drop_fw_file firmware/vicam/firmware.H16 firmware/vicam/firmware.fw
reject_firmware drivers/media/video/usbvideo/vicam.c
clean_blob drivers/media/video/usbvideo/vicam.c
clean_kconfig drivers/media/video/usbvideo/Kconfig 'USB_VICAM'
clean_mk CONFIG_USB_VICAM drivers/media/video/usbvideo/Makefile
#######
# net #
#######
announce ACENIC - "Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit"
drop_fw_file firmware/acenic/tg1.bin.ihex firmware/acenic/tg1.bin
drop_fw_file firmware/acenic/tg2.bin.ihex firmware/acenic/tg2.bin
reject_firmware drivers/net/acenic.c
clean_blob drivers/net/acenic.c
clean_kconfig drivers/net/Kconfig 'ACENIC'
clean_mk CONFIG_ACENIC drivers/net/Makefile
announce ADAPTEC_STARFIRE - "Adaptec Starfire/DuraLAN support"
clean_fw firmware/adaptec/starfire_rx.bin.ihex firmware/adaptec/starfire_rx.bin
clean_fw firmware/adaptec/starfire_tx.bin.ihex firmware/adaptec/starfire_tx.bin
reject_firmware drivers/net/starfire.c
clean_blob drivers/net/starfire.c
clean_kconfig drivers/net/Kconfig 'ADAPTEC_STARFIRE'
clean_mk CONFIG_ADAPTEC_STARFIRE drivers/net/Makefile
announce BNX2 - "Broadcom NetXtremeII"
drop_fw_file firmware/bnx2/bnx2-mips-09-4.6.17.fw.ihex firmware/bnx2/bnx2-mips-09-4.6.17.fw
drop_fw_file firmware/bnx2/bnx2-rv2p-09-4.6.15.fw.ihex firmware/bnx2/bnx2-rv2p-09-4.6.15.fw
drop_fw_file firmware/bnx2/bnx2-mips-06-4.6.16.fw.ihex firmware/bnx2/bnx2-mips-06-4.6.16.fw
drop_fw_file firmware/bnx2/bnx2-rv2p-06-4.6.16.fw.ihex firmware/bnx2/bnx2-rv2p-06-4.6.16.fw
reject_firmware drivers/net/bnx2.c
clean_blob drivers/net/bnx2.c
clean_kconfig drivers/net/Kconfig 'BNX2'
clean_mk CONFIG_BNX2 drivers/net/Makefile
announce BNX2X - "Broadcom NetXtremeII 10Gb support"
drop_fw_file firmware/bnx2x-e1-4.8.53.0.fw.ihex firmware/bnx2x-e1-4.8.53.0.fw
drop_fw_file firmware/bnx2x-e1h-4.8.53.0.fw.ihex firmware/bnx2x-e1h-4.8.53.0.fw
reject_firmware drivers/net/bnx2x_main.c
clean_sed '
/^#include "bnx2x_init\.h"/,/^$/{
/^$/i\
#define bnx2x_init_block(bp, start, end) \\\
return (printk(KERN_ERR PFX "%s: Missing Free firmware\\n", bp->dev->name),\\\
-EINVAL)
}' drivers/net/bnx2x_main.c 'report missing Free firmware'
clean_blob drivers/net/bnx2x_main.c
clean_blob drivers/net/bnx2x_hsi.h
clean_blob drivers/net/bnx2x_init_ops.h
clean_kconfig drivers/net/Kconfig 'BNX2X'
clean_mk CONFIG_BNX2X drivers/net/Makefile
announce CASSINI - "Sun Cassini"
drop_fw_file firmware/sun/cassini.bin.ihex firmware/sun/cassini.bin
reject_firmware drivers/net/cassini.c
clean_blob drivers/net/cassini.c
clean_kconfig drivers/net/Kconfig 'CASSINI'
clean_mk CONFIG_CASSINI drivers/net/Makefile
announce CHELSIO_T3 - "Chelsio AEL 2005 support"
drop_fw_file firmware/cxgb3/t3b_psram-1.1.0.bin.ihex firmware/cxgb3/t3b_psram-1.1.0.bin
drop_fw_file firmware/cxgb3/t3c_psram-1.1.0.bin.ihex firmware/cxgb3/t3c_psram-1.1.0.bin
drop_fw_file firmware/cxgb3/t3fw-7.4.0.bin.ihex firmware/cxgb3/t3fw-7.4.0.bin
reject_firmware drivers/net/cxgb3/cxgb3_main.c
clean_sed '
/^static int ael2005_setup_\(sr\|twinax\)_edc([^;]*$/,/^}$/{
/for.*ARRAY_SIZE(\(sr\|twinax\)_edc)/i\
CH_ERR(phy->adapter, "Missing Free firwmare\\n");\
err = -EINVAL;
}' drivers/net/cxgb3/ael1002.c 'report missing Free firmware'
clean_blob drivers/net/cxgb3/cxgb3_main.c
clean_blob drivers/net/cxgb3/ael1002.c
clean_kconfig drivers/net/Kconfig 'CHELSIO_T3'
clean_mk CONFIG_CHELSIO_T3 drivers/net/cxgb3/Makefile
announce E100 - "Intel PRO/100+"
drop_fw_file firmware/e100/d101m_ucode.bin.ihex firmware/e100/d101m_ucode.bin
drop_fw_file firmware/e100/d101s_ucode.bin.ihex firmware/e100/d101s_ucode.bin
drop_fw_file firmware/e100/d102e_ucode.bin.ihex firmware/e100/d102e_ucode.bin
reject_firmware drivers/net/e100.c
clean_sed '
/^static const struct firmware \*e100_\(reject\|request\)_firmware(/,/^}$/{
s:^\(.*\)return ERR_PTR(err);$:\1DPRINTK(PROBE,ERR, "Proceeding without firmware\\n");\n\1return NULL;:
}' drivers/net/e100.c 'proceed without firmware'
clean_blob drivers/net/e100.c
clean_kconfig drivers/net/Kconfig 'E100'
clean_mk CONFIG_E100 drivers/net/Makefile
announce MYRI_SBUS - "MyriCOM Gigabit Ethernet"
drop_fw_file firmware/myricom/lanai.bin.ihex firmware/myricom/lanai.bin
reject_firmware drivers/net/myri_sbus.c
clean_blob drivers/net/myri_sbus.c
clean_kconfig drivers/net/Kconfig 'MYRI_SBUS'
clean_mk CONFIG_MYRI_SBUS drivers/net/Makefile
announce MYRI10GE - "Myricom Myri-10G Ethernet support"
reject_firmware drivers/net/myri10ge/myri10ge.c
clean_blob drivers/net/myri10ge/myri10ge.c
clean_kconfig drivers/net/Kconfig 'MYRI10GE'
clean_mk CONFIG_MYRI10GE drivers/net/myri10ge/Makefile
announce NETXEN_NIC - "NetXen Multi port (1/10) Gigabit Ethernet NIC"
reject_firmware drivers/net/netxen/netxen_nic.h
reject_firmware drivers/net/netxen/netxen_nic_main.c
reject_firmware drivers/net/netxen/netxen_nic_init.c
clean_blob drivers/net/netxen/netxen_nic_init.c
clean_kconfig drivers/net/Kconfig 'NETXEN_NIC'
clean_mk CONFIG_NETXEN_NIC drivers/net/Makefile
announce SLICOSS - "Alacritech Gigabit IS-NIC cards"
reject_firmware drivers/staging/slicoss/slicoss.c
clean_blob drivers/staging/slicoss/slicoss.c
clean_kconfig drivers/staging/slicoss/Kconfig 'SLICOSS'
clean_mk CONFIG_SLICOSS drivers/staging/slicoss/Makefile
announce SPIDER_NET - "Spider Gigabit Ethernet driver"
reject_firmware drivers/net/spider_net.c
clean_sed 's,spider_fw\.bin,DEBLOBBED.bin,g' \
drivers/net/spider_net.c 'removed non-Free firmware notes'
clean_blob drivers/net/spider_net.h
clean_kconfig drivers/net/Kconfig 'SPIDER_NET'
clean_mk CONFIG_SPIDER_NET drivers/net/Makefile
announce SXG - "Alacritech SLIC Technology Non-Accelerated 10Gbe cards"
clean_file drivers/staging/sxg/sxgphycode-1.2.h
reject_firmware drivers/staging/sxg/sxg.c
clean_sed '
/^static int sxg_phy_init(/,/^}$/{
/for (p = PhyUcode/i\
printk("%s: missing Free firmware\\n", __func__);\
return (STATUS_FAILURE);\
#define PhyUcode NULL
}' drivers/staging/sxg/sxg.c 'report missing Free firmware'
clean_blob drivers/staging/sxg/sxg.c
clean_kconfig drivers/staging/sxg/Kconfig 'SXG'
clean_mk CONFIG_SXG drivers/staging/sxg/Makefile
announce TEHUTI - "Tehuti Networks 10G Ethernet"
drop_fw_file firmware/tehuti/bdx.bin.ihex firmware/tehuti/bdx.bin
reject_firmware drivers/net/tehuti.c
clean_blob drivers/net/tehuti.c
clean_kconfig drivers/net/Kconfig 'TEHUTI'
clean_mk CONFIG_TEHUTI drivers/net/Makefile
announce TIGON3 - "Broadcom Tigon3"
drop_fw_file firmware/tigon/tg3.bin.ihex firmware/tigon/tg3.bin
drop_fw_file firmware/tigon/tg3_tso.bin.ihex firmware/tigon/tg3_tso.bin
drop_fw_file firmware/tigon/tg3_tso5.bin.ihex firmware/tigon/tg3_tso5.bin
reject_firmware drivers/net/tg3.c
clean_blob drivers/net/tg3.c
clean_kconfig drivers/net/Kconfig 'TIGON3'
clean_mk CONFIG_TIGON3 drivers/net/Makefile
announce TYPHOON - "3cr990 series Typhoon"
drop_fw_file firmware/3com/typhoon.bin.ihex firmware/3com/typhoon.bin
reject_firmware drivers/net/typhoon.c
clean_blob drivers/net/typhoon.c
clean_kconfig drivers/net/Kconfig 'TYPHOON'
clean_mk CONFIG_TYPHOON drivers/net/Makefile
# appletalk
announce COPS - "COPS LocalTalk PC"
clean_sed '
/sizeof(\(ff\|lt\)drv_code)/{
i\
printk(KERN_INFO "%s: Missing Free firmware.\\n", dev->name);\
return;
}
/\(ff\|lt\)drv_code/d;
' drivers/net/appletalk/cops.c 'report missing Free firmware'
clean_blob drivers/net/appletalk/cops.c
clean_file drivers/net/appletalk/cops_ffdrv.h
clean_file drivers/net/appletalk/cops_ltdrv.h
clean_kconfig drivers/net/appletalk/Kconfig 'COPS'
clean_mk CONFIG_COPS drivers/net/appletalk/Makefile
# hamradio
announce YAM - "YAM driver for AX.25"
drop_fw_file firmware/yam/1200.bin.ihex firmware/yam/1200.bin
drop_fw_file firmware/yam/9600.bin.ihex firmware/yam/9600.bin
reject_firmware drivers/net/hamradio/yam.c
clean_blob drivers/net/hamradio/yam.c
clean_kconfig drivers/net/hamradio/Kconfig 'YAM'
clean_mk CONFIG_YAM drivers/net/hamradio/Makefile
# irda
announce USB_IRDA - "IrDA USB dongles"
reject_firmware drivers/net/irda/irda-usb.c
clean_blob drivers/net/irda/irda-usb.c
clean_kconfig drivers/net/irda/Kconfig 'USB_IRDA'
clean_mk CONFIG_USB_IRDA drivers/net/irda/Makefile
# pcmcia
announce PCMCIA_SMC91C92 - "SMC 91Cxx PCMCIA"
drop_fw_file firmware/ositech/Xilinx7OD.bin.ihex firmware/ositech/Xilinx7OD.bin
reject_firmware drivers/net/pcmcia/smc91c92_cs.c
clean_blob drivers/net/pcmcia/smc91c92_cs.c
clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_SMC91C92'
clean_mk CONFIG_PCMCIA_SMC91C92 drivers/net/pcmcia/Makefile
announce PCCARD - "PCCard (PCMCIA/CardBus) support"
reject_firmware drivers/pcmcia/ds.c
clean_kconfig drivers/pcmcia/Kconfig 'PCCARD'
clean_mk CONFIG_PCCARD drivers/pcmcia/Makefile
announce PCMCIA_3C574 - "3Com 3c574 PCMCIA support"
drop_fw_file firmware/cis/3CCFEM556.cis.ihex firmware/cis/3CCFEM556.cis
clean_blob drivers/net/pcmcia/3c574_cs.c
clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_3C574'
clean_mk CONFIG_PCMCIA_3C574 drivers/net/pcmcia/Makefile
announce PCMCIA_3C589 - "3Com 3c589 PCMCIA support"
drop_fw_file firmware/cis/3CXEM556.cis.ihex firmware/cis/3CXEM556.cis
clean_blob drivers/net/pcmcia/3c589_cs.c
clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_3C589'
clean_mk CONFIG_PCMCIA_3C589 drivers/net/pcmcia/Makefile
announce PCMCIA_PCNET - "NE2000 compatible PCMCIA support"
drop_fw_file firmware/cis/LA-PCM.cis.ihex firmware/cis/LA-PCM.cis
clean_blob drivers/net/pcmcia/pcnet_cs.c
clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_PCNET'
clean_mk CONFIG_PCMCIA_PCNET drivers/net/pcmcia/Makefile
# tokenring
announce 3C359 - "3Com 3C359 Token Link Velocity XL adapter"
drop_fw_file firmware/3com/3C359.bin.ihex firmware/3com/3C359.bin
clean_blob drivers/net/tokenring/3c359.c
clean_kconfig drivers/net/tokenring/Kconfig '3C359'
clean_mk CONFIG_3C359 drivers/net/tokenring/Makefile
announce SMCTR - "SMC ISA/MCA adapter"
drop_fw_file firmware/tr_smctr.bin.ihex firmware/tr_smctr.bin
reject_firmware drivers/net/tokenring/smctr.c
clean_blob drivers/net/tokenring/smctr.c
clean_kconfig drivers/net/tokenring/Kconfig 'SMCTR'
clean_mk CONFIG_SMCTR drivers/net/tokenring/Makefile
announce TMS380TR - "Generic TMS380 Token Ring ISA/PCI adapter support"
reject_firmware drivers/net/tokenring/tms380tr.c
clean_blob drivers/net/tokenring/tms380tr.c
clean_kconfig drivers/net/tokenring/Kconfig 'TMS380TR'
clean_mk CONFIG_TMS380TR drivers/net/tokenring/Makefile
# usb
announce USB_KAWETH - "USB KLSI KL5USB101-based ethernet device support"
drop_fw_file firmware/kaweth/new_code.bin.ihex firmware/kaweth/new_code.bin
drop_fw_file firmware/kaweth/new_code_fix.bin.ihex firmware/kaweth/new_code_fix.bin
drop_fw_file firmware/kaweth/trigger_code.bin.ihex firmware/kaweth/trigger_code.bin
drop_fw_file firmware/kaweth/trigger_code_fix.bin.ihex firmware/kaweth/trigger_code_fix.bin
reject_firmware drivers/net/usb/kaweth.c
clean_blob drivers/net/usb/kaweth.c
clean_kconfig drivers/net/usb/Kconfig 'USB_KAWETH'
clean_mk CONFIG_USB_KAWETH drivers/net/usb/Makefile
# wireless
announce ATMEL "Atmel at76c50x chipset 802.11b support"
reject_firmware drivers/net/wireless/atmel.c
clean_blob drivers/net/wireless/atmel.c
clean_kconfig drivers/net/wireless/Kconfig 'ATMEL'
clean_mk CONFIG_ATMEL drivers/net/wireless/Makefile
announce AT76C50X_USB - "Atmel at76c503/at76c505/at76c505a USB cards"
reject_firmware drivers/net/wireless/at76c50x-usb.c
clean_blob drivers/net/wireless/at76c50x-usb.c
clean_kconfig drivers/net/wireless/Kconfig 'AT76C50X_USB'
clean_mk CONFIG_AT76C50X_USB drivers/net/wireless/Makefile
announce USB_ATMEL - "Atmel at76c503/at76c505/at76c505a USB cards (in staging)"
reject_firmware drivers/staging/at76_usb/at76_usb.c
clean_blob drivers/staging/at76_usb/at76_usb.c
clean_kconfig drivers/staging/at76_usb/Kconfig 'USB_ATMEL'
clean_mk CONFIG_USB_ATMEL drivers/staging/at76_usb/Makefile
announce B43 - "Broadcom 43xx wireless support (mac80211 stack)"
maybe_reject_firmware drivers/net/wireless/b43/main.c
clean_sed '
/^static int b43_upload_microcode(/,/^}$/{
/ if (dev->fw\.opensource) {$/i\
if (!dev->fw.opensource) {\
b43err(dev->wl, "Rejected non-Free firmware\\n");\
err = -EOPNOTSUPP;\
goto error;\
}
}' drivers/net/wireless/b43/main.c 'double-check and reject non-Free firmware'
# Major portions of firmware filenames not deblobbed.
clean_blob drivers/net/wireless/b43/main.c
clean_kconfig drivers/net/wireless/b43/Kconfig 'B43'
clean_mk CONFIG_B43 drivers/net/wireless/b43/Makefile
announce B43LEGACY - "Broadcom 43xx-legacy wireless support (mac80211 stack)"
reject_firmware drivers/net/wireless/b43legacy/main.c
# Major portions of firwmare filenames not deblobbed.
clean_blob drivers/net/wireless/b43legacy/main.c
clean_kconfig drivers/net/wireless/b43legacy/Kconfig 'B43LEGACY'
clean_mk CONFIG_B43LEGACY drivers/net/wireless/b43legacy/Makefile
announce HERMES - "Hermes chipset 802.11b support (Orinoco/Prism2/Symbol)"
reject_firmware drivers/net/wireless/orinoco/fw.c
clean_blob drivers/net/wireless/orinoco/fw.c
clean_kconfig drivers/net/wireless/Kconfig 'HERMES'
clean_mk CONFIG_HERMES drivers/net/wireless/orinoco/Makefile
announce IPW2100 - "Intel PRO/Wireless 2100 Network Connection"
reject_firmware drivers/net/wireless/ipw2x00/ipw2100.c
clean_blob drivers/net/wireless/ipw2x00/ipw2100.c
clean_kconfig drivers/net/wireless/Kconfig 'IPW2100'
clean_mk CONFIG_IPW2100 drivers/net/wireless/ipw2x00/Makefile
announce IPW2200 - "Intel PRO/Wireless 2200BG and 2915ABG Network Connection"
reject_firmware drivers/net/wireless/ipw2x00/ipw2200.c
clean_blob drivers/net/wireless/ipw2x00/ipw2200.c
clean_kconfig drivers/net/wireless/Kconfig 'IPW2200'
clean_mk CONFIG_IPW2200 drivers/net/wireless/ipw2x00/Makefile
announce IWL3945 - "Intel PRO/Wireless 3945ABG/BG Network Connection"
reject_firmware drivers/net/wireless/iwlwifi/iwl3945-base.c
clean_blob drivers/net/wireless/iwlwifi/iwl3945-base.c
clean_blob drivers/net/wireless/iwlwifi/iwl-3945.h
clean_kconfig drivers/net/wireless/iwlwifi/Kconfig 'IWL3945'
clean_mk CONFIG_IWL3945 drivers/net/wireless/iwlwifi/Makefile
announce IWLAGN - "Intel Wireless WiFi Next Gen AGN"
reject_firmware drivers/net/wireless/iwlwifi/iwl-agn.c
clean_blob drivers/net/wireless/iwlwifi/iwl-agn.c
clean_kconfig drivers/net/wireless/iwlwifi/Kconfig 'IWLAGN'
clean_mk CONFIG_IWLAGN drivers/net/wireless/iwlwifi/Makefile
announce IWL4965 - "Intel Wireless WiFi 4965AGN"
clean_blob drivers/net/wireless/iwlwifi/iwl-4965.c
clean_kconfig drivers/net/wireless/iwlwifi/Kconfig 'IWL4965'
clean_mk CONFIG_IWL4965 drivers/net/wireless/iwlwifi/Makefile
announce IWL5000 - "Intel Wireless WiFi 5000AGN"
clean_blob drivers/net/wireless/iwlwifi/iwl-5000.c
clean_blob drivers/net/wireless/iwlwifi/iwl-6000.c
clean_blob drivers/net/wireless/iwlwifi/iwl-1000.c
clean_kconfig drivers/net/wireless/iwlwifi/Kconfig 'IWL5000'
clean_mk CONFIG_IWL5000 drivers/net/wireless/iwlwifi/Makefile
announce IWM - "Intel Wireless Multicomm 3200 WiFi driver"
reject_firmware drivers/net/wireless/iwmc3200wifi/fw.c
clean_blob drivers/net/wireless/iwmc3200wifi/sdio.c
clean_kconfig drivers/net/wireless/iwmc3200wifi/Kconfig 'IWM'
clean_mk CONFIG_IWM drivers/net/wireless/iwmc3200wifi/Makefile
announce LIBERTAS_CS - "Marvell Libertas 8385 CompactFlash 802.11b/g cards"
reject_firmware drivers/net/wireless/libertas/if_cs.c
clean_blob drivers/net/wireless/libertas/if_cs.c
clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_CS'
clean_mk CONFIG_LIBERTAS_CS drivers/net/wireless/libertas/Makefile
announce LIBERTAS_SDIO - "Marvell Libertas 8385 and 8686 SDIO 802.11b/g cards"
reject_firmware drivers/net/wireless/libertas/if_sdio.c
clean_blob drivers/net/wireless/libertas/if_sdio.c
clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_SDIO'
clean_mk CONFIG_LIBERTAS_SDIO drivers/net/wireless/libertas/Makefile
announce LIBERTAS_SPI - "Marvell Libertas 8686 SPI 802.11b/g cards"
reject_firmware drivers/net/wireless/libertas/if_spi.c
clean_blob drivers/net/wireless/libertas/if_spi.c
clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_SPI'
clean_mk CONFIG_LIBERTAS_SPI drivers/net/wireless/libertas/Makefile
announce LIBERTAS_USB - "Marvell Libertas 8388 USB 802.11b/g cards"
reject_firmware drivers/net/wireless/libertas/if_usb.c
clean_blob drivers/net/wireless/libertas/if_usb.c
clean_blob drivers/net/wireless/libertas/README
clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_USB'
clean_mk CONFIG_LIBERTAS_USB drivers/net/wireless/libertas/Makefile
announce LIBERTAS_THINFIRM_USB - "Marvell Libertas 8388 USB 802.11b/g cards with thin firmware"
reject_firmware drivers/net/wireless/libertas_tf/if_usb.c
clean_blob drivers/net/wireless/libertas_tf/if_usb.c
clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_THINFIRM_USB'
clean_mk CONFIG_LIBERTAS_THINFIRM_USB drivers/net/wireless/libertas_tf/Makefile
announce MWL8K - 'Marvell 88W8xxx PCI/PCIe Wireless support'
reject_firmware drivers/net/wireless/mwl8k.c
clean_blob drivers/net/wireless/mwl8k.c
clean_kconfig drivers/net/wireless/Kconfig 'MWL8K'
clean_mk CONFIG_MWL8K drivers/net/wireless/Makefile
announce OTUS - "Atheros OTUS 802.11n USB wireless support"
clean_blob drivers/staging/otus/hal/hpDKfwu.c
clean_blob drivers/staging/otus/hal/hpfw2.c
clean_blob drivers/staging/otus/hal/hpfwbu.c
clean_blob drivers/staging/otus/hal/hpfwspiu.c
clean_blob drivers/staging/otus/hal/hpfwu.c
clean_blob drivers/staging/otus/hal/hpfwu.c.drv_ba_resend
clean_blob drivers/staging/otus/hal/hpfwu_2k.c
clean_blob drivers/staging/otus/hal/hpfwu_BA.c
clean_blob drivers/staging/otus/hal/hpfwu_FB50_mdk.c
clean_blob drivers/staging/otus/hal/hpfwu_OTUS_RC.c
clean_blob drivers/staging/otus/hal/hpfwu_txstream.c
clean_blob drivers/staging/otus/hal/hpfwuinit.c
clean_sed '
/^u16_t zfFirmwareDownload\(NotJump\)\?(.*)$/,/^}$/ {
/ image = (u8_t\*) fw;/i\
zm_msg0_init(ZM_LV_0, "Missing Free firmware");\
ret = ZM_ERR_FIRMWARE_WRONG_TYPE;\
goto exit;\
}
' drivers/staging/otus/hal/hpusb.c \
'disabled non-Free firmware-loading machinery'
clean_sed 's/^extern u16_t \(zfFirmwareDownload\(NotJump\)\?\)([^;]*);/&\n#define \1(dev,fw,len,offset) (\1)(dev,NULL,0,offset)/
' drivers/staging/otus/hal/hpmain.c \
'disabled non-Free firmware-loading machinery'
clean_blob drivers/staging/otus/hal/hpmain.c
clean_kconfig drivers/staging/otus/Kconfig OTUS
clean_mk CONFIG_OTUS drivers/staging/otus/Makefile
announce PRISM2_USB - "Prism2.5/3 USB driver"
reject_firmware drivers/staging/wlan-ng/prism2fw.c
clean_blob drivers/staging/wlan-ng/prism2fw.c
clean_kconfig drivers/staging/wlan-ng/Kconfig PRISM2_USB
clean_mk CONFIG_PRISM2_USB drivers/staging/wlan-ng/Makefile
announce P54_PCI - "Prism54 PCI support"
reject_firmware drivers/net/wireless/p54/p54pci.c
clean_blob drivers/net/wireless/p54/p54pci.c
clean_kconfig drivers/net/wireless/p54/Kconfig 'P54_PCI'
clean_mk CONFIG_P54_PCI drivers/net/wireless/p54/Makefile
announce P54_SPI - "Prism54 SPI (stlc45xx) support"
# There's support for loading custom 3826.eeprom here, with a default
# eeprom that is clearly pure data. Without Free 3826.arm, there's
# little point in trying to retain the ability to load 3826.eeprom, so
# we drop it altogether.
reject_firmware drivers/net/wireless/p54/p54spi.c
clean_blob drivers/net/wireless/p54/p54spi.c
clean_kconfig drivers/net/wireless/p54/Kconfig 'P54_SPI'
clean_mk CONFIG_P54_SPI drivers/net/wireless/p54/Makefile
announce P54_USB - "Prism54 USB support"
reject_firmware drivers/net/wireless/p54/p54usb.c
clean_blob drivers/net/wireless/p54/p54usb.c
clean_blob drivers/net/wireless/p54/p54usb.h
clean_kconfig drivers/net/wireless/p54/Kconfig 'P54_USB'
clean_mk CONFIG_P54_USB drivers/net/wireless/p54/Makefile
announce PRISM54 - 'Intersil Prism GT/Duette/Indigo PCI/Cardbus'
reject_firmware drivers/net/wireless/prism54/islpci_dev.c
clean_blob drivers/net/wireless/prism54/islpci_dev.c
clean_sed '
/^config PRISM54$/,/^config /{
/If you enable this/,/^$/d;
}' drivers/net/wireless/Kconfig 'removed firmware notes'
clean_kconfig drivers/net/wireless/Kconfig 'PRISM54'
clean_mk CONFIG_PRISM54 drivers/net/wireless/prism54/Makefile
announce RT2X00_LIB_FIRMWARE - "Ralink driver firmware support"
reject_firmware drivers/net/wireless/rt2x00/rt2x00firmware.c
clean_kconfig drivers/net/wireless/rt2x00/Kconfig 'RT2X00_LIB_FIRMWARE'
clean_mk CONFIG_RT2X00_LIB_FIRMWARE drivers/net/wireless/rt2x00/Makefile
announce RT61PCI - "Ralink rt2501/rt61 (PCI/PCMCIA) support"
clean_blob drivers/net/wireless/rt2x00/rt61pci.h
clean_blob drivers/net/wireless/rt2x00/rt61pci.c
clean_kconfig drivers/net/wireless/rt2x00/Kconfig 'RT61PCI'
clean_mk CONFIG_RT61PCI drivers/net/wireless/rt2x00/Makefile
announce RT73USB - "Ralink rt2501/rt73 (USB) support"
clean_blob drivers/net/wireless/rt2x00/rt73usb.h
clean_blob drivers/net/wireless/rt2x00/rt73usb.c
clean_kconfig drivers/net/wireless/rt2x00/Kconfig 'RT73USB'
clean_mk CONFIG_RT73USB drivers/net/wireless/rt2x00/Makefile
announce RT2800USB - "Ralink rt2800 (USB) support"
clean_blob drivers/net/wireless/rt2x00/rt2800usb.h
clean_blob drivers/net/wireless/rt2x00/rt2800usb.c
clean_kconfig drivers/net/wireless/rt2x00/Kconfig RT2800USB
clean_mk CONFIG_RT2800USB drivers/net/wireless/rt2x00/Makefile
announce RT2860 - "Ralink 2860 wireless support"
clean_file drivers/staging/rt2860/common/firmware.h
clean_blob drivers/staging/rt2860/rt_linux.h
clean_sed '
/^NDIS_STATUS NICLoadFirmware(/,/^}$/{
s/^\( *\)pFirmwareImage = .*FirmwareImage.*;/\1printk("%s: missing Free firmware\\n", __func__);\n\1return NDIS_STATUS_FAILURE;\n&/
}' drivers/staging/rt2860/common/rtmp_init.c 'report missing Free firmware'
clean_blob drivers/staging/rt2860/common/rtmp_init.c
clean_sed '
/^INT[ ]set_eFuseLoadFromBin_Proc(/,/^}$/{
/src = kmalloc/i\
printk("%s: missing Free firmware\\n", __func__);\
return FALSE;
}' drivers/staging/rt2860/common/eeprom.c 'report missing Free firmware'
clean_blob drivers/staging/rt2860/common/eeprom.c
clean_kconfig drivers/staging/rt2860/Kconfig RT2860
clean_mk CONFIG_RT2860 drivers/staging/rt2860/Makefile
announce RT2870 - "Ralink 2870 wireless support"
clean_file drivers/staging/rt2870/common/firmware.h
clean_kconfig drivers/staging/rt2870/Kconfig RT2870
clean_mk CONFIG_RT2870 drivers/staging/rt2870/Makefile
announce RT3070 - "Ralink 3070 wireless support"
clean_file drivers/staging/rt3070/firmware.h
clean_kconfig drivers/staging/rt3070/Kconfig RT3070
clean_mk CONFIG_RT3070 drivers/staging/rt3070/Makefile
announce RTL8192SU - "RealTek RTL8192SU Wireless LAN NIC driver"
reject_firmware drivers/staging/rtl8192su/r819xU_firmware.c
reject_firmware drivers/staging/rtl8192su/r8192S_firmware.c
clean_blob drivers/staging/rtl8192su/r8192SU_HWImg.c
clean_blob drivers/staging/rtl8192su/r8192S_FwImgDTM.h
clean_blob drivers/staging/rtl8192su/r8192S_firmware.c
clean_blob drivers/staging/rtl8192su/r819xU_firmware_img.c
clean_blob drivers/staging/rtl8192su/r819xU_firmware.c
clean_kconfig drivers/staging/rtl8192su/Kconfig 'RTL8192SU'
clean_mk CONFIG_RTL8192SU drivers/staging/rtl8192su/Makefile
announce WL12XX - "TI wl1251/wl1271 support"
reject_firmware drivers/net/wireless/wl12xx/main.c
clean_blob drivers/net/wireless/wl12xx/wl1251.h
clean_kconfig drivers/net/wireless/wl12xx/Kconfig 'WL12XX'
clean_mk CONFIG_WL12XX drivers/net/wireless/wl12xx/Makefile
announce USB_ZD1201 - "USB ZD1201 based Wireless device support"
reject_firmware drivers/net/wireless/zd1201.c
clean_blob drivers/net/wireless/zd1201.c
clean_kconfig drivers/net/wireless/Kconfig 'USB_ZD1201'
clean_mk CONFIG_USB_ZD1201 drivers/net/wireless/Makefile
announce ZD1211RW - "ZyDAS ZD1211/ZD1211B USB-wireless support"
reject_firmware drivers/net/wireless/zd1211rw/zd_usb.c
clean_blob drivers/net/wireless/zd1211rw/zd_usb.c
clean_kconfig drivers/net/wireless/zd1211rw/Kconfig 'ZD1211RW'
clean_mk CONFIG_ZD1211RW drivers/net/wireless/zd1211rw/Makefile
# bluetooth
announce BT_HCIBCM203X - "HCI BCM203x USB driver"
reject_firmware drivers/bluetooth/bcm203x.c
clean_blob drivers/bluetooth/bcm203x.c
clean_kconfig drivers/bluetooth/Kconfig 'BT_HCIBCM203X'
clean_mk CONFIG_BT_HCIBCM203X drivers/bluetooth/Makefile
announce BT_HCIBFUSB - "HCI BlueFRITZ! USB driver"
reject_firmware drivers/bluetooth/bfusb.c
clean_blob drivers/bluetooth/bfusb.c
clean_kconfig drivers/bluetooth/Kconfig 'BT_HCIBFUSB'
clean_mk CONFIG_BT_HCIBFUSB drivers/bluetooth/Makefile
announce BT_HCIBT3C - "HCI BT3C (PC Card) driver"
reject_firmware drivers/bluetooth/bt3c_cs.c
clean_blob drivers/bluetooth/bt3c_cs.c
clean_kconfig drivers/bluetooth/Kconfig 'BT_HCIBT3C'
clean_mk CONFIG_BT_HCIBT3C drivers/bluetooth/Makefile
# wimax
announce WIMAX_I2400M - "Intel Wireless WiMAX Connection 2400"
reject_firmware drivers/net/wimax/i2400m/fw.c
clean_blob drivers/net/wimax/i2400m/sdio.c
clean_blob drivers/net/wimax/i2400m/usb.c
clean_blob Documentation/wimax/README.i2400m
clean_kconfig drivers/net/wimax/i2400m/Kconfig CONFIG_WIMAX_I2400M
clean_mk CONFIG_WIMAX_I2400M drivers/net/wimax/i2400m/Makefile
########
# ISDN #
########
announce ISDN_DIVAS - "Support Eicon DIVA Server cards"
clean_blob drivers/isdn/hardware/eicon/cardtype.h
clean_blob drivers/isdn/hardware/eicon/dsp_defs.h
clean_kconfig drivers/isdn/hardware/eicon/Kconfig 'ISDN_DIVAS'
clean_mk CONFIG_ISDN_DIVAS drivers/isdn/hardware/eicon/Makefile
##########
# Serial #
##########
announce SERIAL_8250_CS - "8250/16550 PCMCIA device support"
clean_blob drivers/serial/serial_cs.c
clean_kconfig drivers/serial/Kconfig 'SERIAL_8250_CS'
clean_mk CONFIG_SERIAL_8250_CS drivers/serial/Makefile
announce SERIAL_ICOM - "IBM Multiport Serial Adapter"
reject_firmware drivers/serial/icom.c
clean_blob drivers/serial/icom.c
clean_kconfig drivers/serial/Kconfig 'SERIAL_ICOM'
clean_mk CONFIG_SERIAL_ICOM drivers/serial/Makefile
announce SERIAL_QE - "Freescale QUICC Engine serial port support"
reject_firmware drivers/serial/ucc_uart.c
clean_blob drivers/serial/ucc_uart.c
clean_kconfig drivers/serial/Kconfig 'SERIAL_QE'
clean_mk CONFIG_SERIAL_QE drivers/serial/Makefile
####################
# Data acquisition #
####################
announce COMEDI_PCI_DRIVERS - "Data acquisition support Comedi PCI drivers"
reject_firmware drivers/staging/comedi/drivers/jr3_pci.c
clean_blob drivers/staging/comedi/drivers/jr3_pci.c
clean_kconfig drivers/staging/comedi/Kconfig 'COMEDI_PCI_DRIVERS'
clean_mk CONFIG_COMEDI_PCI_DRIVERS drivers/staging/comedi/drivers/Makefile
announce COMEDI_USB_DRIVERS - "Data acquisition support Comedi USB drivers"
reject_firmware drivers/staging/comedi/drivers/usbdux.c
clean_blob drivers/staging/comedi/drivers/usbdux.c
reject_firmware drivers/staging/comedi/drivers/usbduxfast.c
clean_blob drivers/staging/comedi/drivers/usbduxfast.c
clean_kconfig drivers/staging/comedi/Kconfig 'COMEDI_USB_DRIVERS'
clean_mk CONFIG_COMEDI_USB_DRIVERS drivers/staging/comedi/drivers/Makefile
announce ME4000 - "Meilhaus ME-4000 I/O board"
clean_file drivers/staging/me4000/me4000_firmware.h
clean_file drivers/staging/me4000/me4610_firmware.h
clean_sed '
/^static int me4000_xilinx_download([^;]*$/,/^}$/{
/firm = .*xilinx_firm.*/i\
printk(KERN_ERR "me4000: Missing Free firmware\\n");\
return -EIO;
}
' drivers/staging/me4000/me4000.c 'report missing Free firmware'
clean_blob drivers/staging/me4000/me4000.c
clean_kconfig drivers/staging/me4000/Kconfig 'ME4000'
clean_mk CONFIG_ME4000 drivers/staging/me4000/Makefile
announce MEILHAUS - "Meilhaus support"
reject_firmware drivers/staging/meilhaus/mefirmware.c
clean_kconfig drivers/staging/meilhaus/Kconfig 'MEILHAUS'
clean_mk CONFIG_MEILHAUS drivers/staging/meilhaus/Makefile
announce ME4600 - "Meilhaus ME-4600 support"
clean_blob drivers/staging/meilhaus/me4600_device.c
clean_kconfig drivers/staging/meilhaus/Kconfig 'ME4600'
clean_mk CONFIG_ME4600 drivers/staging/meilhaus/Makefile
announce ME6000 - "Meilhaus ME-6000 support"
clean_blob drivers/staging/meilhaus/me6000_device.c
clean_kconfig drivers/staging/meilhaus/Kconfig 'ME6000'
clean_mk CONFIG_ME6000 drivers/staging/meilhaus/Makefile
########
# SCSI #
########
announce SCSI_QLOGICPTI - "PTI Qlogic, ISP Driver"
drop_fw_file firmware/qlogic/isp1000.bin.ihex firmware/qlogic/isp1000.bin
reject_firmware drivers/scsi/qlogicpti.c
clean_blob drivers/scsi/qlogicpti.c
clean_kconfig drivers/scsi/Kconfig 'SCSI_QLOGICPTI'
clean_mk CONFIG_SCSI_QLOGICPTI drivers/scsi/Makefile
announce SCSI_ADVANSYS - "AdvanSys SCSI"
drop_fw_file firmware/advansys/mcode.bin.ihex firmware/advansys/mcode.bin
drop_fw_file firmware/advansys/3550.bin.ihex firmware/advansys/3550.bin
drop_fw_file firmware/advansys/38C0800.bin.ihex firmware/advansys/38C0800.bin
drop_fw_file firmware/advansys/38C1600.bin.ihex firmware/advansys/38C1600.bin
reject_firmware drivers/scsi/advansys.c
clean_blob drivers/scsi/advansys.c
clean_kconfig drivers/scsi/Kconfig 'SCSI_ADVANSYS'
clean_mk CONFIG_SCSI_ADVANSYS drivers/scsi/Makefile
announce SCSI_QLOGIC_1280 - "Qlogic QLA 1240/1x80/1x160 SCSI"
drop_fw_file firmware/qlogic/1040.bin.ihex firmware/qlogic/1040.bin
drop_fw_file firmware/qlogic/1280.bin.ihex firmware/qlogic/1280.bin
drop_fw_file firmware/qlogic/12160.bin.ihex firmware/qlogic/12160.bin
reject_firmware drivers/scsi/qla1280.c
clean_blob drivers/scsi/qla1280.c
clean_kconfig drivers/scsi/Kconfig 'SCSI_QLOGIC_1280'
clean_mk CONFIG_SCSI_QLOGIC_1280 drivers/scsi/Makefile
announce SCSI_AIC94XX - "Adaptec AIC94xx SAS/SATA support"
reject_firmware drivers/scsi/aic94xx/aic94xx_seq.c
clean_blob drivers/scsi/aic94xx/aic94xx_seq.c
clean_blob drivers/scsi/aic94xx/aic94xx_seq.h
clean_kconfig drivers/scsi/aic94xx/Kconfig 'SCSI_AIC94XX'
clean_mk CONFIG_SCSI_AIC94XX drivers/scsi/aic94xx/Makefile
announce SCSI_QLA_FC - "QLogic QLA2XXX Fibre Channel Support"
reject_firmware drivers/scsi/qla2xxx/qla_gbl.h
reject_firmware drivers/scsi/qla2xxx/qla_init.c
reject_firmware drivers/scsi/qla2xxx/qla_os.c
clean_sed '
/^config SCSI_QLA_FC$/,/^config /{
/^ By default, firmware/i\
/*(DEBLOBBED)*/
/^ By default, firmware/,/ftp:[/][/].*firmware[/]/d
}' drivers/scsi/qla2xxx/Kconfig 'removed firmware notes'
clean_blob drivers/scsi/qla2xxx/qla_os.c
clean_kconfig drivers/scsi/qla2xxx/Kconfig 'SCSI_QLA_FC'
clean_mk CONFIG_SCSI_QLA_FC drivers/scsi/qla2xxx/Makefile
#######
# USB #
#######
# atm
announce USB_CXACRU - "Conexant AccessRunner USB support"
reject_firmware drivers/usb/atm/cxacru.c
clean_blob drivers/usb/atm/cxacru.c
clean_kconfig drivers/usb/atm/Kconfig 'USB_CXACRU'
clean_mk CONFIG_USB_CXACRU drivers/usb/atm/Makefile
announce USB_SPEEDTOUCH - "Speedtouch USB support"
reject_firmware drivers/usb/atm/speedtch.c
clean_blob drivers/usb/atm/speedtch.c
clean_kconfig drivers/usb/atm/Kconfig 'USB_SPEEDTOUCH'
clean_mk CONFIG_USB_SPEEDTOUCH drivers/usb/atm/Makefile
announce USB_UEAGLEATM - "ADI 930 and eagle USB DSL modem"
reject_firmware drivers/usb/atm/ueagle-atm.c
clean_blob drivers/usb/atm/ueagle-atm.c
clean_kconfig drivers/usb/atm/Kconfig 'USB_UEAGLEATM'
clean_mk CONFIG_USB_UEAGLEATM drivers/usb/atm/Makefile
# misc
announce USB_EMI26 - "EMI 2|6 USB Audio interface"
# These files are not under the GPL, better remove them all.
drop_fw_file firmware/emi26/bitstream.HEX firmware/emi26/bitstream.fw
drop_fw_file firmware/emi26/firmware.HEX firmware/emi26/firmware.fw
drop_fw_file firmware/emi26/loader.HEX firmware/emi26/loader.fw
reject_firmware drivers/usb/misc/emi26.c
clean_blob drivers/usb/misc/emi26.c
clean_kconfig drivers/usb/misc/Kconfig 'USB_EMI26'
clean_mk CONFIG_USB_EMI26 drivers/usb/misc/Makefile
announce USB_EMI62 - "EMI 6|2m USB Audio interface"
# These files are probably not under the GPL, better remove them all.
drop_fw_file firmware/emi62/bitstream.HEX firmware/emi62/bitstream.fw
drop_fw_file firmware/emi62/loader.HEX firmware/emi62/loader.fw
drop_fw_file firmware/emi62/midi.HEX firmware/emi62/midi.fw
drop_fw_file firmware/emi62/spdif.HEX firmware/emi62/spdif.fw
reject_firmware drivers/usb/misc/emi62.c
clean_blob drivers/usb/misc/emi62.c
clean_kconfig drivers/usb/misc/Kconfig 'USB_EMI62'
clean_mk CONFIG_USB_EMI62 drivers/usb/misc/Makefile
announce USB_ISIGHTFW - "iSight firmware loading support"
reject_firmware drivers/usb/misc/isight_firmware.c
clean_blob drivers/usb/misc/isight_firmware.c
clean_kconfig drivers/usb/misc/Kconfig 'USB_ISIGHTFW'
clean_mk CONFIG_USB_ISIGHTFW drivers/usb/misc/Makefile
# serial
announce USB_SERIAL_KEYSPAN - "USB Keyspan USA-xxx Serial Driver"
drop_fw_file firmware/keyspan/mpr.HEX firmware/keyspan/mpr.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_MPR'
drop_fw_file firmware/keyspan/usa18x.HEX firmware/keyspan/usa18x.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA18X'
drop_fw_file firmware/keyspan/usa19.HEX firmware/keyspan/usa19.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19'
drop_fw_file firmware/keyspan/usa19qi.HEX firmware/keyspan/usa19qi.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19QI'
drop_fw_file firmware/keyspan/usa19qw.HEX firmware/keyspan/usa19qw.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19QW'
drop_fw_file firmware/keyspan/usa19w.HEX firmware/keyspan/usa19w.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19W'
drop_fw_file firmware/keyspan/usa28.HEX firmware/keyspan/usa28.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28'
drop_fw_file firmware/keyspan/usa28xa.HEX firmware/keyspan/usa28xa.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28XA'
drop_fw_file firmware/keyspan/usa28xb.HEX firmware/keyspan/usa28xb.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28XB'
drop_fw_file firmware/keyspan/usa28x.HEX firmware/keyspan/usa28x.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28X'
drop_fw_file firmware/keyspan/usa49w.HEX firmware/keyspan/usa49w.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA49W'
drop_fw_file firmware/keyspan/usa49wlc.HEX firmware/keyspan/usa49wlc.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA49WLC'
reject_firmware drivers/usb/serial/keyspan.c
clean_blob drivers/usb/serial/keyspan.c
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN'
clean_mk CONFIG_USB_SERIAL_KEYSPAN drivers/usb/serial/Makefile
announce USB_SERIAL_KEYSPAN_PDA - "USB Keyspan PDA Single Port Serial Driver"
clean_sed '
s,request_ihex_firmware,/*KEYSPAN_PDA*/&,
' drivers/usb/serial/keyspan_pda.c 'accept Free firmware'
announce USB_SERIAL_EDGEPORT - "USB Inside Out Edgeport Serial Driver"
clean_fw firmware/edgeport/boot.H16 firmware/edgeport/boot.fw
clean_fw firmware/edgeport/boot2.H16 firmware/edgeport/boot2.fw
clean_fw firmware/edgeport/down.H16 firmware/edgeport/down.fw
clean_fw firmware/edgeport/down2.H16 firmware/edgeport/down2.fw
reject_firmware drivers/usb/serial/io_edgeport.c
clean_blob drivers/usb/serial/io_edgeport.c
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_EDGEPORT'
clean_mk CONFIG_USB_SERIAL_EDGEPORT drivers/usb/serial/Makefile
announce USB_SERIAL_EDGEPORT_TI - "USB Inside Out Edgeport Serial Driver (TI devices)"
clean_fw firmware/edgeport/down3.bin.ihex firmware/edgeport/down3.bin
reject_firmware drivers/usb/serial/io_ti.c
clean_blob drivers/usb/serial/io_ti.c
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_EDGEPORT_TI'
clean_mk CONFIG_USB_SERIAL_EDGEPORT_TI drivers/usb/serial/Makefile
announce USB_SERIAL_TI - "USB TI 3410/5052 Serial Driver"
drop_fw_file firmware/ti_3410.fw.ihex firmware/ti_3410.fw
drop_fw_file firmware/ti_5052.fw.ihex firmware/ti_5052.fw
drop_fw_file firmware/mts_cdma.fw.ihex firmware/mts_cdma.fw
drop_fw_file firmware/mts_gsm.fw.ihex firmware/mts_gsm.fw
drop_fw_file firmware/mts_edge.fw.ihex firmware/mts_edge.fw
reject_firmware drivers/usb/serial/ti_usb_3410_5052.c
clean_blob drivers/usb/serial/ti_usb_3410_5052.c
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_TI'
clean_mk CONFIG_USB_SERIAL_TI drivers/usb/serial/Makefile
announce USB_SERIAL_WHITEHEAT - "USB ConnectTech WhiteHEAT Serial Driver"
clean_fw firmware/whiteheat.HEX firmware/whiteheat.fw
clean_fw firmware/whiteheat_loader.HEX firmware/whiteheat_loader.fw
clean_fw firmware/whiteheat_loader_debug.HEX firmware/whiteheat_loader_debug.fw
reject_firmware drivers/usb/serial/whiteheat.c
clean_blob drivers/usb/serial/whiteheat.c
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_WHITEHEAT'
clean_mk CONFIG_USB_SERIAL_WHITEHEAT drivers/usb/serial/Makefile
# uwb
announce UWB_I1480U - Support for Intel Wireless UWB Link 1480 HWA
reject_firmware drivers/uwb/i1480/dfu/i1480-dfu.h
reject_firmware drivers/uwb/i1480/dfu/mac.c
reject_firmware drivers/uwb/i1480/dfu/phy.c
clean_blob drivers/uwb/i1480/dfu/usb.c
clean_kconfig drivers/uwb/Kconfig 'UWB_I1480U'
clean_mk CONFIG_UWB_I1480U drivers/uwb/i1480/dfu/Makefile
#########
# Sound #
#########
announce SND_CS46XX - "Cirrus Logic (Sound Fusion) CS4280/CS461x/CS462x/CS463x"
# This appears to have been extracted from some non-Free driver
clean_file sound/pci/cs46xx/cs46xx_image.h
# The following blobs are definitely extracted from non-Free drivers.
clean_file sound/pci/cs46xx/imgs/cwc4630.h
clean_file sound/pci/cs46xx/imgs/cwcasync.h
clean_file sound/pci/cs46xx/imgs/cwcsnoop.h
clean_sed '
/^\(int \)\?snd_cs46xx_download_image([^;]*$/,/^}$/{
/for.*BA1_MEMORY_COUNT/i\
#if 0
/^}$/{
i\
#else\
snd_printk(KERN_ERR "cs46xx: Missing Free firmware\\n");\
return -EINVAL;\
#endif
}
}
s/cs46xx_dsp_load_module(chip, [&]cwc\(4630\|async\|snoop\)_module)/(snd_printk(KERN_ERR "cs46xx: Missing Free firmware\\n"),-EINVAL)/
' sound/pci/cs46xx/cs46xx_lib.c 'report missing Free firmware'
clean_blob sound/pci/cs46xx/cs46xx_lib.c
clean_kconfig sound/pci/Kconfig 'SND_CS46XX'
clean_mk 'CONFIG_SND_CS46XX' sound/pci/cs46xx/Makefile
announce SND_KORG1212 - "Korg 1212 IO"
drop_fw_file firmware/korg/k1212.dsp.ihex firmware/korg/k1212.dsp
reject_firmware sound/pci/korg1212/korg1212.c
clean_blob sound/pci/korg1212/korg1212.c
clean_kconfig sound/pci/Kconfig 'SND_KORG1212'
clean_mk 'CONFIG_SND_KORG1212' sound/pci/korg1212/Makefile
announce SND_MAESTRO3 - "ESS Allegro/Maestro3"
drop_fw_file firmware/ess/maestro3_assp_kernel.fw.ihex firmware/ess/maestro3_assp_kernel.fw
drop_fw_file firmware/ess/maestro3_assp_minisrc.fw.ihex firmware/ess/maestro3_assp_minisrc.fw
reject_firmware sound/pci/maestro3.c
clean_blob sound/pci/maestro3.c
clean_kconfig sound/pci/Kconfig 'SND_MAESTRO3'
clean_mk 'CONFIG_SND_MAESTRO3' sound/pci/Makefile
announce SND_YMFPCI - "Yamaha YMF724/740/744/754"
drop_fw_file firmware/yamaha/ds1_ctrl.fw.ihex firmware/yamaha/ds1_ctrl.fw
drop_fw_file firmware/yamaha/ds1_dsp.fw.ihex firmware/yamaha/ds1_dsp.fw
drop_fw_file firmware/yamaha/ds1e_ctrl.fw.ihex firmware/yamaha/ds1e_ctrl.fw
reject_firmware sound/pci/ymfpci/ymfpci_main.c
clean_blob sound/pci/ymfpci/ymfpci_main.c
clean_kconfig sound/pci/Kconfig 'SND_YMFPCI'
clean_mk 'CONFIG_SND_YMFPCI' sound/pci/ymfpci/Makefile
announce SND_SB16_CSP - "SB16 Advanced Signal Processor"
drop_fw_file firmware/sb16/alaw_main.csp.ihex firmware/sb16/alaw_main.csp
drop_fw_file firmware/sb16/mulaw_main.csp.ihex firmware/sb16/mulaw_main.csp
drop_fw_file firmware/sb16/ima_adpcm_init.csp.ihex firmware/sb16/ima_adpcm_init.csp
drop_fw_file firmware/sb16/ima_adpcm_capture.csp.ihex firmware/sb16/ima_adpcm_capture.csp
drop_fw_file firmware/sb16/ima_adpcm_playback.csp.ihex firmware/sb16/ima_adpcm_playback.csp
reject_firmware sound/isa/sb/sb16_csp.c
clean_blob sound/isa/sb/sb16_csp.c
clean_kconfig sound/isa/Kconfig 'SND_SB16_CSP'
clean_mk 'CONFIG_SND_SB16_CSP' sound/isa/sb/Makefile
announce SND_WAVEFRONT - "Turtle Beach Maui,Tropez,Tropez+ (Wavefront)"
drop_fw_file firmware/yamaha/yss225_registers.bin.ihex firmware/yamaha/yss225_registers.bin
reject_firmware sound/isa/wavefront/wavefront_fx.c
clean_blob sound/isa/wavefront/wavefront_fx.c
reject_firmware sound/isa/wavefront/wavefront_synth.c
clean_blob sound/isa/wavefront/wavefront_synth.c
clean_kconfig sound/isa/Kconfig 'SND_WAVEFRONT'
clean_mk 'CONFIG_SND_WAVEFRONT' sound/isa/wavefront/Makefile
announce SND_VX_LIB - Digigram VX soundcards
reject_firmware sound/drivers/vx/vx_hwdep.c
clean_blob sound/drivers/vx/vx_hwdep.c
clean_kconfig sound/drivers/Kconfig 'SND_VX_LIB'
clean_mk CONFIG_SND_VX_LIB sound/drivers/vx/Makefile
announce SND_DARLA20 - "(Echoaudio) Darla20"
clean_blob sound/pci/echoaudio/darla20.c
clean_kconfig sound/pci/Kconfig 'SND_DARLA20'
clean_mk CONFIG_SND_DARLA20 sound/pci/echoaudio/Makefile
announce SND_DARLA24 - "(Echoaudio) Darla24"
clean_blob sound/pci/echoaudio/darla24.c
clean_kconfig sound/pci/Kconfig 'SND_DARLA24'
clean_mk CONFIG_SND_DARLA24 sound/pci/echoaudio/Makefile
announce SND_ECHO3G - "(Echoaudio) 3G cards"
clean_blob sound/pci/echoaudio/echo3g.c
clean_kconfig sound/pci/Kconfig 'SND_ECHO3G'
clean_mk CONFIG_SND_ECHO3G sound/pci/echoaudio/Makefile
announce SND_GINA20 - "(Echoaudio) Gina20"
clean_blob sound/pci/echoaudio/gina20.c
clean_kconfig sound/pci/Kconfig 'SND_GINA20'
clean_mk CONFIG_SND_GINA20 sound/pci/echoaudio/Makefile
announce SND_GINA24 - "(Echoaudio) Gina24"
clean_blob sound/pci/echoaudio/gina24.c
clean_kconfig sound/pci/Kconfig 'SND_GINA24'
clean_mk CONFIG_SND_GINA24 sound/pci/echoaudio/Makefile
announce SND_INDIGO - "(Echoaudio) Indigo"
clean_blob sound/pci/echoaudio/indigo.c
clean_kconfig sound/pci/Kconfig 'SND_INDIGO'
clean_mk CONFIG_SND_INDIGO sound/pci/echoaudio/Makefile
announce SND_INDIGODJ - "(Echoaudio) Indigo DJ"
clean_blob sound/pci/echoaudio/indigodj.c
clean_kconfig sound/pci/Kconfig 'SND_INDIGODJ'
clean_mk CONFIG_SND_INDIGODJ sound/pci/echoaudio/Makefile
announce SND_INDIGODJX - "(Echoaudio) Indigo DJx"
clean_blob sound/pci/echoaudio/indigodjx.c
clean_kconfig sound/pci/Kconfig 'SND_INDIGODJX'
clean_mk CONFIG_SND_INDIGODJX sound/pci/echoaudio/Makefile
announce SND_INDIGOIO - "(Echoaudio) Indigo IO"
clean_blob sound/pci/echoaudio/indigoio.c
clean_kconfig sound/pci/Kconfig 'SND_INDIGOIO'
clean_mk CONFIG_SND_INDIGOIO sound/pci/echoaudio/Makefile
announce SND_INDIGOIOX - "(Echoaudio) Indigo IOx"
clean_blob sound/pci/echoaudio/indigoiox.c
clean_kconfig sound/pci/Kconfig 'SND_INDIGOIOX'
clean_mk CONFIG_SND_INDIGOIOX sound/pci/echoaudio/Makefile
announce SND_LAYLA20 - "(Echoaudio) Layla20"
clean_blob sound/pci/echoaudio/layla20.c
clean_kconfig sound/pci/Kconfig 'SND_LAYLA20'
clean_mk CONFIG_SND_LAYLA20 sound/pci/echoaudio/Makefile
announce SND_LAYLA24 - "(Echoaudio) Layla24"
clean_blob sound/pci/echoaudio/layla24.c
clean_kconfig sound/pci/Kconfig 'SND_LAYLA24'
clean_mk CONFIG_SND_LAYLA24 sound/pci/echoaudio/Makefile
announce SND_MIA - "(Echoaudio) Mia"
clean_blob sound/pci/echoaudio/mia.c
clean_kconfig sound/pci/Kconfig 'SND_MIA'
clean_mk CONFIG_SND_MIA sound/pci/echoaudio/Makefile
announce SND_MONA - "(Echoaudio) Mona"
clean_blob sound/pci/echoaudio/mona.c
clean_kconfig sound/pci/Kconfig 'SND_MONA'
clean_mk CONFIG_SND_MONA sound/pci/echoaudio/Makefile
announce SND_'<(Echoaudio)>' - "(Echoaudio) all of the above "
reject_firmware sound/pci/echoaudio/echoaudio.c
clean_blob sound/pci/echoaudio/echoaudio.c
announce SND_EMU10K1 - "Emu10k1 (SB Live!, Audigy, E-mu APS)"
reject_firmware sound/pci/emu10k1/emu10k1_main.c
clean_blob sound/pci/emu10k1/emu10k1_main.c
clean_kconfig sound/pci/Kconfig 'SND_EMU10K1'
clean_mk CONFIG_SND_EMU10K1 sound/pci/emu10k1/Makefile
announce SND_MIXART - "Digigram miXart"
reject_firmware sound/pci/mixart/mixart_hwdep.c
clean_blob sound/pci/mixart/mixart_hwdep.c
clean_kconfig sound/pci/Kconfig 'SND_MIXART'
clean_mk CONFIG_SND_MIXART sound/pci/mixart/Makefile
announce SND_PCXHR - "Digigram PCXHR"
reject_firmware sound/pci/pcxhr/pcxhr_hwdep.c
clean_blob sound/pci/pcxhr/pcxhr_hwdep.c
clean_kconfig sound/pci/Kconfig 'SND_PCXHR'
clean_mk CONFIG_SND_PCXHR sound/pci/pcxhr/Makefile
announce SND_RIPTIDE - "Conexant Riptide"
reject_firmware sound/pci/riptide/riptide.c
clean_blob sound/pci/riptide/riptide.c
clean_kconfig sound/pci/Kconfig 'SND_RIPTIDE'
clean_mk CONFIG_SND_RIPTIDE sound/pci/riptide/Makefile
announce SND_HDSP - "RME Hammerfall DSP Audio"
reject_firmware sound/pci/rme9652/hdsp.c
clean_blob sound/pci/rme9652/hdsp.c
clean_kconfig sound/pci/Kconfig 'SND_HDSP'
clean_mk CONFIG_SND_HDSP sound/pci/rme9652/Makefile
announce SND_AICA - "Dreamcast Yamaha AICA sound"
reject_firmware sound/sh/aica.c
clean_blob sound/sh/aica.c
clean_kconfig sound/sh/Kconfig 'SND_AICA'
clean_mk CONFIG_SND_AICA sound/sh/Makefile
announce SND_MSND_PINNACLE - "Support for Turtle Beach MultiSound Pinnacle"
clean_blob sound/isa/msnd/msnd_pinnacle.h
reject_firmware sound/isa/msnd/msnd_pinnacle.c
clean_blob sound/isa/msnd/msnd_pinnacle.c
clean_kconfig sound/isa/Kconfig 'SND_MSND_PINNACLE'
clean_mk CONFIG_SND_MSND_PINNACLE sound/isa/msnd/Makefile
announce SND_MSND_CLASSIC - "Support for Turtle Beach MultiSound Classic, Tahiti, Monterey"
clean_blob sound/isa/msnd/msnd_classic.h
clean_kconfig sound/isa/Kconfig 'SND_MSND_CLASSIC'
clean_mk CONFIG_SND_MSND_CLASSIC sound/isa/msnd/Makefile
announce SOUND_MSNDCLAS - "Support for Turtle Beach MultiSound Classic, Tahiti, Monterey (oss)"
clean_blob sound/oss/msnd_classic.h
clean_kconfig sound/oss/Kconfig 'SOUND_MSNDCLAS'
clean_sed '
/^config MSNDCLAS_INIT_FILE$/, /^config / {
/^ default.*msndinit\.bin/ s,".*","/*(DEBLOBBED)*/",;
}
/^config MSNDCLAS_PERM_FILE$/, /^config / {
/^ default.*msndperm\.bin/ s,".*","/*(DEBLOBBED)*/",;
}' sound/oss/Kconfig 'removed default firmware'
clean_mk CONFIG_SOUND_MSNDCLAS sound/oss/Makefile
announce SOUND_MSNDPIN - "Support for Turtle Beach MultiSound Pinnacle (oss)"
clean_blob sound/oss/msnd_pinnacle.h
clean_kconfig sound/oss/Kconfig 'SOUND_MSNDPIN'
clean_sed '
/^config MSNDPIN_INIT_FILE$/, /^config / {
/^ default.*pndspini\.bin/ s,".*","/*(DEBLOBBED)*/",;
}
/^config MSNDPIN_PERM_FILE$/, /^config / {
/^ default.*pndsperm\.bin/ s,".*","/*(DEBLOBBED)*/",;
}' sound/oss/Kconfig 'removed default firmware'
clean_mk CONFIG_SOUND_MSNDPIN sound/oss/Makefile
announce SOUND_SSCAPE - "Ensoniq SoundScape support"
clean_blob sound/oss/sscape.c
clean_kconfig sound/oss/Kconfig 'SOUND_SSCAPE'
clean_mk CONFIG_SOUND_SSCAPE sound/oss/Makefile
announce SOUND_TRIX - "MediaTrix AudioTrix Pro support"
clean_blob sound/oss/trix.c
clean_kconfig sound/oss/Kconfig 'SOUND_TRIX'
clean_sed '
/^config TRIX_BOOT_FILE$/, /^config / {
/^ default.*trxpro\.hex/ s,".*","/*(DEBLOBBED)*/",;
}' sound/oss/Kconfig 'removed default firmware'
clean_mk CONFIG_SOUND_TRIX sound/oss/Makefile
announce SOUND_TRIX - "See above,"
announce SOUND_PAS - "ProAudioSpectrum 16 support,"
announce SOUND_SB - "100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support"
clean_blob sound/oss/sb_common.c
clean_kconfig sound/oss/Kconfig 'SOUND_PAS'
clean_kconfig sound/oss/Kconfig 'SOUND_SB'
clean_mk CONFIG_SOUND_PAS sound/oss/Makefile
clean_mk CONFIG_SOUND_SB sound/oss/Makefile
announce SOUND_PSS - "PSS (AD1848, ADSP-2115, ESC614) support"
clean_sed 's,^\( [*] .*synth"\)\.$,\1/*.,' sound/oss/pss.c 'avoid nested comments'
clean_blob sound/oss/pss.c
clean_kconfig sound/oss/Kconfig 'SOUND_PSS'
clean_sed '
/^config PSS_BOOT_FILE$/, /^config / {
/^ default.*dsp001\.ld/ s,".*","/*(DEBLOBBED)*/",;
}' sound/oss/Kconfig 'removed default firmware'
clean_mk CONFIG_SOUND_PSS sound/oss/Makefile
#################
# Documentation #
#################
announce Documentation - "non-Free firmware scripts and documentation"
clean_blob Documentation/dvb/avermedia.txt
clean_blob Documentation/dvb/opera-firmware.txt
clean_blob Documentation/dvb/ttusb-dec.txt
clean_blob Documentation/sound/alsa/ALSA-Configuration.txt
clean_blob Documentation/sound/oss/MultiSound
clean_blob Documentation/sound/oss/PSS
clean_blob Documentation/sound/oss/PSS-updates
clean_blob Documentation/sound/oss/README.OSS
clean_file Documentation/dvb/get_dvb_firmware
clean_file Documentation/video4linux/extract_xc3028.pl
clean_sed s,usb8388,whatever,g drivers/base/Kconfig 'removed blob name'
clean_blob firmware/README.AddingFirmware
clean_blob firmware/WHENCE
if $errors; then
echo errors above were ignored because of --force >&2
fi
exit 0
#!/bin/sh
# Copyright (C) 2008, 2009 Alexandre Oliva <lxoliva@fsfla.org>
# Copyright (C) 2008 Jeff Moe
# Copyright (C) 2009 Rubén Rodríguez <ruben@gnu.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# 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 have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# deblob - remove non-free blobs from the vanilla linux kernel
# http://www.fsfla.org/svn/fsfla/software/linux-libre
# This script, suited for the kernel version named below, in kver,
# attempts to remove only non-Free Software bits, without removing
# Free Software that happens to be in the same file.
# Drivers that currently require non-Free firmware are retained, but
# firmware included in GPLed sources is replaced with /*(DEBLOBBED)*/
# if the deblob-check script, that knows how to do this, is present.
# -lxoliva
# See also:
# http://wiki.debian.org/KernelFirmwareLicensing
# svn://svn.debian.org/kernel/dists/trunk/linux-2.6/debian/patches/debian/dfsg/files-1
# http://svn.gnewsense.svnhopper.net/gnewsense/builder/trunk/firmware/firmware-removed
# http://svn.gnewsense.svnhopper.net/gnewsense/builder/trunk/gen-kernel
# Thanks to Brian Brazil @ gnewsense
# For each kver release, start extra with an empty string, then count
# from 1 if changes are needed that require rebuilding the tarball.
kver=2.6.31 extra=2
filelist="/tmp/filelist"
case $1 in
--force)
echo "WARNING: Using the force, ignored errors will be" >&2
die () {
echo ERROR: "$@" >&2
errors=:
}
forced=: errors=false
shift
;;
*)
die () {
echo ERROR: "$@" >&2
echo Use --force to ignore
exit 1
}
forced=false errors=false
;;
esac
check=`echo "$0" | sed 's,[^/]*$,,;s,^$,.,;s,/*$,,'`/deblob-check
if [ ! -f $check ] ; then
if $forced; then
die deblob-check script missing, will remove entire files
else
die deblob-check script missing
fi
have_check=false
else
have_check=:
fi
filetest () {
export FILES=$1
if ! [ -f $1 ]
then
if [ $( basename $1) = Makefile ] || [ $( basename $1) = Kconfig ]
then
die File not found: $1
return 1
fi
file=$( basename $1)
[ -f $filelist ] || find > $filelist
if FILES=$(egrep /$file$ $filelist)
then
die File not found: $1
echo WARNING: Alternative\(s\) to $1 found: $FILES
echo WARNING: Deblobbing alternative\(s\)
return 0
else
die File not found: $1, no alternatives found
fi
return 1
fi
}
announce () {
echo
echo "$@"
}
clean_file () {
#$1 = filename
filetest $1 || return
rm $FILES
echo WARNING: Removing $FILES
}
check_changed () {
#$1 = filename
if cmp $1.deblob $1 > /dev/null; then
rm $1.deblob
die $1 did not change, something is wrong && return 1
fi
mv $1.deblob $1
}
clean_blob () {
#$1 = filename
filetest $1 || return
for FILE in $FILES
do
if $have_check; then
name=$FILE
set fnord "$@" -d
shift 2
$check "$@" -i linux-$kver $name > $name.deblob
check_changed $name && echo $name: removed blobs
else
clean_file $FILE
fi
done
}
dummy_blob () {
#$1 = filename
if test -f $1; then
die $1 exists, something is wrong && return
elif test ! -f firmware/Makefile; then
die firmware/Makefile does not exist, something is wrong && return
fi
clean_sed "s,`echo $1 | sed s,^firmware/,,`,\$(DEBLOBBED),g" \
firmware/Makefile "dropped $1"
}
clean_fw () {
#$1 = firmware text input, $2 = firmware output
filetest $1 || return
for FILE in $FILES
do
if test -f $2; then
die $2 exists, something is wrong && return
fi
clean_blob $FILE -s 4
dummy_blob $2
done
}
drop_fw_file () {
#$1 = firmware text input, $2 = firmware output
filetest $1 || return
for FILE in $FILES
do
if test -f $2; then
die $2 exists, something is wrong && return
fi
clean_file $FILE
dummy_blob $2
done
}
clean_kconfig () {
#$1 = filename $2 = things to remove
case $1 in
-f)
shift
;;
*)
if $have_check; then
return
fi
;;
esac
filetest $1 || return
for FILE in $FILES
do
sed "/^config \\($2\\)\$/{p;i\
depends on NONFREE
d;}" $FILE > $FILE.deblob
check_changed $FILE && echo $FILE: marked config $2 as depending on NONFREE
done
}
clean_mk () {
#$1 = config $2 = Makefile name
# We don't clean up Makefiles any more --lxoliva
# sed -i "/\\($1\\)/d" $2
# echo $2: removed $1 support
# check_changed $2
filetest $2 || return
if sed -n "/\\($1\\)/p" $2 | grep . > /dev/null; then
:
else
die $2 does not contain matches for $1
fi
}
clean_sed () {
#$1 = sed-script $2 = file $3 = comment
filetest $2 || return
for FILE in $FILES
do
sed -e "$1" "$FILE" > "$FILE".deblob || {
die $2: failed: ${3-applied sed script $1} && return 1; }
check_changed $FILE && echo $FILE: ${3-applied sed script $1}
done
}
reject_firmware () {
#$1 = file
filetest $1 || return
for FILE in $FILES
do
clean_sed '
s,request\(_ihex\)\?_firmware\(_nowait\)\?,reject_firmware\2,g
' "$FILE" 'disabled non-Free firmware-loading machinery'
done
}
maybe_reject_firmware () {
#$1 = file
filetest $1 || return
for FILE in $FILES
do
clean_sed '
s,request_firmware\(_nowait\)\?,maybe_reject_firmware\1,g
' "$FILE" 'retain Free firmware-loading machinery, disabling non-Free one'
done
}
undefine_macro () {
#$1 - macro name
#$2 - substitution
#$3 - message
#rest - file names
macro=$1 repl=$2 msg=$3; shift 3
for f in "$@"; do
clean_sed "
s,^#define $macro .*\$,/*(DEBLOBBED)*/,;
s,$macro,$repl,g;
" "$f" "$msg"
done
}
undefault_firmware () {
#$1 - pattern such that $1_DEFAULT_FIRMWARE is #defined to non-Free firmware
#$@ other than $1 - file names
macro="$1"_DEFAULT_FIRMWARE; shift
undefine_macro "$macro" "\"/*(DEBLOBBED)*/\"" \
"disabled non-Free firmware" "$@"
}
# First, check that files that contain firmwares and their
# corresponding sources are present.
for f in \
drivers/char/ser_a2232fw.h \
drivers/char/ser_a2232fw.ax \
drivers/net/ixp2000/ixp2400_rx.ucode \
drivers/net/ixp2000/ixp2400_rx.uc \
drivers/net/ixp2000/ixp2400_tx.ucode \
drivers/net/ixp2000/ixp2400_rx.uc \
drivers/net/wan/wanxlfw.inc_shipped \
drivers/net/wan/wanxlfw.S \
drivers/net/wireless/atmel.c \
drivers/net/wireless/atmel.c \
drivers/scsi/53c700_d.h_shipped \
drivers/scsi/53c700.scr \
drivers/scsi/aic7xxx/aic79xx_seq.h_shipped \
drivers/scsi/aic7xxx/aic79xx.seq \
drivers/scsi/aic7xxx/aic7xxx_seq.h_shipped \
drivers/scsi/aic7xxx/aic7xxx.seq \
drivers/scsi/aic7xxx_old/aic7xxx_seq.c \
drivers/scsi/aic7xxx_old/aic7xxx.seq \
drivers/scsi/53c7xx_d.h_shipped \
drivers/scsi/53c7xx.scr \
drivers/scsi/sym53c8xx_2/sym_fw1.h \
drivers/scsi/sym53c8xx_2/sym_fw1.h \
drivers/scsi/sym53c8xx_2/sym_fw2.h \
drivers/scsi/sym53c8xx_2/sym_fw2.h \
firmware/dsp56k/bootstrap.bin.ihex \
firmware/dsp56k/bootstrap.asm \
firmware/keyspan_pda/keyspan_pda.HEX \
firmware/keyspan_pda/keyspan_pda.S \
firmware/keyspan_pda/xircom_pgs.HEX \
firmware/keyspan_pda/xircom_pgs.S \
sound/pci/cs46xx/imgs/cwcdma.h \
sound/pci/cs46xx/imgs/cwcdma.asp \
; do
if test ! $f; then
die $f is not present, something is amiss && return
fi
done
# Identify the tarball.
grep -q 'EXTRAVERSION.*-libre' Makefile ||
clean_sed "s,^EXTRAVERSION.*,&-libre$extra,
" Makefile 'added -libre to EXTRAVERSION'
# Add reject_firmware and maybe_reject_firmware
grep -q _LINUX_LIBRE_FIRMWARE_H include/linux/firmware.h ||
clean_sed '$i\
#ifndef _LINUX_LIBRE_FIRMWARE_H\
#define _LINUX_LIBRE_FIRMWARE_H\
\
#include <linux/device.h>\
\
#define NONFREE_FIRMWARE "/*(DEBLOBBED)*/"\
\
static inline int\
report_missing_free_firmware(const char *name, const char *what)\
{\
printk(KERN_ERR "%s: Missing Free %s\\n", name,\
what ? what : "firmware");\
return -EINVAL;\
}\
static inline int\
reject_firmware(const struct firmware **fw,\
const char *name, struct device *device)\
{\
const struct firmware *xfw = NULL;\
int retval;\
report_missing_free_firmware(dev_name(device), NULL);\
retval = request_firmware(&xfw, NONFREE_FIRMWARE, device);\
if (!retval)\
release_firmware(xfw);\
return -EINVAL;\
}\
static inline int\
maybe_reject_firmware(const struct firmware **fw,\
const char *name, struct device *device)\
{\
if (strstr (name, NONFREE_FIRMWARE))\
return reject_firmware(fw, name, device);\
else\
return request_firmware(fw, name, device);\
}\
static inline void\
discard_rejected_firmware(const struct firmware *fw, void *context)\
{\
release_firmware(fw);\
}\
static inline int\
reject_firmware_nowait(struct module *module, int uevent,\
const char *name, struct device *device,\
void *context,\
void (*cont)(const struct firmware *fw,\
void *context))\
{\
int retval;\
report_missing_free_firmware(dev_name(device), NULL);\
retval = request_firmware_nowait(module, uevent, NONFREE_FIRMWARE,\
device, NULL,\
discard_rejected_firmware);\
if (retval)\
return retval;\
return -EINVAL;\
}\
static inline int\
maybe_reject_firmware_nowait(struct module *module, int uevent,\
const char *name, struct device *device,\
void *context,\
void (*cont)(const struct firmware *fw,\
void *context))\
{\
if (strstr (name, NONFREE_FIRMWARE))\
return reject_firmware_nowait(module, uevent, name,\
device, context, cont);\
else\
return request_firmware_nowait(module, uevent, name,\
device, context, cont);\
}\
\
#endif /* _LINUX_LIBRE_FIRMWARE_H */\
' include/linux/firmware.h 'added non-Free firmware notification support'
########
# Arch #
########
# x86
announce MICROCODE_AMD - "AMD microcode patch loading support"
reject_firmware arch/x86/kernel/microcode_amd.c
clean_blob arch/x86/kernel/microcode_amd.c
clean_kconfig arch/x86/Kconfig 'MICROCODE_AMD'
clean_mk CONFIG_MICROCODE_AMD arch/x86/kernel/Makefile
announce MICROCODE_INTEL - "Intel microcode patch loading support"
reject_firmware arch/x86/kernel/microcode_intel.c
clean_blob arch/x86/kernel/microcode_intel.c
clean_kconfig arch/x86/Kconfig 'MICROCODE_INTEL'
clean_mk CONFIG_MICROCODE_INTEL arch/x86/kernel/Makefile
# arm
announce IXP4XX_NPE - "IXP4xx Network Processor Engine support"
reject_firmware arch/arm/mach-ixp4xx/ixp4xx_npe.c
clean_blob Documentation/arm/IXP4xx
announce ARCH_NETX - "Hilscher NetX based"
clean_sed '
s,\([" ]\)request_firmware(,\1reject_firmware(,
' arch/arm/mach-netx/xc.c 'disabled non-Free firmware-loading machinery'
clean_blob arch/arm/mach-netx/xc.c
clean_kconfig arch/arm/Kconfig 'ARCH_NETX'
clean_mk CONFIG_ARCH_NETX arch/arm/Makefile
###########
# Chipset #
###########
announce STLC45XX - "stlc4550/4560 chipset support"
reject_firmware drivers/staging/stlc45xx/stlc45xx.c
clean_blob drivers/staging/stlc45xx/stlc45xx.c
clean_kconfig drivers/staging/stlc45xx/Kconfig 'STLC45XX'
clean_mk CONFIG_STLC45XX drivers/staging/stlc45xx/Makefile
#######
# ATM #
#######
announce ATM_AMBASSADOR - "Madge Ambassador, Collage PCI 155 Server"
reject_firmware drivers/atm/ambassador.c
clean_blob drivers/atm/ambassador.c
clean_fw firmware/atmsar11.HEX firmware/atmsar11.fw
clean_kconfig drivers/atm/Kconfig 'ATM_AMBASSADOR'
clean_mk CONFIG_ATM_AMBASSADOR drivers/atm/Makefile
announce ATM_FORE200E - "FORE Systems 200E-series"
reject_firmware drivers/atm/fore200e.c
clean_blob drivers/atm/fore200e.c
clean_blob Documentation/networking/fore200e.txt
clean_blob drivers/atm/.gitignore
clean_blob Documentation/dontdiff
clean_kconfig drivers/atm/Kconfig 'ATM_FORE200E'
clean_mk CONFIG_ATM_FORE200E drivers/atm/Makefile
announce ATM_SOLOS - "Solos ADSL2+ PCI Multiport card driver"
reject_firmware drivers/atm/solos-pci.c
clean_blob drivers/atm/solos-pci.c
clean_kconfig drivers/atm/Kconfig 'ATM_SOLOS'
clean_mk CONFIG_ATM_SOLOS drivers/atm/Makefile
########
# char #
########
announce COMPUTONE - "Computone IntelliPort Plus serial"
drop_fw_file firmware/intelliport2.bin.ihex firmware/intelliport2.bin
reject_firmware drivers/char/ip2/ip2main.c
clean_blob drivers/char/ip2/ip2main.c
clean_kconfig drivers/char/Kconfig 'COMPUTONE'
clean_mk CONFIG_COMPUTONE drivers/char/Makefile
announce CYCLADES - "Cyclades async mux support"
reject_firmware drivers/char/cyclades.c
clean_blob drivers/char/cyclades.c
clean_kconfig drivers/char/Kconfig 'CYCLADES'
clean_mk CONFIG_CYCLADES drivers/char/Makefile
announce ISI - "Multi-Tech multiport card support"
reject_firmware drivers/char/isicom.c
clean_blob drivers/char/isicom.c
clean_kconfig drivers/char/Kconfig 'ISI'
clean_mk CONFIG_ISI drivers/char/Makefile
announce MOXA_INTELLIO - "Moxa Intellio support"
reject_firmware drivers/char/moxa.c
clean_blob drivers/char/moxa.c
clean_kconfig drivers/char/Kconfig 'MOXA_INTELLIO'
clean_mk CONFIG_MOXA_INTELLIO drivers/char/Makefile
# gpu drm
announce DRM_MGA - "Matrox g200/g400"
clean_blob drivers/gpu/drm/mga/mga_ucode.h
clean_blob drivers/gpu/drm/mga/mga_warp.c
clean_kconfig -f drivers/gpu/drm/Kconfig 'DRM_MGA'
clean_mk CONFIG_DRM_MGA drivers/gpu/drm/Makefile
announce DRM_R128 - "ATI Rage 128"
clean_sed '
/^static void r128_cce_load_microcode(drm_r128_private_t \* dev_priv)/i\
#define r128_cce_load_microcode(dev_priv) \\\
do { \\\
DRM_ERROR("Missing Free microcode!\\n"); \\\
dev->dev_private = (void *)dev_priv; \\\
r128_do_cleanup_cce(dev); \\\
return -EINVAL; \\\
} while (0)
' drivers/gpu/drm/r128/r128_cce.c 'report missing Free microcode'
clean_blob drivers/gpu/drm/r128/r128_cce.c
clean_kconfig -f drivers/gpu/drm/Kconfig 'DRM_R128'
clean_mk CONFIG_DRM_R128 drivers/gpu/drm/Makefile
announce DRM_RADEON - "ATI Radeon"
clean_sed '
/^static void radeon_cp_load_microcode(drm_radeon_private_t \* dev_priv)/i\
#define radeon_cp_load_microcode(dev_priv) \\\
do { \\\
DRM_ERROR("Missing Free microcode!\\n"); \\\
radeon_do_cleanup_cp(dev); \\\
return -EINVAL; \\\
} while (0)
' drivers/gpu/drm/radeon/radeon_cp.c 'report missing Free microcode'
clean_blob drivers/gpu/drm/radeon/radeon_cp.c
clean_blob drivers/gpu/drm/radeon/radeon_microcode.h
clean_sed '
/^static void r100_cp_load_microcode(struct radeon_device \*rdev)/i\
#define r100_cp_load_microcode(rdev) \\\
do { \\\
DRM_ERROR("Missing Free microcode!\\n"); \\\
return -EINVAL; \\\
} while (0)
' drivers/gpu/drm/radeon/r100.c 'report missing Free microcode'
clean_blob drivers/gpu/drm/radeon/r100.c
clean_sed '
/^static void r600_cp_load_microcode(drm_radeon_private_t \*dev_priv)/i\
#define r600_cp_load_microcode(dev_priv) \\\
do { \\\
DRM_ERROR("Missing Free microcode!\\n"); \\\
r600_do_cleanup_cp(dev); \\\
return -EINVAL; \\\
} while (0)
' drivers/gpu/drm/radeon/r600_cp.c 'report missing Free r600 microcode'
clean_sed '
/^static void r700_cp_load_microcode(drm_radeon_private_t \*dev_priv)/i\
#define r700_cp_load_microcode(dev_priv) \\\
do { \\\
DRM_ERROR("Missing Free microcode!\\n"); \\\
r600_do_cleanup_cp(dev); \\\
return -EINVAL; \\\
} while (0)
' drivers/gpu/drm/radeon/r600_cp.c 'report missing Free r700 microcode'
clean_blob drivers/gpu/drm/radeon/r600_cp.c
clean_blob drivers/gpu/drm/radeon/r600_microcode.h
clean_kconfig -f drivers/gpu/drm/Kconfig 'DRM_RADEON'
clean_mk CONFIG_DRM_RADEON drivers/gpu/drm/Makefile
#########
# Media #
#########
# media/tuner
announce MEDIA_TUNER_XC2028 - "XCeive xc2028/xc3028 tuners"
undefault_firmware 'XC\(2028\|3028L\)' \
drivers/media/common/tuners/tuner-xc2028.h \
drivers/media/video/saa7134/saa7134-cards.c \
drivers/media/video/ivtv/ivtv-driver.c \
drivers/media/video/cx18/cx18-driver.c \
drivers/media/video/cx18/cx18-dvb.c \
drivers/media/video/cx23885/cx23885-dvb.c \
drivers/media/video/cx88/cx88-dvb.c \
drivers/media/video/cx88/cx88-cards.c \
drivers/media/video/em28xx/em28xx-cards.c \
drivers/media/dvb/dvb-usb/dib0700_devices.c \
drivers/media/dvb/dvb-usb/cxusb.c
reject_firmware drivers/media/common/tuners/tuner-xc2028.c
clean_kconfig drivers/media/common/tuners/Kconfig 'MEDIA_TUNER_XC2028'
clean_mk CONFIG_MEDIA_TUNER_XC2028 drivers/media/common/tuners/Makefile
announce MEDIA_TUNER_XC5000 - "Xceive XC5000 silicon tuner"
undefine_macro 'XC5000_DEFAULT_FIRMWARE_SIZE' 0 \
'removed non-Free firmware size' drivers/media/common/tuners/xc5000.c
undefault_firmware 'XC5000' \
drivers/media/common/tuners/xc5000.c \
drivers/media/video/cx231xx/cx231xx-cards.c
reject_firmware drivers/media/common/tuners/xc5000.c
clean_kconfig drivers/media/common/tuners/Kconfig 'MEDIA_TUNER_XC5000'
clean_mk CONFIG_MEDIA_TUNER_XC5000 drivers/media/common/tuners/Makefile
announce DVB_USB - "Support for various USB DVB devices"
reject_firmware drivers/media/dvb/dvb-usb/dvb-usb-firmware.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB'
clean_mk CONFIG_DVB_USB drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_AF9005 - "Afatech AF9005 DVB-T USB1.1"
clean_file drivers/media/dvb/dvb-usb/af9005-script.h
clean_sed '
s,^ deb_info("load init script\\n");$, {\n err("Missing Free init script\\n");\n return scriptlen = ret = -EINVAL;\n ,;
' drivers/media/dvb/dvb-usb/af9005-fe.c 'report missing Free init script'
clean_blob drivers/media/dvb/dvb-usb/af9005-fe.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_AF9005'
clean_mk CONFIG_DVB_USB_AF9005 drivers/media/dvb/dvb-usb/Makefile
announce DVB_B2C2_FLEXCOP - "Technisat/B2C2 FlexCopII(b) and FlexCopIII adapters"
reject_firmware drivers/media/dvb/b2c2/flexcop-fe-tuner.c
announce DVB_BT8XX - "BT8xx based PCI cards"
reject_firmware drivers/media/dvb/bt8xx/dvb-bt8xx.c
announce DVB_USB_A800 - "AVerMedia AverTV DVB-T USB 2.0 (A800)"
clean_blob drivers/media/dvb/dvb-usb/a800.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_A800'
clean_mk CONFIG_DVB_USB_A800 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_AF9005 - "Afatech AF9005 DVB-T USB1.1 support"
clean_blob drivers/media/dvb/dvb-usb/af9005.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_AF9005'
clean_mk CONFIG_DVB_USB_AF9005 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_AF9015 - "Afatech AF9015 DVB-T USB2.0 support"
clean_blob drivers/media/dvb/dvb-usb/af9015.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_AF9015'
clean_mk CONFIG_DVB_USB_AF9015 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_CXUSB - "Conexant USB2.0 hybrid reference design support"
clean_blob drivers/media/dvb/dvb-usb/cxusb.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_CXUSB'
clean_mk CONFIG_DVB_USB_CXUSB drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_DIB0700 - "DiBcom DiB0700 USB DVB devices"
clean_blob drivers/media/dvb/dvb-usb/dib0700_devices.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DIB0700'
clean_mk CONFIG_DVB_USB_DIB0700 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_DIBUSB_MB - "DiBcom USB DVB-T devices (based on the DiB3000M-B)"
clean_blob drivers/media/dvb/dvb-usb/dibusb-mb.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DIBUSB_MB'
clean_mk CONFIG_DVB_USB_DIBUSB_MB drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_DIBUSB_MC - "DiBcom USB DVB-T devices (based on the DiB3000M-C/P)"
clean_blob drivers/media/dvb/dvb-usb/dibusb-mc.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DIBUSB_MC'
clean_mk CONFIG_DVB_USB_DIBUSB_MC drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_DIGITV - "Nebula Electronics uDigiTV DVB-T USB2.0 support"
clean_blob drivers/media/dvb/dvb-usb/digitv.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DIGITV'
clean_mk CONFIG_DVB_USB_DIGITV drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_DTT200U - "WideView WT-200U and WT-220U (pen) DVB-T USB2.0 support (Yakumo/Hama/Typhoon/Yuan)"
clean_blob drivers/media/dvb/dvb-usb/dtt200u.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DTT200U'
clean_mk CONFIG_DVB_USB_DTT200U drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_DW2102 - "DvbWorld DVB-S/S2 USB2.0 support"
reject_firmware drivers/media/dvb/dvb-usb/dw2102.c
clean_blob drivers/media/dvb/dvb-usb/dw2102.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DW2102'
clean_mk CONFIG_DVB_USB_DW2102 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_GP8PSK - "GENPIX 8PSK->USB module support"
reject_firmware drivers/media/dvb/dvb-usb/gp8psk.c
clean_blob drivers/media/dvb/dvb-usb/gp8psk.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_GP8PSK'
clean_mk CONFIG_DVB_USB_GP8PSK drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_M920X - "Uli m920x DVB-T USB2.0 support"
reject_firmware drivers/media/dvb/dvb-usb/m920x.c
clean_blob drivers/media/dvb/dvb-usb/m920x.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_M920X'
clean_mk CONFIG_DVB_USB_M920X drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_NOVA_T_USB2 - "Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 support"
clean_blob drivers/media/dvb/dvb-usb/nova-t-usb2.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_NOVA_T_USB2'
clean_mk CONFIG_DVB_USB_NOVA_T_USB2 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_OPERA1 - "Opera1 DVB-S USB2.0 receiver"
reject_firmware drivers/media/dvb/dvb-usb/opera1.c
clean_blob drivers/media/dvb/dvb-usb/opera1.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_OPERA1'
clean_mk CONFIG_DVB_USB_OPERA1 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_TTUSB2 - "Pinnacle 400e DVB-S USB2.0 support"
clean_blob drivers/media/dvb/dvb-usb/ttusb2.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_TTUSB2'
clean_mk CONFIG_DVB_USB_TTUSB2 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_UMT_010 - "HanfTek UMT-010 DVB-T USB2.0 support"
clean_blob drivers/media/dvb/dvb-usb/umt-010.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_UMT_010'
clean_mk CONFIG_DVB_USB_UMT_010 drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_VP702X - "TwinhanDTV StarBox and clones DVB-S USB2.0 support"
clean_blob drivers/media/dvb/dvb-usb/vp702x.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_VP702X'
clean_mk CONFIG_DVB_USB_VP702X drivers/media/dvb/dvb-usb/Makefile
announce DVB_USB_VP7045 - "TwinhanDTV Alpha/MagicBoxII, DNTV tinyUSB2, Beetle USB2.0 support"
clean_blob drivers/media/dvb/dvb-usb/vp7045.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_VP7045'
clean_mk CONFIG_DVB_USB_VP7045 drivers/media/dvb/dvb-usb/Makefile
# dvb/frontends
announce DVB_AF9013 - "Afatech AF9013 demodulator"
undefault_firmware 'AF9013' \
drivers/media/dvb/frontends/af9013.c \
drivers/media/dvb/frontends/af9013_priv.h
reject_firmware drivers/media/dvb/frontends/af9013.c
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_AF9013'
clean_mk CONFIG_DVB_AF9013 drivers/media/dvb/frontends/Makefile
announce DVB_BCM3510 - "Broadcom BCM3510"
undefault_firmware 'BCM3510' drivers/media/dvb/frontends/bcm3510.c
reject_firmware drivers/media/dvb/frontends/bcm3510.c
reject_firmware drivers/media/dvb/frontends/bcm3510.h
clean_sed '
/You.ll need a firmware/,/dvb-fe-bcm/d;
' drivers/media/dvb/frontends/bcm3510.c \
"removed non-Free firmware notes"
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_BCM3510'
clean_mk CONFIG_DVB_BCM3510 drivers/media/dvb/frontends/Makefile
announce DVB_NXT200X - "NxtWave Communications NXT2002/NXT2004 based"
undefault_firmware 'NXT200[24]' drivers/media/dvb/frontends/nxt200x.c
reject_firmware drivers/media/dvb/frontends/nxt200x.c
clean_blob drivers/media/dvb/frontends/nxt200x.c
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_NXT200X'
clean_mk CONFIG_DVB_NXT200X drivers/media/dvb/frontends/Makefile
announce DVB_OR51132 - "Oren OR51132 based"
reject_firmware drivers/media/dvb/frontends/or51132.c
clean_blob drivers/media/dvb/frontends/or51132.c
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_OR51132'
clean_mk CONFIG_DVB_OR51132 drivers/media/dvb/frontends/Makefile
announce DVB_OR51211 - "Oren OR51211 based"
undefault_firmware 'OR51211' drivers/media/dvb/frontends/or51211.c
reject_firmware drivers/media/dvb/frontends/or51211.c
reject_firmware drivers/media/dvb/frontends/or51211.h
clean_blob drivers/media/dvb/frontends/or51211.c
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_OR51211'
clean_mk CONFIG_DVB_OR51211 drivers/media/dvb/frontends/Makefile
announce DVB_SP8870 - "Spase sp8870"
undefault_firmware 'SP8870' drivers/media/dvb/frontends/sp8870.c
reject_firmware drivers/media/dvb/frontends/sp8870.c
reject_firmware drivers/media/dvb/frontends/sp8870.h
clean_blob drivers/media/dvb/frontends/sp8870.c
clean_kconfig drivers/media/dvb/frontends 'DVB_SP8870'
clean_mk CONFIG_DVB_SP8870 drivers/media/dvb/frontends/Makefile
announce DVB_CX24116 - "Conexant CX24116 based"
undefault_firmware CX24116 drivers/media/dvb/frontends/cx24116.c
reject_firmware drivers/media/dvb/frontends/cx24116.c
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_CX24116'
clean_mk CONFIG_DVB_CX24116 drivers/media/dvb/frontends/Makefile
announce DVB_SP887X - "Spase sp887x based"
undefault_firmware 'SP887X' drivers/media/dvb/frontends/sp887x.c
reject_firmware drivers/media/dvb/frontends/sp887x.c
reject_firmware drivers/media/dvb/frontends/sp887x.h
clean_blob drivers/media/dvb/frontends/sp887x.c
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_SP887X'
clean_mk CONFIG_DVB_SP887X drivers/media/dvb/frontends/Makefile
announce DVB_TDA10048 - "Philips TDA10048HN based"
undefine_macro 'TDA10048_DEFAULT_FIRMWARE_SIZE' 0 \
'removed non-Free firmware size' drivers/media/dvb/frontends/tda10048.c
undefault_firmware 'TDA10048' drivers/media/dvb/frontends/tda10048.c
reject_firmware drivers/media/dvb/frontends/tda10048.c
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_TDA10048'
clean_mk CONFIG_DVB_TDA10048 drivers/media/dvb/frontends/Makefile
announce DVB_TDA1004X - "Philips TDA10045H/TDA10046H"
undefault_firmware 'TDA1004[56]' drivers/media/dvb/frontends/tda1004x.c
reject_firmware drivers/media/dvb/frontends/tda1004x.c
reject_firmware drivers/media/dvb/frontends/tda1004x.h
clean_blob drivers/media/dvb/frontends/tda1004x.c
clean_kconfig drivers/media/dvb/frontends 'DVB_TDA1004X'
clean_mk CONFIG_DVB_TDA1004X drivers/media/dvb/frontends/Makefile
# dvb
announce DVB_AV7110 - "AV7110 cards"
reject_firmware drivers/media/dvb/ttpci/av7110.c
clean_blob drivers/media/dvb/ttpci/av7110.c
clean_kconfig drivers/media/dvb/ttpci/Kconfig 'DVB_AV7110'
clean_mk CONFIG_DVB_AV7110 drivers/media/dvb/ttpci/Makefile
announce DVB_BUDGET - "Budget cards"
reject_firmware drivers/media/dvb/ttpci/budget.c
reject_firmware drivers/media/dvb/frontends/tdhd1.h
announce DVB_BUDGET_AV - "Budget cards with analog video inputs"
reject_firmware drivers/media/dvb/ttpci/budget-av.c
announce DVB_BUDGET_CI - "Budget cards with onboard CI connector"
reject_firmware drivers/media/dvb/ttpci/budget-ci.c
announce DVB_DRX397XD - "Micronas DRX3975D/DRX3977D based"
reject_firmware drivers/media/dvb/frontends/drx397xD.c
clean_blob drivers/media/dvb/frontends/drx397xD_fw.h
clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_DRX397XD'
clean_mk CONFIG_DVB_DRX397XD drivers/media/dvb/frontends/Makefile
announce DVB_PLUTO2 - "Pluto2 cards"
reject_firmware drivers/media/dvb/pluto2/pluto2.c
announce SMS_SIANO_MDTV - "Siano SMS1xxx based MDTV receiver"
reject_firmware drivers/media/dvb/siano/smscoreapi.c
clean_blob drivers/media/dvb/siano/smscoreapi.c
clean_blob drivers/media/dvb/siano/sms-cards.c
clean_kconfig drivers/media/dvb/siano/Kconfig 'SMS_SIANO_MDTV'
clean_mk CONFIG_SMS_SIANO_MDTV drivers/media/dvb/siano/Makefile
announce SMS_USB_DRV - "Siano's USB interface support"
reject_firmware drivers/media/dvb/siano/smsusb.c
clean_blob drivers/media/dvb/siano/smsusb.c
clean_kconfig drivers/media/dvb/siano/Kconfig 'SMS_USB_DRV'
clean_mk CONFIG_SMS_USB_DRV drivers/media/dvb/siano/Makefile
announce DVB_TTUSB_BUDGET - "Technotrend/Hauppauge Nova-USB devices"
drop_fw_file firmware/ttusb-budget/dspbootcode.bin.ihex firmware/ttusb-budget/dspbootcode.bin
reject_firmware drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
clean_blob drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
clean_kconfig drivers/media/dvb/ttusb-budget/Kconfig 'DVB_TTUSB_BUDGET'
clean_mk CONFIG_DVB_TTUSB_BUDGET drivers/media/dvb/ttusb-budget/Makefile
announce DVB_TTUSB_DEC - "Technotrend/Hauppauge USB DEC devices"
reject_firmware drivers/media/dvb/ttusb-dec/ttusb_dec.c
clean_blob drivers/media/dvb/ttusb-dec/ttusb_dec.c
clean_kconfig drivers/media/dvb/ttusb-dec/Kconfig 'DVB_TTUSB_DEC'
clean_mk CONFIG_DVB_TTUSB_DEC drivers/media/dvb/ttusb-dec/Makefile
# video
announce VIDEO_BT848 - "BT848 Video For Linux"
reject_firmware drivers/media/video/bt8xx/bttv-cards.c
clean_kconfig drivers/media/video/bt8xx/Kconfig 'VIDEO_BT848'
clean_mk CONFIG_VIDEO_BT848 drivers/media/video/bt8xx/Makefile
announce VIDEO_CPIA2 - "CPiA2 Video For Linux"
clean_fw firmware/cpia2/stv0672_vp4.bin.ihex firmware/cpia2/stv0672_vp4.bin
reject_firmware drivers/media/video/cpia2/cpia2_core.c
clean_blob drivers/media/video/cpia2/cpia2_core.c
clean_kconfig drivers/media/video/cpia2/Kconfig 'VIDEO_CPIA2'
clean_mk CONFIG_VIDEO_CPIA2 drivers/media/video/cpia2/Makefile
announce VIDEO_CX18 - "Conexant cx23418 MPEG encoder support"
reject_firmware drivers/media/video/cx18/cx18-av-firmware.c
reject_firmware drivers/media/video/cx18/cx18-dvb.c
reject_firmware drivers/media/video/cx18/cx18-firmware.c
clean_blob drivers/media/video/cx18/cx18-av-firmware.c
clean_blob drivers/media/video/cx18/cx18-dvb.c
clean_blob drivers/media/video/cx18/cx18-firmware.c
clean_kconfig drivers/media/video/cx18/Kconfig 'VIDEO_CX18'
clean_mk CONFIG_VIDEO_CX18 drivers/media/video/cx18/Makefile
announce VIDEO_CX23885 - "Conexant cx23885 (2388x successor) support"
reject_firmware drivers/media/video/cx23885/cx23885-417.c
clean_blob drivers/media/video/cx23885/cx23885-417.c
clean_kconfig drivers/media/video/cx23885/Kconfig 'VIDEO_CX23885'
clean_mk CONFIG_VIDEO_CX23885 drivers/media/video/cx23885/Makefile
announce VIDEO_CX25840 - "Conexant CX2584x audio/video decoders"
reject_firmware drivers/media/video/cx25840/cx25840-firmware.c
clean_blob drivers/media/video/cx25840/cx25840-firmware.c
clean_kconfig drivers/media/video/cx25840/Kconfig 'VIDEO_CX25840'
clean_mk CONFIG_VIDEO_CX25840 drivers/media/video/cx25840/Makefile
announce VIDEO_CX88_BLACKBIRD - "Blackbird MPEG encoder support (cx2388x + cx23416)"
reject_firmware drivers/media/video/cx88/cx88-blackbird.c
clean_kconfig drivers/media/video/cx88/Kconfig 'VIDEO_CX88_BLACKBIRD'
clean_mk CONFIG_VIDEO_CX88_BLACKBIRD drivers/media/video/cx88/Makefile
announce VIDEO_IVTV - "Conexant cx23416/cx23415 MPEG encoder/decoder support"
reject_firmware drivers/media/video/ivtv/ivtv-firmware.c
clean_blob drivers/media/video/ivtv/ivtv-firmware.c
clean_kconfig drivers/media/video/ivtv/Kconfig 'VIDEO_IVTV'
clean_mk CONFIG_VIDEO_IVTV drivers/media/video/ivtv/Makefile
announce VIDEO_PVRUSB2 - "Hauppauge WinTV-PVR USB2 support"
reject_firmware drivers/media/video/pvrusb2/pvrusb2-hdw.c
clean_blob drivers/media/video/pvrusb2/pvrusb2-devattr.c
clean_kconfig drivers/media/video/pvrusb2/Kconfig 'VIDEO_PVRUSB2'
clean_mk CONFIG_VIDEO_PVRUSB2 drivers/media/video/pvrusb2/Makefile
announce "VIDEO_CX23885, VIDEO_CX88_BLACKBIRD, VIDEO_IVTV, VIDEO_PVRUSB2" - "See above"
clean_blob include/media/cx2341x.h
announce VIDEO_GO7007 - "Go 7007 support"
reject_firmware drivers/staging/go7007/go7007-driver.c
clean_blob drivers/staging/go7007/go7007-driver.c
reject_firmware drivers/staging/go7007/go7007-fw.c
clean_blob drivers/staging/go7007/go7007-usb.c
clean_blob drivers/staging/go7007/saa7134-go7007.c
clean_kconfig drivers/staging/go7007/Kconfig 'VIDEO_GO7007'
clean_mk CONFIG_VIDEO_GO7007 drivers/staging/go7007/Makefile
announce VIDEO_GO7007_USB_S2250_BOARD - "Sensoray 2250/2251 support"
reject_firmware drivers/staging/go7007/s2250-loader.c
clean_blob drivers/staging/go7007/s2250-loader.c
clean_kconfig drivers/staging/go7007/Kconfig 'VIDEO_GO7007_USB_S2250_BOARD'
clean_mk CONFIG_VIDEO_GO7007_USB_S2250_BOARD drivers/staging/go7007/Makefile
announce VIDEO_SAA7134_DVB - "DVB/ATSC Support for saa7134 based TV cards"
reject_firmware drivers/media/video/saa7134/saa7134-dvb.c
clean_kconfig drivers/media/video/saa7134/Kconfig 'VIDEO_SAA7134_DVB'
clean_mk CONFIG_VIDEO_SAA7134_DVB drivers/media/video/saa7134/Makefile
announce USB_DABUSB - "DABUSB driver"
clean_fw firmware/dabusb/bitstream.bin.ihex firmware/dabusb/bitstream.bin
clean_fw firmware/dabusb/firmware.HEX firmware/dabusb/firmware.fw
reject_firmware drivers/media/video/dabusb.c
clean_blob drivers/media/video/dabusb.c
clean_kconfig drivers/media/Kconfig 'USB_DABUSB'
clean_mk CONFIG_USB_DABUSB drivers/media/video/Makefile
announce USB_S2255 - "USB Sensoray 2255 video capture device"
reject_firmware drivers/media/video/s2255drv.c
clean_blob drivers/media/video/s2255drv.c
clean_kconfig drivers/media/video/Kconfig 'USB_S2255'
clean_mk CONFIG_USB_S2255 drivers/media/video/Makefile
announce USB_VICAM - "USB 3com HomeConnect, AKA vicam"
drop_fw_file firmware/vicam/firmware.H16 firmware/vicam/firmware.fw
reject_firmware drivers/media/video/usbvideo/vicam.c
clean_blob drivers/media/video/usbvideo/vicam.c
clean_kconfig drivers/media/video/usbvideo/Kconfig 'USB_VICAM'
clean_mk CONFIG_USB_VICAM drivers/media/video/usbvideo/Makefile
#######
# net #
#######
announce ACENIC - "Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit"
drop_fw_file firmware/acenic/tg1.bin.ihex firmware/acenic/tg1.bin
drop_fw_file firmware/acenic/tg2.bin.ihex firmware/acenic/tg2.bin
reject_firmware drivers/net/acenic.c
clean_blob drivers/net/acenic.c
clean_kconfig drivers/net/Kconfig 'ACENIC'
clean_mk CONFIG_ACENIC drivers/net/Makefile
announce ADAPTEC_STARFIRE - "Adaptec Starfire/DuraLAN support"
clean_fw firmware/adaptec/starfire_rx.bin.ihex firmware/adaptec/starfire_rx.bin
clean_fw firmware/adaptec/starfire_tx.bin.ihex firmware/adaptec/starfire_tx.bin
reject_firmware drivers/net/starfire.c
clean_blob drivers/net/starfire.c
clean_kconfig drivers/net/Kconfig 'ADAPTEC_STARFIRE'
clean_mk CONFIG_ADAPTEC_STARFIRE drivers/net/Makefile
announce BNX2 - "Broadcom NetXtremeII"
drop_fw_file firmware/bnx2/bnx2-mips-09-4.6.17.fw.ihex firmware/bnx2/bnx2-mips-09-4.6.17.fw
drop_fw_file firmware/bnx2/bnx2-rv2p-09-4.6.15.fw.ihex firmware/bnx2/bnx2-rv2p-09-4.6.15.fw
drop_fw_file firmware/bnx2/bnx2-mips-06-4.6.16.fw.ihex firmware/bnx2/bnx2-mips-06-4.6.16.fw
drop_fw_file firmware/bnx2/bnx2-rv2p-06-4.6.16.fw.ihex firmware/bnx2/bnx2-rv2p-06-4.6.16.fw
reject_firmware drivers/net/bnx2.c
clean_blob drivers/net/bnx2.c
clean_kconfig drivers/net/Kconfig 'BNX2'
clean_mk CONFIG_BNX2 drivers/net/Makefile
announce BNX2X - "Broadcom NetXtremeII 10Gb support"
drop_fw_file firmware/bnx2x-e1-4.8.53.0.fw.ihex firmware/bnx2x-e1-4.8.53.0.fw
drop_fw_file firmware/bnx2x-e1h-4.8.53.0.fw.ihex firmware/bnx2x-e1h-4.8.53.0.fw
reject_firmware drivers/net/bnx2x_main.c
clean_sed '
/^#include "bnx2x_init\.h"/,/^$/{
/^$/i\
#define bnx2x_init_block(bp, start, end) \\\
return (printk(KERN_ERR PFX "%s: Missing Free firmware\\n", bp->dev->name),\\\
-EINVAL)
}' drivers/net/bnx2x_main.c 'report missing Free firmware'
clean_blob drivers/net/bnx2x_main.c
clean_blob drivers/net/bnx2x_hsi.h
clean_blob drivers/net/bnx2x_init_ops.h
clean_kconfig drivers/net/Kconfig 'BNX2X'
clean_mk CONFIG_BNX2X drivers/net/Makefile
announce CASSINI - "Sun Cassini"
drop_fw_file firmware/sun/cassini.bin.ihex firmware/sun/cassini.bin
reject_firmware drivers/net/cassini.c
clean_blob drivers/net/cassini.c
clean_kconfig drivers/net/Kconfig 'CASSINI'
clean_mk CONFIG_CASSINI drivers/net/Makefile
announce CHELSIO_T3 - "Chelsio AEL 2005 support"
drop_fw_file firmware/cxgb3/t3b_psram-1.1.0.bin.ihex firmware/cxgb3/t3b_psram-1.1.0.bin
drop_fw_file firmware/cxgb3/t3c_psram-1.1.0.bin.ihex firmware/cxgb3/t3c_psram-1.1.0.bin
drop_fw_file firmware/cxgb3/t3fw-7.4.0.bin.ihex firmware/cxgb3/t3fw-7.4.0.bin
reject_firmware drivers/net/cxgb3/cxgb3_main.c
clean_sed '
/^static int ael2005_setup_\(sr\|twinax\)_edc([^;]*$/,/^}$/{
/for.*ARRAY_SIZE(\(sr\|twinax\)_edc)/i\
CH_ERR(phy->adapter, "Missing Free firwmare\\n");\
err = -EINVAL;
}' drivers/net/cxgb3/ael1002.c 'report missing Free firmware'
clean_blob drivers/net/cxgb3/cxgb3_main.c
clean_blob drivers/net/cxgb3/ael1002.c
clean_kconfig drivers/net/Kconfig 'CHELSIO_T3'
clean_mk CONFIG_CHELSIO_T3 drivers/net/cxgb3/Makefile
announce E100 - "Intel PRO/100+"
drop_fw_file firmware/e100/d101m_ucode.bin.ihex firmware/e100/d101m_ucode.bin
drop_fw_file firmware/e100/d101s_ucode.bin.ihex firmware/e100/d101s_ucode.bin
drop_fw_file firmware/e100/d102e_ucode.bin.ihex firmware/e100/d102e_ucode.bin
reject_firmware drivers/net/e100.c
clean_sed '
/^static const struct firmware \*e100_\(reject\|request\)_firmware(/,/^}$/{
s:^\(.*\)return ERR_PTR(err);$:\1DPRINTK(PROBE,ERR, "Proceeding without firmware\\n");\n\1return NULL;:
}' drivers/net/e100.c 'proceed without firmware'
clean_blob drivers/net/e100.c
clean_kconfig drivers/net/Kconfig 'E100'
clean_mk CONFIG_E100 drivers/net/Makefile
announce MYRI_SBUS - "MyriCOM Gigabit Ethernet"
drop_fw_file firmware/myricom/lanai.bin.ihex firmware/myricom/lanai.bin
reject_firmware drivers/net/myri_sbus.c
clean_blob drivers/net/myri_sbus.c
clean_kconfig drivers/net/Kconfig 'MYRI_SBUS'
clean_mk CONFIG_MYRI_SBUS drivers/net/Makefile
announce MYRI10GE - "Myricom Myri-10G Ethernet support"
reject_firmware drivers/net/myri10ge/myri10ge.c
clean_blob drivers/net/myri10ge/myri10ge.c
clean_kconfig drivers/net/Kconfig 'MYRI10GE'
clean_mk CONFIG_MYRI10GE drivers/net/myri10ge/Makefile
announce NETXEN_NIC - "NetXen Multi port (1/10) Gigabit Ethernet NIC"
reject_firmware drivers/net/netxen/netxen_nic.h
reject_firmware drivers/net/netxen/netxen_nic_main.c
reject_firmware drivers/net/netxen/netxen_nic_init.c
clean_blob drivers/net/netxen/netxen_nic_init.c
clean_kconfig drivers/net/Kconfig 'NETXEN_NIC'
clean_mk CONFIG_NETXEN_NIC drivers/net/Makefile
announce SLICOSS - "Alacritech Gigabit IS-NIC cards"
reject_firmware drivers/staging/slicoss/slicoss.c
clean_blob drivers/staging/slicoss/slicoss.c
clean_kconfig drivers/staging/slicoss/Kconfig 'SLICOSS'
clean_mk CONFIG_SLICOSS drivers/staging/slicoss/Makefile
announce SPIDER_NET - "Spider Gigabit Ethernet driver"
reject_firmware drivers/net/spider_net.c
clean_sed 's,spider_fw\.bin,DEBLOBBED.bin,g' \
drivers/net/spider_net.c 'removed non-Free firmware notes'
clean_blob drivers/net/spider_net.h
clean_kconfig drivers/net/Kconfig 'SPIDER_NET'
clean_mk CONFIG_SPIDER_NET drivers/net/Makefile
announce SXG - "Alacritech SLIC Technology Non-Accelerated 10Gbe cards"
clean_file drivers/staging/sxg/sxgphycode-1.2.h
reject_firmware drivers/staging/sxg/sxg.c
clean_sed '
/^static int sxg_phy_init(/,/^}$/{
/for (p = PhyUcode/i\
printk("%s: missing Free firmware\\n", __func__);\
return (STATUS_FAILURE);\
#define PhyUcode NULL
}' drivers/staging/sxg/sxg.c 'report missing Free firmware'
clean_blob drivers/staging/sxg/sxg.c
clean_kconfig drivers/staging/sxg/Kconfig 'SXG'
clean_mk CONFIG_SXG drivers/staging/sxg/Makefile
announce TEHUTI - "Tehuti Networks 10G Ethernet"
drop_fw_file firmware/tehuti/bdx.bin.ihex firmware/tehuti/bdx.bin
reject_firmware drivers/net/tehuti.c
clean_blob drivers/net/tehuti.c
clean_kconfig drivers/net/Kconfig 'TEHUTI'
clean_mk CONFIG_TEHUTI drivers/net/Makefile
announce TIGON3 - "Broadcom Tigon3"
drop_fw_file firmware/tigon/tg3.bin.ihex firmware/tigon/tg3.bin
drop_fw_file firmware/tigon/tg3_tso.bin.ihex firmware/tigon/tg3_tso.bin
drop_fw_file firmware/tigon/tg3_tso5.bin.ihex firmware/tigon/tg3_tso5.bin
reject_firmware drivers/net/tg3.c
clean_blob drivers/net/tg3.c
clean_kconfig drivers/net/Kconfig 'TIGON3'
clean_mk CONFIG_TIGON3 drivers/net/Makefile
announce TYPHOON - "3cr990 series Typhoon"
drop_fw_file firmware/3com/typhoon.bin.ihex firmware/3com/typhoon.bin
reject_firmware drivers/net/typhoon.c
clean_blob drivers/net/typhoon.c
clean_kconfig drivers/net/Kconfig 'TYPHOON'
clean_mk CONFIG_TYPHOON drivers/net/Makefile
# appletalk
announce COPS - "COPS LocalTalk PC"
clean_sed '
/sizeof(\(ff\|lt\)drv_code)/{
i\
printk(KERN_INFO "%s: Missing Free firmware.\\n", dev->name);\
return;
}
/\(ff\|lt\)drv_code/d;
' drivers/net/appletalk/cops.c 'report missing Free firmware'
clean_blob drivers/net/appletalk/cops.c
clean_file drivers/net/appletalk/cops_ffdrv.h
clean_file drivers/net/appletalk/cops_ltdrv.h
clean_kconfig drivers/net/appletalk/Kconfig 'COPS'
clean_mk CONFIG_COPS drivers/net/appletalk/Makefile
# hamradio
announce YAM - "YAM driver for AX.25"
drop_fw_file firmware/yam/1200.bin.ihex firmware/yam/1200.bin
drop_fw_file firmware/yam/9600.bin.ihex firmware/yam/9600.bin
reject_firmware drivers/net/hamradio/yam.c
clean_blob drivers/net/hamradio/yam.c
clean_kconfig drivers/net/hamradio/Kconfig 'YAM'
clean_mk CONFIG_YAM drivers/net/hamradio/Makefile
# irda
announce USB_IRDA - "IrDA USB dongles"
reject_firmware drivers/net/irda/irda-usb.c
clean_blob drivers/net/irda/irda-usb.c
clean_kconfig drivers/net/irda/Kconfig 'USB_IRDA'
clean_mk CONFIG_USB_IRDA drivers/net/irda/Makefile
# pcmcia
announce PCMCIA_SMC91C92 - "SMC 91Cxx PCMCIA"
drop_fw_file firmware/ositech/Xilinx7OD.bin.ihex firmware/ositech/Xilinx7OD.bin
reject_firmware drivers/net/pcmcia/smc91c92_cs.c
clean_blob drivers/net/pcmcia/smc91c92_cs.c
clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_SMC91C92'
clean_mk CONFIG_PCMCIA_SMC91C92 drivers/net/pcmcia/Makefile
announce PCCARD - "PCCard (PCMCIA/CardBus) support"
reject_firmware drivers/pcmcia/ds.c
clean_kconfig drivers/pcmcia/Kconfig 'PCCARD'
clean_mk CONFIG_PCCARD drivers/pcmcia/Makefile
announce PCMCIA_3C574 - "3Com 3c574 PCMCIA support"
drop_fw_file firmware/cis/3CCFEM556.cis.ihex firmware/cis/3CCFEM556.cis
clean_blob drivers/net/pcmcia/3c574_cs.c
clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_3C574'
clean_mk CONFIG_PCMCIA_3C574 drivers/net/pcmcia/Makefile
announce PCMCIA_3C589 - "3Com 3c589 PCMCIA support"
drop_fw_file firmware/cis/3CXEM556.cis.ihex firmware/cis/3CXEM556.cis
clean_blob drivers/net/pcmcia/3c589_cs.c
clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_3C589'
clean_mk CONFIG_PCMCIA_3C589 drivers/net/pcmcia/Makefile
announce PCMCIA_PCNET - "NE2000 compatible PCMCIA support"
drop_fw_file firmware/cis/LA-PCM.cis.ihex firmware/cis/LA-PCM.cis
clean_blob drivers/net/pcmcia/pcnet_cs.c
clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_PCNET'
clean_mk CONFIG_PCMCIA_PCNET drivers/net/pcmcia/Makefile
# tokenring
announce 3C359 - "3Com 3C359 Token Link Velocity XL adapter"
drop_fw_file firmware/3com/3C359.bin.ihex firmware/3com/3C359.bin
clean_blob drivers/net/tokenring/3c359.c
clean_kconfig drivers/net/tokenring/Kconfig '3C359'
clean_mk CONFIG_3C359 drivers/net/tokenring/Makefile
announce SMCTR - "SMC ISA/MCA adapter"
drop_fw_file firmware/tr_smctr.bin.ihex firmware/tr_smctr.bin
reject_firmware drivers/net/tokenring/smctr.c
clean_blob drivers/net/tokenring/smctr.c
clean_kconfig drivers/net/tokenring/Kconfig 'SMCTR'
clean_mk CONFIG_SMCTR drivers/net/tokenring/Makefile
announce TMS380TR - "Generic TMS380 Token Ring ISA/PCI adapter support"
reject_firmware drivers/net/tokenring/tms380tr.c
clean_blob drivers/net/tokenring/tms380tr.c
clean_kconfig drivers/net/tokenring/Kconfig 'TMS380TR'
clean_mk CONFIG_TMS380TR drivers/net/tokenring/Makefile
# usb
announce USB_KAWETH - "USB KLSI KL5USB101-based ethernet device support"
drop_fw_file firmware/kaweth/new_code.bin.ihex firmware/kaweth/new_code.bin
drop_fw_file firmware/kaweth/new_code_fix.bin.ihex firmware/kaweth/new_code_fix.bin
drop_fw_file firmware/kaweth/trigger_code.bin.ihex firmware/kaweth/trigger_code.bin
drop_fw_file firmware/kaweth/trigger_code_fix.bin.ihex firmware/kaweth/trigger_code_fix.bin
reject_firmware drivers/net/usb/kaweth.c
clean_blob drivers/net/usb/kaweth.c
clean_kconfig drivers/net/usb/Kconfig 'USB_KAWETH'
clean_mk CONFIG_USB_KAWETH drivers/net/usb/Makefile
# wireless
announce ATMEL "Atmel at76c50x chipset 802.11b support"
reject_firmware drivers/net/wireless/atmel.c
clean_blob drivers/net/wireless/atmel.c
clean_kconfig drivers/net/wireless/Kconfig 'ATMEL'
clean_mk CONFIG_ATMEL drivers/net/wireless/Makefile
announce AT76C50X_USB - "Atmel at76c503/at76c505/at76c505a USB cards"
reject_firmware drivers/net/wireless/at76c50x-usb.c
clean_blob drivers/net/wireless/at76c50x-usb.c
clean_kconfig drivers/net/wireless/Kconfig 'AT76C50X_USB'
clean_mk CONFIG_AT76C50X_USB drivers/net/wireless/Makefile
announce USB_ATMEL - "Atmel at76c503/at76c505/at76c505a USB cards (in staging)"
reject_firmware drivers/staging/at76_usb/at76_usb.c
clean_blob drivers/staging/at76_usb/at76_usb.c
clean_kconfig drivers/staging/at76_usb/Kconfig 'USB_ATMEL'
clean_mk CONFIG_USB_ATMEL drivers/staging/at76_usb/Makefile
announce B43 - "Broadcom 43xx wireless support (mac80211 stack)"
maybe_reject_firmware drivers/net/wireless/b43/main.c
clean_sed '
/^static int b43_upload_microcode(/,/^}$/{
/ if (dev->fw\.opensource) {$/i\
if (!dev->fw.opensource) {\
b43err(dev->wl, "Rejected non-Free firmware\\n");\
err = -EOPNOTSUPP;\
goto error;\
}
}' drivers/net/wireless/b43/main.c 'double-check and reject non-Free firmware'
# Major portions of firmware filenames not deblobbed.
clean_blob drivers/net/wireless/b43/main.c
clean_kconfig drivers/net/wireless/b43/Kconfig 'B43'
clean_mk CONFIG_B43 drivers/net/wireless/b43/Makefile
announce B43LEGACY - "Broadcom 43xx-legacy wireless support (mac80211 stack)"
reject_firmware drivers/net/wireless/b43legacy/main.c
# Major portions of firwmare filenames not deblobbed.
clean_blob drivers/net/wireless/b43legacy/main.c
clean_kconfig drivers/net/wireless/b43legacy/Kconfig 'B43LEGACY'
clean_mk CONFIG_B43LEGACY drivers/net/wireless/b43legacy/Makefile
announce HERMES - "Hermes chipset 802.11b support (Orinoco/Prism2/Symbol)"
reject_firmware drivers/net/wireless/orinoco/fw.c
clean_blob drivers/net/wireless/orinoco/fw.c
clean_kconfig drivers/net/wireless/Kconfig 'HERMES'
clean_mk CONFIG_HERMES drivers/net/wireless/orinoco/Makefile
announce IPW2100 - "Intel PRO/Wireless 2100 Network Connection"
reject_firmware drivers/net/wireless/ipw2x00/ipw2100.c
clean_blob drivers/net/wireless/ipw2x00/ipw2100.c
clean_kconfig drivers/net/wireless/Kconfig 'IPW2100'
clean_mk CONFIG_IPW2100 drivers/net/wireless/ipw2x00/Makefile
announce IPW2200 - "Intel PRO/Wireless 2200BG and 2915ABG Network Connection"
reject_firmware drivers/net/wireless/ipw2x00/ipw2200.c
clean_blob drivers/net/wireless/ipw2x00/ipw2200.c
clean_kconfig drivers/net/wireless/Kconfig 'IPW2200'
clean_mk CONFIG_IPW2200 drivers/net/wireless/ipw2x00/Makefile
announce IWL3945 - "Intel PRO/Wireless 3945ABG/BG Network Connection"
reject_firmware drivers/net/wireless/iwlwifi/iwl3945-base.c
clean_blob drivers/net/wireless/iwlwifi/iwl3945-base.c
clean_blob drivers/net/wireless/iwlwifi/iwl-3945.h
clean_kconfig drivers/net/wireless/iwlwifi/Kconfig 'IWL3945'
clean_mk CONFIG_IWL3945 drivers/net/wireless/iwlwifi/Makefile
announce IWLAGN - "Intel Wireless WiFi Next Gen AGN"
reject_firmware drivers/net/wireless/iwlwifi/iwl-agn.c
clean_blob drivers/net/wireless/iwlwifi/iwl-agn.c
clean_kconfig drivers/net/wireless/iwlwifi/Kconfig 'IWLAGN'
clean_mk CONFIG_IWLAGN drivers/net/wireless/iwlwifi/Makefile
announce IWL4965 - "Intel Wireless WiFi 4965AGN"
clean_blob drivers/net/wireless/iwlwifi/iwl-4965.c
clean_kconfig drivers/net/wireless/iwlwifi/Kconfig 'IWL4965'
clean_mk CONFIG_IWL4965 drivers/net/wireless/iwlwifi/Makefile
announce IWL5000 - "Intel Wireless WiFi 5000AGN"
clean_blob drivers/net/wireless/iwlwifi/iwl-5000.c
clean_blob drivers/net/wireless/iwlwifi/iwl-6000.c
clean_blob drivers/net/wireless/iwlwifi/iwl-1000.c
clean_kconfig drivers/net/wireless/iwlwifi/Kconfig 'IWL5000'
clean_mk CONFIG_IWL5000 drivers/net/wireless/iwlwifi/Makefile
announce IWM - "Intel Wireless Multicomm 3200 WiFi driver"
reject_firmware drivers/net/wireless/iwmc3200wifi/fw.c
clean_blob drivers/net/wireless/iwmc3200wifi/sdio.c
clean_kconfig drivers/net/wireless/iwmc3200wifi/Kconfig 'IWM'
clean_mk CONFIG_IWM drivers/net/wireless/iwmc3200wifi/Makefile
announce LIBERTAS_CS - "Marvell Libertas 8385 CompactFlash 802.11b/g cards"
reject_firmware drivers/net/wireless/libertas/if_cs.c
clean_blob drivers/net/wireless/libertas/if_cs.c
clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_CS'
clean_mk CONFIG_LIBERTAS_CS drivers/net/wireless/libertas/Makefile
announce LIBERTAS_SDIO - "Marvell Libertas 8385 and 8686 SDIO 802.11b/g cards"
reject_firmware drivers/net/wireless/libertas/if_sdio.c
clean_blob drivers/net/wireless/libertas/if_sdio.c
clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_SDIO'
clean_mk CONFIG_LIBERTAS_SDIO drivers/net/wireless/libertas/Makefile
announce LIBERTAS_SPI - "Marvell Libertas 8686 SPI 802.11b/g cards"
reject_firmware drivers/net/wireless/libertas/if_spi.c
clean_blob drivers/net/wireless/libertas/if_spi.c
clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_SPI'
clean_mk CONFIG_LIBERTAS_SPI drivers/net/wireless/libertas/Makefile
announce LIBERTAS_USB - "Marvell Libertas 8388 USB 802.11b/g cards"
reject_firmware drivers/net/wireless/libertas/if_usb.c
clean_blob drivers/net/wireless/libertas/if_usb.c
clean_blob drivers/net/wireless/libertas/README
clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_USB'
clean_mk CONFIG_LIBERTAS_USB drivers/net/wireless/libertas/Makefile
announce LIBERTAS_THINFIRM_USB - "Marvell Libertas 8388 USB 802.11b/g cards with thin firmware"
reject_firmware drivers/net/wireless/libertas_tf/if_usb.c
clean_blob drivers/net/wireless/libertas_tf/if_usb.c
clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_THINFIRM_USB'
clean_mk CONFIG_LIBERTAS_THINFIRM_USB drivers/net/wireless/libertas_tf/Makefile
announce MWL8K - 'Marvell 88W8xxx PCI/PCIe Wireless support'
reject_firmware drivers/net/wireless/mwl8k.c
clean_blob drivers/net/wireless/mwl8k.c
clean_kconfig drivers/net/wireless/Kconfig 'MWL8K'
clean_mk CONFIG_MWL8K drivers/net/wireless/Makefile
announce OTUS - "Atheros OTUS 802.11n USB wireless support"
clean_blob drivers/staging/otus/hal/hpDKfwu.c
clean_blob drivers/staging/otus/hal/hpfw2.c
clean_blob drivers/staging/otus/hal/hpfwbu.c
clean_blob drivers/staging/otus/hal/hpfwspiu.c
clean_blob drivers/staging/otus/hal/hpfwu.c
clean_blob drivers/staging/otus/hal/hpfwu.c.drv_ba_resend
clean_blob drivers/staging/otus/hal/hpfwu_2k.c
clean_blob drivers/staging/otus/hal/hpfwu_BA.c
clean_blob drivers/staging/otus/hal/hpfwu_FB50_mdk.c
clean_blob drivers/staging/otus/hal/hpfwu_OTUS_RC.c
clean_blob drivers/staging/otus/hal/hpfwu_txstream.c
clean_blob drivers/staging/otus/hal/hpfwuinit.c
clean_sed '
/^u16_t zfFirmwareDownload\(NotJump\)\?(.*)$/,/^}$/ {
/ image = (u8_t\*) fw;/i\
zm_msg0_init(ZM_LV_0, "Missing Free firmware");\
ret = ZM_ERR_FIRMWARE_WRONG_TYPE;\
goto exit;\
}
' drivers/staging/otus/hal/hpusb.c \
'disabled non-Free firmware-loading machinery'
clean_sed 's/^extern u16_t \(zfFirmwareDownload\(NotJump\)\?\)([^;]*);/&\n#define \1(dev,fw,len,offset) (\1)(dev,NULL,0,offset)/
' drivers/staging/otus/hal/hpmain.c \
'disabled non-Free firmware-loading machinery'
clean_blob drivers/staging/otus/hal/hpmain.c
clean_kconfig drivers/staging/otus/Kconfig OTUS
clean_mk CONFIG_OTUS drivers/staging/otus/Makefile
announce PRISM2_USB - "Prism2.5/3 USB driver"
reject_firmware drivers/staging/wlan-ng/prism2fw.c
clean_blob drivers/staging/wlan-ng/prism2fw.c
clean_kconfig drivers/staging/wlan-ng/Kconfig PRISM2_USB
clean_mk CONFIG_PRISM2_USB drivers/staging/wlan-ng/Makefile
announce P54_PCI - "Prism54 PCI support"
reject_firmware drivers/net/wireless/p54/p54pci.c
clean_blob drivers/net/wireless/p54/p54pci.c
clean_kconfig drivers/net/wireless/p54/Kconfig 'P54_PCI'
clean_mk CONFIG_P54_PCI drivers/net/wireless/p54/Makefile
announce P54_SPI - "Prism54 SPI (stlc45xx) support"
# There's support for loading custom 3826.eeprom here, with a default
# eeprom that is clearly pure data. Without Free 3826.arm, there's
# little point in trying to retain the ability to load 3826.eeprom, so
# we drop it altogether.
reject_firmware drivers/net/wireless/p54/p54spi.c
clean_blob drivers/net/wireless/p54/p54spi.c
clean_kconfig drivers/net/wireless/p54/Kconfig 'P54_SPI'
clean_mk CONFIG_P54_SPI drivers/net/wireless/p54/Makefile
announce P54_USB - "Prism54 USB support"
reject_firmware drivers/net/wireless/p54/p54usb.c
clean_blob drivers/net/wireless/p54/p54usb.c
clean_blob drivers/net/wireless/p54/p54usb.h
clean_kconfig drivers/net/wireless/p54/Kconfig 'P54_USB'
clean_mk CONFIG_P54_USB drivers/net/wireless/p54/Makefile
announce PRISM54 - 'Intersil Prism GT/Duette/Indigo PCI/Cardbus'
reject_firmware drivers/net/wireless/prism54/islpci_dev.c
clean_blob drivers/net/wireless/prism54/islpci_dev.c
clean_sed '
/^config PRISM54$/,/^config /{
/If you enable this/,/^$/d;
}' drivers/net/wireless/Kconfig 'removed firmware notes'
clean_kconfig drivers/net/wireless/Kconfig 'PRISM54'
clean_mk CONFIG_PRISM54 drivers/net/wireless/prism54/Makefile
announce RT2X00_LIB_FIRMWARE - "Ralink driver firmware support"
reject_firmware drivers/net/wireless/rt2x00/rt2x00firmware.c
clean_kconfig drivers/net/wireless/rt2x00/Kconfig 'RT2X00_LIB_FIRMWARE'
clean_mk CONFIG_RT2X00_LIB_FIRMWARE drivers/net/wireless/rt2x00/Makefile
announce RT61PCI - "Ralink rt2501/rt61 (PCI/PCMCIA) support"
clean_blob drivers/net/wireless/rt2x00/rt61pci.h
clean_blob drivers/net/wireless/rt2x00/rt61pci.c
clean_kconfig drivers/net/wireless/rt2x00/Kconfig 'RT61PCI'
clean_mk CONFIG_RT61PCI drivers/net/wireless/rt2x00/Makefile
announce RT73USB - "Ralink rt2501/rt73 (USB) support"
clean_blob drivers/net/wireless/rt2x00/rt73usb.h
clean_blob drivers/net/wireless/rt2x00/rt73usb.c
clean_kconfig drivers/net/wireless/rt2x00/Kconfig 'RT73USB'
clean_mk CONFIG_RT73USB drivers/net/wireless/rt2x00/Makefile
announce RT2800USB - "Ralink rt2800 (USB) support"
clean_blob drivers/net/wireless/rt2x00/rt2800usb.h
clean_blob drivers/net/wireless/rt2x00/rt2800usb.c
clean_kconfig drivers/net/wireless/rt2x00/Kconfig RT2800USB
clean_mk CONFIG_RT2800USB drivers/net/wireless/rt2x00/Makefile
announce RT2860 - "Ralink 2860 wireless support"
clean_file drivers/staging/rt2860/common/firmware.h
clean_blob drivers/staging/rt2860/rt_linux.h
clean_sed '
/^NDIS_STATUS NICLoadFirmware(/,/^}$/{
s/^\( *\)pFirmwareImage = .*FirmwareImage.*;/\1printk("%s: missing Free firmware\\n", __func__);\n\1return NDIS_STATUS_FAILURE;\n&/
}' drivers/staging/rt2860/common/rtmp_init.c 'report missing Free firmware'
clean_blob drivers/staging/rt2860/common/rtmp_init.c
clean_sed '
/^INT[ ]set_eFuseLoadFromBin_Proc(/,/^}$/{
/src = kmalloc/i\
printk("%s: missing Free firmware\\n", __func__);\
return FALSE;
}' drivers/staging/rt2860/common/eeprom.c 'report missing Free firmware'
clean_blob drivers/staging/rt2860/common/eeprom.c
clean_kconfig drivers/staging/rt2860/Kconfig RT2860
clean_mk CONFIG_RT2860 drivers/staging/rt2860/Makefile
announce RT2870 - "Ralink 2870 wireless support"
clean_file drivers/staging/rt2870/common/firmware.h
clean_kconfig drivers/staging/rt2870/Kconfig RT2870
clean_mk CONFIG_RT2870 drivers/staging/rt2870/Makefile
announce RT3070 - "Ralink 3070 wireless support"
clean_file drivers/staging/rt3070/firmware.h
clean_kconfig drivers/staging/rt3070/Kconfig RT3070
clean_mk CONFIG_RT3070 drivers/staging/rt3070/Makefile
announce RTL8192SU - "RealTek RTL8192SU Wireless LAN NIC driver"
reject_firmware drivers/staging/rtl8192su/r819xU_firmware.c
reject_firmware drivers/staging/rtl8192su/r8192S_firmware.c
clean_blob drivers/staging/rtl8192su/r8192SU_HWImg.c
clean_blob drivers/staging/rtl8192su/r8192S_FwImgDTM.h
clean_blob drivers/staging/rtl8192su/r8192S_firmware.c
clean_blob drivers/staging/rtl8192su/r819xU_firmware_img.c
clean_blob drivers/staging/rtl8192su/r819xU_firmware.c
clean_kconfig drivers/staging/rtl8192su/Kconfig 'RTL8192SU'
clean_mk CONFIG_RTL8192SU drivers/staging/rtl8192su/Makefile
announce WL12XX - "TI wl1251/wl1271 support"
reject_firmware drivers/net/wireless/wl12xx/main.c
clean_blob drivers/net/wireless/wl12xx/wl1251.h
clean_kconfig drivers/net/wireless/wl12xx/Kconfig 'WL12XX'
clean_mk CONFIG_WL12XX drivers/net/wireless/wl12xx/Makefile
announce USB_ZD1201 - "USB ZD1201 based Wireless device support"
reject_firmware drivers/net/wireless/zd1201.c
clean_blob drivers/net/wireless/zd1201.c
clean_kconfig drivers/net/wireless/Kconfig 'USB_ZD1201'
clean_mk CONFIG_USB_ZD1201 drivers/net/wireless/Makefile
announce ZD1211RW - "ZyDAS ZD1211/ZD1211B USB-wireless support"
reject_firmware drivers/net/wireless/zd1211rw/zd_usb.c
clean_blob drivers/net/wireless/zd1211rw/zd_usb.c
clean_kconfig drivers/net/wireless/zd1211rw/Kconfig 'ZD1211RW'
clean_mk CONFIG_ZD1211RW drivers/net/wireless/zd1211rw/Makefile
# bluetooth
announce BT_HCIBCM203X - "HCI BCM203x USB driver"
reject_firmware drivers/bluetooth/bcm203x.c
clean_blob drivers/bluetooth/bcm203x.c
clean_kconfig drivers/bluetooth/Kconfig 'BT_HCIBCM203X'
clean_mk CONFIG_BT_HCIBCM203X drivers/bluetooth/Makefile
announce BT_HCIBFUSB - "HCI BlueFRITZ! USB driver"
reject_firmware drivers/bluetooth/bfusb.c
clean_blob drivers/bluetooth/bfusb.c
clean_kconfig drivers/bluetooth/Kconfig 'BT_HCIBFUSB'
clean_mk CONFIG_BT_HCIBFUSB drivers/bluetooth/Makefile
announce BT_HCIBT3C - "HCI BT3C (PC Card) driver"
reject_firmware drivers/bluetooth/bt3c_cs.c
clean_blob drivers/bluetooth/bt3c_cs.c
clean_kconfig drivers/bluetooth/Kconfig 'BT_HCIBT3C'
clean_mk CONFIG_BT_HCIBT3C drivers/bluetooth/Makefile
# wimax
announce WIMAX_I2400M - "Intel Wireless WiMAX Connection 2400"
reject_firmware drivers/net/wimax/i2400m/fw.c
clean_blob drivers/net/wimax/i2400m/sdio.c
clean_blob drivers/net/wimax/i2400m/usb.c
clean_blob Documentation/wimax/README.i2400m
clean_kconfig drivers/net/wimax/i2400m/Kconfig CONFIG_WIMAX_I2400M
clean_mk CONFIG_WIMAX_I2400M drivers/net/wimax/i2400m/Makefile
########
# ISDN #
########
announce ISDN_DIVAS - "Support Eicon DIVA Server cards"
clean_blob drivers/isdn/hardware/eicon/cardtype.h
clean_blob drivers/isdn/hardware/eicon/dsp_defs.h
clean_kconfig drivers/isdn/hardware/eicon/Kconfig 'ISDN_DIVAS'
clean_mk CONFIG_ISDN_DIVAS drivers/isdn/hardware/eicon/Makefile
##########
# Serial #
##########
announce SERIAL_8250_CS - "8250/16550 PCMCIA device support"
clean_blob drivers/serial/serial_cs.c
clean_kconfig drivers/serial/Kconfig 'SERIAL_8250_CS'
clean_mk CONFIG_SERIAL_8250_CS drivers/serial/Makefile
announce SERIAL_ICOM - "IBM Multiport Serial Adapter"
reject_firmware drivers/serial/icom.c
clean_blob drivers/serial/icom.c
clean_kconfig drivers/serial/Kconfig 'SERIAL_ICOM'
clean_mk CONFIG_SERIAL_ICOM drivers/serial/Makefile
announce SERIAL_QE - "Freescale QUICC Engine serial port support"
reject_firmware drivers/serial/ucc_uart.c
clean_blob drivers/serial/ucc_uart.c
clean_kconfig drivers/serial/Kconfig 'SERIAL_QE'
clean_mk CONFIG_SERIAL_QE drivers/serial/Makefile
####################
# Data acquisition #
####################
announce COMEDI_PCI_DRIVERS - "Data acquisition support Comedi PCI drivers"
reject_firmware drivers/staging/comedi/drivers/jr3_pci.c
clean_blob drivers/staging/comedi/drivers/jr3_pci.c
clean_kconfig drivers/staging/comedi/Kconfig 'COMEDI_PCI_DRIVERS'
clean_mk CONFIG_COMEDI_PCI_DRIVERS drivers/staging/comedi/drivers/Makefile
announce COMEDI_USB_DRIVERS - "Data acquisition support Comedi USB drivers"
reject_firmware drivers/staging/comedi/drivers/usbdux.c
clean_blob drivers/staging/comedi/drivers/usbdux.c
reject_firmware drivers/staging/comedi/drivers/usbduxfast.c
clean_blob drivers/staging/comedi/drivers/usbduxfast.c
clean_kconfig drivers/staging/comedi/Kconfig 'COMEDI_USB_DRIVERS'
clean_mk CONFIG_COMEDI_USB_DRIVERS drivers/staging/comedi/drivers/Makefile
announce ME4000 - "Meilhaus ME-4000 I/O board"
clean_file drivers/staging/me4000/me4000_firmware.h
clean_file drivers/staging/me4000/me4610_firmware.h
clean_sed '
/^static int me4000_xilinx_download([^;]*$/,/^}$/{
/firm = .*xilinx_firm.*/i\
printk(KERN_ERR "me4000: Missing Free firmware\\n");\
return -EIO;
}
' drivers/staging/me4000/me4000.c 'report missing Free firmware'
clean_blob drivers/staging/me4000/me4000.c
clean_kconfig drivers/staging/me4000/Kconfig 'ME4000'
clean_mk CONFIG_ME4000 drivers/staging/me4000/Makefile
announce MEILHAUS - "Meilhaus support"
reject_firmware drivers/staging/meilhaus/mefirmware.c
clean_kconfig drivers/staging/meilhaus/Kconfig 'MEILHAUS'
clean_mk CONFIG_MEILHAUS drivers/staging/meilhaus/Makefile
announce ME4600 - "Meilhaus ME-4600 support"
clean_blob drivers/staging/meilhaus/me4600_device.c
clean_kconfig drivers/staging/meilhaus/Kconfig 'ME4600'
clean_mk CONFIG_ME4600 drivers/staging/meilhaus/Makefile
announce ME6000 - "Meilhaus ME-6000 support"
clean_blob drivers/staging/meilhaus/me6000_device.c
clean_kconfig drivers/staging/meilhaus/Kconfig 'ME6000'
clean_mk CONFIG_ME6000 drivers/staging/meilhaus/Makefile
########
# SCSI #
########
announce SCSI_QLOGICPTI - "PTI Qlogic, ISP Driver"
drop_fw_file firmware/qlogic/isp1000.bin.ihex firmware/qlogic/isp1000.bin
reject_firmware drivers/scsi/qlogicpti.c
clean_blob drivers/scsi/qlogicpti.c
clean_kconfig drivers/scsi/Kconfig 'SCSI_QLOGICPTI'
clean_mk CONFIG_SCSI_QLOGICPTI drivers/scsi/Makefile
announce SCSI_ADVANSYS - "AdvanSys SCSI"
drop_fw_file firmware/advansys/mcode.bin.ihex firmware/advansys/mcode.bin
drop_fw_file firmware/advansys/3550.bin.ihex firmware/advansys/3550.bin
drop_fw_file firmware/advansys/38C0800.bin.ihex firmware/advansys/38C0800.bin
drop_fw_file firmware/advansys/38C1600.bin.ihex firmware/advansys/38C1600.bin
reject_firmware drivers/scsi/advansys.c
clean_blob drivers/scsi/advansys.c
clean_kconfig drivers/scsi/Kconfig 'SCSI_ADVANSYS'
clean_mk CONFIG_SCSI_ADVANSYS drivers/scsi/Makefile
announce SCSI_QLOGIC_1280 - "Qlogic QLA 1240/1x80/1x160 SCSI"
drop_fw_file firmware/qlogic/1040.bin.ihex firmware/qlogic/1040.bin
drop_fw_file firmware/qlogic/1280.bin.ihex firmware/qlogic/1280.bin
drop_fw_file firmware/qlogic/12160.bin.ihex firmware/qlogic/12160.bin
reject_firmware drivers/scsi/qla1280.c
clean_blob drivers/scsi/qla1280.c
clean_kconfig drivers/scsi/Kconfig 'SCSI_QLOGIC_1280'
clean_mk CONFIG_SCSI_QLOGIC_1280 drivers/scsi/Makefile
announce SCSI_AIC94XX - "Adaptec AIC94xx SAS/SATA support"
reject_firmware drivers/scsi/aic94xx/aic94xx_seq.c
clean_blob drivers/scsi/aic94xx/aic94xx_seq.c
clean_blob drivers/scsi/aic94xx/aic94xx_seq.h
clean_kconfig drivers/scsi/aic94xx/Kconfig 'SCSI_AIC94XX'
clean_mk CONFIG_SCSI_AIC94XX drivers/scsi/aic94xx/Makefile
announce SCSI_QLA_FC - "QLogic QLA2XXX Fibre Channel Support"
reject_firmware drivers/scsi/qla2xxx/qla_gbl.h
reject_firmware drivers/scsi/qla2xxx/qla_init.c
reject_firmware drivers/scsi/qla2xxx/qla_os.c
clean_sed '
/^config SCSI_QLA_FC$/,/^config /{
/^ By default, firmware/i\
/*(DEBLOBBED)*/
/^ By default, firmware/,/ftp:[/][/].*firmware[/]/d
}' drivers/scsi/qla2xxx/Kconfig 'removed firmware notes'
clean_blob drivers/scsi/qla2xxx/qla_os.c
clean_kconfig drivers/scsi/qla2xxx/Kconfig 'SCSI_QLA_FC'
clean_mk CONFIG_SCSI_QLA_FC drivers/scsi/qla2xxx/Makefile
#######
# USB #
#######
# atm
announce USB_CXACRU - "Conexant AccessRunner USB support"
reject_firmware drivers/usb/atm/cxacru.c
clean_blob drivers/usb/atm/cxacru.c
clean_kconfig drivers/usb/atm/Kconfig 'USB_CXACRU'
clean_mk CONFIG_USB_CXACRU drivers/usb/atm/Makefile
announce USB_SPEEDTOUCH - "Speedtouch USB support"
reject_firmware drivers/usb/atm/speedtch.c
clean_blob drivers/usb/atm/speedtch.c
clean_kconfig drivers/usb/atm/Kconfig 'USB_SPEEDTOUCH'
clean_mk CONFIG_USB_SPEEDTOUCH drivers/usb/atm/Makefile
announce USB_UEAGLEATM - "ADI 930 and eagle USB DSL modem"
reject_firmware drivers/usb/atm/ueagle-atm.c
clean_blob drivers/usb/atm/ueagle-atm.c
clean_kconfig drivers/usb/atm/Kconfig 'USB_UEAGLEATM'
clean_mk CONFIG_USB_UEAGLEATM drivers/usb/atm/Makefile
# misc
announce USB_EMI26 - "EMI 2|6 USB Audio interface"
# These files are not under the GPL, better remove them all.
drop_fw_file firmware/emi26/bitstream.HEX firmware/emi26/bitstream.fw
drop_fw_file firmware/emi26/firmware.HEX firmware/emi26/firmware.fw
drop_fw_file firmware/emi26/loader.HEX firmware/emi26/loader.fw
reject_firmware drivers/usb/misc/emi26.c
clean_blob drivers/usb/misc/emi26.c
clean_kconfig drivers/usb/misc/Kconfig 'USB_EMI26'
clean_mk CONFIG_USB_EMI26 drivers/usb/misc/Makefile
announce USB_EMI62 - "EMI 6|2m USB Audio interface"
# These files are probably not under the GPL, better remove them all.
drop_fw_file firmware/emi62/bitstream.HEX firmware/emi62/bitstream.fw
drop_fw_file firmware/emi62/loader.HEX firmware/emi62/loader.fw
drop_fw_file firmware/emi62/midi.HEX firmware/emi62/midi.fw
drop_fw_file firmware/emi62/spdif.HEX firmware/emi62/spdif.fw
reject_firmware drivers/usb/misc/emi62.c
clean_blob drivers/usb/misc/emi62.c
clean_kconfig drivers/usb/misc/Kconfig 'USB_EMI62'
clean_mk CONFIG_USB_EMI62 drivers/usb/misc/Makefile
announce USB_ISIGHTFW - "iSight firmware loading support"
reject_firmware drivers/usb/misc/isight_firmware.c
clean_blob drivers/usb/misc/isight_firmware.c
clean_kconfig drivers/usb/misc/Kconfig 'USB_ISIGHTFW'
clean_mk CONFIG_USB_ISIGHTFW drivers/usb/misc/Makefile
# serial
announce USB_SERIAL_KEYSPAN - "USB Keyspan USA-xxx Serial Driver"
drop_fw_file firmware/keyspan/mpr.HEX firmware/keyspan/mpr.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_MPR'
drop_fw_file firmware/keyspan/usa18x.HEX firmware/keyspan/usa18x.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA18X'
drop_fw_file firmware/keyspan/usa19.HEX firmware/keyspan/usa19.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19'
drop_fw_file firmware/keyspan/usa19qi.HEX firmware/keyspan/usa19qi.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19QI'
drop_fw_file firmware/keyspan/usa19qw.HEX firmware/keyspan/usa19qw.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19QW'
drop_fw_file firmware/keyspan/usa19w.HEX firmware/keyspan/usa19w.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19W'
drop_fw_file firmware/keyspan/usa28.HEX firmware/keyspan/usa28.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28'
drop_fw_file firmware/keyspan/usa28xa.HEX firmware/keyspan/usa28xa.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28XA'
drop_fw_file firmware/keyspan/usa28xb.HEX firmware/keyspan/usa28xb.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28XB'
drop_fw_file firmware/keyspan/usa28x.HEX firmware/keyspan/usa28x.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28X'
drop_fw_file firmware/keyspan/usa49w.HEX firmware/keyspan/usa49w.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA49W'
drop_fw_file firmware/keyspan/usa49wlc.HEX firmware/keyspan/usa49wlc.fw
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA49WLC'
reject_firmware drivers/usb/serial/keyspan.c
clean_blob drivers/usb/serial/keyspan.c
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN'
clean_mk CONFIG_USB_SERIAL_KEYSPAN drivers/usb/serial/Makefile
announce USB_SERIAL_KEYSPAN_PDA - "USB Keyspan PDA Single Port Serial Driver"
clean_sed '
s,request_ihex_firmware,/*KEYSPAN_PDA*/&,
' drivers/usb/serial/keyspan_pda.c 'accept Free firmware'
announce USB_SERIAL_EDGEPORT - "USB Inside Out Edgeport Serial Driver"
clean_fw firmware/edgeport/boot.H16 firmware/edgeport/boot.fw
clean_fw firmware/edgeport/boot2.H16 firmware/edgeport/boot2.fw
clean_fw firmware/edgeport/down.H16 firmware/edgeport/down.fw
clean_fw firmware/edgeport/down2.H16 firmware/edgeport/down2.fw
reject_firmware drivers/usb/serial/io_edgeport.c
clean_blob drivers/usb/serial/io_edgeport.c
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_EDGEPORT'
clean_mk CONFIG_USB_SERIAL_EDGEPORT drivers/usb/serial/Makefile
announce USB_SERIAL_EDGEPORT_TI - "USB Inside Out Edgeport Serial Driver (TI devices)"
clean_fw firmware/edgeport/down3.bin.ihex firmware/edgeport/down3.bin
reject_firmware drivers/usb/serial/io_ti.c
clean_blob drivers/usb/serial/io_ti.c
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_EDGEPORT_TI'
clean_mk CONFIG_USB_SERIAL_EDGEPORT_TI drivers/usb/serial/Makefile
announce USB_SERIAL_TI - "USB TI 3410/5052 Serial Driver"
drop_fw_file firmware/ti_3410.fw.ihex firmware/ti_3410.fw
drop_fw_file firmware/ti_5052.fw.ihex firmware/ti_5052.fw
drop_fw_file firmware/mts_cdma.fw.ihex firmware/mts_cdma.fw
drop_fw_file firmware/mts_gsm.fw.ihex firmware/mts_gsm.fw
drop_fw_file firmware/mts_edge.fw.ihex firmware/mts_edge.fw
reject_firmware drivers/usb/serial/ti_usb_3410_5052.c
clean_blob drivers/usb/serial/ti_usb_3410_5052.c
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_TI'
clean_mk CONFIG_USB_SERIAL_TI drivers/usb/serial/Makefile
announce USB_SERIAL_WHITEHEAT - "USB ConnectTech WhiteHEAT Serial Driver"
clean_fw firmware/whiteheat.HEX firmware/whiteheat.fw
clean_fw firmware/whiteheat_loader.HEX firmware/whiteheat_loader.fw
clean_fw firmware/whiteheat_loader_debug.HEX firmware/whiteheat_loader_debug.fw
reject_firmware drivers/usb/serial/whiteheat.c
clean_blob drivers/usb/serial/whiteheat.c
clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_WHITEHEAT'
clean_mk CONFIG_USB_SERIAL_WHITEHEAT drivers/usb/serial/Makefile
# uwb
announce UWB_I1480U - Support for Intel Wireless UWB Link 1480 HWA
reject_firmware drivers/uwb/i1480/dfu/i1480-dfu.h
reject_firmware drivers/uwb/i1480/dfu/mac.c
reject_firmware drivers/uwb/i1480/dfu/phy.c
clean_blob drivers/uwb/i1480/dfu/usb.c
clean_kconfig drivers/uwb/Kconfig 'UWB_I1480U'
clean_mk CONFIG_UWB_I1480U drivers/uwb/i1480/dfu/Makefile
#########
# Sound #
#########
announce SND_CS46XX - "Cirrus Logic (Sound Fusion) CS4280/CS461x/CS462x/CS463x"
# This appears to have been extracted from some non-Free driver
clean_file sound/pci/cs46xx/cs46xx_image.h
# The following blobs are definitely extracted from non-Free drivers.
clean_file sound/pci/cs46xx/imgs/cwc4630.h
clean_file sound/pci/cs46xx/imgs/cwcasync.h
clean_file sound/pci/cs46xx/imgs/cwcsnoop.h
clean_sed '
/^\(int \)\?snd_cs46xx_download_image([^;]*$/,/^}$/{
/for.*BA1_MEMORY_COUNT/i\
#if 0
/^}$/{
i\
#else\
snd_printk(KERN_ERR "cs46xx: Missing Free firmware\\n");\
return -EINVAL;\
#endif
}
}
s/cs46xx_dsp_load_module(chip, [&]cwc\(4630\|async\|snoop\)_module)/(snd_printk(KERN_ERR "cs46xx: Missing Free firmware\\n"),-EINVAL)/
' sound/pci/cs46xx/cs46xx_lib.c 'report missing Free firmware'
clean_blob sound/pci/cs46xx/cs46xx_lib.c
clean_kconfig sound/pci/Kconfig 'SND_CS46XX'
clean_mk 'CONFIG_SND_CS46XX' sound/pci/cs46xx/Makefile
announce SND_KORG1212 - "Korg 1212 IO"
drop_fw_file firmware/korg/k1212.dsp.ihex firmware/korg/k1212.dsp
reject_firmware sound/pci/korg1212/korg1212.c
clean_blob sound/pci/korg1212/korg1212.c
clean_kconfig sound/pci/Kconfig 'SND_KORG1212'
clean_mk 'CONFIG_SND_KORG1212' sound/pci/korg1212/Makefile
announce SND_MAESTRO3 - "ESS Allegro/Maestro3"
drop_fw_file firmware/ess/maestro3_assp_kernel.fw.ihex firmware/ess/maestro3_assp_kernel.fw
drop_fw_file firmware/ess/maestro3_assp_minisrc.fw.ihex firmware/ess/maestro3_assp_minisrc.fw
reject_firmware sound/pci/maestro3.c
clean_blob sound/pci/maestro3.c
clean_kconfig sound/pci/Kconfig 'SND_MAESTRO3'
clean_mk 'CONFIG_SND_MAESTRO3' sound/pci/Makefile
announce SND_YMFPCI - "Yamaha YMF724/740/744/754"
drop_fw_file firmware/yamaha/ds1_ctrl.fw.ihex firmware/yamaha/ds1_ctrl.fw
drop_fw_file firmware/yamaha/ds1_dsp.fw.ihex firmware/yamaha/ds1_dsp.fw
drop_fw_file firmware/yamaha/ds1e_ctrl.fw.ihex firmware/yamaha/ds1e_ctrl.fw
reject_firmware sound/pci/ymfpci/ymfpci_main.c
clean_blob sound/pci/ymfpci/ymfpci_main.c
clean_kconfig sound/pci/Kconfig 'SND_YMFPCI'
clean_mk 'CONFIG_SND_YMFPCI' sound/pci/ymfpci/Makefile
announce SND_SB16_CSP - "SB16 Advanced Signal Processor"
drop_fw_file firmware/sb16/alaw_main.csp.ihex firmware/sb16/alaw_main.csp
drop_fw_file firmware/sb16/mulaw_main.csp.ihex firmware/sb16/mulaw_main.csp
drop_fw_file firmware/sb16/ima_adpcm_init.csp.ihex firmware/sb16/ima_adpcm_init.csp
drop_fw_file firmware/sb16/ima_adpcm_capture.csp.ihex firmware/sb16/ima_adpcm_capture.csp
drop_fw_file firmware/sb16/ima_adpcm_playback.csp.ihex firmware/sb16/ima_adpcm_playback.csp
reject_firmware sound/isa/sb/sb16_csp.c
clean_blob sound/isa/sb/sb16_csp.c
clean_kconfig sound/isa/Kconfig 'SND_SB16_CSP'
clean_mk 'CONFIG_SND_SB16_CSP' sound/isa/sb/Makefile
announce SND_WAVEFRONT - "Turtle Beach Maui,Tropez,Tropez+ (Wavefront)"
drop_fw_file firmware/yamaha/yss225_registers.bin.ihex firmware/yamaha/yss225_registers.bin
reject_firmware sound/isa/wavefront/wavefront_fx.c
clean_blob sound/isa/wavefront/wavefront_fx.c
reject_firmware sound/isa/wavefront/wavefront_synth.c
clean_blob sound/isa/wavefront/wavefront_synth.c
clean_kconfig sound/isa/Kconfig 'SND_WAVEFRONT'
clean_mk 'CONFIG_SND_WAVEFRONT' sound/isa/wavefront/Makefile
announce SND_VX_LIB - Digigram VX soundcards
reject_firmware sound/drivers/vx/vx_hwdep.c
clean_blob sound/drivers/vx/vx_hwdep.c
clean_kconfig sound/drivers/Kconfig 'SND_VX_LIB'
clean_mk CONFIG_SND_VX_LIB sound/drivers/vx/Makefile
announce SND_DARLA20 - "(Echoaudio) Darla20"
clean_blob sound/pci/echoaudio/darla20.c
clean_kconfig sound/pci/Kconfig 'SND_DARLA20'
clean_mk CONFIG_SND_DARLA20 sound/pci/echoaudio/Makefile
announce SND_DARLA24 - "(Echoaudio) Darla24"
clean_blob sound/pci/echoaudio/darla24.c
clean_kconfig sound/pci/Kconfig 'SND_DARLA24'
clean_mk CONFIG_SND_DARLA24 sound/pci/echoaudio/Makefile
announce SND_ECHO3G - "(Echoaudio) 3G cards"
clean_blob sound/pci/echoaudio/echo3g.c
clean_kconfig sound/pci/Kconfig 'SND_ECHO3G'
clean_mk CONFIG_SND_ECHO3G sound/pci/echoaudio/Makefile
announce SND_GINA20 - "(Echoaudio) Gina20"
clean_blob sound/pci/echoaudio/gina20.c
clean_kconfig sound/pci/Kconfig 'SND_GINA20'
clean_mk CONFIG_SND_GINA20 sound/pci/echoaudio/Makefile
announce SND_GINA24 - "(Echoaudio) Gina24"
clean_blob sound/pci/echoaudio/gina24.c
clean_kconfig sound/pci/Kconfig 'SND_GINA24'
clean_mk CONFIG_SND_GINA24 sound/pci/echoaudio/Makefile
announce SND_INDIGO - "(Echoaudio) Indigo"
clean_blob sound/pci/echoaudio/indigo.c
clean_kconfig sound/pci/Kconfig 'SND_INDIGO'
clean_mk CONFIG_SND_INDIGO sound/pci/echoaudio/Makefile
announce SND_INDIGODJ - "(Echoaudio) Indigo DJ"
clean_blob sound/pci/echoaudio/indigodj.c
clean_kconfig sound/pci/Kconfig 'SND_INDIGODJ'
clean_mk CONFIG_SND_INDIGODJ sound/pci/echoaudio/Makefile
announce SND_INDIGODJX - "(Echoaudio) Indigo DJx"
clean_blob sound/pci/echoaudio/indigodjx.c
clean_kconfig sound/pci/Kconfig 'SND_INDIGODJX'
clean_mk CONFIG_SND_INDIGODJX sound/pci/echoaudio/Makefile
announce SND_INDIGOIO - "(Echoaudio) Indigo IO"
clean_blob sound/pci/echoaudio/indigoio.c
clean_kconfig sound/pci/Kconfig 'SND_INDIGOIO'
clean_mk CONFIG_SND_INDIGOIO sound/pci/echoaudio/Makefile
announce SND_INDIGOIOX - "(Echoaudio) Indigo IOx"
clean_blob sound/pci/echoaudio/indigoiox.c
clean_kconfig sound/pci/Kconfig 'SND_INDIGOIOX'
clean_mk CONFIG_SND_INDIGOIOX sound/pci/echoaudio/Makefile
announce SND_LAYLA20 - "(Echoaudio) Layla20"
clean_blob sound/pci/echoaudio/layla20.c
clean_kconfig sound/pci/Kconfig 'SND_LAYLA20'
clean_mk CONFIG_SND_LAYLA20 sound/pci/echoaudio/Makefile
announce SND_LAYLA24 - "(Echoaudio) Layla24"
clean_blob sound/pci/echoaudio/layla24.c
clean_kconfig sound/pci/Kconfig 'SND_LAYLA24'
clean_mk CONFIG_SND_LAYLA24 sound/pci/echoaudio/Makefile
announce SND_MIA - "(Echoaudio) Mia"
clean_blob sound/pci/echoaudio/mia.c
clean_kconfig sound/pci/Kconfig 'SND_MIA'
clean_mk CONFIG_SND_MIA sound/pci/echoaudio/Makefile
announce SND_MONA - "(Echoaudio) Mona"
clean_blob sound/pci/echoaudio/mona.c
clean_kconfig sound/pci/Kconfig 'SND_MONA'
clean_mk CONFIG_SND_MONA sound/pci/echoaudio/Makefile
announce SND_'<(Echoaudio)>' - "(Echoaudio) all of the above "
reject_firmware sound/pci/echoaudio/echoaudio.c
clean_blob sound/pci/echoaudio/echoaudio.c
announce SND_EMU10K1 - "Emu10k1 (SB Live!, Audigy, E-mu APS)"
reject_firmware sound/pci/emu10k1/emu10k1_main.c
clean_blob sound/pci/emu10k1/emu10k1_main.c
clean_kconfig sound/pci/Kconfig 'SND_EMU10K1'
clean_mk CONFIG_SND_EMU10K1 sound/pci/emu10k1/Makefile
announce SND_MIXART - "Digigram miXart"
reject_firmware sound/pci/mixart/mixart_hwdep.c
clean_blob sound/pci/mixart/mixart_hwdep.c
clean_kconfig sound/pci/Kconfig 'SND_MIXART'
clean_mk CONFIG_SND_MIXART sound/pci/mixart/Makefile
announce SND_PCXHR - "Digigram PCXHR"
reject_firmware sound/pci/pcxhr/pcxhr_hwdep.c
clean_blob sound/pci/pcxhr/pcxhr_hwdep.c
clean_kconfig sound/pci/Kconfig 'SND_PCXHR'
clean_mk CONFIG_SND_PCXHR sound/pci/pcxhr/Makefile
announce SND_RIPTIDE - "Conexant Riptide"
reject_firmware sound/pci/riptide/riptide.c
clean_blob sound/pci/riptide/riptide.c
clean_kconfig sound/pci/Kconfig 'SND_RIPTIDE'
clean_mk CONFIG_SND_RIPTIDE sound/pci/riptide/Makefile
announce SND_HDSP - "RME Hammerfall DSP Audio"
reject_firmware sound/pci/rme9652/hdsp.c
clean_blob sound/pci/rme9652/hdsp.c
clean_kconfig sound/pci/Kconfig 'SND_HDSP'
clean_mk CONFIG_SND_HDSP sound/pci/rme9652/Makefile
announce SND_AICA - "Dreamcast Yamaha AICA sound"
reject_firmware sound/sh/aica.c
clean_blob sound/sh/aica.c
clean_kconfig sound/sh/Kconfig 'SND_AICA'
clean_mk CONFIG_SND_AICA sound/sh/Makefile
announce SND_MSND_PINNACLE - "Support for Turtle Beach MultiSound Pinnacle"
clean_blob sound/isa/msnd/msnd_pinnacle.h
reject_firmware sound/isa/msnd/msnd_pinnacle.c
clean_blob sound/isa/msnd/msnd_pinnacle.c
clean_kconfig sound/isa/Kconfig 'SND_MSND_PINNACLE'
clean_mk CONFIG_SND_MSND_PINNACLE sound/isa/msnd/Makefile
announce SND_MSND_CLASSIC - "Support for Turtle Beach MultiSound Classic, Tahiti, Monterey"
clean_blob sound/isa/msnd/msnd_classic.h
clean_kconfig sound/isa/Kconfig 'SND_MSND_CLASSIC'
clean_mk CONFIG_SND_MSND_CLASSIC sound/isa/msnd/Makefile
announce SOUND_MSNDCLAS - "Support for Turtle Beach MultiSound Classic, Tahiti, Monterey (oss)"
clean_blob sound/oss/msnd_classic.h
clean_kconfig sound/oss/Kconfig 'SOUND_MSNDCLAS'
clean_sed '
/^config MSNDCLAS_INIT_FILE$/, /^config / {
/^ default.*msndinit\.bin/ s,".*","/*(DEBLOBBED)*/",;
}
/^config MSNDCLAS_PERM_FILE$/, /^config / {
/^ default.*msndperm\.bin/ s,".*","/*(DEBLOBBED)*/",;
}' sound/oss/Kconfig 'removed default firmware'
clean_mk CONFIG_SOUND_MSNDCLAS sound/oss/Makefile
announce SOUND_MSNDPIN - "Support for Turtle Beach MultiSound Pinnacle (oss)"
clean_blob sound/oss/msnd_pinnacle.h
clean_kconfig sound/oss/Kconfig 'SOUND_MSNDPIN'
clean_sed '
/^config MSNDPIN_INIT_FILE$/, /^config / {
/^ default.*pndspini\.bin/ s,".*","/*(DEBLOBBED)*/",;
}
/^config MSNDPIN_PERM_FILE$/, /^config / {
/^ default.*pndsperm\.bin/ s,".*","/*(DEBLOBBED)*/",;
}' sound/oss/Kconfig 'removed default firmware'
clean_mk CONFIG_SOUND_MSNDPIN sound/oss/Makefile
announce SOUND_SSCAPE - "Ensoniq SoundScape support"
clean_blob sound/oss/sscape.c
clean_kconfig sound/oss/Kconfig 'SOUND_SSCAPE'
clean_mk CONFIG_SOUND_SSCAPE sound/oss/Makefile
announce SOUND_TRIX - "MediaTrix AudioTrix Pro support"
clean_blob sound/oss/trix.c
clean_kconfig sound/oss/Kconfig 'SOUND_TRIX'
clean_sed '
/^config TRIX_BOOT_FILE$/, /^config / {
/^ default.*trxpro\.hex/ s,".*","/*(DEBLOBBED)*/",;
}' sound/oss/Kconfig 'removed default firmware'
clean_mk CONFIG_SOUND_TRIX sound/oss/Makefile
announce SOUND_TRIX - "See above,"
announce SOUND_PAS - "ProAudioSpectrum 16 support,"
announce SOUND_SB - "100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support"
clean_blob sound/oss/sb_common.c
clean_kconfig sound/oss/Kconfig 'SOUND_PAS'
clean_kconfig sound/oss/Kconfig 'SOUND_SB'
clean_mk CONFIG_SOUND_PAS sound/oss/Makefile
clean_mk CONFIG_SOUND_SB sound/oss/Makefile
announce SOUND_PSS - "PSS (AD1848, ADSP-2115, ESC614) support"
clean_sed 's,^\( [*] .*synth"\)\.$,\1/*.,' sound/oss/pss.c 'avoid nested comments'
clean_blob sound/oss/pss.c
clean_kconfig sound/oss/Kconfig 'SOUND_PSS'
clean_sed '
/^config PSS_BOOT_FILE$/, /^config / {
/^ default.*dsp001\.ld/ s,".*","/*(DEBLOBBED)*/",;
}' sound/oss/Kconfig 'removed default firmware'
clean_mk CONFIG_SOUND_PSS sound/oss/Makefile
#################
# Documentation #
#################
announce Documentation - "non-Free firmware scripts and documentation"
clean_blob Documentation/dvb/avermedia.txt
clean_blob Documentation/dvb/opera-firmware.txt
clean_blob Documentation/dvb/ttusb-dec.txt
clean_blob Documentation/sound/alsa/ALSA-Configuration.txt
clean_blob Documentation/sound/oss/MultiSound
clean_blob Documentation/sound/oss/PSS
clean_blob Documentation/sound/oss/PSS-updates
clean_file Documentation/dvb/get_dvb_firmware
clean_file Documentation/video4linux/extract_xc3028.pl
clean_sed s,usb8388,whatever,g drivers/base/Kconfig 'removed blob name'
clean_blob firmware/README.AddingFirmware
clean_blob firmware/WHENCE
if $errors; then
echo errors above were ignored because of --force >&2
fi
exit 0
#! /bin/sh
# deblob-check version 2009-12-08.1
# Inspired in gNewSense's find-firmware script.
# Written by Alexandre Oliva <lxoliva@fsfla.org>
# Check http://www.fsfla.org/svn/fsfla/software/linux-libre for newer
# versions.
# Copyright 2008, 2009 Alexandre Oliva <lxoliva@fsfla.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# 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 have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
# USA
# usage: deblob-check [-S] [-vv] [-s S] [-lDdBbCcXxPpFftVh?H] \
# *.tar* patch-* [-i prefix/] *.patch *.diff...
# Look for and report too-long undocumented sequences of numbers
# (generally blobs in disguise) in source files, as well as requests
# for loading non-Free firmware.
# The order of command line flags is significant. Flags given out of
# the order above won't be handled correctly, sorry.
# -s --sensitivity: must be followed by a blank and a number.
# Specifies the number of consecutive integral or
# character constants that trigger the blob detector.
# --reverse-patch: Test the removed parts of a patch, rather than
# the added ones.
# The default sensitivity is 32 constants.
# The sensitivity, if present, must be the first option. The action
# selection, if present, must be the first argument, except for the
# sensitivity and verbosity.
# The default can be overridden with one of:
# -l --list-blobs: list files that contain sequences that match the
# blob detector test and that are not known to be false
# positives. This is the default option.
# -d --deblob --mark-blobs: print the processed input, replacing
# sequences that match the blob detector test and that
# are NOT known to be false positives with
# /*(DEBLOBBED)*/.
# -D --cat: print the processed input, as it would have been fed to
# the blob detector script. Use -S to save the sed
# script used to process it, and search for `sedcat:' in
# comments to locate the relevant adaptation points.
# -b --print-marked-blobs: like -d, but print only the matching
# sequences.
# -B --print-blobs: like -b, but do not deblob the sequences.
# -c --print-marked-blobs-with-context: like -b, but try to maximize
# the context around the blobs. This maximization will
# sometimes disregard known false positives, if they
# happen to be contained within the extended match.
# This is probably an indication that the false positive
# matching rule could be improved.
# -C --print-blobs-with-context: like -B, but try to maximize the
# context around the blobs.
# -X --print-all-matches: print all blobs, be they known false
# positives or actual blobs.
# -x --list-all-matches: list files that contain sequences that appear
# to be blobs, be they known false positives or not.
# -p --mark-false-positives: print the processed input, replacing
# sequences that match the blob detector test, even those
# known to be false positives, with /*(DEBLOBBED)*/.
# -P --list-false-positives: list files that contain false positives.
# -f --print-marked-false-positives: like -p, but print only the
# matching sequences.
# -F --print-false-positives: like -f, but do not deblob the sequences.
# -t --test: run (very minimal) self-test.
# -V --version: print a version number
# -h -? -H --help: print short or long help message
# debugging options:
# -S --save-scripts: save scripts and temporary files.
# -v --verbose: increase verbosity level, for internal debugging. May
# be given at most twice.
# file options:
# --: Don't process command-line options any further. All following
# arguments are taken as filenames.
# -i --implied-prefix --prefix: prepend the given prefix to each filename
# listed after this option, when configuring false positives
# and negatives.
# *.tar*: iterate over all files in the named tar file.
# *.patch, patch-*, *.diff: Look for blobs in the [ +] parts of the
# *patch, unless --reverse-patch is given, in which case
# the [ -] parts will be used.
# Anything else is assumed to be a source file.
# *.gz | *.bz2: Decompress automatically.
# The exit status is only significant for the --list options: it will
# be true if nothing was found, and false otherwise.
: # Mark the end of the help message.
# TODO:
# - Improve handling of command-line arguments, so as to not make the
# order relevant.
# - Add an option for the user to feed their own false positive
# patterns.
# - Add support to recognize known blobs (or other non-Free
# signatures, really), to speed up the scanning of files containing
# blobs, and to avoid attempts to disguise blobs.
# - Factor out the code in the various print_* and list_* parts of the
# sed script, at least in the shell sources. Make sure they're all
# included and expanded in a saved --cat script though.
# - Add support for file name tagging in patterns, such that blobs or
# false positives are recognized only when handling the specific
# filename, be it stand-alone, as part of a patch or a tarball. This
# should help avoid recognition of actual blobs as false positives
# just because there's a symbol with a different name elsewhere.
# It is convenient that the patterns provided by the user to
# recognize file names can be empty (for backward compatibility), but
# this should ideally be phased out in favor of more precise matches.
# It's important that files can be recognized with leading tarball or
# patch names, that the filename used within the tarball contain
# leading garbage, and even that a partial pathname be recognizable
# (say recognize drivers/net/whatever.c when the input file is named
# ../net/whatever.c).
# Rather than using regular expressions to recognize multiple files
# it's convenient (but not quite essential) that filename patterns be
# specifiable as regular expressions, rather than simple filenames,
# but there are other ways around this.
# Maintaining begin/end markers in a stack-like fashion as part of
# the processed stream, and using the names in them as (optional) part
# of the recognition patterns, would enable us to do it.
# Introducing annotations next to the false positives (and recognized
# blobs) as an early part of the process may speed things up and
# enable fast processing, but how to introduce the annotations quickly
# in the first place? Given patterns such as
# \(\(file1\)\(.*\)\(pat1\)\|\(file2\)\(.*\)\(pat2\)\|...\)
# how do we get sed to introduce a marker that contains file2 right
# before or right after pat2, without turning a big efficient regexp
# into a slowish sequence of s/// commands?
# - Re-check and narrow false-positive patterns to make sure they
# apply only to the relevant content.
# - Scripting abilities, so as to be able to automate the removal of
# source files or of blobs from source files in a tarball without
# having to extract the entire tarball (as in tar --update/--delete)
# would be nice. Carrying over removed files automatically into
# patches would also be great, and this sort of script would be
# perfect to document what has been done to a tarball plus a set of
# patches. Something like deblob.script:
#
# tarball linux-2.6.24.tar.bz2
# delete net/wireloss/freedom.c drivers/me/crazy.c
# deblob include/linux/slab-blob-kfree.h
# deconfig drivers/char/drm DRM_IS_BAD
#
# patch patch-2.6.25-rc7.bz2
# delete arch/power/over/you.c
# such that the deletes from an earlier file would carry over into the
# subsequent ones, and new tarballs and patch files would be generated
# with the libre- prefix in their basename, and the xdeltas between
# the original files and the modified files would be minimal, and
# redundant with this script and the input script while at that.
# - Improve documentation of the code.
# - Write a decent testsuite.
# - Insert your idea here. :-)
# Yeah, lots of stuff to do. Want to help?
# This makes it much faster, and mostly immune to non-ASCII stuff, as
# long as a 8-bit-safe sed is used. Probably a safe assumption these
# days.
case ${LANG+set} in set) LANG=C; export LANG;; esac
rm="rm -f"
sed=`echo $0 | sed 's,\(/\?\)[^/]*$,\1deblob-psed,'`
if test -f "$sed"; then
:
elif test -f deblob-psed; then
sed=deblob-psed
else
sed=false
fi
if $sed -e 'q' < /dev/null > /dev/null; then
:
else
sed=sed
fi
for echo in 'echo' 'printf %s\n'; do
case `$echo '\nx'` in
'\nx') break;;
esac
done
case `$echo '\nx'` in
'\nx') ;; *) echo Cannot find out what echo to use >&2; exit 1;;
esac
for echo_n in "echo -n" "printf %s"; do
case `$echo_n '\na'; $echo_n '\nb'` in
'\na\nb') break;;
esac
done
case `$echo_n a; $echo_n b` in
'ab') ;; *) echo Cannot find out an echo -n equivalent to use >&2; exit 1;;
esac
case $1 in
--save-scripts | -S)
shift
rm="echo preserving"
;;
esac
# Choose verbosity level for sed script debugging and performance
# analysis.
case $1 in
--verbose | -v)
shift
case $1 in
--verbose | -v)
shift
v="i\\
:
p
i\\
"
;;
*)
v="P;i\\
"
;;
esac
;;
*)
v="# "
;;
esac
sens=31 # 32 - 1
case $1 in
--sensitivity | -s)
sens=$2;
shift 2 || exit 1
if test "$sens" -gt 0 2>/dev/null; then
:
else
echo invalid sensitivity: $sens >&2
exit 1
fi
sens=`expr $sens - 1`
;;
esac
reverse_patch=false
case $1 in
--reverse-patch)
reverse_patch=:
shift;
;;
esac
prefix=/
case $1 in
--implied-prefix | --prefix| -i)
prefix=$2
case $prefix in
/*/) ;;
*/) prefix=/$prefix ;;
/*) prefix=$prefix/ ;;
*) prefix=/$prefix/ ;;
esac
shift 2 || exit 1
;;
esac
test_mode=false
name=deblob-check
case $1 in
--version | -V)
sed -e '/^# '$name' version /,/^# Written by/ { s/^# //; p; }; d' < $0
exit 0
;;
-\? | -h)
sed -n -e '/^# usage:/,/# -h/ { /^# -/,/^$/{s/^# \(-.*\):.*/\1/p; d; }; s/^\(# \?\)\?//p; }' < $0 &&
echo
echo "run \`$name --help | more' for full usage"
exit 0
;;
--help | -H)
sed -n -e '/^# '$name' version /,/^[^#]/ s/^\(# \?\)\?//p' < $0
exit 0
;;
--test | -t)
test_mode=:
;;
--mark-false-positives | -p)
shift;
set_sed_cmd () {
set_sedmain "b list_both" "p" "b list_matches"
}
;;
--print-marked-false-positives | -f)
shift;
set_sed_cmd () {
set_sedmain "b print_marked_matches" "" "b print_marked_matches"
}
;;
--print-false-positives | -F)
shift;
set_sed_cmd () {
set_sedmain "b print_matches" "" "b print_matches"
}
;;
--deblob | --mark-blobs | -d)
shift;
set_sed_cmd () {
set_sedmain "b list_blobs" "p" "p"
}
;;
--cat | -D)
shift;
set_sed_cmd () {
set_sedmain \
"# sedcat: Actual blob detected, but there may be false positives." \
"# sedcat: No blob whatsoever found." \
"# sedcat: False positives found." \
"p
d
# sedcat: Just print stuff, remove this line to run the actual script."
}
;;
--print-marked-blobs | -b)
shift;
set_sed_cmd () {
set_sedmain "b print_marked_blobs"
}
;;
--print-blobs | -B)
shift;
set_sed_cmd () {
set_sedmain "b print_blobs"
}
;;
--print-marked-blobs-with-context | -c)
shift;
set_sed_cmd () {
set_sedmain "b print_marked_cblobs"
}
;;
--print-blobs-with-context | -C)
shift;
set_sed_cmd () {
set_sedmain "b print_cblobs"
}
;;
--list-false-positives | -P)
shift;
set_sed_cmd () {
set_sedmain "" "" "
i\\
$file\\
/*(DEBLOB-\\
ERROR)*/
q 1"
}
;;
--list-all-matches | -x)
shift;
set_sed_cmd () {
set_sedmain "
i\\
$file\\
/*(DEBLOB-\\
ERROR)*/
q 1" "" "
i\\
$file\\
/*(DEBLOB-\\
ERROR)*/
q 1"
}
;;
--print-all-matches | -X)
shift;
set_sed_cmd () {
set_sedmain "b print_both" "" "b print_matches"
}
;;
*)
case $1 in
-l | --list-blobs) shift;;
esac
case $1 in
-- | --implied-prefix | --prefix | -i) ;;
-*)
if test ! -f "$1"; then
echo "$name: \`$1' given too late or out of the proper sequence." >&2
echo "$name: The order of arguments is significant, see the usage." >&2
exit 1
fi
;;
esac
set_sed_cmd () {
set_sedmain "
i\\
$file\\
/*(DEBLOB-\\
ERROR)*/
q 1"
}
;;
esac
case $1 in
--)
sawdashdash=t
shift;;
esac
if $test_mode; then
pass=:
# Exercise some nasty inputs to see that we recognize them as blobs
# with full context.
for string in \
"1,2,3,4" \
"= {
1, 0x2, 03, L'\x4'
}" \
"=
{
'\\x1', '\\002'
,
{
{ \"\\x3\", },
\"\\004\"
},
};" \
".long 1,2
.long \$3,\$4" \
"#define X { 1, 2, \\
3, 4, /* comment */ \\
}" \
"= {
/*
* multi-line
* comment
*/
{
0x4c00c000, 0x00000000, 0x00060000, 0x00000000,
},
}" \
; do
case `echo "$string" | $0 -s 4 -C` in
"::: - :::
$string") ;;
*) echo "failed positive test for:
$string" >&2
pass=false;;
esac
done
# Make sure we do not recognize these as blobs.
for string in \
"#define X { 1, 2 }
#define Y { 3, 4 }" \
" 0x00, 0x00, 0x00 " \
; do
case `echo "$string" | $0 -s 4` in
"") ;;
*) echo "failed negative test for:
$string" >&2
pass=false;;
esac
done
# How did we do?
if $pass; then
echo success
fi
$pass
exit
fi
# Call addx as needed to set up more patterns to be recognized as
# false positives. Takes the input filename in $1.
set_except () {
# Look for a multi-line definition starting with a line that matches
# $1 (implicitly anchored to the beginning of the line), and ending
# at the first ';'. $2 may optionally name the files in which this
# match is to be disregarded as a potential blob.
initnc () {
addx "$1[^;]*[;]\\?" $2
}
# Same as initnc, but require the terminating semicolon.
defsnc () {
addx "$1[^;]*[;]" $2
}
# Look for a multi-line definition starting with a line that matches
# $1 (implicitly anchored to the beginning of the line), and ending
# at the first ';' that's not within comments.
initc () {
addx "$1\\([^;]*\\|$comment\\)*[;]\\?" $2
}
# Same as initc, but require the terminating semicolon.
defsc () {
addx "$1\\([^;]*\\|$comment\\)*[;]" $2
}
# Accept as a non-blob an expression $1 that would have otherwise
# triggered blob detection. The expression must end in a way that
# would trigger the blob detection machinery.
accept () {
addx "$1" $2
}
# Match up to the end a comment started in $1.
ocomment () {
addx "$1[/]*\\([^/]\\|[^*/][/]*\\)*[*][/]" $2
}
# Match $1 followed by backslash-terminated lines and a last
# non-backslash-terminated line.
oprepline () {
addx "$1\\([^\\n]*\\\\[\\n]\\)*[^\\n\\\\]*$eol" $2
}
# Match $1 in $2 as a blob. Not anchored.
blobna () {
badx "$1" $2
}
# Match $1 as a blob anywhere. $2 is just for documentation purposes.
blobname () {
badx "$1"
}
# Match $1 in $2 as a blob. The expectation is a match in the
# beginning of line, but we don't do anchoring of blob patterns ATM.
blob () {
badx "$1" $2
}
blobna 'request_firmware_nowait'
blobna 'request_firmware'
blobna 'request_ihex_firmware'
blobna 'MODULE_FIRMWARE[ ]*[(][^\n;]*[)][ ]*[;]\([ \n]*MODULE_FIRMWARE[ ]*[(][^\n;]*[)][ ]*[;]\)*'
blobna 'DEFAULT_FIRMWARE'
blobna '\(\.\|->\)firmware[ \n]*=[^=]'
blobna 'mod_firmware_load' # sound/
blobname '\.\(fw\|bin[0-9]*\|hex\|frm\|co[dx]\|cis\|dat\|elf\|xlx\|rfb\|ucode\|img\)["]'
case $prefix$1 in
*/*linux*.tar* | */*kernel*.tar* | */*linux-*.*.*/*)
# false alarms, contain source
# drivers/net/wan/wanxlfw.inc_shipped -> wanxlfw.S
accept 'static[ ]u8[ ]firmware\[\]=[{][\n]0x60,\(0x00,\)*0x16,\(0x00,\)*\([\n]\(0x[0-9A-F][0-9A-F],\)*\)*[\n]0x23,0xFC,0x00,0x00,0x00,0x01,0xFF,0xF9,0x00,0xD4,0x61,0x00,0x06,0x74,0x33,0xFC,\([\n]\(0x[0-9A-F][0-9A-F],\)*\)*0x00[\n][}][;]'
# drivers/usb/serial/xircom_pgs_fw.h -> xircom_pgs.S
initnc 'static[ ]const[ ]struct[ ]ezusb_hex_record[ ]xircom_pgs_firmware\[\][ ]='
# drivers/usb/serial/keyspan_pda_fw_h -> keyspan_pda.S
initnc 'static[ ]const[ ]struct[ ]ezusb_hex_record[ ]keyspan_pda_firmware\[\][ ]='
# arch/m68k/ifpsp060/*.sa -> src/*.s
accept '[ ]\.long[ ]0x60ff0000,0x02360000,0x60ff0000,0x16260000[\n]'"$sepx$blobpat*"
accept '[ ]\.long[ ]0x60ff0000,0x17400000,0x60ff0000,0x15f40000[\n]'"$sepx$blobpat*"
# arch/powerpc/platforms/cell/spufs/spu_save_dump.h_shipped -> spu_save.c
initnc 'static[ ]unsigned[ ]int[ ]spu_save_code\[\][ ][ ]__attribute__[(][(]__aligned__[(]128[)][)][)][ ]='
# arch/powerpc/platforms/cell/spufs/spu_restore_dump.h_shipped -> spu_restore.c
initnc 'static[ ]unsigned[ ]int[ ]spu_restore_code\[\][ ][ ]__attribute__[(][(]__aligned__[(]128[)][)][)][ ]='
# drivers/net/ixp2000/ixp2400_tx.ucode -> ixp2400_tx.uc
initnc '[ ]\.initial_reg_values[ ]=[ ][(]struct[ ]ixp2000_reg_value[ ]\[\][)][ ][{]'
# drivers/net/ixp2000/ixp2400_rx.ucode -> ixp2400_rx.uc
initnc '[ ]\.initial_reg_values[ ]=[ ][(]struct[ ]ixp2000_reg_value[ ]\[\][)][ ][{]'
# checked:
accept '[ ][$]3[ ]=[ ][{][{]pge[ ]=[ ][{][{]ste[ ]=[ ][{]\(\([0-9][0-9a-fx{},\n ]*\|\(pge\|ste\)[ ]=\|<repeats[ ][0-9]\+[ ]times>\)[{},\n ]*\)*<repeats[ ]11[ ]times>[}]'"$eol"
accept '__clz_tab:[\n][ ]\.byte[ ]0\(,[0-5]\)\+'"$sepx$blobpat*" arch/sparc/lib/divdi3.S
accept 'PITBL:[\n][ ][ ]\.long[ ][ ]0xC0040000,0xC90FDAA2,'"$blobpat*" arch/sparc/lib/divdi3.S
accept '\(0x[0F][0F],\)\+\\[\n]\(\(0x[0F][0F],\)\+\\[\n]\)*\(0x[0F][0F],\)\+0x00' arch/m68k/mac/mac_penguin.S
accept '\.lowcase:[\n][ ]\.byte[ ]0x00\(,0x0[1-7]\)\+'"$sepx$blobpat*$eol" arch/s390/kernel/head.S
accept '_zb_findmap:[\n][ ][ ][ ][ ][ ][ ][ ][ ][ ]\.byte[ ][ ]0\(,[123],0\)\+,4'"$sepx$blobpat*$eol" arch/s390/kernel/bitmap.S
accept '_sb_findmap:[\n][ ][ ][ ][ ][ ][ ][ ][ ][ ]\.byte[ ][ ]8\(,0,[123]\)\+,0'"$sepx$blobpat*$eol" arch/s390/kernel/bitmap.S
accept '[ ]\.section[ ]__ex_table,["]a["]'"$sepx$blobpat*" arch/powerpc/lib/copyuser_64.S
accept '[ ]memcpy[(]src,[ ]["]\\x01\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00["].*PROGxxxx' arch/powerpc/platforms/iseries/mf.c
initnc 'static[ ]const[ ]unsigned[ ]int[ ]cpu_745x\[2\]\[16\][ ]=' arch/ppc/platforms/ev64260.c
initnc 'const[ ]unsigned[ ]char[ ]__flsm1_tab\[256\][ ]=' arch/alpha/lib/fls.c
accept '#define[ ]_MAP_0_32_ASCII_SEG7_NON_PRINTABLE[ ]\\[\n][ ]\(0,\)\+'"$eol" 'drivers/input/misc/map_to_7segment\.h\|include/linux/map_to_7segment\.h'
initc '[ ]static[ ]int[ ][ ][ ][ ][ ][ ]init_values_b\[\][ ]=' sound/oss/ad1848.c
initnc 'static[ ]unsigned[ ]char[ ]atkbd_set2_keycode\[512\][ ]=' drivers/input/keyboard/atkbd.c
accept 'desc_config1:[\n][ ]\.byte[ ]0x09,[ ]0x02'"$sepx$blobpat*" 'drivers/usb/serial/\(keyspan_pda\|xircom_pgs\).S'
accept 'string_mfg:[\n]\?\([;]\?[ ]\.byte[^\n]*[\n]\)\+string_mfg_end:' 'drivers/usb/serial/\(keyspan_pda\|xircom_pgs\).S'
accept 'string_product:[\n]\?\([;]\?[ ]\.byte[^\n]*[\n]\)\+string_product_end:' 'drivers/usb/serial/\(keyspan_pda\|xircom_pgs\).S'
accept '[ ][ ][ ][/][*][ ]\(SQCIF\|QSIF\|QCIF\|SIF\|CIF\|VGA\)[ ][*][/][\n][ ][ ][ ][{][\n][ ][ ][ ][ ][ ][ ][{]'"$blobpat*" drivers/media/video/pwc/pwc-nala.h
accept 'P[13]\([\n]#[^\n]*\)*[\n]*\([\n][0-9 ]*\)\+' drivers/video/logo/*.ppm
accept 'for[ ]i[ ]in[ ][ 0-9\\\n]*[\n]do' 'Documentation/specialix\.txt|Documentation/serial/specialix\.txt'
accept '[ ][ ][ ][ ][ ][ ][ ][ ][ ]:[ ][ ][ ]3600000[ ][ ][ ]3400000[ ][ ][ ]3200000[ ][ ][ ]3000000[ ][ ][ ]2800000[ ]' Documentation/cpu-freq/cpufreq-stats.txt
accept '00[ ]00[\n]64[ ]01[\n]8e[ ]0b[\n][\n][0-9a-f \n]*fe[ ]fe' 'Documentation/scsi/\(sym\|ncr\)53c8xx_2.txt'
accept '0f[ ]00[ ]08[ ]08[ ]64[ ]00[ ]0a[ ]00[ ]-[ ]id[ ]0[\n]'"$blobpat*" 'Documentation/scsi/\(sym\|ncr\)53c8xx_2.txt'
accept 'default[ ]nvram[ ]data:'"$sepx$blobpat*" 'Documentation/scsi/\(sym\|ncr\)53c8xx_2.txt'
accept '0x0458[ ][ ][ ][ ][ ]0x7025[\n]'"$blobpat*" Documentation/video4linux/sn9c102.txt
accept '0x102c[ ][ ][ ][ ][ ]0x6151[\n]'"$blobpat*" Documentation/video4linux/et61x251.txt
accept '0x041e[ ][ ][ ][ ][ ]0x4017[\n]'"$blobpat*" Documentation/video4linux/zc0301.txt
accept '[ ][ ][(]gdb[)][ ]x[/]100x[ ][$]25[\n][ ][ ]0x507d2434:[ ][ ][ ][ ][ ]0x507d2434[ ][ ][ ][ ][ ][ ]0x00000000[ ][ ][ ][ ][ ][ ]0x08048000[ ][ ][ ][ ][ ][ ]0x080a4f8c'"$sepx$blobpat*" Documentation/uml/UserModeLinux-HOWTO.txt
accept '[ ][ ][ ][ ][ ][ ]1[ ][ ]0[ ][ ]0[ ][ ]0[ ][ ]0x308'"$sepx$blobpat*" Documentation/isdn/README.inc
accept 'domain<N>[ ]<cpumask>[ ]1[ ]2[ ]3[ ]4[ ]5[ ]6[ ]7[ ]8[ ]9[ ]10[ ]11[ ]12[ ]13[ ]14[ ]15[ ]16[ ]17[ ]18[ ]19[ ]20[ ]21[ ]22[ ]23[ ]24[ ]25[ ]26[ ]27[ ]28[ ]29[ ]30[ ]31[ ]32[ ]33[ ]34[ ]35[ ]36'"$eol" Documentation/sched-stats.txt
accept '[ * ]*0[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]1[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]2[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]3[\n][ * ]*0[ ]1[ ]2[ ]3[ ]4[ ]5[ ]6[ ]7[ ]8[ ]9[ ]0[ ]1[ ]2[ ]3[ ]4[ ]5[ ]6[ ]7[ ]8[ ]9[ ]0[ ]1[ ]2[ ]3[ ]4[ ]5[ ]6[ ]7[ ]8[ ]9[ ]0[ ]1' 'net/\(netfilter\|ipv4\)/ipvs/ip_vs_sync.c|net/sctp/sm_make_chunk.c|include/linux/scpt.h'
accept '[ ][*][ ][ ]1[ ]1[ ]0[ ]0[ ]0[ ]0[ ]0[ ]0[ ]0[ ]0[ ]0[ ]1[ ]0[ ]0[ ]0[ ]0[ ]0[ ]0[ ]0[ ]0[ ]0[ ]0[ ]0[ ]0[ ]0[ ]0[ ]0[ ]0[ ]0[ ]0[ ]0[ ]0' arch/x86/lguest/boot.c
ocomment '[ ][/][*][ ]Configure[ ]the[ ]PCI[ ]bus[ ]bursts[ ]and[ ]FIFO[ ]thresholds.' drivers/net/fealnx.c
ocomment '[/][*][ ]the[ ]original[ ]LUT[ ]values[ ]from[ ]Alex[ ]van[ ]Kaam[ ]<darkside@chello\.nl>' drivers/hwmon/via686a.c
initc 'static[ ]const[ ]unsigned[ ]char[ ]init\[\][ ]=[ ][{][^;]*MODE=0[ ][;].*SAA_7114_NTSC_HSYNC_START' drivers/media/video/saa7114.c
defsnc 'static[ ]struct[ ]cipher_testvec[ ]\(aes\|anubis\|bf\|camellia\|cts_mode\|des3_ede\|cast6\|salsa20_stream\|serpent\|tf\|tnepres\|xeta\|x\?tea\)\(_\(cbc\|ctr\(_rfc3686\)\?\|xts\)\)\?_\(enc\|dec\)_tv_template\[\][ ]=' 'crypto/\(tcrypt\|testmgr\).h'
defsnc 'static[ ]struct[ ]comp_testvec[ ]\(deflate\|lzo\)_\(de\)\?comp_tv_template\[\][ ]=' 'crypto/\(tcrypt\|testmgr\).h'
defsnc 'static[ ]struct[ ]hash_testvec[ ]\(aes_xcbc128\|crc32c\|hmac_sha2\(24\|56\)\|\(sha\|wp\)\(256\|384\|512\)\)_tv_template\[\][ ]=' 'crypto/\(tcrypt\|testmgr\).h'
# initnc '[ ]*\.\(digest\|entries\|input\|key\|output\|plaintext\|result\)[ \n ]*=[ ][{"]' 'crypto/\(tcrypt\|testmgr\).h'
defsnc 'static[ ]\(const[ ]\)\?RegInitializer[ ]initData\[\][ ]__initdata[ ]=' 'drivers/ide/ali14xx\.c\|drivers/ide/legacy/ali14xx\.c'
defsnc 'static[ ]const[ ]u8[ ]setup\[\][ ]=' 'drivers/ide/delkin_cb\.c\|drivers/ide/pci/delkin_cb\.c'
defsnc 'static[ ]u8[ ]cvs_time_value\[\]\[XFER_UDMA_6[ ]-[ ]XFER_UDMA_0[ ][+][ ]1\][ ]=' 'drivers/ide/sis5513\.c\|drivers/ide/pci/sis5513\.c'
defsnc 'static[ ]u8[ ]\(act\|ini\|rco\)_time_value\[\]\[8\][ ]=' 'drivers/ide/sis5513\.c\|drivers/ide/pci/sis5513\.c'
defsnc 'static[ ]const[ ]u8[ ]speedtab[ ]\[3\]\[12\][ ]=' 'drivers/ide/umc8672\.c\|drivers/ide/legacy/umc8672\.c'
defsnc 'static[ ]const[ ]s8[ ]\(b43\(legacy\)\?\|bcm43xx\)_tssi2dbm_[bg]_table\[\][ ]=' net/wireless/b43/phy.c
defsnc 'static[ ]const[ ]char[ ]zr360[56]0_dht\[0x1a4\][ ]=' 'drivers/media/video/zr36060\.c\|drivers/media/video/zoran/zr36060\.c'
defsnc 'static[ ]const[ ]char[ ]zr360[56]0_dqt\[0x86\][ ]=' 'drivers/media/video/zr36060\.c\|drivers/media/video/zoran/zr36060\.c'
defsnc 'static[ ]u8[ ]tas3004_treble_table\[\][ ]=' sound/aoa/codecs/tas-basstreble.h
# This file contains firmwares that we deblob with high
# sensitivity, so make sure the sequences of numbers that are not
# blobs are not deblobbed. FIXME: we should have patterns to
# recognize the blobs instead.
defsnc '[ ]static[ ]const[ ]u32[ ]test_pat\[4\]\[6\][ ]=' drivers/net/tg3.c
accept "[ ][}]\\(,\\?[ ]mem_tbl_5\\(70x\\|705\\|755\\|906\\)\\[\\][ ]=[ ][{]$sepx$blobpat*$sepx[}]\\)*[;]" drivers/net/tg3.c
# end of generic checked expressions.
# version-specific checked bits start here
# removed in 2.6.28
defsnc 'static[ ]unsigned[ ]char[ ]irq_xlate\[32\][ ]=' arch/sparc/kernel/sun4m_irq.c
defsnc 'static[ ]int[ ]logitech_expanded_keymap\[LOGITECH_EXPANDED_KEYMAP_SIZE\][ ]=' drivers/hid/hid-input.c
defsnc '[ ]static[ ]const[ ]\(__\)\?u8[ ]\(read_indexs\|n\(set\)\?[0-9]*\(_other\)\?\|missing\)\[[0-9x]*\][ ]=' drivers/media/video/gspca/t613.c
defsnc 'static[ ]const[ ]u_char[ ]nand_ecc_precalc_table\[\][ ]=' drivers/mtd/nand/nand_ecc.c
oprepline '#define[ ]AR5K_RATES_\(11[ABG]\|TURBO\|XR\)[ ]' drivers/net/wireless/ath5k/ath5k.h
defsnc 'static[ ]const[ ]struct[ ]ath_hal[ ]ar5416hal[ ]=' drivers/net/wireless/ath9k/hw.c
defsnc 'const[ ]unsigned[ ]char[ ]INIT_2\[127\][ ]=' drivers/video/omap/lcd_sx1.c
# removed in 2.6.24
accept "[ ]Psize[ ][ ][ ][ ]Ipps[ ][ ][ ][ ][ ][ ][ ]Tput[ ][ ][ ][ ][ ]Rxint[ ][ ][ ][ ][ ]Txint[ ][ ][ ][ ]Done[ ][ ][ ][ ][ ]Ndone[\\n][ ]---------------------------------------------------------------\\([\\n][ 0-9]\\+\\)\\+$eol"
initnc 'static[ ]u_short[ ]ataplain_map\[NR_KEYS\][ ]__initdata[ ]='
initnc '[ ]static[ ]const[ ]unsigned[ ]char[ ]invert5\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]alpa2target\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]target2alpa\[\][ ]='
oprepline '#define[ ]INIT_THREAD[ ][{0},]\+[ ]*\\[\n][ ]*[{0},]\+'
initnc 'static[ ]uint[ ]tas300\(1c\|4\)_\(master\|mixer\|treble\|bass\)_tab\[\]='
initnc 'static[ ]short[ ]dmasound_[au]law2dma16\[\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]short[ ]DACVolTable\[101\][ ]='
# removed in 2.6.23
initnc 'static[ ]const[ ]UQItype[ ]__clz_tab\[\][ ]=' arch/arm26/lib/udivdi3.c
initnc '[ ]static[ ]unsigned[ ]char[ ]scale\[101\][ ]=' sound/oss/opl3sa2.c
initnc '[}][ ]syncs\[\][ ]=' drivers/scsi/53c7xx.c
initnc 'genoa_md:'"$sepx$blobpat*"'[\n][ ]\.ascii[ ]["]Genoa["]' arch/i386/boot/video.S
# removed in 2.6.22
initnc 'Vendor[ ]ID[ ][ ]Product[ ]ID[\n]-\+[ ][ ]-\+[\n]'"$blobpat*" Documentation/video4linux/sn9c102.txt
defsnc 'static[ ]short[ ][au]law2dma16\[\]' arch/ppc/8xx_io/cs4218_tdm.c
defsnc '[ ]static[ ]const[ ]char[ ]minimal_ascii_table\[\]' drivers/ieee1394/csr1212.c
defsnc 'static[ ]u16[ ]key_map[ ]\[256\][ ]=' drivers/media/dvb/ttpci/av7110_ir.c
defsnc 'static[ ]unsigned[ ]char[ ]gf64_inv\[64\][ ]=' drivers/mtd/nand/cafe_ecc.c
defsnc 'static[ ]unsigned[ ]short[ ]err_pos_lut\[4096\][ ]=' drivers/mtd/nand/cafe_ecc.c
defsnc 'static[ ]unsigned[ ]char[ ]testdata\[TESTDATA_LEN\][ ]=' fs/jffs2/comprtest.c
# added in 2.6.25
accept "%canned_values[ ]=[ ][(][\\n][ ]\\([0-9]\\+[ ]=>[ ]\\[[ \\n]\\+\\(\\([0-9]\\+\\|'0x[0-9a-f]\\+'\\),[ \\n]*\\)*\\]\\(,[ ]\\|[\\n]\\)\\)*[)][;]"
# from 2.6.25-rc* patches
initnc '[ ]int[ ]bcomm_irq\[3[*]16\][ ]='
initnc '[ ]static[ ]const[ ]int8[ ]countLeadingZerosHigh\[\][ ]='
initnc 'static[ ]struct[ ]nic_qp_map[ ]nic_qp_mapping_[01]\[\][ ]='
initnc 'static[ ]struct[ ]regval[ ]ov_initvals\[\][ ]='
initnc 'static[ ]struct[ ]regval[ ]stk1125_initvals\[\][ ]='
initnc 'static[ ]u8[ ]bnx2x_stats_len_arr\[BNX2X_NUM_STATS\][ ]='
initnc 'static[ ]const[ ]struct[ ]arb_line[ ]read_arb_data\[NUM_RD_Q\]\[MAX_RD_ORD[ ][+][ ]1\][ ]='
initnc 'static[ ]const[ ]struct[ ]arb_line[ ]write_arb_data\[NUM_WR_Q\]\[MAX_WR_ORD[ ][+][ ]1\][ ]='
initnc '[ ][ ][}][ ]blinkrates\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]ath5k_ini[ ]ar5212_ini\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]ath5k_ini_mode[ ]rf5413_ini_mode_end\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]ath5k_ini_rf[ ]rfregs_5111\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]ath5k_ini_rf[ ]rfregs_5112\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]ath5k_ini_rf[ ]rfregs_5112a\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]ath5k_ini_rf[ ]rfregs_5413\[\][ ]='
initnc 'const[ ]u\(8\|16\|32\)[ ]b43_ntab_\(\(adjustpower\|estimatepowerlt\|gainctl\|iqlt\|loftlt\|noisevar1\|tdi[24]0a\)[01]\|channelest\|frame\(lookup\|struct\)\|mcs\|pilot\|tdtrn\|tmap\)\[\][ ]='
# new in 2.6.26
initnc 'static[ ]u64[ ]vec2off\[68\][ ]=' arch/ia64/kvm/process.c
initnc "[ ][ ][ ]interrupts[ ]=[ ]<\\(0x\\)\\?3[ ]\\(0x\\)\\?0[ ]\\(0x\\)\\?0[ ][ ]$blobpat*>[;]" 'arch/powerpc/boot/dts/\(cm5200\|lite5200b\?\|kuroboxHG\|pcm030\|tqm5200\).dts'
initnc 'static[ ]const[ ]u32[ ]crctab32\[\][ ]=' arch/x86/boot/tools/build.c
defsnc 'static[ ]struct[ ]mse2snr_tab[ ]\(vsb\|qam\(64\|256\)\)_mse2snr_tab\[\][ ]=' drivers/media/dvb/frontends/au8522.c
defsnc '[}][ ]\(VSB\|QAM\(64\|256\)\?\)_mod_tab\[\][ ]=' 'drivers/media/dvb/frontends/au8522\(_dig\)\?\.c'
initnc '[}][ ]itd1000_\(lpf_pga\|fre_values\)\[\][ ]=' drivers/media/dvb/frontends/itd1000.c
initnc '[}][ ]\(vsb\|qam\(64\|256\)\)_snr_tab\[\][ ]=' drivers/media/dvb/frontends/s5h1411.c
initnc '[}][ ]snr_tab\[\][ ]=' drivers/media/dvb/frontends/tda10048.c
initnc 'static[ ]u32[ ]reg_init_initialize\[\][ ]=' drivers/media/video/saa717x.c
initnc 'static[ ]const[ ]u32[ ]\(main\|gear\)_seedset\[BACKOFF_SEEDSET_ROWS\]\[BACKOFF_SEEDSET_LFSRS\][ ]=' drivers/net/forcedeth.c
initnc 'static[ ]const[ ]struct[ ]ath5k_ini_mode[ ]rf24\(13\|25\)_ini_mode_end\[\][ ]=' drivers/net/wireless/ath5k/initvals.c
initnc 'static[ ]const[ ]u16[ ]wm9713_reg\[\][ ]=' sound/soc/codecs/wm9713.c
# new in 2.6.27
accept '[ ]\.section[ ]__ex_table,["]a["]'"$sepx$blobpat*" 'arch/x86/lib/copy_user_\(nocache_\)\?64.S'
accept 'desc_config1:[\n][ ]\.byte[ ]0x09,[ ]0x02'"$sepx$blobpat*" 'firmware/keyspan_pda/\(keyspan_pda\|xircom_pgs\).S'
accept 'string_mfg:[\n]\?\([;]\?[ ]\.byte[^\n]*[\n]\)\+string_mfg_end:' 'firmware/keyspan_pda/\(keyspan_pda\|xircom_pgs\).S'
accept 'string_product:[\n]\?\([;]\?[ ]\.byte[^\n]*[\n]\)\+string_product_end:' 'firmware/keyspan_pda/\(keyspan_pda\|xircom_pgs\).S'
accept ':03000000020200F9[\n]:040023000205\(9B0037\|5F0073\)[\n]\(:050030000000000000CB[\n]\|:0400430002010000B6[\n]\)*'"$sepx$blobpat*"'[\n]:\(0E06E0006400670065007400060334003700F4\|0606A000060334003700E0\)[\n]:00000001FF' 'firmware/keyspan_pda/\(keyspan_pda\|xircom_pgs\).HEX'
accept ':100000000C004000000000000000000000000000A4[\n]'"$sepx$blobpat*"'[\n][/][*][ ]DSP56001[ ]bootstrap[ ]code[ ][*][/]' firmware/dsp56k/bootstrap.bin.ihex
initnc 'static[ ]const[ ]u16[ ]uda1380_reg\[UDA1380_CACHEREGNUM\][ ]=' sound/soc/codecs/uda1380.c
initnc 'static[ ]const[ ]u16[ ]wm8510_reg\[WM8510_CACHEREGNUM\][ ]=' sound/soc/codecs/wm8510.c
initnc 'static[ ]const[ ]unsigned[ ]short[ ]atkbd_unxlate_table\[128\][ ]=' drivers/input/keyboard/atkbd.c
initnc 'static[ ]const[ ]unsigned[ ]char[ ]usb_kbd_keycode\[256\][ ]=' drivers/hid/usbhid/usbkbd.c
initnc '[ ][ ]u8[ ]buf,[ ]bufs\[\][ ]=' drivers/media/dvb/dvb-usb/cxusb.c
initnc 'static[ ]struct[ ]dvb_pll_desc[ ][^\n]*[ ]=' drivers/media/dvb/frontends/dvb-pll.c
initnc '[ ]static[ ]int[ ]sysdiv_to_div_x_2\[\][ ]=' arch/powerpc/platforms/512x/clock.c
defsnc 'static[ ]const[ ]__u8[ ]cx_inits_\(176\|320\|352\|640\)\[\][ ]=' drivers/media/video/gspca/conex.c
defsnc 'static[ ]const[ ]__u8[ ]cx_jpeg_init\[\]\[8\][ ]=' drivers/media/video/gspca/conex.c
defsnc 'static[ ]const[ ]__u8[ ]cxjpeg_\(640\|352\|320\|176\|qtable\)\[\]\[8\][ ]=' drivers/media/video/gspca/conex.c
defsnc 'static[ ]const[ ]unsigned[ ]char[ ]quant\[\]\[0x88\][ ]=' drivers/media/video/gspca/jpeg.h
defsnc 'static[ ]unsigned[ ]char[ ]huffman\[\][ ]=' drivers/media/video/gspca/jpeg.h
initc '[ ]\?static[ ]const[ ]struct[ ]ov_i2c_regvals[ ]norm_76[1247]0\[\][ ]=' drivers/media/video/gspca/ov519.c
initnc 'static[ ]const[ ]__u8[ ]pac207_sensor_init\[\]\[8\][ ]=' drivers/media/video/gspca/pac207.c
initnc 'static[ ]const[ ]__u8[ ]pac7311_jpeg_header\[\][ ]=' drivers/media/video/gspca/pac7311.c
initnc 'static[ ]const[ ]__u8[ ]\(start\|page[34]\)_73\(02\|11\)\[\][ ]=' drivers/media/video/gspca/pac7311.c
initnc 'static[ ]const[ ]__u8[ ]init\(Hv7131\|Ov\(6650\|7630\(_3\)\?\)\|Pas\(106\|202\)\|Tas51[13]0\)\[\][ ]=' drivers/media/video/gspca/sonixb.c
initnc 'static[ ]const[ ]__u8[ ]\(hv7131\|ov\(6650\|7630\(_3\)\?\)\|pas\(106\|202\)\|tas51[13]0\)_sensor_init\(_com\)\?\[\]\[8\][ ]=' drivers/media/video/gspca/sonixb.c
defsnc 'static[ ]\(const[ ]\)\?\(__\)\?u8[ ]\(mt9v111\|sp80708\|hv7131r\|mi0360\|mo4000\|ov76\([36]0\|48\)\|om6802\)_sensor_init\[\]\[8\][ ]=' drivers/media/video/gspca/sonixj.c
initnc 'static[ ]const[ ]__u8[ ]qtable4\[\][ ]=' drivers/media/video/gspca/sonixj.c
initnc 'static[ ]const[ ]__u16[ ]\(spca500_visual\|Clicksmart510\)_defaults\[\]\[3\][ ]=' drivers/media/video/gspca/spca500.c
initnc 'static[ ]const[ ]__u8[ ]qtable_\(creative_pccam\|kodak_ez200\|pocketdv\)\[2\]\[64\][ ]=' drivers/media/video/gspca/spca500.c
initnc 'static[ ]const[ ]__u16[ ]spca501c\?_\(\(3com\|arowana\|mysterious\)_\)\?\(init\|open\)_data\[\]\[3\][ ]=' drivers/media/video/gspca/spca501.c
defsnc 'static[ ]const[ ]\(__u16\|u8\)[ ]spca505b\?_\(init\|open\)_data\(_ccd\)\?\[\]\[3\][ ]=' drivers/media/video/gspca/spca505.c
defsnc 'static[ ]const[ ]\(__\)\?u16[ ]spca508\(cs110\|_sightcam2\?\|_vista\)\?_init_data\[\]\[[23]\][ ]=' drivers/media/video/gspca/spca508.c
initnc 'static[ ]const[ ]__u16[ ]\(spca561\|rev72a\)_init_data3\?\[\]\[2\][ ]=' drivers/media/video/gspca/spca561.c
defsnc 'static[ ]const[ ]\(__u16\|struct[ ]cmd\)[ ]spca504\(_pccam600\|A_clicksmart420\)_\(init\|open\)_data\[\]\(\[3\]\)\?[ ]=' drivers/media/video/gspca/sunplus.c
defsnc 'static[ ]const[ ]\(__\)\?u8[ ]qtable_\(creative_pccam\|spca504_default\)\[2\]\[64\][ ]=' drivers/media/video/gspca/sunplus.c
initnc 'static[ ]const[ ]__u8[ ]\(effects\|gamma\)_table\[\(MAX_[A-Z]*\|[A-Z]*_MAX\)\]\[[0-9]*\][ ]=' drivers/media/video/gspca/t631.c
initnc 'static[ ]const[ ]\(__\)\?u8[ ]tas5130a_sensor_init\[\]\[8\][ ]=' drivers/media/video/gspca/t613.c
initnc 'static[ ]const[ ]struct[ ]usb_action[ ]\(cs2102\|hdcs2020xx\|icm105axx\|ov7630c\|pb0330[3x]x\)_Initial\(Scale\)\?\[\][ ]=' drivers/media/video/gspca/zc3xx.c
initnc 'static[ ]const[ ]u8[ ]rtl8225z2_agc\[\][ ]=' drivers/net/wireless/rtl8187_rtl8225.c
initnc 'static[ ]const[ ]u8[ ]rtl8225z2_ofdm\[\][ ]=' drivers/net/wireless/rtl8187_rtl8225.c
initnc 'static[ ]const[ ]u8[ ]rtl8225z2_tx_power_cck\[\][ ]=' drivers/net/wireless/rtl8187_rtl8225.c
initnc 'static[ ]const[ ]u8[ ]rtl8225z2_tx_power_cck_ch14\[\][ ]=' drivers/net/wireless/rtl8187_rtl8225.c
initnc 'static[ ]const[ ]__u16[ ]t10_dif_crc_table\[256\][ ]=' lib/crc-t10dif.c
initnc 'static[ ]crb_128M_2M_block_map_t[ ]crb_128M_2M_map\[64\][ ]=' drivers/net/netxen/netxen_hw.c
initnc 'static[ ]const[ ]__u16[ ]crc10_table\[256\][ ]=' drivers/usb/serial/safe_serial.c
accept '[ ]*\([ ]*0\)*\([ ]*1\)*[\n][ ]*0[ ]1[ ]2[ ]3[ ]4[ ]5[ ]6[ ]7[ ]8[ ]9[ ]0[ ]1[ ]*2[ ]3[ ]4[ ]5[ ]6[ ]7' Documentation/bt8xxgpio.txt
initnc '[ ]static[ ]int[ ]exp_lut\[256\][ ]=' drivers/isdn/mISDN/dsp_audio.c
initnc 'static[ ]const[ ]u32[ ]bf_pbox\[16[ ][+][ ]2\][ ]=' drivers/isdn/mISDN/dsp_blowfish.c
initnc 'static[ ]const[ ]u32[ ]bf_sbox\[256[ ][*][ ]4\][ ]=' drivers/isdn/mISDN/dsp_blowfish.c
initnc 'static[ ]u8[ ]sample_\(german_\(all\|old\)\|american_\(dialtone\|ringing\|busy\)\|special[123]\|silence\)\[\][ ]=' drivers/isdn/mISDN/dsp_tones.c
initnc 'struct[ ]pattern[ ][{][^}]*int[ ]tone[;][^}]*[}][ ]pattern\[\][ ]=' drivers/isdn/mISDN/dsp_tones.c
initnc 'static[ ]u8[ ]\([au]\|_4\)law_to_\([ua]law\|4bit\)\[256\][ ]=' drivers/isdn/mISDN/l1oip_codec.c
initnc 'static[ ]unsigned[ ]char[ ]banner_table\[\][ ]=' arch/sh/boards/mach-microdev/led.c
accept 'irq_prio_\([hdl]\|l[cd]\):'"$sepx$blobpat*" arch/arm/inlcude/asm/hardware/entry-macro-iomd.S
defsnc '[ ]static[ ]const[ ]int[ ]desc_idx_table\[\][ ]=' arch/arm/include/asm/hardware/iop3xx-adma.h
defsnc 'static[ ]\(const[ ]\)\?u32[ ]ar\(5416\|9280\)\(Modes\(_fast_clock\)\?\|Common\|BB_RfGain\|Bank6\(TPC\)\?\|Addac\)\(_91[06]0\(1_1\)\?\|_9280\(_2\)\?\)\?\[\]\[[236]\][ ]=' drivers/net/wireless/ath9k/initvals.h
# new in 2.6.28
accept '\(static[ ]\)\?const[ ]char[ ]\(inv\)\?parity\[256\][ ]=[ ][{][ \n01,]*[}][;]' 'Documentation/mtd/nand_ecc\.txt\|drivers/mtd/nand/nand_ecc\.c'
defsnc 'static[ ]const[ ]char[ ]\(bitsperbyte\|addressbits\)\[256\][ ]=' drivers/mtd/nand/nand_ecc.c
defsnc 'static[ ]struct[ ]pinmux_cfg_reg[ ]pinmux_config_regs\[\][ ]=' arch/sh/kernel/cpu/sh2a/pinmux-sh7203.c
defsnc '[ ]static[ ]const[ ]u8[ ]e_keymap\[\][ ]=' drivers/hid/hid-lg.c
defsnc 'DEFINE_DEFAULT_PDR[(]0x0161,[ ]256,' drivers/net/wireless/hermes_dld.c
defsnc 'static[ ]const[ ]int[ ]isink_cur\[\][ ]=' drivers/regulator/wm8350-regulator.c
defsnc 'static[ ]const[ ]s16[ ]\(converge_speed_ipb\?\|LAMBDA_table\[4\]\)\[101\][ ]=' drivers/staging/go7007/go7007-fw.c
defsnc 'static[ ]const[ ]u32[ ]addrinctab\[33\]\[2\][ ]=' drivers/staging/go7007/go7007-fw.c
defsnc 'static[ ]const[ ]u8[ ]\(default_intra_quant_table\|\(val\|bits\)_[ad]c_\(lu\|chro\)minance\)\[\][ ]=' drivers/staging/go7007/go7007-fw.c
defsnc 'static[ ]const[ ]int[ ]zz\[64\][ ]=' drivers/staging/go7007/go7007-fw.c
defsnc '[ ]u16[ ]pack\[\][ ]=' drivers/staging/go7007/go7007-fw.c
defsnc 'static[ ]u8[ ]\(initial\|channel\)_registers\[\][ ]=' 'drivers/staging/go7007/wis-\(ov7640\|saa7113\|tw2804\).c'
defsnc 'u16[ ]MTO_One_Exchange_Time_Tbl_[ls]\[MTO_MAX_FRAG_TH_LEVELS\]\[MTO_MAX_DATA_RATE_LEVELS\][ ]=' drivers/staging/winbond/mto.c
defsnc 'u32[ ]\(al2230_txvga_data\|w89rf242_txvga_old_mapping\)\[\]\[2\][ ]=' drivers/staging/winbond/reg.c
defsnc 'static[ ]const[ ]UINT16[ ]crc16tab\[256\][ ]=' drivers/staging/wlan-ng/hfa384x.c
defsnc 'static[ ]const[ ]\(UINT32\|u32\)[ ]wep_crc32_table\[256\][ ]=' drivers/staging/wlan-ng/p80211wep.c
defsnc 'static[ ]const[ ]unsigned[ ]char[ ]wm_vol\[256\][ ]=' sound/pci/ice1712/phase.c
defsnc 'static[ ]const[ ]u16[ ]wm8900_reg_defaults\[WM8900_MAXREG\][ ]=' sound/soc/wm8900.c
defsnc '[}][ ]\(clk_sys_ratios\|bclk_divs\)\[\][ ]=' sound/soc/wm8903.c
defsnc 'static[ ]u8[ ]af9015_ir_table_\(leadtek\|twinhan\|a_link\|msi\|mygictv\|kworld\)\[\][ ]=' drivers/media/dvb/dvb-usb/af9015.h
defsnc 'static[ ]struct[ ]snr_table[ ]\(qpsk\|qam\(16\|64\)\)_snr_table\[\][ ]=' drivers/media/dvb/frontends/af9013_priv.h
defsnc 'static[ ]struct[ ]regdesc[ ]\(ofsm_init\|tuner_init_\(env77h11d5\|mt2060\(_2\)\?\|mxl500\(3d\|5\)\|qt1010\|mc44s803\|unknown\|tda18271\)\)\[\][ ]=' drivers/media/dvb/frontends/af9013_priv.h
defsnc 'static[ ]u8[ ]stv0288_earda_inittab\[\][ ]=' drivers/media/dvb/frontends/eds1547.h
defsnc 'static[ ]u8[ ]serit_sp1511lhb_inittab\[\][ ]=' drivers/media/dvb/frontends/si21xx.c
defsnc 'static[ ]u8[ ]stv0288_inittab\[\][ ]=' drivers/media/dvb/frontends/stv0288.c
defsnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_b\[\][ ]=' drivers/net/wireless/rt2x00/rt2400pci.c
# request_firmware matches for 2.6.28
accept 'D:[ ]Firmware[ ]loader[ ][(]request_firmware[)]' CREDITS
accept 'FIRMWARE[ ]LOADER[ ][(]request_firmware[)]' MAINTAINERS
accept '[ ]-[ ]request_firmware[(][)][ ]hotplug[ ]interface[ ]info.' Documentation/00-INDEX
accept 'This[ ]driver[ ]requires[ ]a[ ]patch[ ]for[ ]firmware_class[^\n]*[\n]request_firmware_nowait[ ]function\.' Documentation/dell_rbu.txt
accept '\([ ]request_firmware[(][)][ ]hotplug[ ]interface:[\n][ ]--*[\n].*[ ]\)\?-[ ]request_firmware_nowait[(][)][ ]is[ ]also[ ]provided[ ]for[ ]convenience' Documentation/firmware_class/README
accept 'Still,[ ]there[ ]are[ ]kernel[ ]threads[ ]that[ ]may[ ]want.*For[ ]example,[ ]if[ ]request_.*_firmware[(][)][ ]will[ ]fail[ ]regardless' Documentation/power/freezing-of-tasks.txt
accept 'Also,[ ]there[ ]may[ ]be[ ]some[ ]operations,.*calling[ ]request_firmware[(][)][ ]from[ ]their[ ].resume[(][)][ ]routines' Documentation/power/notifiers.txt
accept 'There[ ]is[ ]an[ ]USB[ ]interface[ ]for[ ]downloading[/]uploading.*request_firmware[ ]interface\.' Documentation/video4linux/si470x.txt
accept '[ ]-[ ]move[ ]firmware[ ]loading[ ]to[ ]request_firmware[(][)]' drivers/staging/slicoss/README
accept 'config[ ]FIRMWARE_IN_KERNEL.*let[ ]firmware[ ]be[ ]loaded[ ]from[ ]userspace\.' drivers/base/Kconfig
accept '[ ]*and[ ]request_firmware[(][)][ ]in[ ]the[ ]source' drivers/base/Kconfig
accept 'static[ ]int[\n]_request_firmware[(]const[ ]struct[ ]firmware[ ][*][*]firmware_p,[ ]const[ ]char[ ][*]name,[^{]*[\n][{][\n]\([^}]\|[^\n}][}]*\)*[\n][}][\n]' drivers/base/firmware_class.c
accept 'static[ ]int[\n]request_firmware_work_func[(]void[ ][*]arg[)][\n][{][\n]\([^}]\|[^\n}][}]*\)*ret[ ]=[ ]_request_firmware[(]\([^}]\|[^\n}][}]*\)*[\n][}][\n]' drivers/base/firmware_class.c
accept '[/][*][*][\n][ ][*][ ]request_firmware:[ ]-[ ]send[ ]firmware[ ][^{]*[\n][{][\n]\([^}]\|[^\n}][}]*\)*[\n][}][\n]' drivers/base/firmware_class.c
accept '[/][*][*][\n][ ][*][ ]request_firmware_nowait:[ ]asynchronous[ ]version[^{]*[\n][{][\n]\([^}]\|[^\n}][}]*\)*[\n][}][\n]' drivers/base/firmware_class.c
accept 'EXPORT_SYMBOL[(]request_firmware\(_nowait\)\?[)][;]' drivers/base/firmware_class.c
accept 'int[ ]request_firmware\(_nowait\)\?[(][^;]*[)][;]' include/linux/firmware.h
accept 'static[ ]inline[ ]int[ ]request_firmware\(_nowait\)\?[(][^{]*[)][\n][{][\n][ ]return[ ]-EINVAL[;][\n][}]' include/linux/firmware.h
accept 'static[ ]inline[ ]int[\n]\(maybe_\)\?reject_firmware\(_nowait\)\?[(][^{;]*[)][\n][{][\n]\([^}]\|[^\n}][}]*\)*[\n][}]' include/linux/firmware.h
accept 'static[ ]inline[ ]int[ ]request_ihex_firmware\?[(][^{]*[)][\n][{][\n]\([^}]\|[^\n}][}]*\)*[\n][}][\n]' include/linux/ihex.h
ocomment '[/][*][ ]Optional[ ]firmware\([^\n]*[\n][ ][*]\)*[^\n]*[ ]MODULE_FIRMWARE[(][)]'
oprepline '#define[ ]MODULE_FIRMWARE[(]_firmware[)]' include/linux/module.h
accept '[ ][*][ ]Sample[ ]code[ ]on[ ]how[ ]to[ ]use[ ]request_firmware[(][)][ ]from[ ]drivers\.' samples/firmware_class/firmware_sample_driver.c
accept '[ ]\(retval\|error\)[ ]=[ ]request_firmware\(_nowait\)\?[(][^;]*["]sample_driver_fw["],[^;]*[)][;]' samples/firmware_class/firmware_sample_driver.c
ocomment '[ ][/][*][ ]request_firmware[ ]blocks[ ]until[ ]userspace[ ]finished' samples/firmware_class/firmware_sample_driver.c
accept '[ ][ ][ ]*["][ ]request_firmware_nowait[ ]failed' samples/firmware_class/firmware_sample_driver.c
# We used to remove these in early versions of Linux-libre.
# They're now believed to be mere initialization data, rather than
# code disguised as such, and they're not long enough so as to
# render the software non-Free.
defsnc 'static[ ]u8[ ]tda10021_inittab\[0x40\]=' drivers/media/dvb/frontends/tda10021.c
defsnc 'static[ ]u8[ ]tda8083_init_tab[ ]\[\][ ]=' drivers/media/dvb/frontends/tda8083.c
defsnc 'static[ ]u8[ ]ves1820_inittab\[\][ ]=' drivers/media/dvb/frontends/ves1820.c
defsnc 'static[ ]u8[ ]init_1[89]93_w\?tab[ ]\?\[\][ ]=' drivers/media/dvb/frontends/ves1x93.c
defsnc 'static[ ]const[ ]u8[ ]saa7113_tab\[\][ ]=' drivers/media/dvb/ttpci/budget-av.c
defsnc 'static[ ]u8[ ]philips_sd1878_inittab\[\][ ]=' drivers/media/dvb/ttpci/budget-av.c
defsnc 'const[ ]struct[ ]Kiara_table_entry[ ]Kiara_table\[PSZ_MAX\]\[6\]\[4\][ ]=' drivers/media/video/pwc/pwc-kiara.c
defsnc 'const[ ]unsigned[ ]int[ ]KiaraRomTable[ ]\[8\]\[2\]\[16\]\[8\][ ]=' drivers/media/video/pwc/pwc-kiara.c
defsnc 'const[ ]struct[ ]Timon_table_entry[ ]Timon_table\[PSZ_MAX\]\[PWC_FPS_MAX_TIMON\]\[4\][ ]=' drivers/media/video/pwc/pwc-timon.c
defsnc 'const[ ]unsigned[ ]int[ ]TimonRomTable[ ]\[16\]\[2\]\[16\]\[8\][ ]=' drivers/media/video/pwc/pwc-timon.c
defsnc '[ ]static[ ]const[ ]struct[ ]struct_initData[ ]initData\[\][ ]=' drivers/media/video/usbvideo/ibmcam.c
defsnc 'static[ ]const[ ]u8[ ]rtl8187b_reg_table\[\]\[3\][ ]=' drivers/net/wireless/rtl8187_dev.c
defsnc 'unsigned[ ]char[ ]\(IDX_ACTIVATE_\(READ\|WRITE\)\|\(CM\|ULP\)_\(ENABLE\|SETUP\)\|DM_ACT\|IPA_PDU_HEADER\|\(READ\|WRITE\)_CCW\)\[\][ ]=' drivers/net/qeth_core_mpc.c
defsnc 'static[ ]unsigned[ ]char[ ]camera_ncm03j_magic\[\][ ]=' arch/sh/boards/board-ap325rxa.c
defsnc 'static[ ]const[ ]unsigned[ ]short[ ]\(sync\|magic[0-3]\)_data\[\][ ]=' arch/sh/boards/mach-migor/lcd_qvga.c
defsnc 'static[ ]unsigned[ ]char[ ]camera_ov772x_magic\[\][ ]=' arch/sh/boards/mach-migor/setup.c
defsnc 'static[ ]struct[ ]chips_init_reg[ ]chips_init_[sgacfx]r\[\][ ]=' 'drivers/video/\(asiliant\|chips\)fb.c'
# This one is quite suspicious, but it's small enough (64 bytes
# total) that it's believable that it could be actual source code.
defsnc 'static[ ]const[ ]__u8[ ]cx11646_fw1\[\]\[3\][ ]=' drivers/media/video/gspca/conex.c
# Hunting down non-Free firmware-loading code and instructions.
# Firmware names are to be caught anywhere.
# 2.6.26 but not later
blobname 'atmsar1[12]\.\(x\|start\|regions\|data\|bin[12]\?\)' 'drivers/atm/\(Makefile\|ambassador\.c\)'
blob '#\(define\|include\)[ ]UCODE2\?[(][^\n]*' drivers/atm/ambassador.c
blob 'static[ ]\(u32\|region\)[ ]__devinitdata[ ]ucode_\(start\|\(regions\|data\)\[\]\)[ ]=[^;]*[;]' drivers/atm/ambassador.c
blob '\(#\(ifdef[ ]AMB_NEW_MICROCODE\|else\|endif\)[\n]#\(define\|include\)[ ]UCODE2\?[(][^\n]*[\n]\)\+\([\n]*static[ ]\(u32\|region\)[ ]__devinitdata[ ]ucode_\(start\|\(regions\|data\)\[\]\)[ ]=[^;]*[;]\)*' drivers/atm/ambassador.c
blobname '\(pca\|sba\)200e\(_ecd\)\?\.\(data\|bin[12]\?\)' 'drivers/atm/\(Makefile\|fore200e\(_mkfirm\)\?\.c\)'
blobna '[/][*]\([^/]\|[^*][/]*\)*PCA-200E[ ]firmware[ ][*][/]' drivers/atm/fore200e_mkfirm.c
blobna '_fore200e_\(pca\|sba\)_fw_\(data\|size\)' drivers/atm/fore200e.c
blob '#ifdef[ ]CONFIG_ATM_FORE200E_\(PCA\|SBA\)\([\n]extern[ ]const[ ]unsigned[ ]\(char\|int\)[ ]*_fore200e_\(pca\|sba\)_fw_\(data\[\]\|size\)[;]\)\+[\n]#endif\([\n]\+#ifdef[ ]CONFIG_ATM_FORE200E_\(PCA\|SBA\)\([\n]extern[ ]const[ ]unsigned[ ]\(char\|int\)[ ]*_fore200e_\(pca\|sba\)_fw_\(data\[\]\|size\)[;]\)\+[\n]#endif\)*' drivers/atm/fore200e.c
# 2.6.27 but not later
blob 'cas_saturn_patch_t[ ]cas_saturn_patch\[\][ ]=[ ][{][^;]*[}][;]' drivers/net/cassini.h
accept '[ ][ ][ ]firmware[ ]files[ ]--[ ]the[ ]same[ ]names[ ]which[ ]appear[ ]in[ ]MODULE_FIRMWARE[(][)]' drivers/base/Kconfig
# 2.6.28 or earlier
blobname 'atmsar11\.fw' drivers/atm/ambassador.c
blob '\(#ifdef[ ]__\(LITTLE\|BIG\)_ENDIAN[\n]\)\?#define[ ]FW_EXT[ ]["]\(_ecd\)\?\.bin2\?["]\([\n]#else[\n]#define[ ]FW_EXT[ ]["]\(_ecd\)\?\.bin2\?["]\)*\([\n]#endif\)\?' drivers/atm/fore200e.c
blobna 'sprintf[(][^;]*fore200[^;]*FW_EXT[^;]*[)][;]' drivers/atm/fore200e.c
blobname '\(pc\|sb\)a200e\(_ecd\)\?\.bin[12]\?' drivers/atm/fore200e.c
blobna 'The[ ]supplied[ ]firmware[ ]images.*fore.*Rebuild[ ]and[ ]re-install[^.]*\.' Documentation/networking/fore200e.txt
blobname 'intelliport2\.bin' drivers/char/ip2/ip2main.c
blob 'static[ ]unsigned[ ]char[ ]warp_g[24]00_t2\?gzs\?a\?f\?\[\][ ]=[ ][{][^{};]*[}][;]\([\n][\n]*static[ ]unsigned[ ]char[ ]warp_g[24]00_t2\?gzs\?a\?f\?\[\][ ]=[ ][{][^{};]*[}][;]\)*' drivers/gpu/drm/mga/mga_ucode.h
blob '\(#define[ ]WARP_UCODE_\(SIZE\|INSTALL\)[(][ ]*which\([^\n]*\\[ ]*[\n]\)*[^\n]*\|static[ ]const[ ]unsigned[ ]int[ ]mga_warp_g[24]00_microcode_size[ ]=[^;]*[;]\|static[ ]int[ ]mga_warp_install_g[24]00_microcode[(][^{]*[)][\n][{][\n]\([^}]\|[^\n}][}]*\)*[\n][}]\)\([\n][\n]*\(#define[ ]WARP_UCODE_\(SIZE\|INSTALL\)[(][ ]*which\([^\n]*\\[ ]*[\n]\)*[^\n]*\|static[ ]const[ ]unsigned[ ]int[ ]mga_warp_g[24]00_microcode_size[ ]=[^;]*[;]\|static[ ]int[ ]mga_warp_install_g[24]00_microcode[(][^{]*[)][\n][{][\n]\([^}]\|[^\n}][}]*\)*[\n][}]\)\)*' drivers/gpu/drm/mga/mga_warp.c
blobna '\(case[ ]MGA_CARD_TYPE_G[^:]*:[ \n]*\)\+return[ ][^;]*mga_warp[^;]*microcode[^;]*[;]\([ \n]*\(case[ ]MGA_CARD_TYPE_G[^:]*:[ \n]*\)\+return[ ][^;]*mga_warp[^;]*microcode[^;]*[;][ ]*\)*' drivers/gpu/drm/mga/mga_warp.c
blob 'static[ ]u32[ ]r128_cce_microcode\[\][ ]=[ ][{][^;]*[}][;]' drivers/gpu/drm/r128/r128_cce.c
blob 'static[ ]void[ ]r128_cce_load_microcode[(][^{]*[)][\n][{][\n]\([^}]\|[^\n}][}]*\)*[\n][}]' drivers/gpu/drm/r128/r128_cce.c
# blobna 'R128_WRITE[(]R128_PM4_MICROCODE_DATA[HL],[\n ]*r128_cce_microcode\[i[ ][*][ ]2\([ ][+][ ]1\)\?\][)]\([;][\n ]*R128_WRITE[(]R128_PM4_MICROCODE_DATA[HL],[\n ]*r128_cce_microcode\[i[ ][*][ ]2\([ ][+][ ]1\)\?\][)]\)*' drivers/gpu/drm/r128/r128_cce.c
blob 'static[ ]const[ ]u32[ ]R[SV0-9]*[05]_\(c\|pf\)p_microcode\[\]\(\[[23]\]\)\?[ ]=[ ][{][^;]*[}][;]\([\n][\n]*static[ ]const[ ]u32[ ]R[SV0-9]*[05]_\(c\|pf\)p_microcode\[\]\(\[[23]\]\)\?[ ]=[ ][{][^;]*[}][;]\)*' 'drivers/gpu/drm/radeon/\(radeon\|r600\)_microcode\.h'
blob 'static[ ]void[ ]r\(adeon\|[167]00\)_cp_load_microcode[(][^{]*[)][\n][{][\n]\([^}]\|[^\n}][}]*\)*cp_microcode\([^}]\|[^\n}][}]*\)*[\n][}]' 'drivers/gpu/drm/radeon/r\(\(adeon\|600\)_cp\|100\)\.c'
# blobna 'RADEON_WRITE[(]R\(ADEON\|600\)_CP_\(ME_RAM\|PFP_UCODE\)_DATA[HL]\?,[\n ]*R[SV0-9]*[05]_\(c\|pf\)p_microcode\[i\]\(\[[012]\]\)\?[)]\([;][\n ]*RADEON_WRITE[(]R\(ADEON\|600\)_CP_\(ME_RAM\|PFP_UCODE\)_DATA[HL]\?,[\n ]*R[SV0-9]*[05]_\(c\|pf\)p_microcode\[i\]\(\[[012]\]\)\?[)]\)*' 'drivers/gpu/drm/radeon/\(radeon\|r600\)_cp\.c'
blob 'sub[ ]\(sp887[0x]\|tda1004\(5\|6\(lifeview\)\?\)\|av7110\|dec\(2\(00\|54\)0t\|3000s\)\|opera1\|vp7041\|dibusb\|nxt200[24]cx\(23\(1xx\|855\)\|18\)\|pvrusb2\|or51\(211\|132_\(qam\|vsb\)\)\|bluebird\|mpc718\)[ ]*[{]\([^}]*\|[^\n}][}]*\)[\n][}]\([\n][\n]*sub[ ]\(sp887[0x]\|tda1004\(5\|6\(lifeview\)\?\)\|av7110\|dec\(2\(00\|54\)0t\|3000s\)\|opera1\|vp7041\|dibusb\|nxt200[24]cx\(23\(1xx\|855\)\|18\)\|pvrusb2\|or51\(211\|132_\(qam\|vsb\)\)\|bluebird\|mpc718\)[ ]*[{]\([^}]*\|[^\n}][}]*\)[\n][}]\)*' Documentation/dvb/get_dvb_firmware
blobna 'Please[ ]use[^\n]*firmware[^\n]*sp887x[^\n]*\([\n][^\n]\+\)\+' Documentation/dvb/avermedia.txt
blob 'To[ ]extract[ ]the[ ]firmware[^\n]*Opera[ ]DVB-S1[ ]USB-Box.*[/]lib[/]firmware[/][ ]\.' Documentation/dvb/opera-firmware.txt
blobname '\(dvb-usb-opera[^\n]*\.fw\|2830S[^\n]*2\.sys\)' Documentation/dvb/opera-firmware.txt
blob 'Getting[ ]the[ ]Firmware\([\n][^\n]\+\)*' Documentation/dvb/ttusb-dec.txt
blob '[/][*][\n ]*File[ ]automatically[ ]generated[ ]by[ ]createinit\.py[ ]using[ ]data[\n ]*extracted[ ]from[ ]AF05BDA\.sys.*[}][;]' drivers/media/dvb/dvb-usb/af9005-script.h
blob '#include[ ]["]af9005-script\.h["]' drivers/media/dvb/dvb-usb/af9005-fe.c
blobna '[\n][ ]scriptlen[ ]=[ ]sizeof[(]script[)][^;]*[;][\n][ ]for[^{]*scriptlen[^{]*[{][^}]*[^\n }]' drivers/media/dvb/dvb-usb/af9005-fe.c
accept 'struct[ ]\(sp8870\|tda1004x\)_config[\n][{][^}]*[(][*]request_firmware[)][^}]*[\n][}][;]' 'drivers/media/dvb/frontends/\(sp8870\|tda1004x\)\.h'
blob '[/][*]\([^/]*\|[^*/][/]\)*get_dvb_firmware\([^/]*\|[^*/][/]*\)*[*][/]\([\n]\(#define[ ]\(\([^\n ]*_DEFAULT\|NONFREE\)_FIRMWARE\|["][^"]*["]\)[ ]\([^\n]*\|[\\][\n]\)*\|[/][*][(]DEBLOBBED[)][*][/]\)\)*' 'drivers/media/dvb/frontends/\(nxt200x\|or51211\|sp887[0x]\|tda1004[8x]\)\.c'
blobname 'dvb-fe-sp8870\.fw' drivers/media/dvb/frontends/sp8870.c
blobname 'dvb-fe-tda1004[56]\.fw' drivers/media/dvb/frontends/tda1004x.c
# This bootcode is actually Free Software under GPLv2, but since it's
# being distributed without source code, we're taking it out.
blob 'static[ ]u8[ ]bootcode\[\][ ]=[ ][{][^}]*[}][;]' drivers/media/dvb/ttpci/av7110_hw.c
blobname 'dvb-ttpci-01\.fw' drivers/media/dvb/ttpci/av7110.c
defsnc 'static[ ]u8[ ]nexusca_stv0297_inittab\[\][ ]=' drivers/media/dvb/ttpci/av7110.c
defsnc 'static[ ]u8[ ]philips_su1278_tt_inittab\[\][ ]=' drivers/media/dvb/ttpci/budget-ci.c
defsnc 'static[ ]u8[ ]dvbc_philips_tdm1316l_inittab\[\][ ]=' drivers/media/dvb/ttpci/budget-ci.c
blobname 'ttusb-budget[/]dspbootcode\.bin' drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
blobname 'cpia2[/]stv0672_vp4\.bin' drivers/media/video/cpia2/cpia2_core.c
blobname 'dabusb[/]\(firmware\.fw\|bitstream\.bin\)' drivers/media/video/dabusb.c
blob 'static[ ]u32[ ]tigon2\?Fw\(Text\|Rodata\|Data\)\[[(]MAX_\(TEXT\|RODATA\|DATA\)_LEN[/]4[)][ ][+][ ]1\][ ]__devinitdata[ ]=[ ][{][^}]*[}][;]\([\n]static[ ]u32[ ]tigon2\?Fw\(Text\|Rodata\|Data\)\[[(]MAX_\(TEXT\|RODATA\|DATA\)_LEN[/]4[)][ ][+][ ]1\][ ]__devinitdata[ ]=[ ][{][^}]*[}][;]\)*' drivers/net/acenic_firwmare.h
blob '#define[ ]tigon2\?Fw[^ ]*\(Addr\|Len\)[ ]0x[^\n]*\([\n]#define[ ]tigon2\?Fw[^ ]*\(Addr\|Len\)[ ]0x[^\n]*\)\+' drivers/net/acenic_firmware.h
blob '\([/][*]\([^/]*\|[^*/][/]*\)*Do[ ]not[ ]try[ ]to[ ]clear\([^/]*\|[^*/][/]*\)*[*][/][\n][ ]\)\?ace_clear[^;]*[;][\n]\([^}]*[{][^}]*ace_copy[^}]*tigon2\?Fw[^}]*[}]\)*[\n]\+[ ]return[ ]0[;][\n][}]' drivers/net/acenic.c
blob 'if[ ][(]\(ACE_IS_TIGON_I[(]ap[)]\|ap->version[ ]==[ ]2\)[)][\n][ ][ ]writel[(]tigon2\?FwStartAddr,[ ][&]regs->Pc[)][;]\([\n][ ]if[ ][(]\(ACE_IS_TIGON_I[(]ap[)]\|ap->version[ ]==[ ]2\)[)][\n][ ][ ]writel[(]tigon2\?FwStartAddr,[ ][&]regs->Pc[)][;]\)*' drivers/net/acenic.c
blob '#include[ ]["]starfire_firmware\.h["]' drivers/net/starfire.c
blob '[/][*]\([^/]*\|[^*/][/]*\)*Load[ ]Rx[/]Tx[ ]firmware\([^/]*\|[^*/][/]*\)*[*][/]\([\n][ ]for[ ][(][^)]*FIRMWARE_[RT]X_SIZE[^)]*[)][\n][ ][ ]writel[^;]*firmware_[rt]x[^;]*[;]\)\+' drivers/net/starfire.c
blob 'static[ ]\(u8\|const[ ]u32\|struct[ ]fw_info\)[ ]bnx2_\(\(COM\|CP\|[RT]XP\|TPAT\)_b0[69]Fw\(Text\|Data\|Rodata\)\|\(xi_\)\?rv2p_proc[12]\|\(com\|cp\|[rt]xp\|tpat\)_fw_0[69]\)\(\[[^]};]*\]\)*[ ]=[ ][{][^}]*[}][;]\([\n][\n]*static[ ]\(u8\|const[ ]u32\|struct[ ]fw_info\)[ ]bnx2_\(\(COM\|CP\|[RT]XP\|TPAT\)_b0[69]Fw\(Text\|Data\|Rodata\)\|\(xi_\)\?rv2p_proc[12]\|\(com\|cp\|[rt]xp\|tpat\)_fw_0[69]\)\(\[[^]};]*\]\)*[ ]=[ ][{][^}]*[}][;]\)*' 'drivers/net/bnx2_fw2\?.h'
blob '#include[ ]["]bnx2_fw\.h["][\n][\n]*#include[ ]["]bnx2_fw2\.h["]' drivers/net/bnx2.c
blob 'static[ ]void[\n]load_rv2p_fw[(][^{]*[)][\n][{][\n]\([^}]\|[^\n}][}]*\)*[\n][}]' drivers/net/bnx2.c
blob 'static[ ]int[\n]bnx2_init_cpus[(][^{]*[)][\n][{][\n]\([^}]\|[^\n}][}]*\)*[\n][}]' drivers/net/bnx2.c
# init_data_e1h? might actually be just data, but it doesn't
# really matter.
blob 'static[ ]const[ ]u32[ ]\(init\?\|[tucx]sem_\(int_table\|pram\)\)_data_e1h\?\[\][ ]=[ ][{][^}]*[}][;]\([\n][\n]*static[ ]const[ ]u32[ ]\(init\?\|[tucx]sem_\(int_table\|pram\)\)_data_e1h\?\[\][ ]=[ ][{][^}]*[}][;]\)*' drivers/net/bnx2x_init_values.h
blob 'static[ ]\(void[ ]\|const[ ]u32[ ][*]\)bnx2x_\(sel_blob\|init_wr_wb\|init_block\)[(][^{]*[)][\n][{][\n]\([^}]\|[^\n}][}]*\)*[\n][}]\([\n][\n]*static[ ]\(void[ ]\|const[ ]u32[ ][*]\)bnx2x_\(sel_blob\|init_wr_wb\|init_block\)[(][^{]*[)][\n][{][\n]\([^}]\|[^\n}][}]*\)*[\n][}]\)*' 'drivers/net/bnx2x_init\(_ops\)\?\.h'
blobname 'sun[/]cassini\.bin' drivers/net/cassini.c
blobna 'static[ ]u16[ ]\(sr\|twinax\)_edc\[\][ ]=[ ][{][^;]*[}][;]' drivers/net/cxgb3/ael1002.c
blobna 'for[ ][(][^\n]*ARRAY_SIZE[(]\(sr\|twinax\)_edc[)][^\n]*[)][\n][^;]*mdio_write[^;]*[;]' drivers/net/cxgb3/ael1002.c
blobname '\(cxgb3[/]\)\?t3\(fw\|\(%c\|.\)_p\(rotocol_\)\?sram\)-\(%d\|[0-9]*\)\.\(%d\|[0-9]*\)\.\(%d\|[0-9]*\)\.bin' drivers/net/cxgb3/cxgb3_main.c
blob '\([/][*][*]*[*][/][\n]*\)*\([/][*]\([^/]\|[^*/][/]*\)*Micro[ ]code\([^/]\|[^*/][/]*\)*8086:\([^/]\|[^*/][/]*\)*[*][/]\([\n]*[/][*]\([^/]\|[^*/][/]*\)*[*][/]\)*\|#define[ ][ ]*D10\(1M\(_B\)\?\|1S\|2_E\)_\(CPUSAVER_\(TIMER\|BUNDLE\|MIN_SIZE\)_DWORD\|RCVBUNDLE_UCODE\)[ ]\(\\[\n]\|[^\n]\)*\)\([\n]*[/][*]\([^/]\|[^*/][/]*\|[*][/][\n]*[/][*]\)*Micro[ ]code\([^/]\|[^*/][/]*\)*8086:\([^/]\|[^*/][/]*\)*[*][/]\([\n]*[/][*]\([^/]\|[^*/][/]*\)*[*][/]\)*\|[\n][\n]*#define[ ][ ]*D10\(1M\(_B\)\?\|1S\|2_E\)_\(CPUSAVER_\(TIMER\|BUNDLE\|MIN_SIZE\)_DWORD\|RCVBUNDLE_UCODE\)[ ]\(\\[\n]\|[^\n]\)*\)*' drivers/net/e100.c
blobna '\([/][*]\([^/]\|[*][/]*\)*[*][/][\n]*[ ][ ]\)\(ucode\[opts->\(timer\|bundle\|min_size\)_dword\][ ].=[ ][^;]*[;][\n][\n]*[ ][ ]\)*[^}]*UCODE_SIZE[^}]*cb_ucode[^}]*return[;][\n][ ][}]' drivers/net/e100.c
blob 'static[ ]unsigned[ ]char[ ]__devinitdata[ ]lanai4_\(code\|data\)\[[0-9]*\][ ]=[ ][{][^;]*[}][;]' drivers/net/myri_code.h
blob '#include[ ]["]myri_code\.h["]' drivers/net/myri_sbus.c
blobna '\([/][*]\([^/]\|[^*/][/]*\)*[*][/][\n ]*\)\?for[ ][(][^\n]*sizeof[(]lanai4_\(code\|data\)[^\n]*[)][\n][^\n]*sbus_writeb[^;]*lanai4_\(code\|data\)[^;]*lanai4_code_off[^;]*[;]\([\n ]*\([/][*]\([^/]\|[^*/][/]*\)*[*][/][\n ]*\)\?for[ ][(][^\n]*sizeof[(]lanai4_\(code\|data\)[^\n]*[)][\n][^\n]*sbus_writeb[^;]*lanai4_\(code\|data\)[^;]*lanai4_\(code\|data\)_off[^;]*[;]\)*' drivers/net/myri_sbus.c
blob 'static[ ]u32[ ]s_firmLoad\[\][ ]=[ ][{][^;]*[}][;]' drivers/net/tehuti_fw.h
blob 'bdx_tx_push_desc_safe[^;]*s_firmLoad[^;]*[;]' drivers/net/tehuti.c
blob 'for[ ][(][^\n]*ARRAY_SIZE[(]s_firmLoad[)][^\n]*[)][\n ]*s_firmLoad[^;]*=[^;]*s_firmLoad[^;]*[;]' drivers/net/tehuti.c
blob '[ ][*][ ]Firmware[ ]is:[\n][ ][*][ ]Derived[ ]from[ ]proprietary[^/]*notice[ ]is[ ]accompanying[ ]it\.[\n][ ][*][/]' drivers/net/tg3.c
blob 'Derived[ ]from[ ]proprietary[ ]unpublished[ ]source[ ]code' drivers/net/tg3.c
blob '\(static[ ]const[ ]\)\?u32[ ]tg3\(Tso5\?\)\?Fw\(Text\|Rodata\|Data\)\[[^{]*\][ ]=[ ][{][^}]*[}][;]\([\n][\n]*\(static[ ]const[ ]u32[ ]tg3\(Tso5\?\)\?Fw\(Text\|Rodata\|Data\)\[[^{]*\][ ]=[ ][{][^}]*[}][;]\|#if[ ]0\([ ][/][*]\([^/]\|[^*/][/]*\)*[*][/]\)\?[\n]\(static[ ]const[ ]\)\?u32[ ]tg3\(Tso5\?\)\?Fw\(Text\|Rodata\|Data\)\[[^{]*\][ ]=[ ][{][^}]*[}][;][\n]#endif\)\)*' drivers/net/tg3.c
blob 'static[ ]const[ ]u8[ ]typhoon_firmware_image\[\][ ]=[ ][{][^}]*[}][;]' drivers/net/typhoon-firmware.h
blobna 'licensed[^\n]*strictly[ ]for[ ]use[^\n]*[\n]*[^\n]*COPS[ ]LocalTalk' 'drivers/net/appletalk/cops_\(ff\|lt\)drv\.h'
blob 'static[ ]const[ ]unsigned[ ]char[ ]ffdrv_code\[\][ ]=[ ][{][^}]*[}][;]' drivers/net/appletalk/cops_ffdrv.h
blob 'static[ ]const[ ]unsgined[ ]char[ ]ltdrv_code\[\][ ]=[ ][{][^}]*[}][;]' drivers/net/appletalk/cops_ltdrv.h
blob '#include[ ]["]cops_\(lt\|ff\)drv\.h["][ ]*\([/][*]\([^/]\|[^*/][/]*\)*Firmware\([^/]\|[^*/][/]*\)*[*][/]\)\?\([\n][\n]*#include[ ]["]cops_\(lt\|ff\)drv\.h["][ ]*\([/][*]\([^/]\|[^*/][/]*\)*Firmware\([^/]\|[^*/][/]*\)*[*][/]\)\?\)*' drivers/net/appletalk/cops.c
blob 'static[ ]unsigned[ ]char[ ]bits_1200\[\][ ]*=[ ][{][^}]*[}][;]' drivers/net/hamradio/yam1200.h
blob 'static[ ]unsigned[ ]char[ ]bits_9600\[\][ ]*=[ ][{][^}]*[}][;]' drivers/net/hamradio/yam9600.h
blob '#include[ ]["]yam\(96\|12\)00\.h["]\([\n][\n]*#include[ ]["]yam\(96\|12\)00\.h["]\)*' drivers/net/hamradio/yam.c
blobna 'static[ ]const[ ]u_char[ ]__Xilinx7OD\[\][ ]=[ ][{][^}]*[}][;]' drivers/net/pcmcia/ositech.h
blob '#include[ ]["]ositech\.h["]' drivers/net/pcmcia/smc91c92_cs.c
blobna '\([/][*][ ]Download[ ]the[ ]Seven[ ]of[ ]Diamonds[ ]firmware[^/]*[*][/][\n ]*\)\?for[ ]*[(][^\n]*__Xilinx7OD[^{}]*[{][\n][ ]*outb[ ]*[(]__Xilinx7OD[^}]*[}]' drivers/net/pcmcia/smc91c92_cs.c
blob 'static[ ]const[ ]u8[ ]microcode\[\][ ]=[ ][{][^}]*[}][ ]*[;]' drivers/net/tokenring/3c359_microcode.h
blob '#include[ ]["]3c359_microcode\.h["]' drivers/net/tokenring/3c359.c
blobna 'start[ ]=[ ][(]0xFFFF[ ]-[ ][(]mc_size[)][^;]*[;][\n ]*[/][*]\([^/]\|[^*/][/]*\)*[*][/][\n ]*printk[(]KERN_INFO[ ]["]3C359:[ ]Uploading[ ]Microcode:[ ]["][)][;][\n ]*for[ ][(][^{]*\(mc_size[^{]*[)][ ][{][^}]*writeb[(]microcode\[\|[)][ ][{][^}]*writeb[(]microcode\[mc_size\)[^}]*[}]\([\n][ ]*printk[^\n]*[;][\n ]*for[ ][(][^{]*\(mc_size[^{]*[)][ ][{][^}]*writeb[(]microcode\[\|[)][ ][{][^}]*writeb[(]microcode\[mc_size\)[^}]*[}]\)*' drivers/net/tokenring/3c359.c
blobname 'tr_smctr\.bin' drivers/net/tokenring/smctr.c
blobname 'kaweth[/]\(new\|trigger\)_code\(_fix\)\?\.bin' drivers/net/usb/kaweth.c
blobname '\(agere\|prism\)_\(sta\|ap\)_fw\.bin' 'drivers/net/wireless/\(orinico/\)\?\(orinoco\|fw\)\.c'
blobname 'symbol_sp24t_\(prim\|sec\)_fw' 'drivers/net/wireless/\(\(orinico/\)\?orinoco\.c\|spectrum_cs\.c\)'
blob 'unsigned[ ]short[ ]sbus_risc_code01\[\][ ]__devinitdata[ ]=[ ][{][^}]*[}][;]' drivers/scsi/qlogicpti_asm.c
blob '#include[ ]["]qlogicpti_asm\.c["]' drivers/scsi/qlogicpti.c
blob '\([/][*][ ]Microcode\([^/]\|[^*/][/]*\)*[*][/][\n]*\)\?static[ ]\(u\(nsigned[ ]\)\?char\|unsigned[ ]short\|ADV_DCNT\)[ ]_\(asc_mcode\|adv_asc3\(550\|8C\(08\|16\)00\)\)_\(buf\[\][ ]=[ ][{][^}]*[}]\|size[ ]=[ ]sizeof[^;]*\|chksum[ ]=[ ]0x[^;]*\)[;]\([ ]*[/][*]\([^/]\|[^*/][/]*\)*[*][/]\)\?\([\n][\n]*\([/][*][ ]Microcode\([^/]\|[^*/][/]*\)*[*][/][\n]*\)\?static[ ]\(u\(nsigned[ ]\)\?char\|unsigned[ ]short\|ADV_DCNT\)[ ]_\(asc_mcode\|adv_asc3\(550\|8C\(08\|16\)00\)\)_\(buf\[\][ ]=[ ][{][^}]*[}]\|size[ ]=[ ]sizeof[^;]*\|chksum[ ]=[ ]0x[^;]*\)[;]\([ ]*[/][*]\([^/]\|[^*/][/]*\)*[*][/]\)\?\)*' drivers/scsi/advansys.c
blob '\(#ifdef[ ]UNIQUE_FW_NAME[\n]\)\?static[ ]unsigned[ ]short[ ]\(risc\|fw12\(80e\|160\)i\)_code01\[\][ ]=[ ][{]\([\n]#else[\n]static[ ]unsigned[ ]short[ ]risc_code01\[\][ ]=[ ][{][\n]#endif[\n]\)\?[^}]*[}][;]\([\n][\n]*\(#ifdef[ ]UNIQUE_FW_NAME[\n]\)\?static[ ]unsigned[ ]short[ ]\(risc_code\|fw12\(80e\|160\)i\)_length01[ ]=[ ][^;]*[;]\([\n]#else[\n]static[ ]unsigned[ ]short[ ]risc_code_length01[ ]=[ ][^;]*[;][\n]#endif\)\?\)\?' 'drivers/scsi/ql1\(04\|2\(8\|16\)\)0_fw\.h'
blobname 'emi26[/]\(bitstream\|firmware\|loader\)\.fw' drivers/usb/misc/emi26.c
blobname 'emi62[/]\(bitstream\|midi\|spdif\|loader\)\.fw' drivers/usb/misc/emi62.c
blobname 'keyspan[/]\(mpr\|usa\(18x\|19\(q[iw]\|w\)\?\|28\(x\(a\|b\)\?\)\?\|49w\(lc\)\?\)\)\.fw' drivers/usb/serial/keyspan.c
accept '[ ][ ]fw_name[ ]=[ ]["]keyspan_pda[/]\(keyspan_pda\|xircom_pgs\)\.fw["][;]' drivers/usb/serial/keyspan_pda.c
blobna 'fw_name[ ]=[ ]\([^}]\|[^\n}][}]*\)*\([/][*]KEYSPAN_PDA[*][/]\)\?request_ihex_firmware' drivers/usb/serial/keyspan_pda.c
accept '[ ]if[ ][(][/][*]KEYSPAN_PDA[*][/]request_ihex_firmware' drivers/usb/serial/keyspan_pda.c
blobname 'edgeport[/]\(boot\|down\)2\?\.fw' drivers/usb/serial/io_edgeport.c
blobname 'edgeport[/]down3\.bin' drivers/usb/serial/io_ti.c
blobname 'ti_\(usb-\)\?\(%d\|3410\|5052\)\.\(fw\|bin\)' drivers/usb/serial/ti_usb_3410_5052.c
blobname 'whiteheat\(_loader\(_debug\)\?\)\?\.fw' drivers/usb/serial/whiteheat.c
blob 'static[ ]struct[ ]BA1struct[ ]BA1Struct[ ]=[ ][{][^;]*[}][;]' sound/pci/cs46xx/cs46xx_image.h
blob 'static[ ]u32[ ]cwc\(4630\|async\|snoop\)_\(code\|parameter\)\[\][ ]=[ ][{][^;]*[}][;]' 'sound/pci/cs46xx/imgs/cwc\(4630\|async\|snoop\)\.h'
# cwcbinhack appears to have been created by hand.
# cwcdma has sources (not verified) in cwcdma.asp.
accept 'static[ ]u32[ ]cwc\(binhack\|dma\)_code\[\][ ]=[ ][{][^;]*[}][;]' 'sound/pci/cs46xx/imgs/cwc\(binhack\|dma\)\.h'
blob '#include[ ]["]\(cs46xx_image\|imgs[/]cwc\(4630\|async\|snoop\)\)\.h["]\([\n][\n]*#include[ ]["]\(cs46xx_image\|imgs[/]cwc\(4630\|async\|snoop\)\)\.h["]\)*' sound/pci/cs46xx/cs46xx_lib.c
blobname 'korg[/]k1212\.dsp' sound/pci/korg1212/korg1212.c
blobname 'ess[/]maestro3_assp_\(kernel\|minisrc\)\.fw' sound/pci/maestro3.c
blobname 'yamaha[/]ds1e\?_\(ctrl\|dsp\)\.fw' sound/pci/ymfpci/ymfpci_main.c
blobname 'sb16[/]\(\(a\|mu\)law_main\|ima_adpcm_\(init\|capture\|playback\)\)\.csp' sound/isa/sb/sb16_dsp.c
blob 'static[ ]const[ ]struct[ ][{][^}]*[}][ ]yss225_registers\[\][ ]__devinitdata[ ]=[ ][{][^;]*[}][;]' sound/isa/wavefront/yss225.c
blob 'yamaha[/]yss225_registers\.bin' sound/isa/wavefront/wavefront_fx.c
blobna 'firmware[ ]=[ ][&]yss225_registers_firmware[;]' sound/isa/wavefront/wavefront_fx.c
blob 'static[ ]const[ ]struct[ ]firmware[ ]yss225_registers_firmware[ ]=[ ][{][^;]*[}][;]' sound/isa/wavefront/wavefront_fx.c
blob 'ospath[ ]*-[ ]Pathname[^\n]ICS2115.*wavefront\.os\([^\n]\|[^.][\n]\)*' Documentation/sound/alsa/ALSA-Configuration.txt
blobname 'wavefront\.os' sound/isa/wavefront/wavefront_synth.c
blobna 'and[\n]require[ ]the[ ]use[ ]of[^\n]*propr\?ietary[^:]*' Documentation/arm/IXP4xx
blob 'If[ ]you[ ]need[ ]to[ ]use[ ]any[ ]of[ ]the[ ]above[^\n]*download[^:]*:[\n ]*http:[^\n]*ixp4[^\n]*' Documentation/arm/IXP4xx
blobname 'xc\(%d\|[0-9]*\)\.bin' arch/arm/mach-netx/include/mach/xc.h
accept 'int[ ]xc_request_firmware[(]struct[ ]xc[ ]*[*][ ]*x[)][;]' arch/arm/mach-netx/include/mach/xc.h
accept 'int[ ]xc_request_firmware[(]struct[ ]xc[ ]*[*][ ]*x[)][\n][{]' arch/arm/mach-netx/xc.c
accept '[ ][ ]dev_err[(]x->dev,[ ]["]request_firmware[ ]failed\\n["][)][;]' arch/arm/mach-netx/xc.c
accept 'EXPORT_SYMBOL[(]xc_request_firmware[)][;]' arch/arm/mach-netx/xc.c
accept '[ ][ ]if[ ][(]xc_request_firmware[(]priv->xc[)][)][ ][{]' drivers/net/netx-eth.c
blobname 'iop_fw_load_[sm]pu' arch/cris/arch-v32/drivers/iop_fw_load.c
accept 'int[ ]iop_fw_load_[sm]pu[(]' arch/cris/arch-v32/drivers/iop_fw_load.c
accept '[ ]retval[ ]=[ ]request_firmware[^;]*[&]iop_[sm]pu_device' arch/cris/arch-v32/drivers/iop_fw_load.c
accept 'EXPORT_SYMBOL[(]iop_fw_load_[sm]pu[)][;]' arch/cris/arch-v32/drivers/iop_fw_load.c
accept '[/][*][ ]fake[ ]device[ ]for[ ]request_firmware[ ][*][/]' arch/x86/kernel/microcode_core.c
blobname 'amd-ucode[/]microcode_amd\.bin' arch/x86/kernel/microcode_amd.c
blobname 'intel-ucode[/]\([0-9a-f][0-9a-f]\|%02x\)-\([0-9a-f][0-9a-f]\|%02x\)-\([0-9a-f][0-9a-f]\|%02x\)' 'arch/x86/kernel/microcode\(_intel\)\?\.c'
blobname 'BCM2033-\(MD\.hex\|FW\.bin\)' drivers/bluetooth/bcm203x.c
blobname 'bfubase\.frm' drivers/bluetooth/bfusb.c
blobname 'BT3CPCC\.bin' drivers/bluetooth/bt3c_cs.c
blobname 'cyzfirm\.bin' drivers/char/cyclades.c
accept 'MODULE_FIRMWARE[(]["]dsp56k[/]bootstrap\.bin["][)][;]' drivers/char/dsp56k.c
blobna 'const[ ]char[ ]fw_name\[\][ ]=[ ]["]dsp56k[/]bootstrap\.bin["][;]\([^}]\|[^\n}][}]*\)*request_firmware\([^}]\|[^\n}][}]*\)*[\n][ ]err[ ]=[ ]request_firmware[(][&]fw,[ ]fw_name,[ ]' drivers/char/dsp56k.c
accept '[ ]const[ ]char[ ]fw_name\[\][ ]=[ ]["]dsp56k[/]bootstrap\.bin["][;]\([^}]\|[^\n}][}]*\)*[\n][ ]err[ ]=[ ]request_firmware[(][&]fw,[ ]fw_name,[ ]' drivers/char/dsp56k.c
blobname 'isi\(6\(08\|\(08\|16\)em\)\|46\(08\|16\)\)\.bin' drivers/char/isicom.c
blobname 'c\(218t\|p204\|320t\)unx\.cod' drivers/char/moxa.c
accept '[ ][ ]printk[(]KERN_ERR[ ]["]MOXA:[ ]request_firmware[ ]failed' drivers/char/moxa.c
# This driver enables the user to update the non-Free BIOS, but it
# only issues a firmware request if specifically told to. It
# doesn't require any non-Free firwmare to function, and it
# doesn't actually recommend users to perform updates, so I'm
# leaving it in.
accept '[ ][ ][ ]req_firm_rc[ ]=[ ]request_firmware_nowait[(][^;]*,[ ]["]dell_rbu["],' drivers/firmware/dell_rbu.c
accept '[ ]*["]dell_rbu:%s[ ]request_firmware_nowait["]' drivers/firmware/dell_rbu.c
blobname 'xc3028-v27\.fw' drivers/media/common/tuners/tuner-xc2028.h
blobname 'xc3028L-v36\.fw' drivers/media/common/tuners/tuner-xc2028.h
blobname 'dvb-fe-xc5000-1\.1\.fw' drivers/media/common/tuners/xc5000.c
blobname '4210\(100[12]\|%4X\)\.sb' drivers/net/irda/irda-usb.c
blobna '[/][*][ \n*]*[ ]Known[ ]firmware\([^/]\|[^*/][/]*\)*\(STIR421x\|4210\(100[12]\|%4X\)\.sb\)\([^/]\|[^*/][/]*\)*[*][/]' drivers/net/irda/irda-usb.c
blobname 'myri10ge_\(rss_\)\?ethp\?_z8e\.dat' drivers/net/myri10ge.c
blobna 'If[ ]the[ ]driver[ ]can[ ]neither[ ]enable[ ]ECRC\([^/]\|[^*/][/]*\)*myri10ge_\(rss_\)\?ethp\?_z8e\.dat\([^/]\|[^*/][/]*\)*[*][/]' drivers/net/myri10ge.c
blobname 'spider_fw\.bin' drivers/net/spider_net.h
blobname 'tms380tr\.bin' drivers/net/tokenring/tms380tr.c
blobname 'atmel_at76c50\(2\([de]\|_3com\)\?\|4a\?\(_2958\)\?\|6\)\(\.bin\)\?' drivers/net/wireless/atmel.c
accept '[ ]*priv->firmware[ ]=[ ]\(NULL\|new_firmware\)[;]' drivers/net/wireless/atmel.c
blobname 'b43\(legacy\)\?\(%s\)\?[/]\(%s\|ucode\(5\|1[13]\)\|pcm5\|[abn]0g[01]initvals\(5\|1[13]\)\)\.fw' 'drivers/net/wireless/b43\(legacy\)\?/main.c'
blobna 'b43legacyerr[(][^;]*must[ ]go[ ]to[ ]http[^;]*b43#devicefirmware[^;]*[)][;]' drivers/net/wireless/b43legacy/main.c
blob '#define[ ]IPW2100_FW_\(\(\(MAJOR\|MINOR\)_VERSION\|\(MAJOR\|MINOR\)[(]x[)]\)\|VERSION\)\([^\n]*\\[\n]\)*[^\n]*\([\n][\n]*#define[ ]IPW2100_FW_\(\(\(MAJOR\|MINOR\)_VERSION\|\(MAJOR\|MINOR\)[(]x[)]\)\|VERSION\)\([^\n]*\\[\n]\)*[^\n]*\)*' 'drivers/net/wireless/\(ipw2x00/\)\?ipw2100\.c'
blobname 'ipw2100-\(["]\([^"\n]\|[\\][\n]\)*["]\([^"]\|[\\]["]\)*\)\+' 'drivers/net/wireless/\(ipw2x00/\)\?ipw2100\.c'
blobname '__stringify[(]IPW2100_FW_MINOR_VERSION[)]' 'drivers/net/wireless/\(ipw2x00/\)\?ipw2100\.c'
accept '[ ]*Portions[ ]of[ ]ipw2100_\(do_\)\?mod_firmware_load[, ]*\(ipw2100_\(do_\)\?mod_firmware_load[, and\n]*\)*' 'drivers/net/wireless/\(ipw2x00/\)\?ipw2100\.c'
accept '[ ]ipw2100_mod_firmware_load[(]fw[)][;]' 'drivers/net/wireless/\(ipw2x00/\)\?ipw2100\.c'
accept 'static[ ]int[ ]ipw2100_mod_firmware_load[(]' 'drivers/net/wireless/\(ipw2x00/\)\?ipw2100\.c'
blobna 'if[ ][(]IPW2100_FW_MAJOR[^{]*[{][^}]*[ ][}]' 'drivers/net/wireless/\(ipw2x00/\)\?ipw2100\.c'
blobname '["]["][ ]x[ ]["]\.fw["]' 'drivers/net/wireless/\(ipw2x00/\)\?ipw2100\.c'
accept '[/][*][ ]Call[ ]this[ ]function[ ]from[ ]process[ ]context\([^/]\|[^*/][/]*\)*request_firmware' 'drivers/net/wireless/\(ipw2x00/\)\?ipw2200.c'
blobname 'ipw2200-\(i\?bss\|sniffer\)\.fw' 'drivers/net/wireless/\(ipw2x00/\)\?ipw2200.c'
accept '[ ][ ]IPW_ERROR[(]["]%s[ ]request_firmware[ ]failed' 'drivers/net/wireless/\(ipw2x00/\)\?ipw2200.c'
blobname 'iwlwifi-\(3945\|4965\|[156]000\|6050\)["][ ]IWL\(3945\|4965\|[156]000\|6050\)_UCODE_API[ ]["]\.ucode' 'drivers/net/iwlwifi/iwl\(3945-base\|-\(3945\|4965\|[156]000\)\)\.[ch]'
blobname 'iwlwifi-3945-' drivers/net/iwlwifi/iwl-3945.h
blobname '#api[ ]["]\.ucode["]' 'drivers/net/iwlwifi/iwl-\(3945.h\|\(4965\|[156]000\)\.c\)'
accept '#define\([ ]_\?IWL3945_MODULE_FIRMWARE[(]api[)]\)\+' drivers/net/iwlwifi/iwl-3945.h
accept '[ ][ ][*][ ]request_firmware[(][)][ ]is[ ]synchronous' 'drivers/net/iwlwifi/iwl\(3945-base\|-agn\)\.c'
blobname 'iwlwifi-4965-' drivers/net/iwlwifi/iwl-4965.c
blobname 'iwlwifi-5\(00\|15\)0-' drivers/net/iwlwifi/iwl-5000.c
blobname '%s%[du]%s["],[ ]name_pre,[ ]index,[ ]["]\.ucode' 'drivers/net/iwlwifi/iwl\(3945-base\|-agn\).c'
blobname 'libertas_cs\(_helper\)\?\.fw' drivers/net/wireless/libertas/if_cs.c
blob 'sd\(8385\|868[68]\)_helper\.bin["],[\n][ ][ ]\.firmware[ ]=[ ]["]sd\(8385\|868[68]\)\.bin' drivers/net/wireless/libertas/if_sdio.c
blobname 'sd\(8385\|868[68]\)\(_helper\)\?\.bin' drivers/net/wireless/libertas/if_sdio.c
accept '[ ]*card->firmware[ ]=[ ]\(if_sdio\|lbs_fw\)' drivers/net/wireless/libertas/if_sdio.c
blobname 'usb8388\(-5\.126\.0\.p5\)\?\.bin' drivers/net/wireless/libertas/if_usb.c
blob '[/][*]\([^/]\|[^*/][/]*\)*usb8388\(-5\.126\.0\.p5\)\?\.bin\([^/]\|[^*/][/]*\)*[*][/]' drivers/net/wireless/libertas/if_usb.c
accept '[ ][ ]lbs_pr_err[(]["]request_firmware\([(][)]\)\?[ ]failed' 'drivers/net/wireless/if_\(spi\|usb\)\.c'
blobna 'o\.[ ]Copy[ ]the[ ]firmware[ ]image[^\n]*usb8388\([^\n]\|[\n][ ]*[^ \n]\)*' drivers/net/wireless/libertas/README
blobna '\[fw_name=usb8388[^]]*\]' drivers/net/wireless/libertas/README
blobname 'usb8388\.bin' drivers/base/Kconfig
accept '[ ][ ][ ]So,[ ]for[ ]example,[ ]you[ ]might[ ]set[ ]CONFIG_EXTRA_FIRMWARE=["]whatever\.bin["]' drivers/base/Kconfig
accept '[ ][ ][ ]kernel\.[ ]Then[ ]any[ ]request_firmware[(]\(["]whatever\.bin["]\)[)]' drivers/base/Kconfig
blobname 'lbtf_usb\.bin' drivers/net/wireless/libertas_tf/if_usb.c
blobname 'isl38\(86\|87\|90\)\(usb\(_bare\)\?\)\?' 'drivers/net/wireless/p54/p54\(pci\.c\|usb\.[ch]\)'
blob '[/][*][ ]for[ ]isl3886[ ]register[ ]definitions\([^/]\|[^*/][/]*\)*[*][/]' drivers/net/wireless/p54/p54usb.h
blobna 'If[ ]you[ ]enable[ ]this\([^\n]\|[\n][ ]*[^ \n]\)*isl3890\([^\n]\|[\n][ ]*[^ \n]\)*' drivers/net/wireless/Kconfig
blobname 'isl38\(77\|86\|90\)' drivers/net/wireless/prism54/islpci_dev.c
blobname 'rt2[56]61s\?\.bin' drivers/net/wireless/rt2x00/rt61pci.h
blobname 'rt73\.bin' drivers/net/wireless/rt2x00/rt73usb.h
blobname 'zd1201\(-ap\)\?\.fw' drivers/net/wireless/zd1201.c
blobname 'zd1211[/]zd1211b\?_\(u\([rb]\|phr\)\?\)\?' drivers/net/wireless/zd1211/zd_usb.c
# ??? gotta introduce some means to match false-positives
# including post context containing blobs, so that the macro name
# is not flagged or deblobbed, but the blob name is.
# blobna 'PCMCIA_\([PM]FC_\)\?DEVICE_CIS_\(MANF_CARD\|PROD_ID[1-4]*\)'
# accept '[ ] PCMCIA_\([PM]FC_\)\?DEVICE_CIS_\(MANF_CARD\|PROD_ID[1-4]*\)[(][^)]*, ["][/][*][(]DEBLOBBED[)][*][/]["][)]'
# accept '#define PCMCIA_\([PM]FC_\)\?DEVICE_CIS_\(MANF_CARD\|PROD_ID[1-4]*\)[(]' include/pcmcia/device_id.h
blobname '\(cis[/]\)\?3CCFEM556\.cis' drivers/net/pcmcia/3c574_cs.c
blobname '\(cis[/]\)\?3CXEM556\.cis' drivers/net/pcmcia/3c589_cs.c
blobname '\(cis[/]\)\?\(PCMLM28\|DP83903\|LA-PCM\|PE520\|NE2K\|PE-200\|tamarack\)\.cis' drivers/net/pcmcia/pcnet_cs.c
blobname '\(cis[/]\)\?\(PCMLM28\|DP83903\|3C\(CF\|X\)EM556\|SW_\([78]xx\|555\)_SER\|MT5634ZLX\|COMpad[24]\|RS-COM-2P\|GLOBETROTTER\)\.cis' drivers/serial/serial_cs.c
# This enables but does not encourage firmware updates.
accept '[ ]err[ ]=[ ]request_firmware[(][&]asd_ha->bios_image,[\n ]*filename_ptr,[\n ]*[&]asd_ha->pcidev->dev[)][;]' drivers/scsi/aic94xx/aic94xx_init.c
blobname 'aic94xx-seq\.fw' drivers/scsi/aic94xx/aic94xx_seq.h
# This enables but does not encourage firmware updates.
accept '[ ]if[(]request_firmware[(]&fw_entry,[ ]fname,[ ]&ioa_cfg->pdev->dev[)][)]' drivers/scsi/ipr.c
accept '[ ]res[ ]=[ ]request_firmware[(]&fw,[ ]["]sas_addr["],[ ]&shost->shost_gendev[)][;]' drivers/scsi/libsas/sas_scsi_host.c
blobname 'ql\(2\([12345]00\|322\)\|8100\)_fw\.bin' drivers/scsi/qla2xxx/qla_os.c
blobna 'By[ ]default,[ ]firmware[ ]for[ ]the[ ]ISP[ ]parts\([^\n]\|[\n]*[ ]\)*ql2[12345]00_fw\.bin\([^\n]\|[\n]*[ ]\)*ftp:[/][/][^\n]*firmware[/]' drivers/scsi/qla2xxx/Kconfig
blobname 'icom_\(asc\|res_dce\|call_setup\)\.bin' drivers/serial/icom.c
blobname 'fsl_qe_ucode_uart_\(%u\|0-9]*\)_\(%u\|[0-9]*\)\(%u\|[0-9]*\)\.bin' drivers/serial/ucc_uart.c
blobname 'atmel_at76c50\(3-\(i386[13]\|rfmd\(-acc\)\?\)\|5\(a\(mx\)\?\)\?-rfmd\(2958\)\?\)\.bin' 'drivers/\(\(staging\|net/wireless\)/at76_usb/at76_usb\.c\|at76c50x-usb\.c\)'
accept 'static[ ]struct[ ]go7007_usb_board[ ]board_\(matrix_\(ii\|reload\|revolution\)\|star_trek\|px_tv402u\|xmen\|lifeview_lr192\|endura\|adlink_mpg24\|sensoray_2250\)[ ]=[ ][{][\n]\([ ]\.flags[ ]*=[ ][^",]*,[\n]*\)*[ ]\.main_info[ ]*=[ ][{][\n][ ][ ]\.firmware[ ]*=[ ]' drivers/staging/go7007/go7007-usb.c
accept 'static[ ]struct[ ]go7007_board_info[ ]board_voyager[ ]=[ ][{][\n][ ]\.firmware[ ]*=[ ]' drivers/staging/go7007/saa7134-go7007.c
blobname 'go7007\(fw\|tv\)\.bin' 'drivers/staging/go7007/\(go7007-\(driver\|usb\)\|saa7134-go7007\)\.c'
blobname 'cxacru-\(%s\|fw\|bp\|cf\)\.bin' drivers/usb/atm/cxacru.c
blobname 'speedtch-\(%d\|[0-9]*\)\.bin\(\.\(%x\|\(0x\)\?[0-9a-fA-F]*\)\(\.\(%02x\|[0-9a-fA-F][0-9a-fA-F]\)\)\?\)\?' drivers/usb/atm/speedtch.c
blobname 'ueagle-atm[/]' drivers/usb/atm/ueagle-atm.c
blobname '\(adi930\|eagle\(I*\|IV\)\)\.fw' drivers/usb/atm/ueagle-atm.c
blobname 'DSP[49e][ip]\.bin' drivers/usb/atm/ueagle-atm.c
blobname '930-fpga\.bin' drivers/usb/atm/ueagle-atm.c
blobname 'CMV[x9ae][yip]\.bin\(\.v2\)\?' drivers/usb/atm/ueagle-atm.c
blobname 'isight\.fw' drivers/usb/misc/isight_firwmare.c
blobname '\(i1480-\(pre-phy\|usb\|phy\)\|ptc\)-0\.0\.bin' drivers/uwb/i1480/dfu/usb.c
accept '[ ]retval[ ]=[ ]request_firmware[(][&]fw_entry,[ ]["]metronome.wbf["],[ ][&]dev->dev[)][;]' drivers/video/metronomefb.c
blobname '\(vx[/]\)\?\(bx_1_v\(xp\|p4\)\.b56\|x1_\(1_v\(x[2p]\|p4\)\|2_v22\)\.xlx\|bd56\(002\|3v2\|3s3\)\.boot\|l_1_v\(x[2p]\|p4\|22\)\.d56\)' sound/drivers/vx/vx_hwdep.c
blobname '\(ea[/]\)\?darla20_dsp\.fw' sound/pci/echoaudio/darla20.c
blobname '\(ea[/]\)\?darla24_dsp\.fw' sound/pci/echoaudio/darla24.c
blobname '\(ea[/]\)\?\(\(loader\|echo3g\)_dsp\|3g_asic\)\.fw' sound/pci/echoaudio/echo3g.c
blobname '\(ea[/]\)\?gina20_dsp\.fw' sound/pci/echoaudio/gina20.c
blobname '\(ea[/]\)\?\(\(loader\|gina24_3[06]1\)_dsp\|gina24_3[06]1_asic\)\.fw' sound/pci/echoaudio/gina24.c
blobname '\(ea[/]\)\?\(loader\|indigo\)_dsp\.fw' sound/pci/echoaudio/indigo.c
blobname '\(ea[/]\)\?\(loader\|indigo_dj\)_dsp\.fw' sound/pci/echoaudio/indigodj.c
blobname '\(ea[/]\)\?\(loader\|indigo_io\)_dsp\.fw' sound/pci/echoaudio/indigoio.c
blobname '\(ea[/]\)\?layla20_\(dsp\|asic\)\.fw' sound/pci/echoaudio/layla20.c
blobname '\(ea[/]\)\?\(\(loader\|layla24\)_dsp\|layla24_\(1\|2[AS]\)_asic\)\.fw' sound/pci/echoaudio/layla24.c
blobname '\(ea[/]\)\?\(loader\|mia\)_dsp\.fw' sound/pci/echoaudio/mia.c
blobname '\(ea[/]\)\?\(\(loader\|mona_3[06]1\)_dsp\|mona_3[06]1\(_1\)\?_asic_\(48\|96\)\|mona_2_asic\)\.fw' sound/pci/echoaudio/gina24.mona
blobname 'ea[/]%s' sound/pci/echoaudio/echoaudio.c
blobname 'emu[/]\(hana\|\(audio\|micro\)_dock\|emu\(0404\|1010\(b\|_notebook\)\)\)\.fw' sound/pci/emu10k1/emu10k1_main.c
blobname '\(mixart[/]\)\?miXart8\(AES\)\?\.\(xlx\|elf\)' sound/pci/mixart/mixart_hwdep.c
blobname '\(pcxhr[/]\)\?\(x[ic]_1_882\|[ebd]321_512\|xlxint\|\(xlxc\|dsp[ebd]\)\(882\|1\?222\|924\)\(e\|hr\)\?\)\(\.dat\|\.[ebd]56\)' sound/pci/pcxhr/pcxhr_hwdep.c
blobna 'You[ ]need[ ]to[ ]install[\n]*riptide\.hex[\n]\.[\n]' Documentation/sound/alsa/ALSA-Configuration.txt
blobname 'riptide\.hex' sound/pci/riptide/riptide.c
defsnc 'static[ ]union[ ]firmware_version[ ]firmware_versions\[\][ ]=' sound/pci/riptide/riptide.c
blob 'chip->firmware[ ]=[ ]firmware;' sound/pci/riptide/riptide.c
blobname '\(multi\|digi\)face_firmware\(_rev11\)\?\.bin' sound/pci/rme9652/hdsp.c
blobname 'aica_firmware\.bin' sound/sh/aica.c
accept '[ ][*]\([^/]\|[^*/][/]*\)*Caution:[ ]This[ ]API\([^/]\|[^*/][/]*\)*request_firmware.' sound/sound_firmware.c
accept 'static[ ]int[ ]do_mod_firmware_load[(]' sound/sound_firmware.c
accept 'int[ ]mod_firmware_load[(]' sound/sound_firmware.c
accept '[ ]r[ ]=[ ]do_mod_firmware_load[(]' sound/sound_firmware.c
accept 'EXPORT_SYMBOL[(]mod_firmware_load[)][;]' sound/sound_firmware.c
accept 'extern[ ]int[ ]mod_firmware_load[(]' sound/oss/sound_firmware.h
accept '[ ]INITCODESIZE[ ]=[ ]mod_firmware_load[(]INITCODEFILE,[ ][&]INITCODE[)][;]' sound/oss/msnd_pinnacle.c
accept '[ ]PERMCODESIZE[ ]=[ ]mod_firmware_load[(]PERMCODEFILE,[ ][&]PERMCODE[)][;]' sound/oss/msnd_pinnacle.c
blobname '\([/]etc[/]sound[/]\|turtlebeach[/]\)\?pndsp\(ini\|erm\)\.bin' '\(sound/oss/msnd_pinnacle.h\|Documentation/sound/alsa/ALSA-Configuration.txt\)'
blobname '\([/]etc[/]sound[/]\|turtlebeach[/]\)\?msnd\(init\|perm\)\.bin' '\(sound/oss/msnd_classic.h\|Documentation/sound/alsa/ALSA-Configuration.txt\)'
blobna '\(Important[ ]Notes[ ]-[ ]Read[ ]Before[ ]Using\|Obtaining[ ]and[ ]Creating[ ]Firmware[ ]Files\)[\n]#[ ][ ]~*\([^\n]\|[\n]#[ ]*\([\n]#[ ]*\([\n]#[ ]*For[ ]the[^\n]*[\n]#[ ]*~*[\n]\)\?\)\?[^\n ]\)*\.' Documentation/sound/oss/MultiSound
accept '[ ]len[ ]=[ ]mod_firmware_load[(]fn,[ ][&]data[)][;][\n][ ]if[ ][^{]*[ ][{][\n][ ][ ]*printk[(]KERN_ERR[ ]["]sscape:' sound/oss/sscape.c
blobname '[/]sndscape[/]\(scope\.cod\|sndscape\.cox\)' sound/oss/sscape.c
accept '[ ][ ]trix_boot_len[ ]=[ ]mod_firmware_load[(]' sound/oss/trix.c
blobname '\([/]etc[/]sound[/]\)\?trxpro\.bin' sound/oss/trix.c
accept '[ ][ ]smw_ucodeLen[ ]=[ ]mod_firmware_load[(]' sound/oss/sb_common.c
blobname '\([/]etc[/]sound[/]\)\?midi0001\.bin' sound/oss/sb_common.c
blobname '\([/]etc[/]sound[/]\|turtlebeach[/]\)\?msnd\(init\|perm\)\.bin' sound/oss/Kconfig
blob 'When[ ]the[ ]module[ ]is[ ]loaded\([^\n]\|[\n][^\n]\)*[/]pss_synth\([^\n]\|[\n][^\n]\)*' Documentation/sound/oss/PSS
blob 'pss_firmware[ \n ]*This[ ]parameter\([^\n]\|[\n][^\n]\)*[/]pss_synth\([^\n]\|[\n][^\n]\)*' Documentation/sound/oss/PSS-updates
accept '[ ][ ]pss_synthLen[ ]=[ ]mod_firmware_load[(]pss_firmware,[ ][(]void[ ][*][)][ ][&]pss_synth[)][;]' sound/oss/pss.c
accept '[ ]*if[ ]\?[(]\(!\|fw_load[ ][&][&][ ]\)\?pss_synth' sound/oss/pss.c
accept '[ ]*if[ ][(]!pss_download_boot[(]devc,[ ]pss_synth,[ ]pss_synthLen,' sound/oss/pss.c
accept '[ ]*vfree[(]pss_synth[)][;]' sound/oss/pss.c
blob 'to[ ]allow[ ]the[ ]user[ ]\([^/"]\|[^*"][/]*\)*fir[em]ware[ ]file\([^/"]\|[^*"][/]*\)*["][^"]*["]' sound/oss/pss.c
blobname '\([/]etc[/]sound[/]\)\?pss_synth' sound/oss/pss.c
accept '[ ][$][(]obj[)][/]bin2hex[ ]pss_synth' sound/oss/Makefile
accept '[ ][ ]*echo[ ]'"'"'static[ ]\(unsigned[ ]char[ ][*][ ]*\|int[ ]\)pss_synth\(Len\)\?[ ]=[ ]\(NULL\|0\)[;]' sound/oss/Makefile
accept '[ ]\.request_firmware[ ]=[ ]NULL,' drivers/media/dvb/dvb-usb/m920x.c
accept '[ ]*["]request_firmware[ ]\(fatal[ ]error\|unable[ ]to[ ]locate\|:[ ]Failed[ ]to[ ]find\)' drivers/media/video/pvrusb2/pvrusb2-hdw.c
accept '[ ][*][ ]NOTE[ ]:[ ]the[ ]pointer[ ]to[ ]the[ ]firmware[ ]data[ ]given[ ]by[ ]request_firmware[(][)]' drivers/media/video/pvrusb2-hdw.c
accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]\(dw\(210[24]\|3101\)\|s630\)_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/dw2102.c
blobname 'dvb-usb-\(dw\(210[124]\|3101\)\|s630\)\.fw' drivers/media/dvb/dvb-usb/dw2102.c
accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]gp8psk_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/gp8psk.c
blobname 'dvb-usb-gp8psk-0[12]\.fw' drivers/media/dvb/dvb-usb/gp8psk.c
accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]opera1_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/nova-t-usb2.c
blobname 'dvb-usb-opera-\(fpga-\)\?-01\.fw' drivers/media/dvb/dvb-usb/opera1.c
blobname 'dvb-fe-af9013\.fw' drivers/media/dvb/frontends/af9013_priv.h
blobname 'dvb-fe-bcm3510-01\.fw' drivers/media/dvb/frontends/bcm3510.c
blobname 'dvb-fe-cx24116\.fw' drivers/media/dvb/frontends/cx24116.c
blobname 'dvb-fe-nxt2002\.fw' drivers/media/dvb/frontends/nxt200x.c
blob '[/][*][\n][ ][*][ ]This[ ]driver[ ]needs[ ]two[ ]external[ ]firmware[ ]files\([^/]\|[^*/][/]*\)*dvb-fe-or51132-\(vsb\|qam\)\.fw\([^/]\|[^*/][/]*\)*[*][/]' drivers/media/dvb/frontends/or51132.c
blobname 'dvb-fe-or51132-\(vsb\|qam\)\.fw' drivers/media/dvb/frontends/or51132.c
blobname 'dvb-fe-or51211\.fw' drivers/media/dvb/frontends/or51211.c
blobname 'dvb-fe-sp887x\.fw' drivers/media/dvb/frontends/sp887x.c
blobname 'dvb-fe-tda10048-1\.0\.fw' drivers/media/dvb/frontends/tda10048.c
blobname '\(\(dvb\|tdmb\|isdbt\)_nova\|cmmb_vega\)_12mhz\(_b0\)\?\.inp' drivers/media/dvb/siano/smscoreapi.c
blobname '\(dvb[th]\(_bda\)\?\|tdmb\)_stellar_usb\.inp' drivers/media/dvb/siano/smsusb.c
blobname 'dvb-ttusb-dec-\(2000t\|2540t\|3000s\)\.fw' drivers/media/dvb/ttusb-dec/ttusb_dec.c
blobname 'hcwamc\.rfb' drivers/media/video/bt8xx/bttv-cards.c
blobname 'v4l-cx23418-dig\.fw' drivers/media/video/cx18/cx18-av-firmware.c
blobname 'v4l-cx23418-[ac]pu\.fw' drivers/media/video/cx18/cx18-firwmare.c
blobname 'v4l-cx23885-enc\.fw' drivers/media/video/cx23885/cx23885-417.c
blobname 'v4l-\(cx23\(885\|1xx\)-avcore-01\|cx25840\)\.fw' drivers/media/video/cx25840/cx25840-firmware.c
blobname 'v4l-cx2341x-\(enc\|dec\)\.fw' include/media/cr2341x.h
blobname 'v4l-cx2341x-init\.mpg' drivers/media/video/ivtv/ivtv-firwmare.c
blobname 'v4l-pvrusb2-\(2[49]\|73\)xxx-01\.fw' drivers/media/video/pvrusb2/pvrusb2-devattr.c
blobname 'f2255usb\.bin' drivers/media/video/s2255drv.c
blobname 'drx397xD\.\(A2\|B1\)\.fw' drivers/media/dvb/frontends/drx397xD_fw.h
accept '#define[ ]DIB0700_DEFAULT_DEVICE_PROPERTIES[ ]\\[\n]\([ ]\.\(caps\|usb_ctrl\)[ ]*=[ ][^\n",]*,[ ]\\[\n]\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/dib0700_devices.c
blobname 'dvb-usb-dib0700-1\.[12]0\.fw' drivers/media/dvb/dvb-usb/dib0700_devices.c
accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]nova_t_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/nova-t-usb2.c
blobname 'dvb-usb-nova-t-usb2-02\.fw' drivers/media/dvb/dvb-usb/nova-t-usb2.c
accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]umt_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/umt-010.c
blobname 'dvb-usb-umt-010-02\.fw' drivers/media/dvb/dvb-usb/umt-010.c
accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]ttusb2_properties\(_s2400\)\?[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/ttusb2.c
blobname 'dvb-usb-\(pctv-400e\|tt-s2400\)-01\.fw' drivers/media/dvb/dvb-usb/ttusb2.c
accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]cxusb_bluebird_\(lgh064f\|dee1601\|lgz201\|dtt7579\|nano2_needsfirmware\)_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/cxusb.c
blobname 'dvb-usb-bluebird-0[12]\.fw' drivers/media/dvb/dvb-usb/cxusb.c
accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]\(dtt200u\|wt220u\(_\(fc\|zl0353\|miglia\)\)\?\)_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/dtt200u.c
blobname 'dvb-usb-\(dtt200u-01\|wt220u-\(02\|fc03\|\(zl0353\|miglia\)-01\)\)\.fw' drivers/media/dvb/dvb-usb/dtt200u.c
accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]vp7045_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/vp7045.c
blobname 'dvb-usb-vp7045-01\.fw' drivers/media/dvb/dvb-usb/vp7045.c
accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]\(dibusb\(1_1\(_an2235\)\?\|2_0b\)\|artec_t1_usb2\)_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/dibusb-mb.c
blobname 'dvb-usb-\(dibusb-\(5\.0\.0\.11\|an2235-01\|6\.0\.0\.8\)\|adstech-usb2-02\)\.fw' drivers/media/dvb/dvb-usb/dibusb-mb.c
accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]a800_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\)[ ]=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]=[ ]' drivers/media/dvb/dvb-usb/a800.c
blobname 'dvb-usb-avertv-a800-02\.fw' drivers/media/dvb/dvb-usb/a800.c
accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]af9005_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\)[ ]=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]=[ ]' drivers/media/dvb/dvb-usb/af9005.c
blobname 'af9005\.fw' drivers/media/dvb/dvb-usb/af9005.c
accept '[ ][ ].download_firmware[ ]=[ ]af9015_download_firmware,[\n][ ][ ]\.firmware[ ]=[ ]' drivers/media/dvb/dvb-usb/af9015.c
blobname 'dvb-usb-af9015\.fw' drivers/media/dvb/dvb-usb/af9015.c
accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]dibusb_mc_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/dibusb-mc.c
blobname 'dvb-usb-dibusb-6\.0\.0\.8\.fw' drivers/media/dvb/dvb-usb/dibusb-mc.c
accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]\(megasky\|digivox_mini_ii\|tvwalkertwin\|dposh\)_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/m920x.c
blobname 'dvb-usb-\(\(megasky\|digivox\)-02\|tvwalkert\|dposh-01\)\.fw' drivers/media/dvb/dvb-usb/m920x.c
accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]vp702x_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/vp702x.c
blobname 'dvb-usb-vp702x-02\.fw' drivers/media/dvb/dvb-usb/vp702x.c
accept 'static[ ]struct[ ]dvb_usb_device_properties[ ]digitv_properties[ ]=[ ][{][\n]\([ ]\.\(caps\|usb_ctrl\)[ ]*=[ ][^",]*,[\n]*\)*[ ]\.firmware[ ]*=[ ]' drivers/media/dvb/dvb-usb/digitv.c
blobname 'dvb-usb-digitv-02\.fw' drivers/media/dvb/dvb-usb/digitv.c
blob 'Driver:[ ]\(acenic\|ADAPTEC_STARFIRE\|cxgb3\|e100\|tigon3\|korg1212\|maestro3\|ymfpci\|smctr\|kaweth\|ttusb-budget\|keyspan\|emi26\|emi62\|t[iu]_usb_3410_5052\|whiteheat\|ip2\|CPiA2\|DABUSB\|USB_VICAM\|USB_SERIAL_EDGEPORT\(_TI\)\?\|SND_SB16_CSP\|CASSINI\|ambassador\|SCSI_\(ADVANSYS\|QLOGIC\(_1280\|PTI\)\)\|TEHUTI\|TYPHOON\|YAM\|3C359\|PCMCIA_\(PCNET\|SMC91C92\|3C5\(89\|74\)\)\|MYRI_SBUS\|BNX2\|bnx2x\|wavefront\|SERIAL_8250_CS\|mga\|r128\|radeon\)\([ ]--*\|:\)[ ]\([^\n]\|[\n]*[^\n\-]\)*\([\n][\n]--*[\n][\n]\?Driver:[ ]\(acenic\|ADAPTEC_STARFIRE\|cxgb3\|e100\|tigon3\|korg1212\|maestro3\|ymfpci\|smctr\|kaweth\|ttusb-budget\|keyspan\|emi26\|emi62\|t[iu]_usb_3410_5052\|whiteheat\|ip2\|CPiA2\|DABUSB\|USB_VICAM\|USB_SERIAL_EDGEPORT\(_TI\)\?\|SND_SB16_CSP\|CASSINI\|ambassador\|SCSI_\(ADVANSYS\|QLOGIC\(_1280\|PTI\)\)\|TEHUTI\|TYPHOON\|YAM\|3C359\|PCMCIA_\(PCNET\|SMC91C92\|3C5\(89\|74\)\)\|MYRI_SBUS\|BNX2\|bnx2x\|wavefront\|SERIAL_8250_CS\|mga\|r128\|radeon\)\([ ]--*\|:\)[ ]\([^\n]\|[\n]*[^\n\-]\)*\)*' firmware/WHENCE
blobname 'sms1xxx-\(stellar\|nova-[ab]\|hcw-55xxx\)-dvbt-0[12]\.fw' drivers/media/dvb/siano/sms-cards.c
accept '[ ][ ][ ][ ]mv[ ]["][$]ofile["][ ]["][$]ofile\.elf["]' arch/powerpc/boot/wrapper
accept '[ ][ ][ ][ ][$]objbin[/]mktree[ ]["][$]ofile\.elf["]' arch/powerpc/boot/wrapper
accept '[ ]rm[ ]-f[ ]["][$]ofile\.elf["]' arch/powerpc/boot/wrapper
accept '[ ][ ][ ][ ][$][{]CROSS[}]objcopy[ ]-O[ ]binary[ ]["][$]ofile["][ ]["][$]ofile\.bin["]' arch/powerpc/boot/wrapper
accept '[ ][ ][ ][ ]dd[ ]if=["][$]ofile\.bin["][ ]of=["][$]ofile\.bin["]' arch/powerpc/boot/wrapper
accept '[ ][ ][ ][ ]odir=["][$][(]dirname[ ]["][$]ofile\.bin["][)]["]' arch/powerpc/boot/wrapper
accept '[ ][ ][ ][ ]gzip[ ]--force[ ]-9[ ]--stdout[ ]["][$]ofile\.bin["][ ]>[ ]["][$]odir[/]otheros\.bld["]' arch/powerpc/boot/wrapper
accept '[ ]\.incbin[ ]["]arch[/]x86[/]kernel[/]acpi[/]realmode[/]wakeup\.bin["]' arch/x86/kernel/acpi/wakeup_rm.S
accept '[;]set[ ]executable[ ]["]2232\.bin["]' drivers/char/ser_a2232fw.ax
blobname 'di\(\(dn\|pr\)load\|diva\(pp\)\?\|hscx\|v110\|modem\|fax\|_etsi\|_\(1tr6\|belg\|franc\|atel\|ni\|5ess\|japan\|swed\)\|dspdld\)\.\(bin\|s[xyqm]\|p\)' drivers/isdn/hardware/eicon/cardtype.h
blobname 'dsp\(dload\|dqsig\|dvmdm\|dvfax\)\.bin' drivers/isdn/hardware/eicon/dsp_defs.h
blobname 'vicam[/]firmware\.fw' drivers/media/video/usbvideo/vicam.c
accept '#include[ ]["]ixp2400_[rt]x\.ucode["]' drivers/net/ixp2000/ixpdev.c
# New in 2.6.29
blobname 'acenic[/]tg[12]\.bin' drivers/net/acenic.c
blobname 'adaptec[/]starfire_[rt]x\.bin' drivers/net/starfire.c
blobname 'e100[/]d10\(1[ms]\|2e\)_ucode\.bin' drivers/net/e100.c
blobname 'tigon[/]tg3\(_tso5\?\)\?\.bin' drivers/net/tg3.c
blobname '\(ti_usb-v\(%04x\|[0-9a-f]*\)-p\(%04x\|[0-9a-f]*\)\|mts_\(cdma\|gsm\|edge\)\)\.\(bin\|fw\)' drivers/usb/serial/ti_usb_3410_5052.c
blobname 'iw\?2400m-fw-\(sdio\|usb\)-\(\(["][ ]I2400M_FW_VERSION[ ]["]\|[0-9.]*\)\.sbcf\|[^". \n]*\)' 'drivers/net/wimax/i2400m/\(sdio\|usb\)\.c'
blob '3\.[ ]Installing[ ]the[ ]firmware[^\n]*\([\n][\n]* [^\n]*\)*[\n]*[$][^\n]*i2400m-fw[^\n]*\([\n][\n]* [^\n]*\)*' Documentation/wimax/README.i2400m
blob '6\.1\.[ ]Driver[ ]complains[^\n]*i2400m-fw[^\n]*\([\n][\n]*\( \|i2400m_usb\)[^\n]*\)*' Documentation/wimax/README.i2400m
accept '[ ][ ]ranges[ ]=[ ]<'"$blobpat*"'>[;]' 'arch/powerpc/boot/dts/\(mpc8572ds\|p2020ds\)\.dts'
accept '\(div_table_\(clz\|inv\|ix\)\|zero_l\):\([\n][ ]\.\(byte[ ]-\?[0-9]*\|long[ ]0x[0-9A-F]*\)\)*' arch/sh/lib/udivsi3_i4i.S
defsnc 'const[ ]u32[ ]crypto_[fi][tl]_tab\[4\]\[256\][ ]=' crypto/aes_generic.c
accept '[ ][ ][ ]every[ ]driver[ ]which[ ]uses[ ]request_firmware[(][)][ ]and[ ]ships[ ]its' drivers/base/Kconfig
defsnc 'static[ ]const[ ]u32[ ]filter_table\[\][ ]=' drivers/gpu/drm/i915/intel_tv.c
defsnc 'static[ ]u8[ ]af9015_ir_table_\(avermedia\(_ks\)\?\|digittrade\|trekstor\)\[\][ ]=' drivers/media/dvb/dvb-usb/af9015.h
defsnc '[ ]static[ ]__u8[ ]lgdt3304_\(vsb8\|qam\(64\|256\)\)_data\[\][ ]=' drivers/media/dvb/frontends/lgdt3304.c
defsnc 'static[ ]u8[ ]\(init\|c\)_table\[\]=' drivers/media/dvb/frontends/s921_core.c
defsnc 'static[ ]\(const[ ]\)\?struct[ ]stb0899_tab[ ]stb0899_\(cn\|dvbs2\?rf\|quant\|est\)_tab\[\][ ]=' drivers/media/dvb/frontends/stb0899_drv.c
defsnc 'static[ ]const[ ]struct[ ]stb6100_lkup[ ]lkup\[\][ ]=' drivers/media/dvb/frontends/stb6100.c
initnc 'static[ ]const[ ]__u8[ ]ov\(534\|772x\)_reg_initdata\[\]\[2\][ ]=' drivers/media/video/gspca/ov534.c
defsc 'static[ ]const[ ]\(__\)\?u8[ ]\(mi\(0360\|13[12]0\)\|po\(1200\|3130\)\|hv7131r\|ov76[67]0\)_\(\(soc\)\?_\?[iI]nit\(Q\?V\|SX\)GA\(_\(JPG\|data\)\)\?\|rundata\)\[\]\[4\][ ]=' drivers/media/video/gspca/vc032x.c
defsnc 'static[ ]\(const[ ]\)\?u\(32\|_int32_t\)[ ]ar928[05]\(Common\|Modes\(_\(fast_clock\|backoff_[12]3db_rxgain\|\(original\|high_power\)_[tr]x_\?gain\)\)\?\)_928\(0_2\|5\(_1_2\)\?\)\[\]\[[236]\][ ]=' drivers/net/wireless/ath9k/initvals.h
defsnc 'static[ ]u32[ ]channel_tbl\[15\]\[9\][ ]=' drivers/staging/agnx/rf.c
defsnc 'static[ ]const[ ]u32[\n]gain_table\[\][ ]=' drivers/staging/agnx/rf.c
accept '<[frs]:[0-9]*x[0-9]*>[\n][01 \n]*' 'drivers/staging/asus_oled/\(linux\(_fr\?\)\?\|tux\(_r2\?\)\?\|zig\).txt'
defsnc 'static[ ]unsigned[ ]char[ ]\(aud\|vid\)_regs\[\][ ]=' drivers/staging/go7007/s2250-board.c
defsnc 'static[ ]u16[ ]vid_regs_fp\[\][ ]=' drivers/staging/go7007/s2250-board.c
blobname 's2250\(_loader\)\?\.fw' drivers/staging/go7007/s2250-loader.c
blobna 'me_xilinx_download' 'drivers/staging/meilhaus/.*'
accept 'int[ ]me_xilinx_download[(]' 'drivers/staging/meilhaus/mefirmware\.[ch]'
blobname 'me46[01]0\(_bosch\)\?\.bin' drivers/staging/meilhaus/me4600_device.c
accept '\([ ]if[ ][(]me4600_device->base\.info\.pci\.device_id[ ]==[ ]PCI_DEVICE_ID_MEILHAUS_ME4610[)][ ][{][ ][/][/]Jekyll[ ]<=>[ ]me4610\|#ifdef[ ]BOSCH\|#else[ ][/][/]~BOSCH\)[\n][ ][ ]err[ ]=[\n][ ][ ][ ][ ][ ][ ]me_xilinx_download[(]me4600_device' drivers/staging/meilhaus/me4600_device.c
blobname 'me6000\.bin' drivers/staging/meilhaus/me6000_device.c
accept '[ ][/][*][ ]Download[ ]the[ ]xilinx[ ]firmware[ ][*][/][\n][ ]err[ ]=[ ]me_xilinx_download[(]me6000_device' drivers/staging/meilhaus/me6000_device.c
defsnc '[ ][}][ ]grtpkts\[\][ ]=' drivers/staging/mimio/mimio.c
defsnc 'u16_t[ ]zgTkipSbox\(Lower\|Upper\)\[256\][ ]=' drivers/staging/otus/80211core/ctkip.c
accept '[ ]*[/][*][ ]*0\([ ]*[123]\)*[ ]*[*][/][\n][ ]*[/][*][ ]0[ ]1[ ]2[ ]3[ ]4[ ]5[ ]6[ ]7[ ]8[ ]9\([ ][0-9]\)*[ ][*][/]' drivers/staging/otus/80211core/ctxrx.c
defsnc 'u32_t[ ]crc32_tab\[\][ ]=' drivers/staging/otus/80211core/cwep.c
blob 'const[ ]u32_t[ ]zc\(DK\|P2\)\?Fw\(Buf\)\?Image\(SPI\)\?\(\[\][ ]*=[ ]*[{][^;]*[}]\|Size[ ]*=[ ]*[0-9]*\)[;]\([\n][\n]*const[ ]u32_t[ ]zc\(DK\|P2\)\?Fw\(Buf\)\?Image\(SPI\)\?\(\[\][ ]*=[ ]*[{][^;]*[}]\|Size[ ]*=[ ]*[0-9]*\)[;]\)*' 'drivers/staging/otus/hal/hp.*fwu.*\.c'
blob 'extern[ ]const[ ]u32_t[ ]zc\(DK\|P2\)\?Fw\(Buf\)\?Image\(SPI\)\?\(\[\]\|Size\)[;]\([\n]extern[ ]const[ ]u32_t[ ]zc\(DK\|P2\)\?Fw\(Buf\)\?Image\(SPI\)\?\(\[\]\|Size\)[;]\)*' drivers/staging/otus/hal/hpmain.c
defsnc '[ ][ ][ ][ ]u32_t[ ]eepromBoardData\[15\]\[6][ ]=' drivers/staging/otus/hal/hpmain.c
defsnc 'static[ ]const[ ]u32_t[ ]channel_frequency_11A\[\][ ]=' drivers/staging/otus/ioctl.c
defsnc 'static[ ]const[ ]u32_t[ ]\(ar5416Modes\|otusBank\)\[\]\[[36]\][ ]=' drivers/staging/otus/hal/otus.ini
defsnc '[ ][ ][ ][ ]static[ ]UINT32[ ]MD5Table\[64\][ ]=' 'drivers/staging/rt28[67]0/common/md5\.c'
defsnc 'static[ ]uint32[ ][FR]Sb\[256\][ ]=' 'drivers/staging/rt28[67]0/common/md5\.c'
defsnc 'UCHAR[ ]RateSwitchTable\(11B\?G\?\(N[123]S\(ForABand\)\?\)\?\)\?\[\][ ]=' 'drivers/staging/rt28[67]0/common/mlme\.c'
defsnc 'UCHAR[ ]*ZeroSsid\[32\][ ]=' 'drivers/staging/rt28[67]0/common/mlme\.c'
defsnc 'RTMP_RF_REGS[ ]RF2850RegTable\[\][ ]=' 'drivers/staging/rt28[67]0/common/mlme\.c'
defsnc 'FREQUENCY_ITEM[ ]FreqItems3020\[\][ ]=' 'drivers/staging/rt28[67]0/common/mlme\.c'
blob 'UCHAR[ ]FirmwareImage[ ]\[\][ ]=[ ][{][^;]*[}][ ][;]' 'drivers/staging/rt\(28[67]\|30[79]\)0/common/firmware\.h'
defsnc 'ULONG[ ][ ]*BIT32\[\][ ]=' 'drivers/staging/rt28[67]0/common/rtmp_init\.c'
defsnc 'const[ ]unsigned[ ]short[ ]ccitt_16Table\[\][ ]=' 'drivers/staging/rt28[67]0/common/rtmp_init\.c'
blobna '\(pFirmwareImage[ ]=[ ]\(FirmwareImage\|[(]PUCHAR[)][&]FirmwareImage\[FIRMWAREIMAGE\(V[12]\)\?_LENGTH\]\)\|File[lL]ength[ ]=[ ]\(sizeof[(]FirmwareImage[)]\|FIRMWAREIMAGE\(V[12]\)\?_LENGTH\)\)[;]\([\n ]*\(pFirmwareImage[ ]=[ ]\(FirmwareImage\|[(]PUCHAR[)][&]FirmwareImage\[FIRMWAREIMAGE\(V[12]\)\?_LENGTH\]\)\|File[lL]ength[ ]=[ ]\(sizeof[(]FirmwareImage[)]\|FIRMWAREIMAGE\(V[12]\)\?_LENGTH\)\)[;]\)*' 'drivers/staging/rt\(28[67]0\|30[79]0\)/common/rtmp_init\.c'
blobname 'rate\.bin' drivers/staging/rt2870/rtmp_init.c
defsnc 'U\(INT\|CHAR\)[ ]\(Tkip_Sbox_\(Lower\|Upper\)\|SboxTable\)\[256\][ ]=' 'drivers/staging/rt\(28[67]0\|3070\)/common/rtmp_tkip\.c'
defsnc 'UINT[ ]FCSTAB_32\[256\][ ]=' 'drivers/staging/rt\(28[67]0\|3070\)/common/rtmp_wep\.c'
accept '[ ]*#[ ]*define[ ]\(STA_PROFILE\|CARD_INFO\)_PATH[ ]*["][/]etc[/]Wireless[/]RT\(28[67]\|307\)0STA[/]RT\(28[67]\|307\)0STA\(Card\)\?\.dat["]' 'drivers/staging/rt\(28[67]0\|3070\)/rt_linux\.h'
blobname '\([/]etc[/]Wireless[/]\)\?\(RT\(28[67]\|307\)0STA[/]\)\?\(RT\(28[67]\|307\)0STA\|rt28[67]0\)\.bin' 'drivers/staging/rt\(28[67]0\|3070\)/rt_linux\.h'
blobname '\([/]etc[/]Wireless[/]\)\?\(RT28[67]0STA[/]\)\?e2p\.bin' 'drivers/staging/rt\(28[67]0\|3070\)/rt_ate\.[hc]'
defsnc '[ ][ ][ ][ ]u_int32_t[ ]ralinkrate\[256\][ ]=' 'drivers/staging/rt\(28[67]0\|3070\)/rt_linux\.c'
defsnc 'unsigned[ ]char[ ]\(QUALITY\|STRENGTH\)_MAP\[\][ ]=' drivers/staging/rtl8187se/r8180_core.c
defsnc 'u\(8\|16\|32\)[ ]rtl8225\(\(a\|bcd\?\)_rxgain\|agc\|tx_\(gain_cck\|power\)_ofdm\|tx_power_cck\(_ch14\)\?\)\[\]=' drivers/staging/rtl8187se/r8180_rtl8225.c
defsnc '\(static[ ]const[ ]\)\?u\(8\|16\|32\)[ ]\(rtl8225\(z2\)\?_\(threshold\|gain_\(a\|bg\)\|chan\|rxgain\|agc\|tx_\(gain_cck\|power\)_ofdm\|tx_power_cck\(_ch14\)\?\)\|ZEBRA2_CCK_OFDM_GAIN_SETTING\)\[\] \?=' drivers/staging/rtl8187se/r8180_rtl8225z2.c
defsnc 'static[ ]short[ ]rtl8255_agc\[\]=' drivers/staging/rtl8187se/r8180_rtl8255.c
defsnc '[ ]\?static[ ]u\(8\|32\)[ ]\(MAC_REG_TABLE\[\]\[2\]\|[ ]*ZEBRA_\(AGC\|RF_RX_GAIN_TABLE\)\[\]\|OFDM_CONFIG\[\]\)=' drivers/staging/rtl8187se/r8185b_init.c
accept '[ ]-[ ]move[ ]firmware[ ]loading[ ]to[ ]request_firmware[(][)]' drivers/staging/slicoss/README
blobname '\(\(oasis\|gb\)_rcv\|slic_\(oasis\|mojave\)\)\.bin' drivers/staging/slicoss/slicoss.c
# post 2.6.29 patches
defsnc 'static[ ]int[ ]atom_dst_to_src\[8\]\[4\][ ]=' drivers/gpu/drm/radeon/atom.c
defsnc 'const[ ]unsigned[ ]char[ ]map_table\[\][ ]=' drivers/input/lirc/lirc_ttusbir.c
defsnc 'struct[ ]au8522_register_config[ ]lpfilter_coef\[\][ ]=' drivers/media/dvb/frontends/au8522_decoder.c
defsnc 'static[ ]const[ ]u8[ ]jpeg_head\[\][ ]=' drivers/media/video/gspca/jpeg.h
defsnc 'static[ ]const[ ]u8[ ]\(bridge\|sensor\)_init_ov\(722x\|965x\(_2\)\?\)\[\]\[2\][ ]=' drivers/media/video/gspca/ov534.c
defsnc '[ ]static[ ]const[ ]u8[ ]probe_tb\[\]\[4\]\[8\][ ]=' drivers/media/video/gspca/sonixj.c
defsnc 'static[ ]const[ ]u8[ ]eeprom_data\[\]\[3\][ ]=' drivers/media/gspca/tv8532.c
defsnc '\(static[ ]uint32_t\|[}]\)[ ]nv04_graph_ctx_regs[ ]\[\][ ]=' drivers/char/drm/nv04_graph.c
defsnc 'static[ ]int[ ]nv10_graph_ctx_regs[ ]\[\][ ]=' drivers/char/drm/nv10_graph.c
# This looks suspicious, but it pretty much just sets stuff to zero.
initnc 'static[ ]__u8[ ]mode8420\(pro\|con\)\[\][ ]=' drivers/media/video/cs8420.h
# quite suspicious
# arch/parisc/kernel/perf_images.h
initc 'static[ ]uint32_t[ ]onyx_images\[\]\[PCXU_IMAGE_SIZE[/]sizeof[(]uint32_t[)]\][ ]__read_mostly[ ]='
initc 'static[ ]uint32_t[ ]cuda_images\[\]\[PCXW_IMAGE_SIZE[/]sizeof[(]uint32_t[)]\][ ]__read_mostly[ ]='
# These are regarded as ok
initnc 'static[ ]const[ ]u8[ ]SN9C102_\(Y\|UV\)_QTABLE[01]\[64\][ ]=[ ][{]'
initnc '[ ]static[ ]\(const[ ]\)\?u8[ ]jpeg_header\[589\][ ]=[ ][{]' media/video/sn9c102/sn9c102_core.c
accept '[ ]\{1,2\}err[ ]=[ ]sn9c102_write_const_regs[(]cam\(,[ \n]\+[{]0x[0-9a-fA-F][0-9a-fA-F],[ ]0x[0-9a-fA-F][0-9a-fA-F][}]\)*[)][;]'
# too lax?
defsnc 'static[ ]yyconst[ ]\(flex_int\(16\|32\)_t\|\(\(short[ ]\)\?int\)\)[ ]yy_[^[]*\[[][0-9]*\][ ]='
defsnc 'static[ ]const[ ]\(yytype_u\?int\(8\|16\)\|\(unsigned[ ]\)\?\(short\([ ]int\)\?\|char\)\)[ ]yy[^[]*\[\][ ]='
initnc '\([ ]\)\?static[ ]\(const[ ]\)\?\(unsigned[ ]\(short\|char\)\|struct[ ]SiS_[^ ]*\)[ ]SiS[^[]*\(\[[][ *0-9]*\]\)\+[ ]*='
initnc 'static[ ]const[ ]a3d_Hrtf_t[ ]A3dHrirZeros[ ]=[ ][{]'
initnc 'static[ ]const[ ]a3d_Hrtf_t[ ]A3dHrirImpulse[ ]=[ ][{]'
initnc 'static[ ]const[ ]a3d_Hrtf_t[ ]A3dHrirOnes[ ]=[ ][{]'
initnc 'static[ ]const[ ]a3d_Hrtf_t[ ]A3dHrirSatTest[ ]=[ ][{]'
initnc 'static[ ]const[ ]a3d_Hrtf_t[ ]A3dHrirDImpulse[ ]=[ ][{]'
initnc 'static[ ]const[ ]a3d_ItdDline_t[ ]A3dItdDlineZeros[ ]=[ ][{]'
initnc 'static[ ]auxxEqCoeffSet_t[ ]asEqCoefsNormal[ ]=[ ][{]'
initnc 'static[ ]xtalk_dline_t[ ]const[ ]alXtalkDlineTest[ ]=[ ][{]'
initnc 'static[ ]struct[ ]nand_ecclayout[ ]rtc_from4_nand_oobinfo[ ]=[ ][{]'
initnc 'static[ ]const[ ]s16[ ]tempLUT\[\][ ]='
initnc 'static[ ]const[ ]u8[ ]viaLUT\[\][ ]='
initnc 'static[ ]struct[ ][{][ ]int[ ]xres,[ ]yres,[ ]left,[ ]right,[ ]upper,[ ]lower,[ ]hslen,[ ]vslen,[ ]vfreq[;][ ][}][ ]timmings\[\][ ]__initdata[ ]=[ ][{]'
initnc 'static[ ]struct[ ]platinum_regvals[ ]platinum_reg_init_[0-9]*[ ]=[ ][{]'
initnc '[}][ ]sisfb_ddc[sf]modes\[\][ ]__devinitdata[ ]='
initnc 'static[ ]struct[ ]dvb_pll_desc[ ][^\n]*[ ]=[ ][{]'
initnc 'static[ ]u32[ ]LABELPATCHES\[\][ ]__attribute[(][(]unused[)][)][ ]='
initnc 'static[ ]dbdev_tab_t[ ]dbdev_tab\[\][ ]='
accept '\(EXP\|LOG\|ATAN\)TBL:'"$sepx$blobpat*"
initnc 'static[ ]char[ ]fm_volume_table\[128\][ ]='
initnc 'unsigned[ ]int[ ]snd_gf1_scale_table\[SNDRV_GF1_SCALE_TABLE_SIZE\][ ]='
# remaining after original deblob_2_6_24, not fully checked
oprepline '#define[ ]OV51[18]_\(Y\|UV\)QUANTABLE[ ][{]'
initnc '[ ][ ]static[ ]unsigned[ ]char[ ]const[ ]data_bit\[64\][ ]='
initnc '[ ][ ]static[ ]const[ ]u8[ ]data_sbit\[32\][ ]='
initnc '[ ]\.RightCoefs[ ]='
initnc '[ ]#define[ ]WakeupSeq[ ][ ][ ][ ][{]'
initnc '[ ]SetRate44100\[\][ ]='
initnc '[ ]const[ ]short[ ]period\[32\][ ]='
defsnc '[ ]\(const[ ]static\|static[ ]const\)[ ]int[ ]desc_idx_table\[\][ ]=' 'arch/arm/include/asm/hardware/iop3xx-adma.h|include/asm-arm/hardware/iop3xx-adma.h'
initnc '[ ]int[ ]prop_bcomm_irq\[3[*]16\][ ]='
initnc '[ ]static[ ]char[ ]logSlopeTable\[128\][ ]='
initnc '[ ]static[ ]const[ ]int[ ]uc_\(dup\|word\)_table\[\]\[2\][ ]='
initnc '[ ]static[ ]const[ ]struct[ ]mc7_timing_params[ ]mc7_timings\[\][ ]='
initnc '[ ]static[ ]const[ ]u8[ ]biphase_tbl\[\][ ]='
initnc '[ ]static[ ]const[ ]u8[ ]cs170\[7[ ][*][ ]8\][ ]='
initnc '[ ]static[ ]const[ ]u8[ ]cs3[13]a\[8[ ][*][ ]4\][ ]='
initnc '[ ]static[ ]const[ ]u8[ ]dramsr13\[12[ ][*][ ]5\][ ]='
initnc '[ ]static[ ]const[ ]u8[ ]log10\[\][ ]='
initnc '[ ]static[ ]const[ ]u8[ ]mpeg_hdr_data\[\][ ]='
initnc '[ ]static[ ]const[ ]u8[ ]sdramtype\[13\]\[5\][ ]='
initnc '[ ]static[ ]const[ ]u8[ ]t\[\][ ]='
initnc '[ ]static[ ]const[ ]unsigned[ ]int[ ]avg_pkts\[NCCTRL_WIN\][ ]='
initnc '[ ]static[ ]const[ ]unsigned[ ]short[ ]ac97_defaults\[\][ ]='
initnc '[ ]static[ ]int[ ]exp_lut\[256\][ ]='
initnc '[ ]static[ ]u16[ ]jpeg_tables\[\]\[70\][ ]='
initnc '[ ]static[ ]u16[ ]tables\[\][ ]='
initnc '[ ]static[ ]u32[ ]logMagTable\[128\][ ]='
initnc '[ ]static[ ]u8[ ]init_bufs\[13\]\[5\][ ]='
initnc '[ ]static[ ]u8[ ]sine[ ]\[\][ ]='
initnc '[ ]static[ ]u_short[ ]geometry_table\[\]\[[45]\][ ]='
initnc '[ ]static[ ]unsigned[ ]char[ ]CRCTable1\[\][ ]='
initnc '[ ]static[ ]unsigned[ ]char[ ]CRCTable2\[\][ ]='
initnc '[ ]static[ ]unsigned[ ]char[ ]default_colors\[\][ ]='
initnc '[ ]static[ ]unsigned[ ]char[ ]iso_regs\[8\]\[4\][ ]='
initnc '[ ]static[ ]unsigned[ ]char[ ]log_scale\[101\][ ]=' sound/oss/pss.c
initnc '[ ]static[ ]unsigned[ ]char[ ]msg\[\][ ]='
initnc '[ ]static[ ]unsigned[ ]char[ ]static_pad\[\][ ]='
initnc '[ ]static[ ]unsigned[ ]char[ ]table_alaw2ulaw\[\][ ]='
initnc '[ ]static[ ]unsigned[ ]char[ ]table_ulaw2alaw\[\][ ]='
defsnc '[ ]u32[ ]reg_boundaries\[\][ ]=' drivers/net/bnx2.c
initnc '[ ]u8[ ]b\[\][ ]='
initnc '[ ]uint8_t[ ]tx\[\][ ]='
initnc '[ ]unsigned[ ]char[ ]saa7111_regs\[\][ ]='
initnc '[ ]unsigned[ ]char[ ]sas_pcd_m_pg\[\][ ]='
initnc '[ ][}][ ]modedb\[5\][ ]='
defsnc '[ ][}][ ]reg_tbl\[\][ ]=' drivers/net/bnx2.c
initnc '[ ][}][ ]vals\[\][ ]='
initnc '[ ][}][ ]vm_devices\[\][ ]='
initnc '[ ][ ][ ][ ]static[ ]const[ ]code[ ]distfix\[32\][ ]='
initnc '[ ][ ][ ][ ]static[ ]const[ ]code[ ]lenfix\[512\][ ]='
initnc '[ ][ ]int[ ]poly\[\]='
initnc '[ ][ ]static[ ]const[ ]unsigned[ ]char[ ]asso_values\[\][ ]='
initnc '[ ][ ]static[ ]unsigned[ ]char[ ]asso_values\[\][ ]='
initnc '[ ][ ][}][ ]cards_ds\[\][ ]='
initnc '[ ][ ][ ][ ]static[ ]const[ ]int8[ ]countLeadingZerosHigh\[\][ ]='
initnc '[ ][ ][ ][ ]static[ ]const[ ]unsigned[ ]short[ ]d\(base\|ext\)\[32\][ ]='
initnc '#define[ ]OV511_QUANTABLESIZE[ ]64'
initnc 'BYTE[ ]BtCard::SRAMTable_\(NTSC\|PAL\)\[\][ ]='
initnc 'BYTE[ ]SRAMTable\[\]\[[ ]60[ ]\][ ]='
accept 'irq_prio_\([hdl]\|l[cd]\):'"$sepx$blobpat*" 'arch/arm/inlcude/asm/hardware/entry-macro-iomd.S|include/asm-arm/hardware/entry-macro-iomd.S'
initc '__u8[ ]_ascebc\[256\][ ]='
initc '__u8[ ]_ebc_tolower\[256\][ ]='
initc '__u8[ ]_ebc_toupper\[256\][ ]='
initnc 'adapter_tag_info_t[ ]aic7[9x]xx_tag_info\[\][ ]='
initnc 'char[ ]dmasound_alaw2dma8\[\][ ]='
initnc 'char[ ]dmasound_ulaw2dma8\[\][ ]='
initnc 'const[ ]struct[ ]aper_size_info_16[ ]agp3_generic_sizes\[AGP_GENERIC_SIZES_ENTRIES\][ ]='
initnc 'const[ ]u16[ ]crc_itu_t_table\[256\][ ]='
initnc 'const[ ]u8[ ]byte_rev_table\[256\][ ]='
initnc 'const[ ]u8[ ]crc7_syndrome_table\[256\][ ]='
initnc 'int[ ]snd_sf_vol_table\[128\][ ]='
initnc 'static[ ]u_char[ ]irq_to_siubit\[\][ ]='
initnc 'static[ ]u_char[ ]irq_to_siureg\[\][ ]='
initnc 'static[ ]Byte_t[ ]RData\[RDATASIZE\][ ]='
initnc 'static[ ]__const__[ ]__u16[ ]gx_coeff\[256\][ ]='
initnc 'static[ ]__u8[ ]init7121ntsc\[\][ ]='
initnc 'static[ ]__u8[ ]init7121pal\[\][ ]='
initnc 'static[ ]byte[ ]capidtmf_leading_zeroes_table\[0x100\][ ]='
defsnc 'static[ ]char[ ]channel_map_madi_[sdq]s\[HDSPM_MAX_CHANNELS\][ ]=' sound/pci/rme9652/hdspm.c
initnc 'static[ ]char[ ]coefficients\[NM_TOTAL_COEFF_COUNT[ ][*][ ]4\][ ]='
initnc 'static[ ]char[ ]ecc_syndrome_table\[\][ ]='
initnc 'static[ ]char[ ]isdn_audio_alaw_to_ulaw\[\][ ]='
initnc 'static[ ]char[ ]isdn_audio_ulaw_to_alaw\[\][ ]='
initnc 'static[ ]char[ ]mix_cvt\[101\][ ]='
initnc 'static[ ]char[ ]opl3_volume_table\[128\][ ]='
initnc 'static[ ]const[ ]__u16[ ]crc10_table\[256\][ ]='
initnc 'static[ ]const[ ]__u32[ ]crc_c\[256\][ ]='
initnc 'static[ ]const[ ]fixp_t[ ]cos_table\[46\][ ]='
initnc 'static[ ]const[ ]int[ ]init_seq\[\][ ]='
initnc 'static[ ]const[ ]int[ ]mobile_vid_table\[32\][ ]='
initnc 'static[ ]const[ ]s16[ ]snd_opl4_pitch_map\[0x600\][ ]='
initnc 'static[ ]const[ ]s8[ ]budtab\[256\][ ]='
initnc 'static[ ]const[ ]struct[ ]aper_size_info_8[ ]via_generic_sizes\[9\][ ]='
initnc 'static[ ]const[ ]struct[ ]color[ ]clut_vga16\[16\][ ]='
defsnc 'static[ ]const[ ]struct[ ]gain_entry[ ]gain_table\[2\]\[108\][ ]=' drivers/net/wireless/iwl-4965.c
initnc 'static[ ]const[ ]struct[ ]mV_pos[ ]__initdata[ ]mobilevrm_mV\[32\][ ]='
initnc 'static[ ]const[ ]struct[ ]mV_pos[ ]__initdata[ ]vrm85_mV\[32\][ ]='
initnc 'static[ ]const[ ]struct[ ]menelaus_vtg_value[ ]vcore_values\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]opl4_region[ ]regions_[0-9a-frums]*\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]regval[ ]regval_table\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_5222\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_5225_2527\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_5226\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_bg\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_bg_2522\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_bg_2523\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_bg_2524\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_bg_2525\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_bg_2525e\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_bg_2528\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_noseq\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_seq\[\][ ]='
initnc 'static[ ]const[ ]u16[ ]Sbox\[256\][ ]='
initnc 'static[ ]const[ ]u16[ ]count_lut\[\][ ]='
# drivers/net/e1000e/phy.c
initnc 'static[ ]const[ ]u16[ ]e1000_igp_2_cable_length_table\[\][ ]='
initnc 'static[ ]const[ ]u16[ ]rtl8225bcd_rxgain\[\][ ]='
initnc 'static[ ]const[ ]u16[ ]rtl8225z2_rxgain\[\][ ]='
initnc 'static[ ]const[ ]u16[ ]stufftab\[5[ ][*][ ]256\][ ]='
initnc 'static[ ]const[ ]u16[ ]tkip_sbox\[256\][ ]='
initnc 'static[ ]const[ ]u16[ ]wm8753_reg\[\][ ]='
initnc 'static[ ]const[ ]u32[ ]SS[0-3]\[256\][ ]='
initnc 'static[ ]const[ ]u32[ ]S[1-8]\[64\][ ]='
initnc 'static[ ]const[ ]u32[ ]T[0-5]\[256\][ ]='
initnc 'static[ ]const[ ]u32[ ]Tm\[24\]\[8\][ ]='
initnc 'static[ ]const[ ]u32[ ]bass_table\[41\]\[5\][ ]='
initnc 'static[ ]const[ ]u32[ ]bf_sbox\[256[ ][*][ ]4\][ ]='
initnc 'static[ ]const[ ]u32[ ]camellia_sp0222\[256\][ ]='
initnc 'static[ ]const[ ]u32[ ]camellia_sp1110\[256\][ ]='
initnc 'static[ ]const[ ]u32[ ]camellia_sp3033\[256\][ ]='
initnc 'static[ ]const[ ]u32[ ]camellia_sp4404\[256\][ ]='
initnc 'static[ ]const[ ]u32[ ]crc32c_table\[256\][ ]='
initnc 'static[ ]const[ ]u32[ ]db_table\[101\][ ]='
initnc 'static[ ]const[ ]u32[ ]m8xx_size_to_gray\[M8XX_SIZES_NO\][ ]='
initnc 'static[ ]const[ ]u32[ ]mds\[4\]\[256\][ ]='
initnc 'static[ ]const[ ]u32[ ]pc2\[1024\][ ]='
initnc 'static[ ]const[ ]u32[ ]s[1-7]\[256\][ ]='
initnc 'static[ ]const[ ]u32[ ]sb8\[256\][ ]='
initnc 'static[ ]const[ ]u32[ ]tfrc_calc_x_lookup\[TFRC_CALC_X_ARRSIZE\]\[2\][ ]='
initnc 'static[ ]const[ ]u32[ ]treble_table\[41\]\[5\][ ]='
initnc 'static[ ]const[ ]u64[ ][CT][0-7]\[256\][ ]='
initnc 'static[ ]const[ ]u64[ ]sbox[1-4]\[256\][ ]='
initnc 'static[ ]const[ ]u64[ ]sha512_K\[80\][ ]=' 'crypto/sha512\(_generic\)\?.c'
initnc 'static[ ]const[ ]u8[ ]Tr\[4\]\[8\][ ]='
initnc 'static[ ]const[ ]u8[ ]aes_sbox\[256\][ ]='
initnc 'static[ ]const[ ]u8[ ]calc_sb_tbl\[512\][ ]='
initnc 'static[ ]const[ ]u8[ ]exp_to_poly\[492\][ ]='
initnc 'static[ ]const[ ]u8[ ]legal_ansi_char_array\[0x40\][ ]='
initnc 'static[ ]const[ ]u8[ ]parity\[\][ ]='
initnc 'static[ ]const[ ]u8[ ]pc1\[256\][ ]='
initnc 'static[ ]const[ ]u8[ ]poly_to_exp\[255\][ ]='
initnc 'static[ ]const[ ]u8[ ]q[01]\[256\][ ]='
initnc 'static[ ]const[ ]u8[ ]ratio_lut\[\][ ]='
initnc 'static[ ]const[ ]u8[ ]rs\[256\][ ]='
initnc 'static[ ]const[ ]u8[ ]rtl8225_agc\[\][ ]='
initnc 'static[ ]const[ ]u8[ ]rtl8225_tx_power_cck\[\][ ]='
initnc 'static[ ]const[ ]u8[ ]rtl8225_tx_power_cck_ch14\[\][ ]='
initnc 'static[ ]const[ ]u8[ ]rtl8225z2_tx_gain_cck_ofdm\[\][ ]='
initnc 'static[ ]const[ ]u_char[ ]irq_to_siubit\[\][ ]='
initnc 'static[ ]const[ ]u_char[ ]irq_to_siureg\[\][ ]='
initnc 'static[ ]const[ ]uint8_t[ ]parity\[256\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]char[ ]\(UV\|Y\)_QUANTABLE\[64\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]char[ ]__initdata[ ]mV_mobilevrm\[32\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]char[ ]__initdata[ ]mV_vrm85\[32\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]char[ ]barco_p1\[2\]\[9\]\[7\]\[3\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]char[ ]bitcounts\[256\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]char[ ]blue\[256\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]char[ ]chktab[hl]\[256\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]char[ ]comet_miireg2offset\[32\][ ]='
initnc 'static[ ]\(const[ ]\)\?unsigned[ ]char[ ]euc2sjisibm_g3upper_map\[\]\[2\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]char[ ]green\[256\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]char[ ]hash_table_ops\[64[*]4\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]char[ ]hid_keyboard\[256\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]char[ ]mts_direction\[256[/]8\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]char[ ]red\[256\][ ]='
initnc 'static[ ]\(const[ ]\)\?unsigned[ ]char[ ]sjisibm2euc_map\[\]\[2\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]char[ ]vol_cvt_datt\[128\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]int[ ]MulIdx\[16\]\[16\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]int[ ]crctab32\[\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]short[ ]crc_flex_table\[\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]short[ ]logtable\[256\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]short[ ]wd7000_iobase\[\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]short[ ]x86_keycodes\[256\][ ]='
initnc 'static[ ]const[ ]unsigned[ ]table\[\][ ]='
initnc 'static[ ]int[ ]MV300_reg_8bit\[256\][ ]\?=' drivers/video/atafb.c
initnc 'static[ ]int[ ]fifo_map\[\]\[MAX_TX_FIFOS\][ ]='
initnc 'static[ ]int[ ]initial_lfsr\[\][ ]='
initnc 'static[ ]int[ ]log_tbl\[129\][ ]='
initnc 'static[ ]int[ ]miro_fmtuner\[\][ ][ ]=' drivers/media/video/bt8xx/bt-cards.c
initnc 'static[ ]int[ ]miro_tunermap\[\][ ]=' drivers/media/video/bt8xx/bt-cards.c
initnc 'static[ ]int[ ]register_size\[\][ ]='
initnc 'static[ ]int[ ]reserve_list\[MAX_RES_ARGS\][ ]='
initnc 'static[ ]int[ ]reverse6\[64\][ ]='
initnc 'static[ ]short[ ]attack_time_tbl\[128\][ ]='
defsnc 'static[ ]short[ ]beep_wform\[256\][ ]=' 'sound/ppc/beep.c|sound/oss/dmasound/dmasound_awacs.c|arch/ppc/8xx_io/cs4218_tdm.c'
initnc 'static[ ]short[ ]decay_time_tbl\[128\][ ]='
initnc 'static[ ]short[ ]isdn_audio_[ua]law_to_s16\[\][ ]='
initnc 'static[ ]struct[ ]iwl\(3945\)\?_tx_power[ ]power_gain_table\[2\]\[IWL_MAX_GAIN_ENTRIES\][ ]='
initnc 'static[ ]struct[ ]ovcamchip_regvals[ ]regvals_init_\(76be\|7[16]20\|7x10\)\[\][ ]='
initnc 'static[ ]struct[ ]regval_list[ ]ov7670_default_regs\[\][ ]='
initnc 'static[ ]struct[ ]s_c2[ ]SetRate48000\[\][ ]='
initnc 'static[ ]struct[ ]tea6420_multiplex[ ]TEA6420_line\[MXB_AUDIOS[+]1\]\[2\][ ]='
initnc 'static[ ]struct[ ]wm_info[ ]i810_wm_16_100\[\][ ]='
initnc 'static[ ]struct[ ]wm_info[ ]i810_wm_16_133\[\][ ]='
initnc 'static[ ]struct[ ]wm_info[ ]i810_wm_24_100\[\][ ]='
initnc 'static[ ]struct[ ]wm_info[ ]i810_wm_24_133\[\][ ]='
initnc 'static[ ]struct[ ]wm_info[ ]i810_wm_8_100\[\][ ]='
initnc 'static[ ]struct[ ]wm_info[ ]i810_wm_8_133\[\][ ]='
initnc 'static[ ]struct[ ][{][ ]struct[ ]fb_bitfield[ ]red,[ ]green,[ ]blue,[ ]transp[;][ ]int[ ]bits_per_pixel[;][ ][}][ ]colors\[\][ ]='
initnc 'static[ ]u16[ ]asEqCoefsPipes\[64\][ ]='
initnc 'static[ ]u16[ ]asEqCoefsZeros\[50\][ ]='
initnc 'static[ ]u16[ ]asEqOutStateZeros\[48\][ ]='
initnc 'static[ ]u16[ ]default_key_map[ ]\[256\][ ]='
initnc 'static[ ]u16[ ]eq_levels\[64\][ ]='
initnc 'static[ ]u32[ ][ ]crc32tab\[\][ ]__attribute__[ ][(][(]aligned[(]8[)][)][)][ ]='
initnc 'static[ ]u32[ ]ac3_frames\[3\]\[32\][ ]='
initnc 'static[ ]u32[ ]adwDecim8\[33\][ ]='
initnc 'static[ ]u32[ ]h_prescale\[64\][ ]='
initnc 'static[ ]u32[ ]v_gain\[64\][ ]='
initnc 'static[ ]u8[ ]SRAM_Table\[\]\[60\][ ]='
initnc 'static[ ]u8[ ]alps_tdee4_stv0297_inittab\[\][ ]='
defsnc 'static[ ]u8[ ]bnx2_570[68]_stats_len_arr\[BNX2_NUM_STATS\][ ]=' drivers/net/bnx2.c
initnc 'static[ ]u8[ ]flit_desc_map\[\][ ]='
defsnc 'static[ ]u8[ ]init_tab[ ]\?\[\][ ]=' 'drivers/media/dvb/frontends/cx2270\(0\|2\)\.c'
defsnc 'static[ ]u8[ ]mac_reader\[\][ ]=' drivers/net/wireless/atmel.c
initnc 'static[ ]u8[ ]mt2131_config1\[\][ ]=' drivers/media/dvb/frontends/mt2131.c # <= 2.6.25
initnc 'static[ ]u8[ ]mt2131_config1\[\][ ]=' drivers/media/common/tuners/mt2131.c # >= 2.6.26
initnc 'static[ ]u8[ ]mt2266_init2\[\][ ]=' drivers/media/dvb/frontends/mt2266.c # <= 2.6.25
initnc 'static[ ]u8[ ]mt2266_init2\[\][ ]=' drivers/media/common/tuners/mt2266.c # >= 2.6.26
initnc 'static[ ]u8[ ]opera1_inittab\[\][ ]='
initnc 'static[ ]u8[ ]saa7113_init_regs\[\][ ]='
initnc 'static[ ]u8[ ]samsung_tbmu24112_inittab\[\][ ]='
initnc 'static[ ]u8[ ]w1_crc8_table\[\][ ]='
initnc 'static[ ]u_char[ ]const[ ]data_sizes_32\[32\][ ]='
initnc 'static[ ]u_long[ ]ident_map\[32\][ ]='
initnc 'static[ ]u_short[ ]alt_map\[NR_KEYS\][ ]='
initnc 'static[ ]u_short[ ]altgr_map\[NR_KEYS\][ ]='
initnc 'static[ ]u_short[ ]ctrl_alt_map\[NR_KEYS\][ ]='
initnc 'static[ ]u_short[ ]ctrl_map\[NR_KEYS\][ ]*='
initnc 'static[ ]u_short[ ]shift_ctrl_map\[NR_KEYS\][ ]='
initnc 'static[ ]u_short[ ]shift_map\[NR_KEYS\][ ]*='
initnc 'static[ ]uchar[ ]perm1\[56\][ ]='
initnc 'static[ ]uchar[ ]perm2\[48\][ ]='
initnc 'static[ ]uchar[ ]perm3\[64\][ ]='
initnc 'static[ ]uchar[ ]perm4\[48\][ ]='
initnc 'static[ ]uchar[ ]perm5\[32\][ ]='
initnc 'static[ ]uchar[ ]perm6\[64\][ ]='
initnc 'static[ ]uchar[ ]sbox\[8\]\[4\]\[16\][ ]='
initnc 'static[ ]uint16_t[ ]crc_table\[256\][ ]='
initnc 'static[ ]uint8_t[ ]lpfcAlpaArray\[\][ ]='
initnc 'static[ ]\(const[ ]\)\?uint8_t[ ]seqprog\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]V110_OffMatrix_9600\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]V110_OnMatrix_9600\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]a2232_65EC02code\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]atkbd_set3_keycode\[512\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]atkbd_unxlate_table\[128\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]banner_table\[\][ ]=' arch/sh/boards/superh/microdev/led.c
initnc 'static[ ]unsigned[ ]char[ ]bootlogo_bits\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]bus2core_8260\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]bus2core_8280\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]caseorder\[256\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]crystal_key\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]dsp_ulaw\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]expressiontab\[128\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]header2\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]hidp_keycode\[256\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]nkbd_keycode\[128\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]pan_volumes\[256\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]parm_block\[32\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]raw3270_ebcgraf\[64\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]rfcomm_crc_table\[256\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]rwa_unlock\[\][ ]__initdata[ ]='
initnc 'static[ ]unsigned[ ]char[ ]seqprog\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]snd_opl4_volume_table\[128\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]splash_bits\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]sunkbd_keycode\[128\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]ufs_fragtable_8fpb\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]ufs_fragtable_other\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]ulaw_dsp\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]usb_kbd_keycode\[256\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]vga_font\[cmapsz\][ ]\(BTDATA[ ]\)\?='
initnc 'static[ ]unsigned[ ]char[ ]voltab[12]\[128\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]vpd89_data\[\][ ]='
initnc 'static[ ]unsigned[ ]char[ ]xtkbd_keycode\[256\][ ]='
initnc 'static[ ]unsigned[ ]int[ ]ac3_bitrates\[32\][ ]='
initnc 'static[ ]unsigned[ ]int[ ]bass_volume_table\[\][ ]='
initnc 'static[ ]unsigned[ ]int[ ]bitrates\[3\]\[16\][ ]='
initnc 'static[ ]unsigned[ ]int[ ]isa_dma_port\[8\]\[7\][ ]='
initnc 'static[ ]unsigned[ ]int[ ]master_volume_table\[\][ ]='
initnc 'static[ ]unsigned[ ]int[ ]mixer_volume_table\[\][ ]='
initnc 'static[ ]unsigned[ ]int[ ]pan_table\[63\][ ]='
initnc 'static[ ]unsigned[ ]int[ ]snapper_bass_volume_table\[\][ ]='
initnc 'static[ ]unsigned[ ]int[ ]snapper_treble_volume_table\[\][ ]='
initnc 'static[ ]unsigned[ ]int[ ]treble_volume_table\[\][ ]='
initnc 'static[ ]unsigned[ ]int[ ]valid_mem\[\][ ]='
initnc 'static[ ]unsigned[ ]long[ ]arthur_to_linux_signals\[32\][ ]='
initnc 'static[ ]unsigned[ ]long[ ]shmedia_opcode_table\[64\][ ]='
initnc 'static[ ]unsigned[ ]nv\([34]\|10\)TableP\(FIFO\|GRAPH\|RAMIN\)\[\]\[2\][ ]='
initnc 'static[ ]unsigned[ ]short[ ]fcstab\[256\][ ]='
initnc 'static[ ]unsigned[ ]short[ ]init[1234]\[128\][ ][/][*]__devinitdata[*][/][ ]='
initnc 'static[ ]unsigned[ ]short[ ]log_table\[LOG_TABLE_SIZE[*]2\][ ]='
initnc 'static[ ]unsigned[ ]short[ ]rc_ioport\[\][ ]='
initnc 'static[ ]unsigned[ ]short[ ]translations\[\]\[256\][ ]='
initnc 'static[ ]unsigned[ ]short[ ]treble_parm\[12\]\[9\][ ]='
initnc 'struct[ ]RGBColors[ ]TextCLUT\[256\][ ]='
initnc 'struct[ ]VgaRegs[ ]GenVgaTextRegs\[NREGS[+]1\][ ]='
initnc 'struct[ ]battery_thresh[ ][ ]spitz_battery_levels_noac\[\][ ]='
initnc 'struct[ ]battery_thresh[ ]spitz_battery_levels_acin\[\][ ]='
initnc 'struct[ ]fb_bitfield[ ]rgb_bitfields\[\]\[4\][ ]='
initnc 'struct[ ]mode_registers[ ]std_modes\[\][ ]='
initnc 'struct[ ]vmode_attr[ ]vmode_attrs\[VMODE_MAX\][ ]='
initnc 'u16[ ]const[ ]crc16_table\[256\][ ]='
initnc 'u16[ ]const[ ]crc_ccitt_table\[256\][ ]='
initnc 'u16[ ]hfsplus_compose_table\[\][ ]='
initnc 'u16[ ]hfsplus_decompose_table\[\][ ]='
initnc 'u_char[ ]const[ ]data_sizes_16\[32\][ ]='
initnc 'u_short[ ]alt_map\[NR_KEYS\][ ]='
initnc 'u_short[ ]altgr_map\[NR_KEYS\][ ]='
initnc 'u_short[ ]ctrl_alt_map\[NR_KEYS\][ ]='
initnc 'u_short[ ]ctrl_map\[NR_KEYS\][ ]*='
initnc 'u_short[ ]plain_map\[NR_KEYS\][ ]*='
initnc 'u_short[ ]shift_ctrl_map\[NR_KEYS\][ ]='
initnc 'u_short[ ]shift_map\[NR_KEYS\][ ]*='
initnc 'uint[ ]patch_2[0f]00\[\][ ]='
initnc '\(uint16_t\|u16\)[ ]e1000_igp_cable_length_table\[IGP01E1000_AGC_LENGTH_TABLE_SIZE\][ ]=' drivers/net/e1000/e1000_hw.c # u16 on 2.6.26
initnc '\(uint16_t\|u16\)[ ]e1000_igp_2_cable_length_table\[IGP02E1000_AGC_LENGTH_TABLE_SIZE\][ ]=' drivers/net/e1000/e1000_hw.c # u16 on 2.6.26
initnc '[}][ ]euc2sjisibm_jisx0212_map\[\][ ]='
initnc '[}][ ]freq\[\][ ]='
initnc '[}][ ]hps_h_coeff_tab[ ]\[\][ ]='
initnc '[}][ ]hps_v_coeff_tab[ ]\[\][ ]='
initnc '[}][ ]init_tab\[\][ ]='
initnc '[}][ ]maven_gamma\[\][ ]='
initnc '[}][ ]mem_table\[\][ ]='
initnc '[}][ ]mxb_saa7740_init\[\][ ]='
initnc '[}][ ]pll_table\[\][ ]=' drivers/video/geode/lxfb_ops.c
initnc '[}][ ]qam256_snr_tab\[\][ ]='
initnc '[}][ ]qam64_snr_tab\[\][ ]='
initnc '[}][ ]sil_port\[\][ ]='
initnc '[}][ ]vsb_snr_tab\[\][ ]='
# new in 2.6.30
defsnc 'static[ ]const[ ]unsigned[ ]char[ ]sync\[\][ ]=' Documentation/networking/timestamping/timestamping.c
blob 'The[ ]driver[ ]requires[ ]firmware[ ]files[ ]["]turtlebeach\([^\n]*[^\n.][\n]\)*directory.' Documentation/sound/alsa/ALSA-Configuration.txt
defsnc 'static[ ]int[ ]sdp3430_batt_table\[\][ ]=' arch/arm/mach-omap2/board-3430sdp.c
defsnc 'const[ ]char[ ]_[zs]b_findmap\[\][ ]=' arch/s390/kernel/bitmap.c
initnc '[ ][{][ ]CnINT2MSKR0,[ ]CnINT2MSKCR0[ ],[ ]32,' arch/sh/kernel/cpu/sh4a/setup-sh7786.c
blobname 'solos-\(\(db-\)\?FPGA\|Firmware\)\.bin' drivers/atm/solos-pci.c
defsnc 'static[ ]u16[ ]__initdata[ ]i2c_clk_div\[50\]\[2\][ ]=' drivers/i2c/busses/i2c-imx.c
defsnc 'static[ ]const[ ]struct[ ]mpc_i2c_divider[ ]mpc_i2c_dividers_\(52xx\|8xxx\)\[\][ ]=' drivers/i2c/busses/i2c-mpc.c
accept '[ ]const[ ]char[ ]\*fw_name[ ]=[ ]["]av7110[/]bootcode\.bin["][;]' drivers/media/dvb/ttpci/av7110_hw.c
accept '[ ]ret[ ]=[ ]request_firmware[(][^;]*[)][;][\n][ ]if[ ][(]ret[)][ ][{][^}]*[}][\n][\n][ ]mwdebi[(]av7110,[ ]DEBISWAB,[ ]DPRAM_BASE' drivers/media/dvb/ttpci/av7110_fw.c
accept 'MODULE_FIRMWARE[(]["]av7110[/]bootcode\.bin["][)][;]' drivers/media/dvb/ttpci/av7110_fw.c
defsnc 'static[ ]const[ ]u8[ ]jpeg_head\[\][ ]=' drivers/media/video/gspca/jpeg.h
defsnc 'static[ ]struct[ ]nand_ecclayout[ ]nand_oob_128[ ]=' drivers/mtd/nand/nand_base.c
blobname 'bnx2[/]bnx2-\(mips\|rv2p\)-[-0-9a-z.]*\.fw' drivers/net/bnx2.c
accept 'static[ ]void[\n]load_rv2p_fw[(][^{)]*const[ ]struct[ ]bnx2_mips_fw_file_entry' drivers/net/bnx2.c
accept 'static[ ]int[\n]bnx2_init_cpus[(][^{]*[)][\n][{][\n][ ]const[ ]struct bnx2_mips_fw_file'
blobname 'yam[/]\(12\|96\)00\.bin' drivers/net/hamradio/yam.c
blobname 'myricom[/]lanai\.bin' drivers/net/myri_sbus.c
blobname '3com[/]3C359\.bin' drivers/net/tokenring/3c359.c
blobname '3com[/]typhoon\.bin' drivers/net/typhoon.c
defsnc 'static[ ]struct[ ]ar9170_phy_init[ ]ar5416_phy_init\[\][ ]=' drivers/net/wireless/ar9170/phy.c
defsnc 'static[ ]struct[ ]ar9170_rf_init[ ]ar9170_rf_init\[\][ ]=' drivers/net/wireless/ar9170/phy.c
defsnc 'static[ ]const[ ]struct[ ]ar9170_phy_freq_entry[ ]ar9170_phy_freq_params\[\][ ]=' drivers/net/wireless/ar9170/phy.c
accept 'static[ ]int[ ]ar9170_usb_request_firmware[(]' drivers/net/wireless/ar9170/usb.c
accept '[ ]err[ ]=[ ]request_firmware[(][^\n]*["]ar9170\(-[12]\)\?\.fw["],' drivers/net/wireless/ar9170/usb.c
accept '[ ]err[ ]=[ ]ar9170_usb_request_firmware[(]' drivers/net/wireless/ar9170/usb.c
accept 'MODULE_FIRMWARE[(]["]ar9170\(-[12]\)\?\.fw["][)];' drivers/net/wireless/ar9170/usb.c
blobname 'slicoss[/]\(oasis\|gb\)\(rcvucode\|download\)\.sys' drivers/staging/slicoss/slicoss.c
blobname 'sxg[/]sahara\(dbg\)\?downloadB\.sys' drivers/staging/sxg/sxg.c
blobname 'qlogic[/]isp1000\.bin' drivers/scsi/qlogicpti.c
blobname 'advansys[/]\(3550\|38C\(08\|16\)00\|mcode\)\.bin' drivers/scsi/advansys.c
blobname 'qlogic[/]\(1040\|1280\|12160\)\.bin' drivers/scsi/qla1280.c
blobname 'yamaha[/]yss225_registers\.bin' sound/isa/wavefront/wavefront_fx.c
defsnc 'static[ ]const[ ]struct[ ]ath5k_ini[ ]rf\([52]413\|2425\)_ini_common_end\[\][ ]=' drivers/net/wireless/ath5k/initvals.c
defsnc 'static[ ]const[ ]struct[ ]ath5k_ini_rfbuffer[ ]rfb_\(511[12]a\?\|5413\|231[67]\|24\(1[37]\|25\)\)\[\][ ]=' drivers/net/wireless/ath5k/rfbuffer.h
accept '#define\([ ]_\?IWL\(4965\|[156]000\|5150\|6050\)_MODULE_FIRMWARE[(]api[)]\)\+' 'drivers/net/iwlwifi/iwl-\([156]000\|4965\)\.c'
blobname 'iwlwifi-1000-' drivers/net/iwlwifi/iwl-1000.c
blobname 'iwlwifi-60[05]0-' drivers/net/iwlwifi/iwl-6000.c
blobname 'libertas[/]gspi\(%d\|[0-9]\+\)\(_hlp\)\?\.bin' drivers/net/wireless/libertas/if_spi.c
blobname 'mwl8k[/]\(helper\|fmimage\)_\(%u\|[0-9]\+\)\.fw' drivers/net/wireless/mwl8k.c
blobname '3826\.arm' 'drivers/\(net/wireless/p54/p54spi\|staging/stlc45xx/stlc45xx\)\.c'
defsnc 'static[ ]unsigned[ ]char[ ]p54spi_eeprom\[\][ ]=' drivers/net/wireless/p54/p54spi_eeprom.h
blobname '\(comedi[/]\)\?jr3pci\.idm' drivers/staging/comedi/drivers/jr3_pci.c
blobname 'usbdux\(fast\)\?_firmware\.\(hex\|bin\)' 'drivers/staging/comedi/drivers/usbdux\(fast\)\?\.c'
blobname 'RT30xxEEPROM\.bin' drivers/staging/rt3070/common/eeprom.c
blob '#include[ ]*["]\.\.[/]firmware.h["]' drivers/staging/rt3070/common/rtmp_init.c
defsnc 'static[ ]const[ ]u8[ ]default_cal_\(channels\|rssi\)\[\][ ]=' drivers/staging/stlc45xx/stlc45xx.c
accept '[ ][ ]stlc45xx_error[(]["]request_firmware[(][)][ ]failed' drivers/staging/stlc45xx/stlc45xx.c
blob 'static[ ]struct[ ]phy_ucode[ ]PhyUcode\[\][ ]=[^;]*[;]' drivers/staging/sxg/sxgphycode-1.2.h
blob '#include[ ]"sxgphycode\(-1\.2\)\?\.h"' drivers/staging/sxg/sxg.c
accept 'device[ ]drivers[ ]which[ ]predate[ ]the[ ]common[ ]use[ ]of[ ]request_firmware()' firmware/README.AddingFirmware
accept 'As[ ]we[ ]update[ ]those[ ]drivers[ ]to[ ]use[ ]request_firmware()' firmware/README.AddingFirmware
blob 'This[ ]directory[ ]is[ ]_NOT_[ ]for[ ]adding[ ]arbitrary[ ]new[ ]firmware[ ]images.*git[ ]pull[ ]request[ ]to:[\n][^\n]*infradead\.org>' firmware/README.AddingFirmware
blobna 'linux-firmware\.git' firmware/README.AddingFirmware
blobname '\(ea[/]\)\?\(loader\|indigo_djx\)_dsp\.fw' sound/pci/echoaudio/indigodjx.c
blobname '\(ea[/]\)\?\(loader\|indigo_iox\)_dsp\.fw' sound/pci/echoaudio/indigoiox.c
blobname 'cis[/]LA-PCM\.cis' drivers/net/pcmcia/pcnet_cs.c
blobname 'ositech[/]Xilinx7OD\.bin' drivers/net/pcmcia/smc91c92_cs.c
blobname 'tehuti[/]\(firmware\|bdx\)\.bin' drivers/net/tehuti.c
accept '[ ]*["]b43-open%s[/]%s\.fw["]' drivers/net/wireless/b43/main.c
blobname 'nx\(romimg\|3fw\(ct\|mn\)\)\.bin' 'drivers/net/netxen/netxen_nic_\(hw\|init\)\.c'
# New in 2.6.31
accept '[ ][*][ ]page[ ]tables[ ]as[ ]follows:[\n][ ][*][\n][ ][*][ ][ ][ ]3[ ]3[ ]2[ ]2[ ]2[ ]2[ ]2[ ]2[ ]2[ ]2[ ]2[ ]2[ ]1[ ]1[ ]1[ ]1[ ]1[ ]1[ ]1[ ]1[ ]1[ ]1[\n][ ][*][ ][ ][ ]1[ ]0[ ]9[ ]8[ ]7[ ]6[ ]5[ ]4[ ]3[ ]2[ ]1[ ]0[ ]9[ ]8[ ]7[ ]6[ ]5[ ]4[ ]3[ ]2[ ]1[ ]0[ ]9[ ]8[ ]7[ ]6[ ]5[ ]4[ ]3[ ]2[ ]1[ ]0' arch/arm/include/asm/pgtable.h
defsnc '\([ ]static const u8 snum_init\[\][ ]=[ ][{]\|static[ ]void[ ]qe_snums_init[(]void[)]\)[\n][ ][ ]0x04, 0x05,' arch/powerpc/sysdev/qe_lib/qe.c
accept '[.]LgoS4:[\n][ ][.]word[ ][.]LmtoS4-\.LgoS4\([\n][ ]\.\(long\|word\|byte\)[ ][01]\(,0\)*\)*' arch/s390/kernel/sclp.S
defsnc 'static[ ]int[ ]sh_clk_div6_divisors\[64\][ ]=' arch/sh/kernel/cpu/clock-cpg.c
accept '[ ][*][ ]*1[ ]1\([ ]0\)*[ ]1\([ ]0\)*' arch/x86/lguest/boot.c
defsnc 'struct[ ]scrubrate[ ]scrubrates\[\][ ]=' drivers/edac/amd64_edac.c
defsnc 'static[ ]const[ ]unsigned[ ]r\([35]\|s6\)00_reg_safe_bm\[[0-9]*\][ ]=' 'drivers/gpu/drm/radeon/r\(300\|v515\|s600\)\.c'
defsnc 'static[ ]struct[ ]keyboard_layout_map_t[ ]keyboard_layout_maps\[\][ ]=' drivers/media/dvb/siano/smsir.c
blobname 'dvb-cx18-mpc718-mt352\.fw' drivers/media/video/cx18/cx18-dvb.c
defsnc '[ ]const[ ]unsigned[ ]char[ ]\(y\|uv\)QuanTable51[18]\[\][ ]=' 'drivers/media/video/\(ov511\|gspca/ov519\)\.c'
defsnc 'static[ ]const[ ]u8[ ]bridge_start_ov965x_\(vga\|cif\)\[\]\[2\][ ]=' drivers/media/video/gspca/ov534.c
defsnc 'static[ ]const[ ]\(int\|s16\)[ ]hsv_\(red\|green\|blue\)_[xy]\[\][ ]=' drivers/media/video/gspca/sn9c20x.c
defsnc 'static[ ]\(u16\|struct i2c_reg_u16\)[ ]\(bridge\|mt9\(v\(11[12]\|011\)\|m001\)\)_init\[\]\(\[2\]\)\?[ ]=' drivers/media/video/gspca/sn9c20x.c
defsnc 'static[ ]\(u8\|struct i2c_reg_u8\)[ ]\(soi968\|ov\(76[67]0\|965[05]\)\|hv7131r\)_init\[\]\(\[2\]\)\?[ ]=' drivers/media/video/gspca/sn9c20x.c
defsnc 'static[ ]struct[ ]nand_ecclayout[ ]onenand_oob_128[ ]=' drivers/mtd/onenand/onenand_base.c
blobname 'bnx2x-e1h\?-\([0-9.%d]*\.fw\)\?' drivers/net/bnx2x_main.c
blob '#define[ ]BCM_5710_FW_\(\(MAJOR\|MINOR\|REVISION\|ENGINEERING\)_VERSION\|COMPILE_FLAGS\)[ ]*[0-9]\+\([\n]#define[ ]BCM_5710_FW_\(\(MAJOR\|MINOR\|REVISION\|ENGINEERING\)_VERSION\|COMPILE_FLAGS\)[ ]*[0-9]\+\)*' drivers/net/bnx2x_hsi.h
blob 'static[ ]int[ ]__devinit[ ]bnx2x_check_firmware[(]struct[ ]bnx2x[ ][*]bp[)][\n][{]\([^}]\|[^\n}][}]*\)*[\n][}]' drivers/net/bnx2x_main.c
blobna 'if[ ][(][(]fw_ver\[[0-3]\][ ]!=[ ]BCM_5710_FW_\(MAJOR\|MINOR\|REVISION\|ENGINEERING\)_VERSION[)]\([ ][|][|][\n][ ]*[(]fw_ver\[[0-3]\][ ]!=[ ]BCM_5710_FW_\(MAJOR\|MINOR\|REVISION\|ENGINEERING\)_VERSION[)]\)*[)][ ]{[^{}]*}' drivers/net/bnx2x_main.c
blobna 'sprintf[(]fw_file_name[ ][+][ ]offset,[ ]["]%d[.]%d[.]%d[.]%d[.]fw["]\(,[\n][ ]*BCM_5710_FW_\(MAJOR\|MINOR\|REVISION\|ENGINEERING\)_VERSION\)*[)];' drivers/net/bnx2x_main.c
blob 'rc[ ]=[ ]bnx2x_check_firmware(bp);' drivers/net/bnx2x_main.c
defsnc 'crb_128M_2M_map\[64\][ ]__cacheline_aligned_in_smp[ ]=' drivers/net/netxen/netxen_nic_hw.c
defsnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals\(_3070\)\?\[\][ ]=' drivers/net/wireless/rt2x00/rt2800usb.c
blobname 'wl1251-\(fw\|nvs\)\.bin' drivers/net/wireless/wl12xx/wl1251.h
blobname 'iwmc3200wifi-\([ul]mac\|calib\)-sdio\.bin' drivers/net/wireless/iwmc3200wifi/sdio.c
defsnc 'u16[ ]MCS_DATA_RATE\[2\]\[2\]\[77\] =' drivers/staging/rtl8192su/ieee80211/rtl819x_HTProc.c
blob 'u8[ ]Rtl8192SUFw\(Img\|Main\|Data\)Array\[\(Img\|Main\|Data\)ArrayLength\][ ]=[ ][{]'"$sepx$blobpat*$sepx"'[}][;]\([\n][\n]*u8[ ]Rtl8192SUFw\(Img\|Main\|Data\)Array\[\(Img\|Main\|Data\)ArrayLength\][ ]=[ ][{]'"$sepx$blobpat*$sepx"'[}][;]\)*' drivers/staging/rtl8192su/r8192SU_HWImg.c
blobname 'RTL8192SU[/]\(rtl8192sfw\.bin\|\(boot\|main\|data\)\.img\)' drivers/staging/rtl8192su/r8192S_firmware.c
blobna 'case[ ]FW_SOURCE_HEADER_FILE:[\n]#if[ ]1[\n]#define[^#]*[\n]#endif[\n][ ][ ][ ]break;' drivers/staging/rtl8192su/r8192S_firmware.c
defsnc 'u32[ ]Rtl8192SU\(PHY_\(REG\|ChangeTo\)_[12]T[12]R\|Radio[AB]_\(\(\(to\)\?[12]T\|GM\)_\)\?\|MAC\(PHY\|_[12]T\)_\|AGCTAB_\)Array\(_PG\)\?\[\(PHY_\(REG\|ChangeTo\)_[12]T[12]R\|Radio[AB]_\(\(\(to\)\?[12]T\|GM\)_\)\?\|MAC\(PHY\|_[12]T\)_\|AGCTAB_\)Array\(_PG\)\?Length][ ]=' drivers/staging/rtl8192su/rtl92SU_HWImg.c
blob 'u8[ ]Rtl8192PciEFw\(Boot\|Main\|Data\)ArrayDTM\[\(Boot\|Main\|Data\)ArrayLengthDTM\][ ]=[ ]{[^}]*};' drivers/staging/rtl8192su/r8192S_FwImgDTM.h
defsnc '\(static[ ]\)\?u32[ ]Rtl8192PciE\(PHY_REG\(_1T2R\)\?\|\(Radio[ABCD]\|MACPHY\|AGCTAB\)_\)Array\(_PG\)\?\(DTM\)\?\[\(\(PHY_REG\(_1T2R\)\?\|\(Radio[ABCD]\|MACPHY\|AGCTAB\)_\)Array\(_PG\)\?Length\(DTM\)\?\)\?\][ ]=' drivers/staging/rtl8192su/rtl8192S_FwImgDTM.h
blob '\([&]\|sizeof[(]\)rtl8190_fw\(boot\|main\|data\)_array\(\[0\]\|[)]\)\(,[ \n]*\([&]\|sizeof[(]\)rtl8190_fw\(boot\|main\|data\)_array\(\[0\]\|[)]\)\)*' 'drivers/staging/rtl8192su/r819\(2S\|xU\)_firmware\.c'
blobname 'RTL8192U[/]\(boot\|main\|data\)\.img' 'drivers/staging/rtl8192su/r819xU_firmware\.c'
blob 'u8[ ]rtl8190_fw\(boot\|main\|data\)_array\[\][ ]=[ ]{[^}]*};' drivers/staging/rtl8192su/r8192xU_firmware_img.c
defsnc 'u32 Rtl8192Usb\(PHY_REG\(_1T2R\)\?\|\(Radio[ABCD]\|MACPHY\|AGCTAB\)_\)Array\(_PG\)\?\[\][ ]=' drivers/staging/rtl8192su/rtl819xU_firmware_img.c
defsnc 'BYTE[ ]\(sbox\|dot[23]\)_table\[256\][ ]=' drivers/staging/vt6655/aes_ccmp.c
defsnc 'BYTE[ ]byVT3253\(InitTab\|B0\(_AGC4\?\)\?\)_\(RFMD\(2959\)\?\|AIROHA2230\|UW2451\|AGC\)\[CB_VT3253\(B0\(_AGC4\?\)\?\)\?\(\(_INIT\)\?_FOR_\(RFMD\(2959\)\?\|AIROHA2230\|UW2451\|AGC\)\)\?\]\[2\][ ]=' drivers/staging/vt6655/baseband.c
defsnc 'SCountryTable[ ]ChannelRuleTab\[CCODE_MAX[+]1\][ ]=' drivers/staging/vt6655/card.c
defsnc 'static[ ]const[ ]long[ ]frequency_list\[\][ ]=' drivers/staging/vt6655/iwctl.c
accept '#define[ ]CONFIG_PATH[ ]*"[/]etc[/]vntconfiguration[.]dat"' drivers/staging/vt6655/device_cfg.h
defsnc 'static[ ]const[ ]DWORD[ ]s_adwCrc32Table\[256\][ ]=' drivers/staging/vt6655/tcrc.c
defsnc 'const[ ]BYTE[ ]TKIP_Sbox_\(Lower\|Upper\)\[256\][ ]=' drivers/staging/vt6655/tkip.c
blobname 'prism2_ru\.\(hex\|fw\)' drivers/staging/wlan-ng/prism2fw.c
defsnc 'static[ ]const[ ]u16[ ]wm8960_reg\[WM8960_CACHEREGNUM\][ ]=' sound/soc/codecs/wm8960.c
blob '#include[ ]["]me4\(00\|61\)0_firmware\.h["]\([\n][\n]*#include[ ]["]me4\(00\|61\)0_firmware\.h["]\)*' drivers/staging/me4000/me4000.c
blob 'firm[ ]=[ ][^;]*xilinx_firm[^;]*;' drivers/staging/me4000/me4000.c
# end of new in 2.6.31
accept '[ ]*ramdisk[ ]=[ ]["][/]boot[/][^ ]*initrd[^ ]*\.img["]' Documentation/ia64/xen.txt
# in drm-*.patch, post-2.6.31
blobname 'matrox[/]g[24]00_warp\.fw' drivers/gpu/drm/mga/mga_warp.c
blobname 'r128[/]r128_cce\.bin' drivers/gpu/drm/r128/r128_cce.c
blobname 'radeon[/]R\([123]0\|[45]2\|S6[09]\)0_cp\.bin' drivers/gpu/drm/radeon/r100.c
blobname 'radeon[/]\(R\(60\|V6[1237]\|S7[1378]\)[05]\|%s\)_\(pfp\|me\)\.bin' drivers/gpu/drm/radeon/r600.c
defsnc 'const[ ]u32[ ]r[67]xx_default_state\[\] =' drivers/gpu/drm/radeon/r600_blit_shaders.c
defsnc 'struct nv17_tv_norm_params nv17_tv_norms\[NUM_TV_NORMS] =' drivers/gpu/drm/nouveau/nv17_tv_modes.c
# New in or modified for 2.6.32
blobname '\(cxgb3[/]\)\?ael20\(05_\(opt\|twx\)\|20_twx\)_edc\.bin' drivers/net/cxgb3/cxgb3_main.c
blobname 'wl1271-\(fw\|nvs\)\.bin' drivers/net/wireless/wl12xx/wl1271.h
defsnc 'static[ ]const[ ]struct[ ]aper_size_info_32[ ]u3_sizes\[8\?\][ ]=' drivers/char/agp/uninorth-agp.c
defsnc 'static[ ]const[ ]unsigned[ ]short[ ]atkbd_set[23]_keycode\[\(512\|ATKBD_KEYMAP_SIZE\)\][ ]=' drivers/input/keyboard/atkbd.c
defsnc '[ ][}][ ]common_modes\[17\][ ]=' drivers/gpu/drm/radeon/radeon_connectors.c
defsnc '[ ][ ]*\(static[ ]\)\?struct[ ]phy_reg[ ]phy_reg_init\(_0\)\?\[\][ ]=' drivers/net/r8169.c
accept '[ ][ ]*struct[ ]phy_reg[ ]phy_reg_init_1\[\][ ]=[ ][{][^;]*0x8300[^;]*[}][;]' drivers/net/r8169.c
blob 'static[ ]void[ ]rtl8168d_[12]_hw_phy_config(void[ ]__iomem[ ][*]ioaddr)[\n]{[\n]\([^}]*\|[^\n}][}]*\)*[\n][}]' drivers/net/r8169.c
blobna 'rtl8168d_[12]_hw_phy_config[(]ioaddr[)][;]' drivers/net/r8169.c
blobna 'static[ ]struct[ ]phy_reg_init_[12]\[\][ ]=[ ]{[\n {}0-9a-fx]*0x06,[ ]0xf8f9[\n {}0-9a-fx]*};' drivers/net/r8169.c
# This loads firmware to be flashed from filename provided through ethtool.
accept 'int[ ]be_load_fw([^\n;{]*)[ \n][{]\([^}]*\|[^\n}][}]*\)*ETHTOOL_FLASH_MAX_FILENAME\([^}]*\|[^\n}][}]*\)*be_cmd_get_fw_ver\([^}]*\|[^\n}][}]*\)*request_firmware\([^}]*\|[^\n}][}]*\)*[\n][}]' drivers/net/benet/be_main.c
defsnc '[ ]u8[ ]init_hash_seed\[\][ ]=' drivers/net/qlge/qlge_main.c
defsnc 'static[ ]const[ ]u_int32_t[ ]ar9287\(Common\|Modes\(_\([tr]x_gain\)\)\?\)_9287_1_[01]\[\]\[[236]\][ ]=' drivers/net/wireless/ath9k/initvals.h
defsnc 'static[ ]const[ ]u_int32_t[ ]ar9271\(Common\|Modes\)_9271_1_0\[\]\[[26]\][ ]=' drivers/net/wireless/ath9k/initvals.h
defsnc 'static[ ]const[ ]u8[ ]lpphy_min_sig_sq_table\[\][ ]=' drivers/net/wireless/b43/tables_lpphy.c
defsnc 'static[ ]const[ ]u16[ ]lpphy_\(rev\(01\|2plus\)_noise_scale\|crs_gain_nft\|iqlo_cal\|rev[01]_ofdm_cck_gain\|\(a0_\)\?gain\|sw_control\)_table\[\][ ]=' drivers/net/wireless/b43/tables_lpphy.c
defsnc 'static[ ]const[ ]u32[ ]lpphy_\(\(rev01_ps\|tx_power\)_control\|\(a0_\)\?gain_\(idx\|value\)\|papd_\(eps\|mult\)\)_table\[\][ ]=' drivers/net/wireless/b43/tables_lpphy.c
blobname 'v4l-saa7164-1\.0\.[23]\.fw' drivers/media/video/saa7164/saa7164-fw.c
defsnc 'static[ ]const[ ]u8[ ]n4_\(om6802\|other\|tas5130a\)\[\][ ]=' drivers/media/video/gspca/t613.c
defsnc '[ ][ ]const[ ]struct[ ]sensor_w_data[ ]\(cif\|vga\)_sensor[01]_init_data\[\][ ]=' drivers/media/video/gspca/mr97310a.c
defsnc '[ ]struct[ ]jlj_command[ ]start_commands\[\][ ]=' drivers/media/video/gspca/jeilinj.c
defsnc 'static[ ]u8[ ]init_code\[\]\[2\][ ]=' drivers//media/dvb/dvb-usb/friio-fe.c
defsnc 'static[ ]const[ ]u8[ ]va1j5jf8007[ts]_prepare_bufs\[\]\[2\][ ]=' 'drivers/media/dvb/pt1/va1j5jf8007[st]\.c'
accept '[ ]request_firmware[(][)][ ]will[ ]hit[ ]an[ ]OOPS' drivers/media/dvb/frontends/dib7000p.c
defsnc 'static[ ]long[ ]limiter_times\[\][ ]=' drivers/media/radio/si4713-i2c.c
blobname 'c[tb]fw\.bin' drivers/scsi/bfa/bfad_fwimg.c
defsnc 'static[ ]const[ ]u16[ ]\(VDCDC[1x]\|LDO[12]\)_VSEL_table\[\][ ]=' 'drivers/regulator/tps650\(23\|7x\)-regulator\.c'
defsnc 'static[ ]struct[ ]lms283gf05_seq[ ]disp_\(init\|pwdn\)seq\[\][ ]=' drivers/video/backlight/lms283gf05.c
defsnc '[}][ ]csc_table\[\][ ]=' drivers/video/msm/mdp_csc_table.h
defsnc '\(static[ ]\)\?struct[ ]mdp_table_entry[ ]mdp_\(\(upscale\|gaussian_blur\)_table\|downscale_[xy]_table_PT[2468]TO\(PT[468]\|1\)\)\[\][ ]=' drivers/video/msm/mdp_scale_tables.c
blobname 'sd8688\(_helper\)\?\.bin' drivers/bluetooth/btmrvl_sdio.c
blob 'sd8688_helper\.bin["],[\n][ ]\.firmware[ ]=[ ]["]sd8688\.bin' drivers/bluetooth/btmrvl_sdio.c
accept '[ ][ ]card->firmware[ ]=[ ]data->firmware[;]' drivers/bluetooth/btmrvl_sdio.c
accept '[ ]isar->firmware[ ]=[ ][&]load_firmware[;]' drivers/isdn/hardware/mISDN/mISDNisar.c
blobname 'isdn[/]ISAR\.BIN' drivers/isdn/hardware/mISDN/speedfax.c
blobname '\(cache\|resident\)\.image\.bin' drivers/staging/sep/sep_driver.c
blobname 'RTL8192E[/]\(boot\|main\|data\)\.img' drivers/staging/rtl8192e/r819xE_firmware.c
defsnc '\(static[ ]\)\?u32[ ]Rtl8190PciE\?\(AGCTAB_\|PHY_REG\(_1T2R\)\?\|Radio[ABCD]_\)Array\[\(AGCTAB_\|PHY_REG\(_1T2R\)\?\|Radio[ABCD]_\)ArrayLength\][ ]=' drivers/staging/rtl8192e/r819xE_phy.c
accept '[ ][*][ ]File: main_usb\.c\([\n][ ][*]\([^\n/]*\|[^*\n/][/]*\)*\)*[\n][ ][*][/]\([\n][\n]*#\(undef [^\n]*\|include "[^\n]*"\)\)*[\n][\n]*#include "firmware\.h"' drivers/staging/vt6656/main_usb.c
blob 'const[ ]BYTE[ ]abyFirmware\[\][ ]=[ ][{][^;]*[}][;]' drivers/staging/vt6656/firmware.c
defsnc '}[ ][ ][ ]ChannelRuleTab\[\][ ]=' drivers/staging/vt6656/channel.c
defsnc '\(static[ ]\)\?struct[ ]register_address_value_pair[\n]\(preview_snapshot_mode\|noise_reduction\)_reg_settings_array\[\][ ]=' drivers/staging/dream/camera/mt9d112_reg.c
blobname '\([/]tmp[/]\)\?RT30xxEEPROM\.bin' 'drivers/staging/rt3090/\(common/ee_efuse\.c\|rtmp_def\.h\)'
defsnc 'static[ ]UINT8[ ]WPS_DH_\([PRX]\|RRModP\)_VALUE\[1\(9[23]\|84\)\][ ]=' drivers/staging/rt3090/common/crypt_biginteger.c
defsnc 'CH_FREQ_MAP[ ]CH_HZ_ID_MAP\[\]=' drivers/staging/rt3090/common/rt_channel.c
defsnc 'static[ ]const[ ]UINT32[ ]SHA256_K\[64\][ ]=' drivers/staging/rt3090/common/crpt_sha2.c
defsnc 'DOT11_REGULATORY_INFORMATION[ ]\(USA\|Europe\|Japan\)RegulatoryInfo\[\][ ]=' drivers/staging/rt3090/common/spectrum.c
defsnc 'static[ ]const[ ]USHORT[ ]Sbox\[256\][ ]=' drivers/staging/rt3090/sta/rtmp_ckipmic.c
blob '#include[ ]*["]\(\.\.[/]\)\?firmware\.h["]' 'drivers/staging/rt\(28[67]\|309\)0/common/rtmp_\(init\|mcu\)\.c'
blobna 'FIRMWAREIMAGE_LENGTH[ ]==' drivers/staging/rt3090/common/rtmp_mcu.c
defsnc 'int[ ]wm831x_isinkv_values\[WM831X_ISINK_MAX_ISEL[ ][+][ ][1]\][ ]=' drivers/mfd/wm831x-core.c
defsnc 'static[ ]struct[ ]nand_ecclayout[ ]hwecc4_2048[ ]__initconst[ ]=' drivers/mtd/nand/davinci_nand.c
defsnc 'static[ ]const[ ]u16[ ]wm8974_reg\[WM8974_CACHEREGNUM\][ ]=' sound/soc/codecs/wm8974.c
defsnc 'static[ ]const[ ]u16[ ]ak4642_reg\[AK4642_CACHEREGNUM\][ ]=' sound/soc/codecs/ak4642.c
accept 'int[ ]snd_hda_load_patch([^\n;{]*)[ \n]{\([^}]*\|[^\n}][}]*\)*hda_codec\([^}]*\|[^\n}][}]*\)*request_firmware\([^}]*\|[^\n}][}]*\)*[\n][}]' sound/pci/hda/hda_hwdep.c
accept '[ ][ ][ ]Bit[ 0-7]*' Documentation/input/sentelic.txt
accept 'The[ ]hd-audio[ ]driver[ ]reads[ ]the[ ]file[ ]via[ ]request_firmware[(][)]\.' Documentation/sound/alsa/HD-Audio.txt
blob 'SD8688[ ]firmware:[\n]*\([/]lib[/]firmware[^\n]*[\n]*\)*The[ ]images[^:]*:[\n]*[^\n]*[/]linux-firmware[^\n]*' Documentation/btmrvl.txt
defsnc 'static[ ]u8[ ]ibm405ex_fbdv_multi_bits\[\][ ]=' arch/powerpc/boot/4xx.c
defsnc 'static[ ]int[ ]zoom2_batt_table\[\][ ]=' arch/arm/mach-omap2/board-zoom2.c
defsnc 'static[ ]struct[ ]ad714x_platf\(or\|ro\)m_data[ ]ad714[27]_platf\(or\|ro\)m_data[ ]=' arch/blackfin/mach-bf537/boards/stamp.c
blob 'static[ ]const[ ]u8[ ]lgs8g75_initdat\[\][ ]=[ ][{][^;]*[}][;]' drivers/media/dvb/frontends/lgs8gxx.c
blob 'static[ ]int[ ]lgs8g75_init_data([^\n;{]*)[ \n]{\([^}]*\|[^\n}][}]*\)*lgs8g75_initdat\([^}]*\|[^\n}][}]*\)*[\n][}]' drivers/media/dvb/frontends/lgs8gxx.c
defsc 'static[ ]struct[ ]idxdata[ ]tbl_common_[a-e]\[\][ ]=' 'drivers/media/video/gspca/gl860/gl860-\(mi2020\|mi1320\|ov9655\|ov2640\)\.c'
defsnc 'static[ ]struct[ ]validx[ ]tbl_\(commm\?on\|init_\(at_startup\|post_alt\)\|sensor_settings_common_[ab]\|big_[abc]\|640\|800\)\[\][ ]=' 'drivers/media/video/gspca/gl860/gl860-\(mi2020\|mi1320\|ov9655\|ov2640\).c'
defsnc 'static[ ]u8[ ][*]tbl_\(640\|800\)\[\][ ]=' 'drivers/media/video/gspca/gl860/gl860-\(mi1320\|ov9655\).c'
accept '[<][<]\([/]Subtype[/]Type1\)\?[/]BaseFont[^ ]*[/]FontDescriptor[ ][0-9][0-9]*[ ]0[ ]R\([/]Type[/]Font\)\?[\n]\?[/]FirstChar[ ][0-9][0-9]*[/]LastChar[ ][0-9][0-9]*[/]Widths\[[\n][0-9 \n]*\]' 'Documentation/DocBook/v4l/.*\.pdf'
;;
*/patch*2.6.30*)
initnc '}[ ]bclk_divs\[\][ ]=[ ][{]' sound/soc/codecs/wm8903.c
;;
*/patch*2.6.28-rc*)
# new in 2.6.28
accept '\(static[ ]\)\?const[ ]char[ ]\(inv\)\?parity\[256\][ ]=[ ][{][ \n01,]*[}][;]' 'Documentation/mtd/nand_ecc\.txt\|drivers/mtd/nand/nand_ecc\.c'
defsnc 'static[ ]const[ ]char[ ]\(bitsperbyte\|addressbits\)\[256\][ ]=' drivers/mtd/nand/nand_ecc.c
defsnc 'static[ ]struct[ ]pinmux_cfg_reg[ ]pinmux_config_regs\[\][ ]=' arch/sh/kernel/cpu/sh2a/pinmux-sh7203.c
defsnc '[ ]static[ ]const[ ]u8[ ]e_keymap\[\][ ]=' drivers/hid/hid-lg.c
defsnc '[ ][ ]*struct[ ]phy_reg[ ]phy_reg_init_[01]\[\][ ]=' drivers/net/r8169.c
defsnc 'DEFINE_DEFAULT_PDR[(]0x0161,[ ]256,' drivers/net/wireless/hermes_dld.c
defsnc 'static[ ]const[ ]int[ ]isink_cur\[\][ ]=' drivers/regulator/wm8350-regulator.c
defsnc 'static[ ]const[ ]s16[ ]\(converge_speed_ipb\?\|LAMBDA_table\[4\]\)\[101\][ ]=' drivers/staging/go7007/go7007-fw.c
defsnc 'static[ ]const[ ]u32[ ]addrinctab\[33\]\[2\][ ]=' drivers/staging/go7007/go7007-fw.c
defsnc 'static[ ]const[ ]u8[ ]\(default_intra_quant_table\|\(val\|bits\)_[ad]c_\(lu\|chro\)minance\)\[\][ ]=' drivers/staging/go7007/go7007-fw.c
defsnc 'static[ ]const[ ]int[ ]zz\[64\][ ]=' drivers/staging/go7007/go7007-fw.c
defsnc '[ ]u16[ ]pack\[\][ ]=' drivers/staging/go7007/go7007-fw.c
defsnc 'static[ ]u8[ ]\(initial\|channel\)_registers\[\][ ]=' 'drivers/staging/go7007/wis-\(ov7640\|saa7113\|tw2804\).c'
defsnc 'u16[ ]MTO_One_Exchange_Time_Tbl_[ls]\[MTO_MAX_FRAG_TH_LEVELS\]\[MTO_MAX_DATA_RATE_LEVELS\][ ]=' drivers/staging/winbond/mto.c
defsnc 'u32[ ]\(al2230_txvga_data\|w89rf242_txvga_old_mapping\)\[\]\[2\][ ]=' drivers/staging/winbond/reg.c
defsnc 'static[ ]const[ ]UINT16[ ]crc16tab\[256\][ ]=' drivers/staging/wlan-ng/hfa384x.c
defsnc 'static[ ]const[ ]UINT32[ ]wep_crc32_table\[256\][ ]=' drivers/staging/wlan-ng/p80211wep.c
defsnc 'static[ ]const[ ]unsigned[ ]char[ ]wm_vol\[256\][ ]=' sound/pci/ice1712/phase.c
defsnc 'static[ ]const[ ]u16[ ]wm8900_reg_defaults\[WM8900_MAXREG\][ ]=' sound/soc/wm8900.c
defsnc '[}][ ]\(clk_sys_ratios\|bclk_divs\)\[\][ ]=' sound/soc/wm8903.c
defsnc 'static[ ]u8[ ]af9015_ir_table_\(leadtek\|twinhan\|a_link\|msi\|mygictv\|kworld\)\[\][ ]=' drivers/media/dvb/dvb-usb/af9015.h
defsnc 'static[ ]struct[ ]snr_table[ ]\(qpsk\|qam\(16\|64\)\)_snr_table\[\][ ]=' drivers/media/dvb/frontends/af9013_priv.h
defsnc 'static[ ]struct[ ]regdesc[ ]\(ofsm_init\|tuner_init_\(env77h11d5\|mt2060\(_2\)\?\|mxl500\(3d\|5\)\|qt1010\|mc44s803\|unknown\|tda18271\)\)\[\][ ]=' drivers/media/dvb/frontends/af9013_priv.h
defsnc 'static[ ]u8[ ]stv0288_earda_inittab\[\][ ]=' drivers/media/dvb/frontends/eds1547.h
defsnc 'static[ ]u8[ ]serit_sp1511lhb_inittab\[\][ ]=' drivers/media/dvb/frontends/si21xx.c
defsnc 'static[ ]u8[ ]stv0288_inittab\[\][ ]=' drivers/media/dvb/frontends/stv0288.c
blobname 'haup-ir-blaster\.bin' drivers/input/lirc/lirc_zilog.c
# Non-Free license in entire file.
blob 'static[ ]unsigned[ ]char[ ]xilinx_firm\(_4610\)\?\[\][ ]=[ ][{]'"$sepx$blobpat*$sepx"'[}][;]' 'drivers/staging/me4000/me4\(00\|61\)0_firmware\.h' # CONFIG_ME4000
# Deblobbing needed.
blob 'static[ ]u8[ ]\(Mojave\|Oasis\)UCode\[2\]\[65536\][ ]='"$sepx$blobpat*$sepx"'[;]' 'drivers/staging/slicoss/\(gb\|oasis\(dbg\)\?\)download\.h' # CONFIG_SLICOSS
blob 'static[ ]u8[ ]\(GB\|Oasis\)RcvUCode\[2560\][ ]='"$sepx$blobpat*$sepx"'[;]' 'drivers/staging/slicoss/\(gb\|oasis\)rcvucode\.h' # CONFIG_SLICOSS
blob 'static[ ]unsigned[ ]char[ ]SaharaUCode\[2\]\[57972\][ ]='"$sepx$blobpat*$sepx"'[;]' drivers/staging/sxg/saharadbgdownload.h # CONFIG_SXG
blob 'static[ ]PHY_UCODE[ ]PhyUcode\[\][ ]=[^;]*[;]' drivers/staging/sxg/sxgphycode.h # CONFIG_SXG
# ok from earlier releases
accept 'for[ ]i[ ]in[ ][ 0-9\\\n]*[\n]do' 'Documentation/specialix.txt|Documentation/serial/specialix.txt'
defsnc 'static[ ]yyconst[ ]flex_int\(16\|32\)_t[ ]yy_[^[]*\[[0-9]*\][ ]=' '.*\.lex\.c_shipped'
defsnc 'static[ ]const[ ]yytype_u\?int\(8\|16\)[ ]yy[^\n []*\[\][ ]=' '.*\.lex\.c_shipped'
initnc '[;][/][*]@@[ ]-[0-9]*,[0-9]*[ ][+][0-9]*,[0-9]*[ ]@@[ ]static[ ]const[ ]yytype_u\?int\(8\|16\)[ ]yy[^\n []*\[\][ ]=[*][/][;]' '.*\.tab\.c_shipped'
defsnc 'static[ ]struct[ ]cipher_testvec[ ]\(aes\|anubis\|bf\|camellia\|cts_mode\|des3_ede\|cast6\|salsa20_stream\|serpent\|tf\|tnepres\|xeta\|x\?tea\)\(_\(cbc\|ctr\|xts\)\)\?_\(enc\|dec\)_tv_template\[\][ ]=' 'crypto/\(tcrypt\|testmgr\).h'
defsnc 'static[ ]struct[ ]comp_testvec[ ]\(deflate\|lzo\)_\(de\)\?comp_tv_template\[\][ ]=' 'crypto/\(tcrypt\|testmgr\).h'
defsnc 'static[ ]struct[ ]hash_testvec[ ]\(aes_xcbc128\|crc32c\|hmac_sha2\(24\|56\)\|\(sha\|wp\)\(256\|384\|512\)\)_tv_template\[\][ ]=' 'crypto/\(tcrypt\|testmgr\).h'
defsnc 'static[ ]\(const[ ]\)\?RegInitializer[ ]initData\[\][ ]__initdata[ ]=' 'drivers/ide/ali14xx\.c\|drivers/ide/legacy/ali14xx\.c'
defsnc 'static[ ]const[ ]u8[ ]setup\[\][ ]=' 'drivers/ide/pci/delkin_cb\.c\|drivers/ide/delkin_cb\.c'
defsnc 'static[ ]u8[ ]cvs_time_value\[\]\[XFER_UDMA_6[ ]-[ ]XFER_UDMA_0[ ][+][ ]1\][ ]=' 'drivers/ide/sis5513\.c\|drivers/ide/pci/sis5513\.c'
defsnc 'static[ ]u8[ ]\(act\|ini\|rco\)_time_value\[\]\[8\][ ]=' 'drivers/ide/sis5513\.c\|drivers/ide/pci/sis5513\.c'
defsnc 'static[ ]const[ ]u8[ ]speedtab[ ]\[3\]\[12\][ ]=' 'drivers/ide/umc8672\.c\|drivers/ide/legacy/umc8672\.c'
initnc 'static[ ]const[ ]__u8[ ]\(effects\|gamma\)_table\[\(MAX_[A-Z]*\|[A-Z]*_MAX\)\]\[[0-9]*\][ ]=' drivers/media/video/gspca/t631.c
defsnc 'static[ ]const[ ]s8[ ]\(b43\(legacy\)\?\|bcm43xx\)_tssi2dbm_[bg]_table\[\][ ]=' net/wireless/b43/phy.c
accept '#define[ ]_MAP_0_32_ASCII_SEG7_NON_PRINTABLE[ ]\\[\n][ ]\(0,\)\+'"$eol" 'drivers/input/misc/map_to_7segment\.h\|include/linux/map_to_7segment\.h'
accept '[ * ]*0[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]1[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]2[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]3[\n][ * ]*0[ ]1[ ]2[ ]3[ ]4[ ]5[ ]6[ ]7[ ]8[ ]9[ ]0[ ]1[ ]2[ ]3[ ]4[ ]5[ ]6[ ]7[ ]8[ ]9[ ]0[ ]1[ ]2[ ]3[ ]4[ ]5[ ]6[ ]7[ ]8[ ]9[ ]0[ ]1' 'net/\(netfilter\|ipv4\)/ipvs/ip_vs_sync.c|net/sctp/sm_make_chunk.c|include/linux/scpt.h'
defsnc 'static[ ]const[ ]unsigned[ ]char[ ]wm_vol\[256\][ ]=' sound/pci/ice1712/phase.c
defsnc 'static[ ]const[ ]char[ ]zr360[56]0_dht\[0x1a4\][ ]=' 'drivers/media/video/zr36060\.c\|drivers/media/video/zoran/zr36060\.c'
defsnc 'static[ ]const[ ]char[ ]zr360[56]0_dqt\[0x86\][ ]=' 'drivers/media/video/zr36060\.c\|drivers/media/video/zoran/zr36060\.c'
# These are removed in 2.6.28, they're here so --reverse-patch tests pass.
defsnc 'static[ ]unsigned[ ]char[ ]irq_xlate\[32\][ ]=' arch/sparc/kernel/sun4m_irq.c
defsnc 'static[ ]int[ ]logitech_expanded_keymap\[LOGITECH_EXPANDED_KEYMAP_SIZE\][ ]=' drivers/hid/hid-input.c
initc '[ ]static[ ]const[ ]__u8[ ]\(read_indexs\|n\(set\)\?[0-9]*\|missing\)\[[0-9x]*\][ ]=' drivers/media/video/gspca/t613.c
defsnc 'static[ ]const[ ]u_char[ ]nand_ecc_precalc_table\[\][ ]=' drivers/mtd/nand/nand_ecc.c
oprepline '#define[ ]AR5K_RATES_\(11[ABG]\|TURBO\|XR\)[ ]' drivers/net/wireless/ath5k/ath5k.h
defsnc 'static[ ]const[ ]struct[ ]ath_hal[ ]ar5416hal[ ]=' drivers/net/wireless/ath9k/hw.c
defsnc 'const[ ]unsigned[ ]char[ ]INIT_2\[127\][ ]=' drivers/video/omap/lcd_sx1.c
initc '[;][/][*]@@[ ]-[0-9]*,[0-9]*[ ][+][0-9]*,[0-9]*[ ]@@[ ]static[ ]const[ ]__u8[ ]ov7630_sensor_init\[\]\[8\][ ]=[ ][{][*][/][;]' drivers/media/video/gspca/sonixj.c
;;
*/patch*2.6.27-rc* | */patch*2.6.26-git* | */git-linus.diff)
accept '[ ]\.section[ ]__ex_table,["]a["]'"$sepx$blobpat*" 'arch/x86/lib/copy_user_\(nocache_\)\?64.S'
initnc 'static[ ]struct[ ]cipher_testvec[ ]des3_ede_cbc_\(enc\|dec\)_tv_template\[\][ ]=' crypto/tcrypt.h
accept 'desc_config1:[\n][ ]\.byte[ ]0x09,[ ]0x02'"$sepx$blobpat*" 'firmware/keyspan_pda/\(keyspan_pda\|xircom_pgs\).S'
accept 'string_mfg:[\n]\?\([;]\?[ ]\.byte[^\n]*[\n]\)\+string_mfg_end:' 'firmware/keyspan_pda/\(keyspan_pda\|xircom_pgs\).S'
accept 'string_product:[\n]\?\([;]\?[ ]\.byte[^\n]*[\n]\)\+string_product_end:' 'firmware/keyspan_pda/\(keyspan_pda\|xircom_pgs\).S'
accept ':03000000020200F9[\n]:040023000205\(9B0037\|5F0073\)[\n]\(:050030000000000000CB[\n]\|:0400430002010000B6[\n]\)*'"$sepx$blobpat*"'[\n]:\(0E06E0006400670065007400060334003700F4\|0606A000060334003700E0\)[\n]:00000001FF[\n]' 'firmware/keyspan_pda/\(keyspan_pda\|xircom_pgs\).HEX'
accept ':100000000C004000000000000000000000000000A4[\n]'"$sepx$blobpat*"'[\n][/][*][ ]DSP56001[ ]bootstrap[ ]code[ ][*][/]' firmware/dsp56k/bootstrap.bin.ihex
initnc 'static[ ]const[ ]u16[ ]uda1380_reg\[UDA1380_CACHEREGNUM\][ ]=' sound/soc/codecs/uda1380.c
initnc 'static[ ]const[ ]u16[ ]wm8510_reg\[WM8510_CACHEREGNUM\][ ]=' sound/soc/codecs/wm8510.c
initnc 'static[ ]const[ ]unsigned[ ]short[ ]atkbd_set[23]_keycode\[512\][ ]=' drivers/input/keyboard/atkbd.c
initnc 'static[ ]const[ ]unsigned[ ]short[ ]atkbd_unxlate_table\[128\][ ]=' drivers/input/keyboard/atkbd.c
initnc 'static[ ]const[ ]unsigned[ ]char[ ]usb_kbd_keycode\[256\][ ]=' drivers/hid/usbhid/usbkbd.c
initnc '[ ][ ]u8[ ]buf,[ ]bufs\[\][ ]=' drivers/media/dvb/dvb-usb/cxusb.c
initnc 'static[ ]struct[ ]dvb_pll_desc[ ][^\n]*[ ]=' drivers/media/dvb/frontends/dvb-pll.c
initnc '[ ]static[ ]int[ ]sysdiv_to_div_x_2\[\][ ]=' arch/powerpc/platforms/512x/clock.c
defsnc 'static[ ]const[ ]__u8[ ]cx_inits_\(176\|320\|352\|640\)\[\][ ]=' drivers/media/video/gspca/conex.c
defsnc 'static[ ]const[ ]__u8[ ]cx_jpeg_init\[\]\[8\][ ]=' drivers/media/video/gspca/conex.c
defsnc 'static[ ]const[ ]__u8[ ]cxjpeg_\(640\|352\|320\|176\|qtable\)\[\]\[8\][ ]=' drivers/media/video/gspca/conex.c
initnc 'static[ ]const[ ]unsigned[ ]char[ ]quant\[\]\[0x88\][ ]=' drivers/media/video/gspca/jpeg.h
initnc 'static[ ]unsigned[ ]char[ ]huffman\[\][ ]=' drivers/media/video/gspca/jpeg.h
initc '[ ]\?static[ ]const[ ]struct[ ]ov_i2c_regvals[ ]norm_76[1247]0\[\][ ]=' drivers/media/video/gspca/ov519.c
initnc 'static[ ]const[ ]__u8[ ]pac207_sensor_init\[\]\[8\][ ]=' drivers/media/video/gspca/pac207.c
initnc 'static[ ]const[ ]__u8[ ]pac7311_jpeg_header\[\][ ]=' drivers/media/video/gspca/pac7311.c
initnc 'static[ ]const[ ]__u8[ ]\(start\|page[34]\)_73\(02\|11\)\[\][ ]=' drivers/media/video/gspca/pac7311.c
initnc 'static[ ]const[ ]__u8[ ]init\(Hv7131\|Ov\(6650\|7630\(_3\)\?\)\|Pas\(106\|202\)\|Tas51[13]0\)\[\][ ]=' drivers/media/video/gspca/sonixb.c
initnc 'static[ ]const[ ]__u8[ ]\(hv7131\|ov\(6650\|7630\(_3\)\?\)\|pas\(106\|202\)\|tas51[13]0\)_sensor_init\(_com\)\?\[\]\[8\][ ]=' drivers/media/video/gspca/sonixb.c
defsnc 'static[ ]\(const[ ]\)\?__u8[ ]\(hv7131r\|mi0360\|mo4000\|ov76\([36]0\|48\)\|om6802\)_sensor_init\[\]\[8\][ ]=' drivers/media/video/gspca/sonixj.c
initnc 'static[ ]const[ ]__u8[ ]qtable4\[\][ ]=' drivers/media/video/gspca/sonixj.c
initnc 'static[ ]const[ ]__u16[ ]\(spca500_visual\|Clicksmart510\)_defaults\[\]\[3\][ ]=' drivers/media/video/gspca/spca500.c
initnc 'static[ ]const[ ]__u8[ ]qtable_\(creative_pccam\|kodak_ez200\|pocketdv\)\[2\]\[64\][ ]=' drivers/media/video/gspca/spca500.c
initnc 'static[ ]const[ ]__u16[ ]spca501c\?_\(\(3com\|arowana\|mysterious\)_\)\?\(init\|open\)_data\[\]\[3\][ ]=' drivers/media/video/gspca/spca501.c
defsnc 'static[ ]const[ ]\(__u16\|u8\)[ ]spca505b\?_\(init\|open\)_data\(_ccd\)\?\[\]\[3\][ ]=' drivers/media/video/gspca/spca505.c
initnc 'static[ ]const[ ]__u16[ ]spca508\(cs110\|_sightcam2\?\|_vista\)\?_init_data\[\]\[3\][ ]=' drivers/media/video/gspca/spca508.c
initnc 'static[ ]const[ ]__u16[ ]spca561_init_data\[\]\[2\][ ]=' drivers/media/video/gspca/spca561.c
initnc 'static[ ]const[ ]__u16[ ]spca504\(_pccam600\|A_clicksmart420\)_\(init\|open\)_data\[\]\[3\][ ]=' drivers/media/video/gspca/sunplus.c
initnc 'static[ ]const[ ]__u8[ ]qtable_\(creative_pccam\|spca504_default\)\[2\]\[64\][ ]=' drivers/media/video/gspca/sunplus.c
initnc 'static[ ]const[ ]__u8[ ]\(effects\|gamma\)_table\[MAX_[A-Z]*\]\[[0-9]*\][ ]=' drivers/media/video/gspca/t631.c
initnc 'static[ ]const[ ]__u8[ ]tas5130a_sensor_init\[\]\[8\][ ]=' drivers/media/video/gspca/t613.c
defsnc '[ ]static[ ]const[ ]\(__\)\?u8[ ]\(read_indexs\|n\(set\)\?[0-9]*\(_other\)\?\|missing\)\[[0-9x]*\][ ]=' drivers/media/video/gspca/t613.c
defsnc 'static[ ]const[ ]__u8[ ]\(mi13[12]0\|po3130\|hv7131r\|ov76[67]0\)_\(\(soc\)\?initQ\?VGA_\(JPG\|data\)\|rundata\)\[\]\[4\][ ]=' drivers/media/video/gspca/vc032x.c
initnc 'static[ ]const[ ]struct[ ]usb_action[ ]\(cs2102\|hdcs2020xx\|icm105axx\|ov7630c\|pb0330[3x]x\)_Initial\(Scale\)\?\[\][ ]=' drivers/media/video/gspca/zc3xx.c
initnc 'static[ ]const[ ]u8[ ]rtl8225z2_agc\[\][ ]=' drivers/net/wireless/rtl8187_rtl8225.c
initnc 'static[ ]const[ ]u8[ ]rtl8225z2_ofdm\[\][ ]=' drivers/net/wireless/rtl8187_rtl8225.c
initnc 'static[ ]const[ ]u8[ ]rtl8225z2_tx_power_cck\[\][ ]=' drivers/net/wireless/rtl8187_rtl8225.c
initnc 'static[ ]const[ ]u8[ ]rtl8225z2_tx_power_cck_ch14\[\][ ]=' drivers/net/wireless/rtl8187_rtl8225.c
initnc 'static[ ]const[ ]__u16[ ]t10_dif_crc_table\[256\][ ]=' lib/crc-t10dif.c
initnc 'static[ ]crb_128M_2M_block_map_t[ ]crb_128M_2M_map\[64\][ ]=' drivers/net/netxen/netxen_hw.c
initnc 'static[ ]const[ ]__u16[ ]crc10_table\[256\][ ]=' drivers/usb/serial/safe_serial.c
accept '[ ]*\([ ]*0\)*\([ ]*1\)*[\n][ ]*0[ ]1[ ]2[ ]3[ ]4[ ]5[ ]6[ ]7[ ]8[ ]9[ ]0[ ]1[ ]*2[ ]3[ ]4[ ]5[ ]6[ ]7' 'Documentation/bt8xxgpio.txt'
initnc '[ ]static[ ]int[ ]exp_lut\[256\][ ]=' drivers/isdn/mISDN/dsp_audio.c
initnc 'static[ ]const[ ]u32[ ]bf_pbox\[16[ ][+][ ]2\][ ]=' drivers/isdn/mISDN/dsp_blowfish.c
initnc 'static[ ]const[ ]u32[ ]bf_sbox\[256[ ][*][ ]4\][ ]=' drivers/isdn/mISDN/dsp_blowfish.c
initnc 'static[ ]u8[ ]sample_\(german_\(all\|old\)\|american_\(dialtone\|ringing\|busy\)\|special[123]\|silence\)\[\][ ]=' drivers/isdn/mISDN/dsp_tones.c
initnc 'struct[ ]pattern[ ][{][^}]*int[ ]tone[;][^}]*[}][ ]pattern\[\][ ]=' drivers/isdn/mISDN/dsp_tones.c
initnc 'static[ ]u8[ ]\([au]\|_4\)law_to_\([ua]law\|4bit\)\[256\][ ]=' drivers/isdn/mISDN/l1oip_codec.c
initnc 'static[ ]unsigned[ ]char[ ]banner_table\[\][ ]=' arch/sh/boards/mach-microdev/led.c
initnc '[;][/][*]@@[ ]-[0-9]*,[0-9]*[ ][+][0-9]*,[0-9]*[ ]@@[ ]static[ ]const[ ]\(yytype_u\?int\(8\|16\)\|\(unsigned[ ]\)\?\(short\([ ]int\)\?\|char\)\)[ ]yy[^[]*\[\][ ]=[*][/][;]' scripts/genksyms/parse.c_shipped
accept 'irq_prio_\([hdl]\|l[cd]\):'"$sepx$blobpat*" arch/arm/inlcude/asm/hardware/entry-macro-iomd.S
defsnc '[ ]static[ ]const[ ]int[ ]desc_idx_table\[\][ ]=' arch/arm/include/asm/hardware/iop3xx-adma.h
defsnc '[;][/][*]@@[ ]-[0-9]*,[0-9]*[ ][+][0-9]*,[0-9]*[ ]@@[ ]static[ ]const[ ]__u8[ ]\(hv7131r\|mi0360\|mo4000\|ov76\(60\|48\)\)_sensor_init\[\]\[8\][ ]=[ ][{][*][/][;]' drivers/media/video/gspca/sonixj.c
defsnc 'static[ ]const[ ]struct[ ]ath_hal[ ]ar5416hal[ ]=' drivers/net/wireless/ath9k/hw.c
defsnc 'static[ ]\(const[ ]\)\?u32[ ]ar\(5416\|9280\)\(Modes\(_fast_clock\)\?\|Common\|BB_RfGain\|Bank6\(TPC\)\?\|Addac\)\(_91[06]0\(1_1\)\?\|_9280\(_2\)\?\)\?\[\]\[[236]\][ ]=' drivers/net/wireless/ath9k/initvals.h
;;
*/linux-2.6-gspca-git.patch)
# Probably for 2.6.28 or .29.
initnc 'static[ ]const[ ]__u8[ ]ov\(534\|772x\)_reg_initdata\[\]\[2\][ ]=' drivers/media/video/gspca/ov534.c
defsc 'static[ ]const[ ]\(__\)\?u8[ ]\(mi\(0360\|13[12]0\)\|po\(1200\|3130\)\|hv7131r\|ov76[67]0\)_\(\(soc\)\?_\?[iI]nit\(Q\?V\|SX\)GA\(_\(JPG\|data\)\)\?\|rundata\)\[\]\[4\][ ]=' drivers/media/video/gspca/vc032x.c
# Already in 2.6.27.
initnc 'static[ ]const[ ]__u8[ ]initOv6650\[\][ ]=' drivers/media/video/gspca/sonixb.c
initnc '[ ][/][*][ ]Some[ ]more[ ]unknown[ ]stuff[ ][*][/]' drivers/media/video/gspca/sonixb.c
defsnc 'static[ ]const[ ]__u8[ ]ov7648_sensor_init\[\]\[8\][ ]=' drivers/media/video/gspca/sonixj.c
# No merge needed
defsnc '#if[ ]0[\n][ ][{]0x30,[ ]0x0154,[ ]0x0008[}],' drivers/media/video/gspca/sunplus.c
;;
*/linux*alsa*.patch)
defsnc 'static[ ]u8[ ]tas3004_treble_table\[\][ ]=' sound/aoa/codecs/tas-basstreble.h
defsnc 'static[ ]const[ ]unsigned[ ]char[ ]wm_vol\[256\][ ]=' sound/pci/ice1712/phase.c
defsnc 'static[ ]const[ ]u16[ ]wm8900_reg_defaults\[WM8900_MAXREG\][ ]=' sound/soc/wm8900.c
defsnc '[}][ ]\(clk_sys_ratios\|bclk_divs\)\[\][ ]=' sound/soc/wm8903.c
;;
*/patch*2.6.26-rc*)
initnc 'static[ ]u64[ ]vec2off\[68\][ ]=' arch/ia64/kvm/process.c
initnc "[ ][ ][ ]interrupts[ ]=[ ]<\\(0x\\)\\?3[ ]\\(0x\\)\\?0[ ]\\(0x\\)\\?0[ ][ ]$blobpat*>[;]" 'arch/powerpc/boot/dts/\(cm5200\|lite5200b\?\|kuroboxHG\|pcm030\|tqm5200\).dts'
initnc 'static[ ]const[ ]u32[ ]crctab32\[\][ ]=' arch/x86/boot/tools/build.c
initnc 'static[ ]const[ ]u64[ ]sha512_K\[80\][ ]=' 'crypto/sha512\(_generic\)\?.c'
initnc 'static[ ]struct[ ]hash_testvec[ ]\(hmac_sha\(224\|256\)\|aes_xcbc128\|crc32c\)_tv_template\[\][ ]=' crypto/tcrypt.h
initnc 'static[ ]struct[ ]cipher_testvec[ ]\(bf_cbc\|serpent\|tnepres\|aes\(_\(cbc\|ctr\|xts\)\)\?\|x\?tea\|anubis\(_cbc\)\?\|xeta\|camellia_cbc\|cts_mode\)_\(enc\|dec\)_tv_template\[\][ ]=' crypto/tcrypt.h
initnc '[ ][ ]\.\(digest\|entries\|input\|key\|output\|plaintext\|result\)[ ]*=[ ][{"]' crypto/tcrypt.h
initnc 'static[ ]const[ ]u8[ ]speedtab[ ]\[3\]\[12\][ ]=' drivers/ide/legacy/umc8672.c
initnc 'static[ ]u8[ ]cvs_time_value\[\]\[XFER_UDMA_6[ ]-[ ]XFER_UDMA_0[ ][+][ ]1\][ ]=' drivers/ide/pci/sis5513.c
initnc 'static[ ]u8[ ]\(ini\|act\|rco\)_time_value\[\]\[8\][ ]=' drivers/ide/pci/sis5513.c
initnc 'static[ ]u8[ ]mt2131_config1\[\][ ]=' drivers/media/common/tuners/mt2131.c
initnc 'static[ ]u8[ ]mt2266_init2\[\][ ]=' drivers/media/common/tuners/mt2266.c
initnc 'u16[ ]e1000_igp_cable_length_table\[IGP01E1000_AGC_LENGTH_TABLE_SIZE\][ ]=' drivers/net/e1000/e1000_hw.c
initnc '\(uint16_t\|u16\)[ ]e1000_igp_2_cable_length_table\[IGP02E1000_AGC_LENGTH_TABLE_SIZE\][ ]=' drivers/net/e1000/e1000_hw.c # u16 on 2.6.26
oprepline '#define[ ]AR5K_RATES_11[ABG][ ]' drivers/net/wireless/ath5k/ath5k.h
oprepline '[ ][{][ ]1,[ ]MODULATION_XR,[ ]1000,[ ]2,[ ]139,[ ]1[ ][}],[ ]' drivers/net/wireless/ath5k/ath5k.h
initnc 'static[ ]const[ ]struct[ ]ath5k_ini_mode[ ]rf\(5413\|24\(13\|25\)\)_ini_mode_end\[\][ ]=' drivers/net/wireless/ath5k/initvals.c
initnc 'static[ ]yyconst[ ]flex_int\(16\|32\)_t[ ]yy_[^[]*\[[0-9]*\][ ]=' '.*\.lex\.c_shipped'
initnc 'static[ ]const[ ]yytype_u\?int\(8\|16\)[ ]yy[^\n []*\[\][ ]=' '.*\.lex\.c_shipped'
# new in 2.6.26
defsnc 'static[ ]struct[ ]mse2snr_tab[ ]\(vsb\|qam\(64\|256\)\)_mse2snr_tab\[\][ ]=' drivers/media/dvb/frontends/au8522.c
defsnc '[}][ ]\(VSB\|QAM\)_mod_tab\[\][ ]=' drivers/media/dvb/frontends/au8522.c
initnc '[}][ ]itd1000_\(lpf_pga\|fre_values\)\[\][ ]=' drivers/media/dvb/frontends/itd1000.c
initnc '[}][ ]\(vsb\|qam\(64\|256\)\)_snr_tab\[\][ ]=' drivers/media/dvb/frontends/s5h1411.c
initnc '[}][ ]snr_tab\[\][ ]=' drivers/media/dvb/frontends/tda10048.c
initnc '[ ]static[ ]const[ ]u8[ ]biphase_tbl\[\][ ]=' drivers/media/video/cx18/cx18-av-vbi.c
initnc '[ ]static[ ]const[ ]u8[ ]mpeg_hdr_data\[\][ ]=' drivers/media/video/cx18/cx18-vbi.c
initnc 'static[ ]u32[ ]reg_init_initialize\[\][ ]=' drivers/media/video/saa717x.c
initnc '[ ][}][ ]vals\[\][ ]=' drivers/media/video/saa717x.c
initnc 'static[ ]const[ ]u32[ ]\(main\|gear\)_seedset\[BACKOFF_SEEDSET_ROWS\]\[BACKOFF_SEEDSET_LFSRS\][ ]=' drivers/net/forcedeth.c
blob 'unsigned[ ]char[ ]\(IDX_ACTIVATE_\(READ\|WRITE\)\|\(CM\|ULP\)_\(ENABLE\|SETUP\)\|DM_ACT\)[ ]=[ ]'"$sepx$blobpat*$sepx[;]" drivers/s390/net/qeth_core_mpc.c # from drivers/s390/net/qeth_mpc.c in 2.6.25
initnc '[}][ ]pll_table\[\][ ]=' drivers/video/geode/lxfb_ops.c
accept "[ ][ ][{][ ]0x00014284,[ ][ ]19688[ ][}],[\n][ ][ ][{][ ]0x00011104,[ ][ ]20400[ ][}],[\n][ ][ ][{][ ]$blobpat*[ ][}]," drivers/video/geode/lxfb_ops.c # won't be necessary in rc3
initnc 'static[ ]const[ ]u16[ ]wm9713_reg\[\][ ]=' sound/soc/codecs/wm9713.c
accept 'P[13]\([\n]#[^\n]*\)*[\n]*\([\n][0-9 ]*\)\+' drivers/video/logo/logo_blackfin_clut224.ppm
;;
*/patch*2.6.25-rc*)
initnc '[;][/][*]@@[ ]-[0-9]*,[0-9]*[ ][+][0-9]*,[0-9]*[ ]@@[ ]static[ ]uchar[ ]sbox\[8\]\[4\]\[16\][ ]=[ ][{][*][/][;]'
accept '[ ][$]3[ ]=[ ][{][{]pge[ ]=[ ][{][{]ste[ ]=[ ][{]\(\([0-9][0-9a-fx{},\n ]*\|\(pge\|ste\)[ ]=\|<repeats[ ][0-9]\+[ ]times>\)[{},\n ]*\)*<repeats[ ]11 times>[}]'"$eol"
initnc 'static[ ]yyconst[ ]flex_int\(16\|32\)_t[ ]yy_[^[]*\[[0-9]*\][ ]='
initnc 'static[ ]const[ ]yytype_u\?int\(8\|16\)[ ]yy[^[]*\[\][ ]='
initnc '[ ]int[ ]bcomm_irq\[3[*]16\][ ]='
initnc '[ ]static[ ]const[ ]int8[ ]countLeadingZerosHigh\[\][ ]='
initnc 'static[ ]unsigned[ ]long[ ]shmedia_opcode_table\[64\][ ]='
initnc 'u_char[ ]const[ ]data_sizes_16\[32\][ ]='
initnc 'static[ ]u_char[ ]const[ ]data_sizes_32\[32\][ ]='
initnc '[ ][ ]\.\(digest\|entries\|input\|key\|output\|plaintext\|result\)[ ]*=[ ][{]'
initnc 'static[ ]struct[ ][^\n]*_testvec[ ][^\n]*_tv_template\[\][ ]='
initnc 'static[ ]struct[ ]nic_qp_map[ ]nic_qp_mapping_[01]\[\][ ]='
initnc 'static[ ]u8[ ]mt2266_init2\[\][ ]='
initnc 'static[ ]struct[ ]regval[ ]ov_initvals\[\][ ]='
initnc 'static[ ]struct[ ]regval[ ]stk1125_initvals\[\][ ]='
initnc 'static[ ]u8[ ]bnx2x_stats_len_arr\[BNX2X_NUM_STATS\][ ]='
initnc 'static[ ]const[ ]struct[ ]arb_line[ ]read_arb_data\[NUM_RD_Q\]\[MAX_RD_ORD[ ][+][ ]1\][ ]='
initnc 'static[ ]const[ ]struct[ ]arb_line[ ]write_arb_data\[NUM_WR_Q\]\[MAX_WR_ORD[ ][+][ ]1\][ ]='
initnc 'uint16_t[ ]e1000_igp_cable_length_table\[IGP01E1000_AGC_LENGTH_TABLE_SIZE\][ ]='
initnc 'uint16_t[ ]e1000_igp_2_cable_length_table\[IGP02E1000_AGC_LENGTH_TABLE_SIZE\][ ]='
oprepline '#define[ ]AR5K_RATES_11\([ABG]\|TURBO\|XR\)[ ]' drivers/net/wireless/ath5k/ath5k.h
initnc '[ ][ ][}][ ]blinkrates\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]ath5k_ini[ ]ar5212_ini\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]ath5k_ini_rf[ ]rfregs_5111\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]ath5k_ini_rf[ ]rfregs_5112\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]ath5k_ini_rf[ ]rfregs_5112a\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]ath5k_ini_rf[ ]rfregs_5413\[\][ ]='
initnc 'static[ ]const[ ]u16[ ]rtl8225bcd_rxgain\[\][ ]='
initnc 'static[ ]const[ ]u8[ ]rtl8225_agc\[\][ ]='
initnc 'static[ ]const[ ]u8[ ]rtl8225_tx_power_cck\[\][ ]='
initnc 'static[ ]const[ ]u8[ ]rtl8225_tx_power_cck_ch14\[\][ ]='
initnc 'static[ ]const[ ]u16[ ]rtl8225z2_rxgain\[\][ ]='
accept '[ ][ ][ ][ ][ ]\([ ]49,\)*[\n]\([ 0-9,]*[\n]\)*[ ][ ][ ][ ][ ]\( 49,\)*'"$eol"
initnc 'static[ ]const[ ]unsigned[ ]char[ ]wm_vol\[256\][ ]='
accept 'domain<N>[ ]<cpumask>[ ]1[ ]2[ ]3[ ]4[ ]5[ ]6[ ]7[ ]8[ ]9[ ]10[ ]11[ ]12[ ]13[ ]14[ ]15[ ]16[ ]17[ ]18[ ]19[ ]20[ ]21[ ]22[ ]23[ ]24[ ]25[ ]26[ ]27[ ]28[ ]29[ ]30[ ]31[ ]32[ ]33[ ]34[ ]35 36'"$eol"
# drivers/net/e1000e/phy.c
initnc 'static[ ]const[ ]u16[ ]e1000_igp_2_cable_length_table\[\][ ]='
accept '[ ]24[ ]=>[ ]\[[\n]\([^\n]*[\n]\)*[ ]\]\(,[ ][0-9]\+[ ]=> \[\)\?'"$eol"
accept '[ ][ ]'"'"'0x[^\n]*[\n]\([^\n]*[\n]\)*[ ]\]\(,[ ][0-9]\+[ ]=> \[\)\?'"$eol"
initnc 'const[ ]u\(8\|16\|32\)[ ]b43_ntab_\(\(adjustpower\|estimatepowerlt\|gainctl\|iqlt\|loftlt\|noisevar1\|tdi[24]0a\)[01]\|channelest\|frame\(lookup\|struct\)\|mcs\|pilot\|tdtrn\|tmap\)\[\][ ]='
;;
*/*drm*.patch)
defsnc 'const[ ]u32[ ]r[67]xx_default_state\[\] =' drivers/gpu/drm/radeon/r600_blit_shaders.c
defsnc 'struct nv17_tv_norm_params nv17_tv_norms\[NUM_TV_NORMS] =' drivers/gpu/drm/nouveau/nv17_tv_modes.c
defsnc 'static[ ]int[ ]atom_dst_to_src\[8\]\[4\][ ]=' drivers/gpu/drm/radeon/atom.c
blobname 'matrox[/]g[24]00_warp\.fw' drivers/gpu/drm/mga/mga_warp.c
blobname 'r128[/]r128_cce\.bin' drivers/gpu/drm/r128/r128_cce.c
blobname 'radeon[/]R\([123]0\|[45]2\|S6[09]\)0_cp\.bin' drivers/gpu/drm/radeon/r100.c
blobname 'radeon[/]\(R\(60\|V6[1237]\|S7[1378]\)[05]\|%s\)_\(pfp\|me\)\.bin' drivers/gpu/drm/radeon/r600.c
# linux-2.6-drm-i915-modeset.patch, nouveau-drm*.patch,
# drm-fedora9-rollup.patch
initnc 'static[ ]const[ ]u32[ ]filter_table\[\][ ]=' drivers/char/drm/intel_tv.c
defsnc '\(static[ ]uint32_t\|[}]\)[ ]nv04_graph_ctx_regs[ ]\?\[\][ ]=' drivers/char/drm/nv04_graph.c
defsnc 'static[ ]int[ ]nv1[07]_graph_ctx_regs[ ]\?\[\][ ]=' drivers/char/drm/nv10_graph.c
defsnc '[ ][}][ ]common_modes\[17\][ ]=' drivers/gpu/drm/radeon/radeon_connectors.c
# Although the developers of the drivers are not trying to stop
# anyone from modifying it or understanding it, they acknowledge
# these are bits of code, obtained through mmio interactions.
# This means these blobs are not source code, AND original authors
# of the blobs have power to stop others from modifying them.
# Non-Free Software, for sure.
# initnc 'static[ ]uint32_t[ ]nv\(4[013467ace]\|49_4b\|8[46]\)_ctx_\(voodoo\|prog\)\[\][ ]=' 'drivers/char/drm/nv40_graph.c|.*'
;;
*/linux-2.6*-lirc.patch | */lirc-*.patch)
defsnc 'const[ ]unsigned[ ]char[ ]map_table\[\][ ]=' drivers/input/lirc/lirc_ttusbir.c
blobname 'haup-ir-blaster\.bin' drivers/input/lirc/lirc_zilog.c
;;
*/linux-2.6*-at76.patch)
blobname 'atmel_at76c50\(3-\(i386[13]\|rfmd\(-acc\)\?\)\|5\(a\(mx\)\?\)\?-rfmd\(2958\)\?\)\.bin' drivers/net/wireless/at76_usb/at76_usb.c
;;
*/linux-2.6-v4l-dvb*.patch)
defsnc 'static[ ]u8[ ]af9015_ir_table_\(avermedia\(_ks\)\?\|digittrade\)\[\][ ]=' drivers/media/dvb/dvb-usb/af9015.h
defsnc 'struct[ ]au8522_register_config[ ]lpfilter_coef\[\][ ]=' drivers/media/dvb/frontends/au8522_decoder.c
defsnc 'static[ ]struct[ ]mse2snr_tab[ ]\(vsb\|qam\(64\|256\)\)_mse2snr_tab\[\][ ]=' drivers/media/dvb/frontends/au8522.c
defsnc '[}][ ]\(VSB\|QAM\)_mod_tab\[\][ ]=' drivers/media/dvb/frontends/au8522.c
initc 'static[ ]const[ ]u8[ ]jpeg_head\[\][ ]=' drivers/media/video/gspca/jpeg.h
defsnc 'static[ ]const[ ]u8[ ]\(bridge\|sensor\)_init_ov965x\(_2\)\?\[\]\[2\][ ]=' drivers/media/video/gspca/ov534.c
defsnc 'static[ ]\(const[ ]\)\?\(__\)\?u8[ ]\(mt9v111\|sp80708\|hv7131r\|mi0360\|mo4000\|ov76\([36]0\|48\)\|om6802\)_sensor_init\[\]\[8\][ ]=' drivers/media/video/gspca/sonixj.c
defsnc '[ ]static[ ]const[ ]u8[ ]probe_tb\[\]\[4\]\[8\][ ]=' drivers/media/video/gspca/sonixj.c
defsnc 'static[ ]const[ ]\(__u16\|u8\)[ ]spca505b\?_\(init\|open\)_data\(_ccd\)\?\[\]\[3\][ ]=' drivers/media/video/gspca/spca505.c
defsnc '[ ]static[ ]const[ ]\(__\)\?u8[ ]\(read_indexs\|n\(set\)\?[0-9]*\(_other\)\?\|missing\)\[[0-9x]*\][ ]=' drivers/media/video/gspca/t613.c
defsnc 'static[ ]const[ ]u8[ ]eeprom_data\[\]\[3\][ ]=' drivers/media/gspca/tv8532.c
initnc '[;][/][*]@@[ ]-[0-9]*,[0-9]*[ ][+][0-9]*,[0-9]*[ ]@@[ ]static[ ]const[ ]__u16[ ]spca508_vista_init_data\[\]\[3\][ ]=[ ][{][*][/][;]' drivers/media/video/gspca/spca508.c
defsc '[;][/][*]@@[ ]-[0-9]*,[0-9]*[ ][+][0-9]*,[0-9]*[ ]@@[ ]static[ ]const[ ]__u8[ ]mi1310_socinitVGA_JPG\[\]\[4\][ ]=[ ][{][*][/][;]' drivers/media/video/gspca/vc032x.c
initc 'static[ ]const[ ]\(__\)\?u8[ ]\(mi\(0360\|13[12]0\)\|po\(1200\|3130\)\|hv7131r\|ov76[67]0\)_\(\(soc\)\?_\?[iI]nit\(Q\?V\|SX\)GA\(_\(JPG\|data\)\)\?\|rundata\)\[\]\[4\][ ]=' drivers/media/video/gspca/vc032x.c
;;
*/linux-2.6-modsign-mpilib.patch)
initnc 'const[ ]unsigned[ ]char[ ]__clz_tab\[\][ ]='
;;
*/linux-2.6-netdev*.patch | \
*/linux-2.6.27-net-r8169-2.6.28.patch)
defsnc '[ ][ ]*struct[ ]phy_reg[ ]phy_reg_init_[01]\[\][ ]=' drivers/net/r8169.c
;;
*/linux-2.6-wireless*.patch | */linux-2.6-ath5k.patch | \
*/git-wireless-dev.patch | */linux-2.6-zd1211rw-mac80211.patch)
initnc 'const[ ]u\(8\|16\|32\)[ ]b43_ntab_\(\(adjustpower\|estimatepowerlt\|gainctl\|iqlt\|loftlt\|noisevar1\|tdi[24]0a\)[01]\|channelest\|frame\(lookup\|struct\)\|mcs\|pilot\|tdtrn\|tmap\)\[\][ ]='
initnc 'static[ ]const[ ]s8[ ]\(b43\(legacy\)\?\|bcm43xx\)_tssi2dbm_[bg]_table\[\][ ]='
initnc 'static[ ]struct[ ]iwl\(3945\)\?_tx_power[ ]power_gain_table\[2\]\[IWL_MAX_GAIN_ENTRIES\][ ]='
initnc 'static[ ]const[ ]struct[ ]gain_entry[ ]gain_table\[2\]\[108\][ ]='
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_5222\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_5225_2527\[\][ ]=' drivers/net/wireless/rt2x00/rt73usb.c
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_5226\[\][ ]=' drivers/net/wireless/rt2x00/rt73usb.c
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_bg\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_bg_2522\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_bg_2523\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_bg_2524\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_bg_2525\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_bg_2525e\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_bg_2528\[\][ ]=' drivers/net/wireless/rt2x00/rt73usb.c
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_noseq\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]rf_channel[ ]rf_vals_seq\[\][ ]='
initnc '[ ]static[ ]const[ ]u8[ ]t\[\][ ]='
initnc 'static[ ]const[ ]u16[ ]rtl8225bcd_rxgain\[\][ ]='
initnc 'static[ ]const[ ]u8[ ]rtl8225_agc\[\][ ]='
initnc 'static[ ]const[ ]u8[ ]rtl8225_tx_power_cck\[\][ ]='
initnc 'static[ ]const[ ]u8[ ]rtl8225_tx_power_cck_ch14\[\][ ]='
initnc 'static[ ]const[ ]u16[ ]rtl8225z2_rxgain\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]ath5k_ini_rf[ ]rfregs_5111\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]ath5k_ini_rf[ ]rfregs_5112\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]ath5k_ini_rf[ ]rfregs_5112a\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]ath5k_ini_rf[ ]rfregs_5413\[\][ ]='
oprepline '#define[ ]AR5K_RATES_11A '
oprepline '#define[ ]AR5K_RATES_11B '
oprepline '#define[ ]AR5K_RATES_11G '
oprepline '#define[ ]AR5K_RATES_TURBO '
oprepline '#define[ ]AR5K_RATES_XR '
initnc 'static[ ]const[ ]struct[ ]ath5k_ini[ ]ar5212_ini\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]ath5k_ini_mode[ ]rf\(5413\|24\(13\|25\)\)_ini_mode_end\[\][ ]=' drivers/net/wireless/ath5k/initvals.c # ?
initnc '[ ][ ][}][ ]blinkrates\[\][ ]='
initnc 'static[ ]const[ ]u8[ ]rtl8225z2_agc\[\][ ]=' drivers/net/wireless/rtl8187_rtl8225.c
initnc 'static[ ]const[ ]u8[ ]rtl8225z2_ofdm\[\][ ]=' drivers/net/wireless/rtl8187_rtl8225.c
initnc 'static[ ]const[ ]u8[ ]rtl8225z2_tx_power_cck\[\][ ]=' drivers/net/wireless/rtl8187_rtl8225.c
initnc 'static[ ]const[ ]u8[ ]rtl8225z2_tx_power_cck_ch14\[\][ ]=' drivers/net/wireless/rtl8187_rtl8225.c
# git logs
accept '[ ][ ][ ]sudo[ ]modprobe[ ]ath5k[ ]debug=0x00000400[\n][ ]*[\n]\([ ]*Band[^\n]*[\n]\([ ]*\(\(channels\|rates\):\|[- 0-9a-f]*\|\[\.\.\.[ ]etc[ ]\]\)[\n]\)\+\)\+[ ][ ][ ][ ][ ][ ][ ]540[ ]000c[ ]0000 0000'
oprepline '[ ][{][ ]1,[ ]MODULATION_XR,[ ]3000,[ ]1,[ ]150,[ ]3 [}],'
# Fedora 8ish kernel-xen builds
initnc 'const[ ]u16[ ]crc_itu_t_table\[256\][ ]='
initnc 'static[ ]const[ ]u16[ ]tkip_sbox\[256\][ ]='
initnc 'static[ ]const[ ]struct[ ]ath5k_ini_mode[ ]ar5211_ini_mode\[\][ ]='
initnc 'static[ ]const[ ]struct[ ]ath5k_ini_mode[ ]ar5212_rf511[12]_ini_mode\[\][ ]='
initnc '[ ]static[ ]const[ ]u8[ ]log10\[\][ ]='
initnc 'static[ ]const[ ]u8[ ]rtl8225z2_tx_gain_cck_ofdm\[\][ ]='
initnc 'static[ ]const[ ]u32[ ]rf_vals_abg_5222\[\][ ]='
;;
*/linux-2.6-netdev-e1000e*.patch)
# drivers/net/e1000e/phy.c
initnc 'static[ ]const[ ]u16[ ]e1000_igp_2_cable_length_table\[\][ ]='
;;
esac
}
# Regular expression that matches a literal constant.
constx="[0-9][0-9a-fA-FxX]*"
# Regular expression that matches a separator between consecutive
# literal constants.
sepx="\\([,:{} \\nLlUu\"\'\\\\]\\+[xX\$]\\?\\|[ \\n]*[.][a-zA-Z][a-zA-Z0-9]*[ ]\\+[\$]\\?\\)"
# Regular expression that matches a continuation of a blob, after an
# initial constant. *, \+ and \? can be safely appended to it without
# \(\)s.
blobcont="\\($sepx$constx\\)"
# Regular expression that matches the initial constant of a blob plus
# its continuation. *, \+ and \? can be safely appended to it without
# \(\)s.
blobpat="$constx$blobcont"
# Regular expression that matches a blob with the exact number of
# constants specified as sensitivity.
blobseq="$blobpat\\{$sens\\}"
# Regular expression that matches a blob with the exact specified
# length, or longer.
blobfseq="$blobseq$blobcont*"
# Regular expression that matches the beginning of the pattern or a
# line break. It must be \(\)ed, such that it can be named in
# replacement patterns without being named.
bol="\\(^\\|[\\n]\\)"
# Regular expression that matches the end of the pattern or a line
# break. It must be \(\)ed, such that it can be named in replacement
# patterns without being named.
eol="\\([\\n]\\|\$\\)"
# Regular expression that matches a C-style comment.
comment="\\([/][*]\\([^/]\\|[^*/][/]*\\)*[*][/]\\|[/][/][^\\n]*[\\n]\\)"
# Regular expression that matches comments typically used in assembly.
asmcomment="\\($comment\\|[;#][^\\n]*[\\n]\\)"
# Regular expression that matches a braced initializer containing at
# least one blob.
initblob="[^\\n]*=\\([ \\n\\\\]*\\|$comment\\)*[{]\\([^;]*\\|$comment\\)*$blobseq\\([^;]*\\|$comment\\)*[}]\\?\\([ \\n\\\\]*\\|$comment\\)[;]\\?"
# Regular expression that matches a C (possibly multi-line) #define
# that contains a blob.
defineblob='[ ]*#[ ]*define[ ]\+\([^\n]*\\[\n]\)*[^\n]*'"$blobseq"'\([^\n]*\\[\n]\)*'
# Regular expression that matches an assembly label followed by a blob
# without any intervening label.
asmblob="[a-zA-Z_.][^\\n:;#/ ]*[ ]*:\\([^:{}]*\\|$asmcomment\\)*$blobseq\\([^:]*\\|$asmcomment\\)*"
# Set up the sed script that will go through the (processed) input,
# looking for sequences of blobs and printing whatever was requested.
# It accepts 3 arguments.
# $1 is the action in case blobs were found in the input.
# $2 is the action in case no blobs were found, not even false positives.
# $3 is the action in case false positives were located.
# $4 is the action for every complete input pattern.
set_sedmain () {
falsepos=`sed 's,^\\\|,,;s,^.,\\\\(&,;s,.$,&\\\\),' < "$falsepos_name"`
orfalseneg=`cat < "$falseneg_name"`
case $orfalseneg in
"")
blobfast=$blobseq
bloblong=$blobfseq
;;
*)
blobfast="\\($blobseq$orfalseneg\\)"
bloblong="\\($blobfseq$orfalseneg\\)"
;;
esac
# Regular expression that matches one or more blobs without
# intervening line breaks.
sblobctx="\\(\\([^\\n]\\|[/][*](DEBLOB-\\nBED)[*][/]\\)*$bloblong\\)\\+"
# Regular expression that matches the context for a long blob match.
lblobctx="\\($initblob\\|$defineblob\\|$asmblob\\|$sblobctx\\)"
if test -s "$falsepos_name"; then
check_false_positives="$v:???falsepos
/$bol$falsepos/!b blob
$v:+++falsepos
h
s/$bol$falsepos/\\1;\/**\/;/g
# See if, after removing all matches, we end up without any blobs.
$v:???blobfast
/$blobfast/!{
g
b falsepos
}
g
"
else
falsepos="$^"
check_false_positives=
fi
sedmain="
/^$/N
/^[\\n]\\?;[/][*]\\(end .*\\)\\?[*][/];$/{
$4
d
}
/^;[/][*]begin /!{
: internal_error
$v:internal_error
i\\
Internal error at
p
i\\
/*(DEBLOB-\\
ERROR)*/
q 2
}
$v:reading file in
h
n
: read_more
/^;[/][*]end [^\\n]*[*][/];$/! {
H
n
b read_more
}
H
g
$4
$v:read all
s/^\\(;[/][*]begin [^\\n]*[\\n]\\)*//
s/\\($bol[\n]\?;[/][*]\\(end [^\\n]*\\)\\?[*][/];\\)*$//
$v:???!blobfast
/$blobfast/!b clean
$check_false_positives
# Fall through.
: blob
$v:blob
$1
d
: clean
$2
d
: falsepos
$v:falsepos
$3
d
: print_matches
$v:print_matches
/^$falsepos/! {
$v:delete unmatching lines
h
s/[\\n]$falsepos.*//
: print_matches_nomatch_loop
/[\\n]/ {
s/^[^\\n]*[\\n]//
x
s/^[^\\n]*[\\n]//
x
b print_matches_nomatch_loop
}
x
b print_matches_delete_to_eol
}
h
s/^\\($falsepos[^\\n]*\\)\\([\\n].*\\)\\?$/\\1/
$v:narrowed to match
/$bloblong/ {
i\\
::: $file :::
p
}
g
s/^\\($falsepos[^\\n]*\\)//
: print_matches_delete_to_eol
$v:delete to eol
s/^[^\\n]*//
/^$/d
s/^[\\n]//
b print_matches
: print_marked_matches
$v:print_marked_matches
/^$falsepos/! {
h
s/[\\n]$falsepos.*//
: print_marked_matches_nomatch_loop
/[\\n]/ {
s/^[^\\n]*[\\n]//
x
s/^[^\\n]*[\\n]//
x
b print_marked_matches_nomatch_loop
}
x
b print_marked_matches_delete_to_eol
}
h
s/^\\($falsepos[^\\n]*\\)\\([\\n].*\\)\\?$/\\1/
$v:narrowed to match
/$bloblong/{
i\\
::: $file :::
# s/{\\($sepx\\)\\?$blobfseq\\($sepx\\)\\?}[ ]*;/{\/*(DEBLOBBED)*\/};/g
s/$bloblong/\/*(DEBLOBBED)*\//g
p
}
g
s/^\\($falsepos[^\\n]*\\)//
: print_marked_matches_delete_to_eol
$v:delete to eol
s/^[^\\n]*//
/^$/d
s/^[\\n]//
b print_marked_matches
: print_blobs
$v:print_blobs
/^$falsepos/ {
$v:delete false positive
# This is tricky. We don't want to print the false positive.
/^$falsepos[^\\n]*$blobfast/ {
$v:delete false positive immediately followed by blob
s/^\\($falsepos\\)/\\1\/*(DEBLOB-\\nBED)*\//
h
s/^\\($falsepos\\).*/\\1/
$v:matched false positive
: print_blobs_match_loop
/[\\n]/ {
s/^[^\\n]*[\\n]//
x
s/^[^\\n]*[\\n]//
x
b print_blobs_match_loop
}
G
b print_blobs_delete_to_eol
}
/^$falsepos[/][*](DEBLOB-\\nBED)[*][/]/! {
s/^$falsepos//
b print_blobs_delete_to_eol
}
}
/^\([^\\n]\|[/][*](DEBLOB-\\nBED)[*][/]\)*$blobfast/! {
$v:delete non-blob header
h
s/[\\n]\\($falsepos\\|[^\\n]*$blobfast\\).*//
$v:matched non-blob header
: print_blobs_nomatch_loop
/[\\n]/ {
s/^[^\\n]*[\\n]//
x
s/^[^\\n]*[\\n]//
x
b print_blobs_nomatch_loop
}
x
b print_blobs_delete_to_eol
}
i\\
::: $file :::
: print_blobs_output_false_positive
/[^\\n]*[/][*](DEBLOB-[\\n]BED)[*][/]/ {
P
s,^[^\\n]*[\\n],,
b print_blobs_output_false_positive
}
h
s/\\(\\($bloblong[^\\n]*\\)\\+\\)\\([\\n].*\\)\\?$/\\1/
$v:narrowed to blob
p
g
s/\\(\\($bloblong[^\\n]*\\)\\+\\)//
: print_blobs_delete_to_eol
$v:delete to eol
s/^[^\\n]*//
/^$/d
s/^[\\n]//
b print_blobs
: print_marked_blobs
$v:print_marked_blobs
/^$falsepos/ {
$v:delete false positive
# This is tricky. We don't want to print the false positive.
/^$falsepos[^\\n]*$blobfast/ {
$v:delete false positive immediately followed by blob
s/^\\($falsepos\\)/\\1\/*(DEBLOB-\\nBED)*\//
h
s/^\\($falsepos\\).*/\\1/
$v:matched false positive
: print_marked_blobs_match_loop
/[\\n]/ {
s/^[^\\n]*[\\n]//
x
s/^[^\\n]*[\\n]//
x
b print_marked_blobs_match_loop
}
G
b print_marked_blobs_delete_to_eol
}
/^$falsepos[/][*](DEBLOB-\\nBED)[*][/]/! {
s/^falsepos//
b print_marked_blobs_delete_to_eol
}
}
/^\([^\\n]\|[/][*](DEBLOB-\\nBED)[*][/]\)*$blobfast/! {
$v:delete non-blob header
h
s/[\\n]\\($falsepos\\|[^\\n]*$blobfast\\).*//
$v:matched non-blob header
: print_marked_blobs_nomatch_loop
/[\\n]/ {
s/^[^\\n]*[\\n]//
x
s/^[^\\n]*[\\n]//
x
b print_marked_blobs_nomatch_loop
}
x
b print_marked_blobs_delete_to_eol
}
i\\
::: $file :::
: print_marked_blobs_output_false_positive
/[^\\n]*[/][*](DEBLOB-[\\n]BED)[*][/]/ {
P
s,^[^\\n]*[\\n],,
b print_marked_blobs_output_false_positive
}
h
s/\\(\\($bloblong[^\\n]*\\)\\+\\)\\([\\n].*\\)\\?$/\\1/
$v:narrowed to blob
# s/{\\($sepx\\)\\?$blobfseq\\($sepx\\)\\?}[ ]*;/{\/*(DEBLOBBED)*\/};/g
s/$bloblong/\/*(DEBLOBBED)*\//g
p
g
s/\\(\\($bloblong[^\\n]*\\)\\+\\)//
: print_marked_blobs_delete_to_eol
$v:delete to eol
s/^[^\\n]*//
/^$/d
s/^[\\n]//
b print_marked_blobs
: print_cblobs
$v:print_cblobs
/^$falsepos/ {
$v:delete false positive
# This is tricky. We don't want to print the false positive.
/^$falsepos[^\\n]*$blobfast/ {
$v:delete false positive immediately followed by blob
s/^\\($falsepos\\)/\\1\/*(DEBLOB-\\nBED)*\//
h
s/^\\($falsepos\\).*/\\1/
$v:matched false positive
: print_cblobs_match_loop
/[\\n]/ {
s/^[^\\n]*[\\n]//
x
s/^[^\\n]*[\\n]//
x
b print_cblobs_match_loop
}
G
b print_cblobs_delete_to_eol
}
/^$falsepos[/][*](DEBLOB-\\nBED)[*][/]/! {
s/^$falsepos//
b print_cblobs_delete_to_eol
}
}
/^$lblobctx/! {
$v:delete non-blob header
h
s/[\\n]\\($falsepos\\|$lblobctx\\).*//
$v:matched non-blob header
: print_cblobs_nomatch_loop
/[\\n]/ {
s/^[^\\n]*[\\n]//
x
s/^[^\\n]*[\\n]//
x
b print_cblobs_nomatch_loop
}
x
b print_cblobs_delete_to_eol
}
i\\
::: $file :::
: print_cblobs_output_false_positive
/[^\\n]*[/][*](DEBLOB-[\\n]BED)[*][/]/ {
P
s,^[^\\n]*[\\n],,
b print_cblobs_output_false_positive
}
h
s/^\\($lblobctx[^\\n]*\\($bloblong[^\\n]*\\)*\\)\\([\\n].*\\)\\?$/\\1/
$v:narrowed to blob
p
g
s/^\\($lblobctx[^\\n]*\\($bloblong[^\\n]*\\)*\\)//
: print_cblobs_delete_to_eol
$v:delete to eol
s/^[^\\n]*//
/^$/d
s/^[\\n]//
b print_cblobs
: print_marked_cblobs
$v:print_marked_cblobs
/^$falsepos/ {
$v:delete false positive
# This is tricky. We don't want to print the false positive.
/^$falsepos[^\\n]*$blobfast/ {
$v:delete false positive immediately followed by blob
s/^\\($falsepos\\)/\\1\/*(DEBLOB-\\nBED)*\//
h
s/^\\($falsepos\\).*/\\1/
$v:matched false positive
: print_marked_cblobs_match_loop
/[\\n]/ {
s/^[^\\n]*[\\n]//
x
s/^[^\\n]*[\\n]//
x
b print_marked_cblobs_match_loop
}
G
b print_marked_cblobs_delete_to_eol
}
/^$falsepos[/][*](DEBLOB-\\nBED)[*][/]/! {
s/^$falsepos//
b print_marked_cblobs_delete_to_eol
}
}
/^$lblobctx/! {
$v:delete non-blob header
h
s/[\\n]\\($falsepos\\|$lblobctx\\).*//
$v:matched non-blob header
: print_marked_cblobs_nomatch_loop
/[\\n]/ {
s/^[^\\n]*[\\n]//
x
s/^[^\\n]*[\\n]//
x
b print_marked_cblobs_nomatch_loop
}
x
b print_marked_cblobs_delete_to_eol
}
i\\
::: $file :::
: print_marked_cblobs_output_false_positive
/[^\\n]*[/][*](DEBLOB-[\\n]BED)[*][/]/ {
P
s,^[^\\n]*[\\n],,
b print_marked_cblobs_output_false_positive
}
h
s/^\\($lblobctx[^\\n]*\\($bloblong[^\\n]*\\)*\\)\\([\\n].*\\)\\?$/\\1/
$v:narrowed to blob
# s/{\\($sepx\\)\\?$blobfseq\\($sepx\\)\\?}[ ]*;/{\/*(DEBLOBBED)*\/};/g
s/$bloblong/\/*(DEBLOBBED)*\//g
p
g
s/^\\($lblobctx[^\\n]*\\($bloblong[^\\n]*\\)*\\)//
: print_marked_cblobs_delete_to_eol
$v:delete to eol
s/^[^\\n]*//
/^$/d
s/^[\\n]//
b print_marked_cblobs
: print_both
$v:print_both
/^\\($falsepos\\|[^\\n]*$blobfast\\)/! {
$v:delete non-blob header
h
s/[\\n]\\($falsepos\\|[^\\n]*$blobfast\\).*//
$v:matched non-blob header
: print_both_nomatch_loop
/[\\n]/ {
s/^[^\\n]*[\\n]//
x
s/^[^\\n]*[\\n]//
x
b print_both_nomatch_loop
}
x
b print_both_delete_to_eol
}
h
i\\
::: $file :::
s/^\\(\\($falsepos[^\\n]*\\|[^\\n]*$bloblong[^\\n]*\\)\\($bloblong[^\\n]*\\)*\\)\\([\\n].*\\)\\?$/\\1/
$v:narrowed to blob
p
g
s/^\\(\\($falsepos[^\\n]*\\|[^\\n]*$bloblong[^\\n]*\\)\\($bloblong[^\\n]*\\)*\\)//
: print_both_delete_to_eol
$v:delete to eol
s/^[^\\n]*//
/^$/d
s/^[\\n]//
b print_both
: list_matches
$v:list_matches
/^$falsepos/! {
$v:print unmatching lines
h
s/[\\n]$falsepos.*//
p
: list_matches_nomatch_loop
/[\\n]/ {
s/^[^\\n]*[\\n]//
x
s/^[^\\n]*[\\n]//
x
b list_matches_nomatch_loop
}
x
b list_matches_delete_to_eol
}
h
s/^\\($falsepos[^\\n]*\\)\\([\\n].*\\)\\?$/\\1/
$v:narrowed to match
/$bloblong/{
# s/{\\($sepx\\)\\?$blobfseq\\($sepx\\)\\?}[ ]*;/{\/*(DEBLOBBED)*\/};/g
s/$bloblong/\/*(DEBLOBBED)*\//g
}
p
g
s/^\\($falsepos[^\\n]*\\)//
: list_matches_delete_to_eol
$v:delete to eol
s/^[^\\n]*//
/^$/d
s/^[\\n]//
b list_matches
: list_blobs
$v:list_blobs
/^$falsepos/ {
$v:print false positive
# This is tricky. We don't want to deblob the false positive.
/^$falsepos[^\\n]*$blobfast/ {
$v:print false positive immediately followed by blob
s/^\\($falsepos\\)/\\1\/*(DEBLOB-\\nBED)*\//
h
s/^\\($falsepos\\).*/\\1\\n/
: list_blobs_match_loop
/[\\n]/ {
s/^[^\\n]*[\\n]//
x
P
s/^[^\\n]*[\\n]//
x
b list_blobs_match_loop
}
G
b list_blobs_delete_to_eol
}
h
s/^\\($falsepos[^\\n]*\\)[\\n].*/\\1/
p
g
s/^\\($falsepos[^\\n]*\\)//
b list_blobs_delete_to_eol
}
/^[^\\n]*$blobfast/! {
$v:print non-blob header
h
s/[\\n]\\($falsepos\\|[^\\n]*$blobfast\\).*//
p
: list_blobs_nomatch_loop
/[\\n]/ {
s/^[^\\n]*[\\n]//
x
s/^[^\\n]*[\\n]//
x
b list_blobs_nomatch_loop
}
x
b list_blobs_delete_to_eol
}
h
s/\\(\\($bloblong[^\\n]*\\)\\+\\)\\([\\n].*\\)\\?$/\\1/
$v:narrowed to blob
# s/{\\($sepx\\)\\?$blobfseq\\($sepx\\)\\?}[ ]*;/{\/*(DEBLOBBED)*\/};/g
s/$bloblong/\/*(DEBLOBBED)*\//g
p
g
s/\\(\\($bloblong[^\\n]*\\)\\+\\)//
: list_blobs_delete_to_eol
$v:delete to eol
s/^[^\\n]*//
/^$/d
s/^[\\n]//
b list_blobs
: list_both
$v:list_both
/^\\($falsepos\\|[^\\n]*$blobfast\\)/! {
$v:print non-blob header
h
s/[\\n]\\($falsepos\\|[^\\n]*$blobfast\\).*//
p
: list_both_nomatch_loop
/[\\n]/ {
s/^[^\\n]*[\\n]//
x
s/^[^\\n]*[\\n]//
x
b list_both_nomatch_loop
}
x
b list_both_delete_to_eol
}
h
s/^\\(\\($falsepos[^\\n]*\\|[^\\n]*$bloblong[^\\n]*\\)\\($bloblong[^\\n]*\\)*\\)\\([\\n].*\\)\\?$/\\1/
$v:narrowed to blob
# s/{\\($sepx\\)\\?$blobfseq\\($sepx\\)\\?}[ ]*;/{\/*(DEBLOBBED)*\/};/g
s/$bloblong/\/*(DEBLOBBED)*\//g
p
g
s/^\\(\\($falsepos[^\\n]*\\|[^\\n]*$bloblong[^\\n]*\\)\\($bloblong[^\\n]*\\)*\\)//
: list_both_delete_to_eol
$v:delete to eol
s/^[^\\n]*//
/^$/d
s/^[\\n]//
b list_both
"
}
# Process an input file named in $1 and run it through the blob
# recognizer. Functions set_except and set_sed_cmd provide additional
# arguments on a per-file and per-action basis.
check () {
case "$#" in 1) ;; *) echo ICE >&2; exit 1;; esac
input=$1
# This block is the result of an incomplete experiment to use flex
# to search for blobs.
if false; then
: > deblob-check-falsepos > deblob-check-falseneg
eol='$'
addx () {
if test -n "$1"; then
echo "$1" >> deblob-check-falsepos
fi
}
badx () {
if test -n "$1"; then
echo "$1" >> deblob-check-falseneg
fi
}
badx "$blobfseq"
set_except "$input"
check_for_flex='
h
s,^^,,
s,[$]$,,
s,\([^\\]\|^\)\(\(\\\\\)*\)\(\[^\?[]]\?[^]]\+\]\([*]\|\\[+?]\)\?\(\\\\\)*\)\+,\1\2,g
/\([^\\]\|^\)\(\\\\\)*\([{(|)}?+^$"; ]\)/{
g
i\
(?BAD input line);
q 1
}
g
s,\\\([{(|)}?+]\),\1,g
s,\(\^\?\)\(.*\)\(\$\?\),\1(?s:\2)\3 |,g
$s,|$,{,
'
{ echo %%;
sed "s,^,^,;$check_for_flex" deblob-check-falsepos || echo failed >&2
echo '/*FALSEPOS*/; }'
sed "$check_for_flex" deblob-check-falseneg || echo failed >&2
echo '/*FALSENEG*/; }'
echo '\n|. { /*OTHERWISE*/; }'
} > deblob-check-flex.l
rm -f deblob-check-falsepos deblob-check-falseneg
exit
fi
falsepos_name=`mktemp -t deblob-check-falsepos-XXXXXX`
tempfiles="$falsepos_name"
falseneg_name=`mktemp -t deblob-check-falseneg-XXXXXX`
tempfiles="$tempfiles $falseneg_name"
# Add $1 to falsepos. Its usage makes it implicitly anchored to the
# beginning of the line. $2, if present, will some day narrow the
# falsepos matches to files that match it.
addx () {
if test -n "$1"; then
$echo_n "\\|$1" >> $falsepos_name
fi
}
# Add $1 to falseneg. Unlike addx, it is NOT implicitly anchored to
# the beginning of the line. $2, if present, will some day narrow
# the falseneg matches to files that match it.
badx () {
if test -n "$1"; then
$echo_n "\\|$1" >> $falseneg_name
fi
}
set_except "$input"
set_sed_cmd "$input"
rm -f $tempfiles
tempfiles=
# Choose the input source...
case $input in
-) in= ;;
*) in='< "$input"' ;;
esac
set fnord # shifted out below
# Decompress as needed...
case $input in
*.bz2) cmd='bunzip2' ;;
*.gz) cmd='gunzip' ;;
*) cmd= ;;
esac
if test -n "$cmd"; then
set "$@" "$cmd"
fi
# Extract or otherwise munge...
case /$input in
*.tar*)
cmd="tar -xf - --to-command='echo \";/*begin \$TAR_FILENAME*/;\"; cat; echo \";/**/;\"; echo; echo \";/*end \$TAR_FILENAME*/;\"'"
;;
*.patch | *.patch.*z* | */patch-* | *.diff | *.diff.*z*)
if $reverse_patch; then
s=- r=+
else
s=+ r=-
fi
sedpatch="
/^[$r]/d
/^\\(@@\\|$s$s$s\\) / {
i\\
;/**/;\\
;/*end patchlet */;\\
;/*begin patchlet */
s/^/;\\/*/
s/\$/*\\/;/
}
s/^[ $s]//"
cmd='sed "$sedpatch"'
;;
*)
cmd='cat'
;;
esac
cmd="{ echo \";/*begin $input*/;\"; $cmd; echo; echo \";/*end $input*/;\"; }"
set "$@" "$cmd"
case $input in
*.tar*)
cmd="{ cat; cat > /dev/null; }"
set "$@" "$cmd"
;;
esac
# Then run through the selected action.
if test "$rm" != "rm -f" || \
test ! `$echo "$sedmain" | wc -c` -lt 1024; then
scriptname=`mktemp -t deblob-check-sedmain-XXXXXX`
tempfiles="$tempfiles $scriptname"
$echo "$sedmain" > $scriptname
cmd="$sed -n -f \"$scriptname\""
else
cmd='$sed -n -e "$sedmain"'
fi
set "$@" "$cmd"
sedunbreak='
: restart
/[/][*](DEBLOB-$/ {
N
/[/][*](DEBLOB-[\n]ERROR)[*][/]/{q 1;}
s,[/][*](DEBLOB-[\n]BED)[*][/],,
b restart
}
p
'
cmd='$sed -n -e "$sedunbreak"'
set "$@" "$cmd"
# test $# = 1 || set "$@" "cat"
shift # fnord goes out here
pipe=
for cmd
do
if test -z "$pipe"; then
pipe="$cmd $in"
else
pipe="$pipe | $cmd"
fi
done
eval "$pipe"
status=$?
$rm $tempfiles
tempfiles=
(exit $status)
}
# If no input given, use stdin.
case $# in
0)
test -t 0 && echo reading from standard input >&2
set fnord -
shift
;;
esac
# The lines below commented out out #list: can be used to get a list
# of matching inputs. ATM this is useless, so we just use a shell
# boolean.
#list: n=$#
pass=:
tempfiles=
trap "status=$?; test -z \"$tempfiles\" || rm -f $tempfiles; (exit $status); exit" 0 1 2 15
process_arg=
# Go through each of the input files in the command line.
for file
do
case $process_arg in
"") ;;
--implied-prefix | --prefix | -i)
prefix=$file
case $prefix in
/*/) ;;
*/) prefix=/$prefix ;;
/*) prefix=$prefix/ ;;
*) prefix=/$prefix/ ;;
esac
process_arg=
continue
;;
*)
echo Internal error with process_arg=$process_arg >&2
exit 1
;;
esac
case $sawdashdash$file in
--implied-prefix | --prefix | -i)
process_arg=$file
continue
;;
esac
# If we print anything whatsoever (even a blank line) while
# processing it, we've failed.
if check "$file"; then
:
else
pass=false
#list: set fnord "$@" "$file"
#list: shift
fi
done
case $process_arg in
"") ;;
*)
echo Missing argument to $process_arg >&2
exit 1
;;
esac
#list: shift $n
#list: exec test $# = 0
$pass
exit
#! /bin/sh
# Copyright (C) 2008, 2009 Alexandre Oliva <lxoliva@fsfla.org>
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# 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 have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
# USA
# deblob.sh - prepare a linux-libre tarball out of a non-libre Linux
# tarball. It expects the Linux release (mver, say 2.6.25) as the
# first argument, the libre sub-release (extra) as the second optional
# argument, and the patch release (sver, say .13) as an optional third
# argument. mver and sver are pasted together to form kver.
# linux-$kver.tar.bz2 and deblob-$mver must exist in the current
# directory, and the line that sets kver and extra in deblob-$mver
# must match mver and extra.
# The resulting tarball is put in linux-$kver-libre$extra.tar.bz2, and
# an uncompressed xdelta that produces linux-$kver-libre$extra.tar out
# of linux-$kver.tar is created as linux-$kver-libre$extra.xdelta.
# This xdelta can be distributed to enable third parties to easily
# reconstruct the binary tarball starting out of sources downloaded
# from kernel.org, but without distributing non-Free Software
# yourself, because xdelta (unlike patches) is not reversible: the
# removed bits are not present in it at all.
# To enable you to check the differences between the tarballs, a patch
# file is generated in linux-$kver-libre$extra.patch. This patch file
# contains the non-Free blobs, even though in reversed form, so its
# distribution is discouraged.
# At the end, the script attempts to generate a digital signature for
# the newly-created tarball. This is the last thing the script does,
# so interrupting it at that point to skip the signing won't fail to
# do anything else.
# It is safe to interrupt the script at any other point. When it gets
# a ^C (other than during signing), it starts cleaning up all of its
# temporary and output files. If you insist, it may leave junk
# behind, and then it will refuse to run again before you clean it up
# by hand. It takes extra care to avoid overwriting useful files.
# If deblob-$mver finds any unexpected situation, it will error out,
# and then deblob-main will quit. Pass --force to deblob-main, before
# any other argument, for deblob-main to ignore any such situations.
case $1 in
--force) force=--force; shift;;
*) force=;;
esac
mver=$1 extra=$2 sver=$3
kver=$mver$sver libre=libre$extra
deblob= dir=`echo "$0" | sed 's,[^/]*$,,;s,^$,.,;s,/*$,,'`
if test ! -f linux-$kver.tar.bz2; then
echo linux-$kver.tar.bz2 does not exist >&2
exit 1
fi
if test -f deblob-$mver; then
deblob=deblob-$mver
elif test -f deblob; then
deblob=deblob
elif test -f $dir/deblob-$mver; then
cp $dir/deblob-$mver deblob
deblob=deblob
else
echo deblob does not exist >&2
exit 1
fi
x1="kver=$mver extra=$extra"
x2=`grep "^kver=[^ ]* extra=" $deblob`
if test "$x1" = "$x2"; then
:
else
echo deblob script does not match command-line arguments >&2
echo expected: $x1 >&2
echo found : $x2 >&2
exit 1
fi
cleanup=
for f in \
linux-$kver-$libre.tar.bz2 \
linux-$kver-$libre.tar.bz2.asc \
linux-$kver-$libre.tar.bz2.sign \
linux-$kver-$libre.tar.lz \
linux-$kver-$libre.tar.lz.asc \
linux-$kver-$libre.tar.lz.sign \
linux-$kver.tar \
linux-$kver-$libre.tar \
linux-$kver-$libre.patch \
linux-$kver-$libre.log \
linux-$kver-$libre.xdelta \
linux-$kver-$libre.xdelta.asc \
linux-$kver-$libre.xdelta.sign \
; do
if test -f $f; then
echo $f already exists >&2
exit 1
fi
cleanup="$cleanup $f"
done
for d in \
linux-$kver \
linux-$kver-$libre \
orig-linux-$kver \
; do
if test -d $d; then
echo $d already exists >&2
exit 1
fi
cleanup="$cleanup $d"
done
if test -f $dir/deblob-$kver; then
if cmp $dir/deblob-$kver $deblob; then
:
else
echo $dir/deblob-$kver and $deblob are different >&2
exit 1
fi
fi
if test ! -f deblob-check; then
if test -f $dir/deblob-check; then
cp $dir/deblob-check deblob-check
fi
else
if test -f $dir/deblob-check; then
if cmp $dir/deblob-check deblob-check; then
:
else
echo $dir/deblob-check and deblob-check are different >&2
exit 1
fi
fi
fi
trap "status=$?; echo cleaning up...; rm -rf $cleanup; (exit $status); exit" 0 1 2 15
set -e
echo Uncompressing linux-$kver.tar.bz2 into linux-$kver.tar
rm -rf linux-$kver linux-$kver.tar
bunzip2 < linux-$kver.tar.bz2 > linux-$kver.tar
echo Extracing linux-$kver.tar into linux-$kver
tar -xf linux-$kver.tar
rm -rf linux-$kver-$libre linux-$kver-$libre.tar
echo Copying linux-$kver to linux-$kver-$libre
cp linux-$kver.tar linux-$kver-$libre.tar
cp -lR linux-$kver/. linux-$kver-$libre
rm -f linux-$kver-$libre.log linux-$kver-$libre.log.tmp
echo Deblobbing within linux-$kver-$libre, saving output to linux-$kver-$libre.log
# We can't just pipe deblob into tee, for then we fail to detect
# error conditions. Use file renaming to tell whether we succeeded.
if (cd linux-$kver-$libre && /bin/sh ../$deblob $force) 2>&1; then
mv linux-$kver-$libre.log.tmp linux-$kver-$libre.log
fi | tee linux-$kver-$libre.log.tmp
if test ! -f linux-$kver-$libre.log; then
mv linux-$kver-$libre.log.tmp linux-$kver-$libre.log
echo $deblob failed, aborting >&2
exit 1
fi
rm -f linux-$kver-$libre.patch
# Do not copy these scripts for now, deblob-check regards itself as a blob.
# cp -p $0 $deblob deblob-check linux-$kver-$libre
echo Generating linux-$kver-$libre.patch
diff -druN linux-$kver linux-$kver-$libre > linux-$kver-$libre.patch || :
echo Removing removed or modified files from linux-$kver-$libre.tar
diff -rq linux-$kver linux-$kver-$libre |
sed -n "
s,^Only in \\(linux-$kver\\(/.*\\)\\?\\): \\(.*\\),\1/\3,p;
s,^Files \\(linux-$kver\\)/\\(.*\\) and \\1-$libre/\\2 differ,\\1/\\2,p;
" |
xargs tar --delete -f linux-$kver-$libre.tar
echo Adding modified or added files to linux-$kver-$libre.tar
rm -rf orig-linux-$kver
mv linux-$kver orig-linux-$kver
mv linux-$kver-$libre linux-$kver
diff -rq orig-linux-$kver linux-$kver |
sed -n "
s,^Files orig-\\(linux-$kver/.*\\) and \\1 differ,\\1,p;
s,^Only in \\(linux-$kver\\(/.*\\)\\?\\): \\(.*\\),\\1/\\3,p;
" |
xargs tar --append -f linux-$kver-$libre.tar
echo Wiping out extracted trees
rm -rf linux-$kver orig-linux-$kver
echo Creating xdelta between linux-$kver.tar and linux-$kver-$libre.tar
xdelta delta -0 linux-$kver.tar linux-$kver-$libre.tar linux-$kver-$libre.xdelta || : # xdelta returns nonzero on success
echo Compressing linux-$kver-$libre.tar and linux-$kver-$libre.xdelta
rm -f linux-$kver.tar
lzip -k9 linux-$kver-$libre.tar
bzip2 -9 linux-$kver-$libre.tar
if test -f linux-$kver-$libre.xdelta; then
lzip -k9 linux-$kver-$libre.xdelta
bzip2 -9 linux-$kver-$libre.xdelta
fi
trap "status=$?; (exit $status); exit" 0 1 2 15
echo Done except for signing, feel free to interrupt
for f in \
linux-$kver-$libre.tar.bz2 \
linux-$kver-$libre.tar.lz \
linux-$kver-$libre.xdelta.bz2 \
linux-$kver-$libre.xdelta.lz \
; do
if test -f $f; then
gpg -a --detach-sign $f
mv $f.asc $f.sign
fi
done
echo All set, please review linux-$kver-$libre.patch
exit 0
--- deblob-2.6.31.1 2010-03-16 03:55:26.000000000 +0000
+++ deblob-2.6.31 2010-05-27 01:28:11.923171773 +0000
@@ -79,10 +79,30 @@
have_check=:
fi
+filelist="/tmp/filelist"
filetest () {
- if [ ! -f $1 ]; then
- die $1 does not exist, something is wrong && return 1
- fi
+ export FILES=$1
+ if ! [ -f $1 ]
+ then
+ if [ $( basename $1) = Makefile ] || [ $( basename $1) = Kconfig ]
+ then
+ die File not found: $1
+ return 1
+ fi
+
+ file=$( basename $1)
+ [ -f $filelist ] || find > $filelist
+ if FILES=$(egrep /$file$ $filelist)
+ then
+ die File not found: $1
+ echo WARNING: Alternative\(s\) to $1 found: $FILES
+ echo WARNING: Deblobbing alternative\(s\)
+ return 0
+ else
+ die File not found: $1, no alternatives found
+ fi
+ return 1
+ fi
}
announce () {
@@ -93,8 +113,8 @@
clean_file () {
#$1 = filename
filetest $1 || return
- rm $1
- echo $1: removed
+ rm $FILES
+ echo WARNING: Removing $FILES
}
check_changed () {
@@ -109,15 +129,18 @@
clean_blob () {
#$1 = filename
filetest $1 || return
- if $have_check; then
- name=$1
- set fnord "$@" -d
- shift 2
- $check "$@" -i linux-$kver $name > $name.deblob
- check_changed $name && echo $name: removed blobs
- else
- clean_file $1
- fi
+ for FILE in $FILES
+ do
+ if $have_check; then
+ name=$FILE
+ set fnord "$@" -d
+ shift 2
+ $check "$@" -i linux-$kver $name > $name.deblob
+ check_changed $name && echo $name: removed blobs
+ else
+ clean_file $FILE
+ fi
+ done
}
dummy_blob () {
@@ -135,21 +158,27 @@
clean_fw () {
#$1 = firmware text input, $2 = firmware output
filetest $1 || return
- if test -f $2; then
- die $2 exists, something is wrong && return
- fi
- clean_blob $1 -s 4
- dummy_blob $2
+ for FILE in $FILES
+ do
+ if test -f $2; then
+ die $2 exists, something is wrong && return
+ fi
+ clean_blob $FILE -s 4
+ dummy_blob $2
+ done
}
drop_fw_file () {
#$1 = firmware text input, $2 = firmware output
filetest $1 || return
- if test -f $2; then
- die $2 exists, something is wrong && return
- fi
- clean_file $1
- dummy_blob $2
+ for FILE in $FILES
+ do
+ if test -f $2; then
+ die $2 exists, something is wrong && return
+ fi
+ clean_file $FILE
+ dummy_blob $2
+ done
}
clean_kconfig () {
@@ -165,10 +194,13 @@
;;
esac
filetest $1 || return
- sed "/^config \\($2\\)\$/{p;i\
+ for FILE in $FILES
+ do
+ sed "/^config \\($2\\)\$/{p;i\
depends on NONFREE
-d;}" $1 > $1.deblob
- check_changed $1 && echo $1: marked config $2 as depending on NONFREE
+d;}" $FILE > $FILE.deblob
+ check_changed $FILE && echo $FILE: marked config $2 as depending on NONFREE
+ done
}
clean_mk () {
@@ -188,25 +220,34 @@
clean_sed () {
#$1 = sed-script $2 = file $3 = comment
filetest $2 || return
- sed -e "$1" "$2" > "$2".deblob || {
- die $2: failed: ${3-applied sed script $1} && return 1; }
- check_changed $2 && echo $2: ${3-applied sed script $1}
+ for FILE in $FILES
+ do
+ sed -e "$1" "$FILE" > "$FILE".deblob || {
+ die $2: failed: ${3-applied sed script $1} && return 1; }
+ check_changed $FILE && echo $FILE: ${3-applied sed script $1}
+ done
}
reject_firmware () {
#$1 = file
filetest $1 || return
- clean_sed '
+ for FILE in $FILES
+ do
+ clean_sed '
s,request\(_ihex\)\?_firmware\(_nowait\)\?,reject_firmware\2,g
-' "$1" 'disabled non-Free firmware-loading machinery'
+' "$FILE" 'disabled non-Free firmware-loading machinery'
+ done
}
maybe_reject_firmware () {
#$1 = file
filetest $1 || return
- clean_sed '
+ for FILE in $FILES
+ do
+ clean_sed '
s,request_firmware\(_nowait\)\?,maybe_reject_firmware\1,g
-' "$1" 'retain Free firmware-loading machinery, disabling non-Free one'
+' "$FILE" 'retain Free firmware-loading machinery, disabling non-Free one'
+ done
}
undefine_macro () {
_ChangelogURI: http://archive.trisquel.info/trisquel/changelogs/pool/%s/%s/%s/%s_%s/changelog
Suite: awen
RepositoryType: deb
BaseURI: http://archive.trisquel.info/trisquel/
MatchURI: archive.trisquel.info/trisquel
MirrorsFile-amd64: /usr/share/python-apt/templates/Trisquel.mirrors
MirrorsFile-i386: /usr/share/python-apt/templates/Trisquel.mirrors
_Description: Trisquel 3.5 'Awen'
Component: main
_CompDescription: Officially supported
_CompDescriptionLong: Officially supported
Suite: awen-security
ParentSuite: awen
RepositoryType: deb
BaseURI: http://archive.trisquel.info/trisquel/
MatchURI: archive.trisquel.info/trisquel
_Description: Important security updates
Suite: awen-updates
ParentSuite: awen
RepositoryType: deb
_Description: Recommended updates
Suite: awen-backports
ParentSuite: awen
RepositoryType: deb
_Description: Unsupported updates
#LOC:ES
http://archive.trisquel.info/trisquel/
ftp://archive.trisquel.info/trisquel/
http://ftp.udc.es/trisquel/
ftp://ftp.udc.es/trisquel/
#LOC:US
http://us.archive.trisquel.info/trisquel/
source diff could not be displayed: it is too large. Options to address this: view the blob.