
Linus Walleij, who was actively maintaining the GPIO subsystem, once sent a patch to convert PCH UDC (USB Device Controller) driver to use GPIO descriptor interface. However, the original code looks strange and seems never worked. It means that VBUS detection mechanism wasn't supported by the kernel. His patch didn't change that, only improved to use modern data structures and APIs. That time I have promised him that I will check the schematics and test it at some point.
First part of the journey appears to be enabling IRQ on GPIO SCH controller, which is not quite usual in a sense of delivery to the OS. The (semi-)wrong assumption that the IRQ is shared with SCI, which is IRQ #9 for x86 case, brought up the wrong change ec689a8a8155 ("mfd: lpc_sch: Add support for Intel Quark X1000") in the kernel (yeah, sometimes product organizations focused on easier way to get job done, without deeper investigation involved). That change has been partially reverted in 922e8ce883e5 ("mfd: lpc_sch: Partially revert "Add support for Intel Quark X1000""). Thanks to Jan Kiszka from Siemens for pointing out to the issue and developing initial fix that landed in the kernel with 7a81638485c1 ("gpio: sch: Add edge event support").
So, are we done? Nope! The second part is to fix GPIO in the UDC driver to be in align with the schematics, according to which (see page 4 D5 and page 8 B1-C2) it uses pin 12 (starting from 0, a.k.a. GPIO_SUS7) on that GPIO controller to detect VBUS. Hence the promised change to the driver 049d3db625a6 ("usb: gadget: pch_udc: Provide a GPIO line used on Intel Minnowboard (v1)") and its updated version dfc03e0bae86 ("usb: gadget: pch_udc: Use PCI sub IDs instead of DMI").
Now we done, right? Not really. What about to test? Yes, the third part is to be sure that it indeed works. The astute reader already asks the question: Why do we need this at all? The board has separate connection for USB host and UDC, it should simply work!. Unfortunately no.
There are possibilities regarding to how UDC should behave when the host is connected. One is to power the device (in our case the board itself) by VBUS, in other words to be USB self-powered device. This is not implemented in case of Minnowboard (v1). So another possibility is to detect VBUS to see when we actually got the host connection. But this is broken on... PCB level and hence doesn't work.
Let's look again at the schematics. First of all on the page 8 B2-B3 the ~4:7 resistor divider (39 kOhm : 68 kOhm) is depicted. It's needed for the high voltage, which is +5v, to be converted to the chip level, which is +3.3v.

So far so good. However, if we go to the page 19 C4 we will see... bootstrap pull-up 10 kOhm to +3.3v (with above 68 kOhm it gives us ~1:7 divider).

Okay, let's assume we connected USB device to it which may consume up to 100 mA on the +5v line. By Ohm's law its resistance could be equal to 50 Ohm. In such case we will have 10 kOhm to +3.3v on one leg and 39 kOhm + 68 kOhm (like in parallel due to above "short circuit") on the other. It still gives us ~1:2.5 divider against +3.3v power rail. That's still well higher than the logical "1" threshold.
Which means that VBUS detection is always high! The bootstrap is dedicated to detect the B1 stepping of the Intel Atom E600 SoC (see page 19 D2-D3). What to do in such case? I don't know the good answer because electrically it's not gonna work. Yes, we may use some timer logic or so to let the BIOS detect that, but I decided just to ignore the bootstrap, so I simply unsoldered R229 from the board. I hope somebody may fix the BIOS to just always assume the B1 stepping if it's not done yet.
"Дорогая редакция..."
Apr. 19th, 2011 04:39 pmЗдравствуйте! Надеюсь, вы знаете русский. Судя по фамилии это так.
Странно, почему не украинский?
Нашел ваши сообщения: http://mail-index.netbsd.org/tech-userlevel/2008/09/12/msg001207.html
Английский знаю плохо, но судя по всему проблема схожая. Если не трудно, не могли бы вы помочь?
Проблема с PHP в следующем. [далее идёт куча технических деталей какой-то смеси из PHP, MySQL и пр. - прим. моё]
Отличная ассоциация! Патч на дерево исходников NetBSD, в котором правится неразрывный пробел (код 0xA0 в кодировке latin1) на обычный в десятке мест. То, что php - язык студентов-кодеров, понятно. Но ассоциация php кодирования на патчи в NetBSD показывает истинную сущность инопланетных существ, особая примета которых "Пишу на PHP".
P.S. Интересно, куда послать товарища и что ему ответить?
UPDATE: страна, как известно, должна знать своих героев, так вот письмо пришло от арт-директора дизайн-студии "Оледжи". Ссылка на почитать хотя бы портфолио и прослезиться: http://olejee.ru/portfolio/index.html
Popularity versus time
Jan. 16th, 2011 06:29 pmNew Generation
Dec. 5th, 2010 10:11 pmНу, я не понимаю при чем тут какие-то грамматики и их распознавание, например, к задаче о ранце. Там где надо подобрать оптимальные вещички. Просто в описании этой задачи написано, что она НП-полная.
А тут на вики какие-то алфавиты, слова, грамматики и т.д. При чем грамматики со словами к задачам на построение алгоритма? Эвристического.
При чём тут русский язык к программированию. Или какой там язык...
И при чем тут вообще языки к совершенно другой практической задаче, не касающейся языков и лингвистики?
У меня терпения не хватает на всякую ересь, которую нам задают :)
Неясно при чем тут моя задача. Если там и слова нет ни о каких алфавитах и грамматиках.
Я её решил полным рекурсивным перебором всех возможных комбинаций с отысканием лучшей.
me: Ну и плохо
Ну зато работает. При чем тут это таинственное "NP"? Ладно, забей, дохлый номер ) Работает и хрен с ней.
Я даже не знаю, что это обозначение означает. О [имеется в виду О-большое] какое-то
Фишка в том. Что нам не объясняди этот материал. И не будут. Просто дали лабу. Решайте.
Обновление
Oct. 31st, 2010 05:57 pmДобавлена опция
--exclude <FILE>
или --exclude "STRING"
, которая принимает список URI для исключения из обработки.Таким образом можно держать человека во френдах в соответствующей соц. сети, но при этом не аггрегировать его поток в Google Reader.
Исходники проекта: http://github.com/andy-shev/gopmlgen
P.S. Предыдущие записи по теме:
http://andy-shev.livejournal.com/113313.html
http://andy-shev.livejournal.com/81393.html
http://andy-shev.livejournal.com/67256.html
Хозяйке на заметку
Jul. 18th, 2010 02:15 pmВ связи с этим допилил частично свой скрипт, о предыдущей версии которого я уже писал ранее.
Теперь скрипт умеет две основные вещи, обновление подписок и сравнение подписок между GR и другим сервисом (таковых сейчас три: YouTube, LiveJournal, PicasaWeb).
Соответственно опция --subfolder носит не только полезную, но и смысловую нагрузку. Иначе в разнице будут присутствовать совсем не те подписки, которые хотелось бы обновить.
Примеры запуска:
$ gopmlgen --service youtube --subfolder 'YouTube' --diff Removed(1): http://gdata.youtube.com/feeds/base/users/0andriy/subscriptions - Videos published by : 0andriy $ gopmlgen --service youtube --subfolder 'YouTube' --diff --self --update all Removed(1): http://gdata.youtube.com/feeds/base/users/0andriy/subscriptions - Videos published by : 0andriy Added(1): http://gdata.youtube.com/feeds/base/users/0andriy/uploads - Videos published by : 0andriy
Есть однако и ложка дёгтя, заключающаяся в ошибке #391, не позволяющей отправлять запросы со своим Content-Type. Лечится патчем на gdata-python-client.
linux kernel
May. 26th, 2010 01:31 amНу вот, с сегодняшнего дня hex_to_bin() официально в Linux kernel.
P.S. Я уже писал ранее про возможности попатчить ядро... :)
Update. One guy had started a little discussion in LKML about efficiency of the 'tolower()' vs. 'if condition'. Without optimization the tolower() is slower.
- atoi() - перевод текстового представления числа в его значение
- hex_to_bin() - перевод шестнадцатиричной цифры из текста в значение
- isxdigit() - проверка символа, является ли он 16ричной цифрой
- hex_asc_hi(), hex_asc_lo() - обратная к hex_to_bin()
![[info]](https://www.livejournal.com/img/userinfo.gif)
P.S. Кстати, вылавливание подобных копий не ограничивается git grep <...>.
Ранее я рассмотрел перенос френдленты ЖЖ, теперь очередь за подписками Picasa и Youtube.
В отличие от LJ сам Google не отдаёт ни OPML, ни хотя бы URL потока на новые записи в Youtube (по крайней мере я не нашёл как это сделать).
Придётся генерировать их скриптом (также им стоит прогнать и LJ подписку).
Как это выглядит.
- устанавливаем Python2.x (x, наверное, >=4), python-gdata, cElementTree
- скачиваем скрипт отсюда и кладём куда-нибудь в ~/bin
- заполняем файл ~/.netrc примерно так:
machine picasaweb.google.com login LOGIN password PASSWORD machine www.youtube.com login LOGIN password PASSWORD machine www.livejournal.com login LOGIN password PASSWORD
- запускаем скрипт
$ gopmlgen --service livejournal --sort --output lj.opml --subfolder 'My LJ' $ gopmlgen --service picasaweb --sort --output picasaweb.opml --self --subfolder "PicasaWeb" ...
- полученные файлы загоняем в Google Reader:
* открыть Google Reader -> Manage Subscriptions
* выбрать фильтр "My LJ" (это же имя фолдера)
* выбрать все потоки, прошедшие фильтр, и отписаться от них
* перейти во вкладку Import/Export
* загрузить сгенерированный OPML (lj.opml)
P.S. Пожелания, патчи и пр. welcome!
Внезапно, примитив
Jan. 24th, 2010 10:16 pmОтделался по-быстрому скриптом на python'е:
import re digre=re.compile('(\d\d\d\d);', re.U) x=open("coolfilename").read() sp=re.subn(digre, lambda y: unichr(int(y.group(1))).encode('utf-8'), x)[0] open("cooloutput","w").write(sp)
links -dump file.html конечно конвертирует, только вот форматирование полностью портит.
P.S. Пора возвращать документацию в систему :)
Logjam and User-Agent
Aug. 22nd, 2009 03:45 pmToday many of you who uses LogJam LiveJournal client can't login or do any operation with server. There is new requirement to programs to add well-formed User-Agent header (details: http://www.livejournal.com/bots/). I wrote small patch to fix the issue:
P.S. This post have been made from LogJam :-)
Xcode, macports & все, все, все...
Jun. 21st, 2009 12:59 pmСкачал xcode 2.4.x, потому как ранее скачанный 3.1.1 совсем не под эту систему, запустил, установил, радуюсь...
Установил ранее скачанный macports-1.6.0. Параллельно читаю что пишут на macports.org. Говорят, что надо бы X11User + X11SDK установить.
Не тут-то было. X11SDK в комплекте Xcode, а для него нужен X11User, поставляемый на диске и только на диске. Нашёлся добрый человек, выложил X11User.pkg для Tiger'а. Поставил, радуюсь, да вычитываю, что xcode 2.5 есть. Снова качаю, устанавливаю.
Захотел поставить python-lxml. На сайте написали, что под старые библиотеки очень тяжело установить, ладно думаю, надо как советуют, воспользоваться macports. Вот, теперь всё собирается, начиная с bzip2...
Как-то Gentoo напомнило :(
Picasa & perl
Jun. 6th, 2009 02:25 pmhttp://github.com/andy-shev/net-google-picasaweb/tree/pending
P.S. Кстати, вот небольшая выжимка, как работать с модулем XML::Twig.
Fedora, update
Apr. 26th, 2009 09:45 am- psi стало глючить в меню настроек и поломали анимацию иконки в трее (ага, исходя из 494364, проблемы в qt4.5, а я уж было хотел баг зафайлить...)
- после выхода из amarok'а kded4 умудряется 100% одного процессора захватить (помимо того, что в нём скробблер не рабочий до сих пор, но это проблема апстрима) - пока переехал на audiocious, всё равно десктоп под xfce
Попутно в целях изучения D-Bus/Glib из C нашёл как улучшить logjam :)
Update: ну и ещё один достающий в logjam'е недостаток поправил...
Надёжность пароля в ICQ
Jan. 21st, 2009 07:16 pm( script )
P.S. Писалось очень давно, так что некошерно написано, но работает.
Почему ICQ это плохо.