LINUX.ORG.RU
ФорумTalks

Почему мой телефон не обновится до нового андроида?

 ,


1

2

Задаешь себе вопрос «Почему мой телефон не обновится до нового андроида?». На него есть хороший ответ - http://medium.com/russian/почему-мой-телефон-не-обновится-до-нового-андроеда-...

★★★★★

Ответ на: комментарий от Quasar

Во-первых это не смартфоны, а коммуникаторы

Именно смартфоны - http://www.sonymobile.com/ru/products/phones/ https://www.asus.com/ru/Phone/

http://www.apple.com/ru/iphone-7/

Самый мощный процессор для смартфона.

Можно не обновлять софт.

Именно. К чему тогда вопли и стенания?

Но не всем этого хочется.

Хочется - плати за свои хотелки. Почему ты считаешь, что твои хотелки должны реализовываться бесплатно?

MahMahoritos ★★★
()
Ответ на: комментарий от MahMahoritos

У тебя принудительно удаляют старый софт?

Нет. Но если в текущем ошибка - обновления я уже не получу.

У него остается ровно тот же самый функционал, который он имел на момент прекращения поддержки.

Маркетолухи в треде.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

Нет. Но если в текущем ошибка - обновления я уже не получу.

А в обновлении будет еще одна ошибка, и в следующем и дальше. Как долго ты собираешься получать обновления? Или эта ошибка нарушала нормальное функционирование? Так в этих случаях претензии к разработчику предъявляются и он ОБЯЗАН исправить этот косяк или вернуть тебе деньги.

Маркетолухи в треде.

Нет аргументов - переходи на личности, ага. Так ты собираешься аргументировать свой высер, будто телефон кирпичом становится или нет?

MahMahoritos ★★★
()
Ответ на: комментарий от MahMahoritos

А ты можешь с аргументами расписать, из какого пальца ты высосал эти минусы?

осадочек остался от htc hero, desire, one.. у первого так вообще постоянные проблемы с тачскрином были.

клином свет сошелся на обновлениях, почему на них все так неистово дрочат?

тред о том, что андроед-телефоны плохо обновляются. кто-то сказал что с огрызками та же фигня. я возразил. всего-то.

goodwin ★★
()
Ответ на: комментарий от MahMahoritos

Как долго ты собираешься получать обновления?

Пару лет было бы хорошо.

Так ты собираешься аргументировать свой высер

Кто бы говорил.

RazrFalcon ★★★★★
()
Ответ на: комментарий от Quasar

Если в венде ничего не трогать и не ставить, то система стабильная и надёжная.

разве что семерка. но ты сам понимаешь - это венда.

Если в линуксе специально ничего не ломать, то система стабильная, надёжная и не бьёт по мозгам.

при условии что всё железо поддерживается в режиме 'driver released'.

посещение гей-оргии

свои личные фантазии оставь при себе.

goodwin ★★
()
Ответ на: комментарий от RazrFalcon

Пару лет было бы хорошо.

Sony Z3 - выпущен в октябре 2014, в данный момент имеет 6.0.1 официальную. Поддержка в пару лет оказана. Какие вопросы? Почему другие производители, в том числе китайские, так не делают? А они разве обещали? Где?

Ну и кроме того, почему только пару лет? Может быть пару десятков лет? А почему бы и нет, ага. Или пока продолжает функционировать хоть один аппарат. Ты ж за него аж ХХХ баксов заплатил, теперь тебе производитель вечную поддержку должен оказывать, он же деньги из воздуха генерирует, а не получает от тебя же при продаже НОВОГО аппарата один раз.

Кто бы говорил.

Жду пруф, где я перешел с тобой на личности.

Каждый день наблюдаю, как человек пользуется телефоном с андроид 2.3 на борту. В 2016 году, ага. Обновлять его он не видит необходимости. Итак, какие у тебя аргументы к высеру «Телефон становится кирпичом»?

MahMahoritos ★★★
()
Последнее исправление: MahMahoritos (всего исправлений: 1)
Ответ на: комментарий от Quasar

Ноутбук выбирать тщательнее надо. А то странно выходит: купил рандомный ноут

lenovo thinkpad x201 tablet. рандомный ноут? да вы зажрались уже!

накатил туда разные дистрибутивы линукса

- gentoo (я с ней лет 10)
- debian
- ubuntu (чисто попробовать, вдруг патчи какие есть и помогут)
- openbsd (думал использовать как основную ос, но power management никакой и батарея сдыхала за полтора часа).

WiFi не заработал...

карточка intel 6205 выбрана с учетом поддержки оной линуксовым драйвером.
гуглил есть ли с ней какие-либо проблемы - находилось только то, как нубы не могли положить в /lib/firmware сами блобы.
и больше никаких проблем. сам понимаешь, выглядит так, будто всё в шоколаде.
драйвер (и iwlwifi и bsd'шный iwn) загружает в память init-блоб пишет его в pci-e и ждет прерывание от карточки.
под линуксом (в разных версиях ядра) прерывание карточка так и не генерит, драйвер завершает работу по таймауту ожидания прерывания.
я и таймаут увеличивал в коде, и еще всякие костыли пытался прикручивать. но ничего не помогло.
разницы в коде bsd'шного и линукового драйверов я не видел. это одно и тоже. но линуксовый не работал.

Но почему-то при этом OS X не ругаешь, а сразу купил ноут, который целиком и полностью поддерживается OS X.

разве я не сделал того же самого в случае с Linux? и потом на выбор макбука повлияли и другие факторы:
- специфический софт
- время работы от батареи
- ретина (не «QHD-матрица, а дальше ипись как хочешь с настройкой DPI чтобы всё было красиво, а не кое-как»)
- работа всего из коробки
- unix-like (и не надо мне советовать накатить cygwin на венду)
я то свой выбор сделал, но линукс на десктопе не засираю. если всё работает и софта хватает - то шикарно.
просто мне не зашло. на серверах, и даже в некоторых случаях на маршрутизаторах использую линукс.

goodwin ★★
()
Ответ на: комментарий от hibou

стал вейпером и начал подворачивать штанины? :)

JB ★★★★★
() автор топика
Ответ на: комментарий от MahMahoritos

MahMahoritos> Именно. К чему тогда вопли и стенания?

Семантика того моего высказывания кроется не в одном предложении.

MahMahoritos> Хочется - плати за свои хотелки. Почему ты считаешь, что твои хотелки должны реализовываться бесплатно?

Это ты меня пытаешься обвинить в том, что я якобы халявщик?

Quasar ★★★★★
()
Ответ на: комментарий от goodwin

goodwin> при условии что всё железо поддерживается в режиме 'driver released'.

На венде и маке ровно то же самое.

goodwin> свои личные фантазии оставь при себе.

Это не фантазии, а аналогия.

Я так понимаю, по теме у тебя возражений нет.

Quasar ★★★★★
()
Ответ на: комментарий от goodwin

goodwin> lenovo thinkpad x201 tablet. рандомный ноут?

Да. Ведь ты не проверял заранее, будет там работать система или нет.

goodwin> карточка intel 6205 выбрана с учетом поддержки оной линуксовым драйвером.

Значит наиболее вероятно, что проблема специфична для конкретного диапазона версий ядра или конкретной прошивки материнской платы. И да: ноутбуки с заявленной поддержкой линукса существуют.

goodwin> разве я не сделал того же самого в случае с Linux?

Судя по тому, что ты написал - ты смотрел на WiFi-модуль, но не сам ноутбук вообще. Ты мог бы ноутбук с предустановленным линуксом купить, к примеру. Я так делал - всё нормально в итоге. Даже wifi-карточка от realtek, которая считается проблемной, заработала. И лучше, чем в венде.

Quasar ★★★★★
()
Ответ на: комментарий от MahMahoritos

Sony Z3 - выпущен в октябре 2014, в данный момент имеет 6.0.1 официальную. Поддержка в пару лет оказана. Какие вопросы? Почему другие производители, в том числе китайские, так не делают? А они разве обещали? Где?

В октябре 2014го. Сейчас сентябрь 2016го. 2 года ещё без одного месяца, а 7й андроид(вышедший в августе) на него уже не выйдет. Получается что срок поддержки урезан минимум на месяц.

Loki13 ★★★★★
()
Ответ на: комментарий от Quasar

вот начинается юление и увиливание :)

ты не проверял заранее, будет там работать система или нет.

проверял. там работает всё, даже wacom (x201t это таблетка с пером, я даже пробовал рисовать мангу в mypaint и это работает).
а теперь специально для тебя, еще раз:
в NetBSD и OpenBSD с драйвером iwn (который есть iwlwifi переписанный под bsd) карточка работает!

проблема специфична для конкретного диапазона версий ядра

пробовал различные версии ядер и версии драйвера iwlwifi с более старыми версиями блобов. результат - нифига.

конкретной прошивки материнской платы

пробовал три версии bios. пробовал еще один такой же ноутбук.

Даже wifi-карточка от realtek

да, реалтек при этом там работает. но у меня не реалтек, а интел 6205, который работает под bsd и вендой.


кстати, помимо этого вспомнил сейчас об еще одной проблемке забавной, связанной с ядром линукса.
есть у меня pico-itx плата, на ней есть vga и lvds видео-выходы. используется vga.
настраиваю иксы, запускаю - кернел паник! wtf? O_O копался-копался и выяснил следующее:
драйвер видюхи в ядре получает список структур описывающих порты (vga, lvds), далее по ним проходится и что-то делает.
не проверяет указатели на null :) а если lvds в биосе включен, но к нему ничего не подцеплено, то поля структурки содержат null.
так мило. с одной стороны правильно, надо за-disable'ить порт, если не используется, а с другой - так сложно чекнуть if (ptr==null).

мне кажется ты теоретик, и готов (в чем уличить стараешься почему-то других)
кушать что дают - подбирать за свои деньги железо до тех пор, пока оно не заработает под линуксом,
который пишется неким коммьюнити, которое в свою очередь ничего никому не обязано и делает что хочет.

goodwin ★★
()
Ответ на: комментарий от Quasar

Значит наиболее вероятно, что проблема специфична для конкретного диапазона версий ядра или конкретной прошивки материнской платы. И да: ноутбуки с заявленной поддержкой линукса существуют.

То то и оно. Теже Dell заявляли, что у нас ноутбук сертифицирован для Ubuntu xx.xx, что у вас там под новой ubuntu zz.zz проблемы с новым ядром - нас не волнует.

fornlr ★★★★★
()
Ответ на: комментарий от hibou

Ушёл с андроида на айфон и очень рад

Доездился на велосипеде по кочкам?

imul ★★★★★
()
Ответ на: комментарий от goodwin

под bsd всё в порядке, я сравнивал код драйверов iwn(bsd) и iwlwifi(linux) - он (код) идентичный в прямом смысле того слова.

Специально посмотрел - он не идентичен (и не может быть идентичным).

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Специально посмотрел - он не идентичен (и не может быть идентичным).

подробнее расскажи в чем разница?
код iwn в одном файле, код iwlwifi разбросан по файлам.
суть действий с железом там одна и та же.
в чем ты нашел разницу? (вдруг что годное нашел)

goodwin ★★
()
Ответ на: комментарий от goodwin

Специально посмотрел - он не идентичен (и не может быть идентичным).

подробнее расскажи в чем разница?

Тупо размером. Если сравнивать iwn с iwlegacy, последний в 3 раза больше. Если сравнивать с iwlwifi - последний почти в 2 раза меньше. Только не говори, что ты выделил и сравнил код работы с железом.

Прозреваю, что у тебя в FreeBSD и Linux были тупо разные версии. Одна работала, другая нет.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Только не говори

я нашел в iwlwifi где и как загружается блоб в карточку, и что происходит потом.
тоже самое нашлось и в bsd'шном iwn. ну функции ядра названы иначе, ну структуры чуть другие и названия флагов.
но значения флагов, их кол-во и порядок операций - всё одно и тоже. суть и в iwlwifi и в iwn одна и та же, ничего не меняется.
утрированно:
берем ucode, пихаем его в pci, ждем прерывания от карточки.
карточка, скушав блобик, видимо запускает его и инициализируется,
генерит прерывание и драйвер дальше работает (кормит её следующим блобиком).
в итоге карточка проинициализирована, настроена и начинает работать - профит!
только какого икса под линуксом она так и не генерит прерывание...

Прозреваю, что у тебя в FreeBSD и Linux были тупо разные версии

линуксовые ядра разных версий пробовал (и из 3-й ветки и из 4-й).
netbsd и openbsd были из последних. венда была семерка.

goodwin ★★
()
Ответ на: комментарий от goodwin

я нашел в iwlwifi где и как загружается блоб в карточку, и что происходит потом.

тоже самое нашлось и в bsd'шном iwn. ну функции ядра названы иначе, ну структуры чуть другие и названия флагов.

Хм. Что ты вообще называешь «идентичным кодом»?

линуксовые ядра разных версий пробовал (и из 3-й ветки и из 4-й).

Я верю, что ты пытался решить проблему. Но ты не сказал ничего, что исключило бы разные версии драйвера.

tailgunner ★★★★★
()
Ответ на: комментарий от Quasar

Так ведь ты и начал на личности переходить.

Цитату в студию

MahMahoritos ★★★
()
Ответ на: комментарий от Loki13

Получается что срок поддержки урезан минимум на месяц

Урезан относительно чего, хотелки в виде «пару лет»? Не знаю, как остальные, а я фразы вроде «пару лет», «несколько лет» воспринимаю, как приблизительные, 1 год 11 месяцев вполне вписывается в «примерно два года»

Или сони (или самсунг/xiomi/др) официально где-то заявила, что обязуется обновлять прошивку до последней (!) версии андроида на протяжении определенного срока? Ты в курсе, что поддержку можно оказывать и для устаревшей мажорной версии - регулярно и на протяжении долгого времени ?

MahMahoritos ★★★
()
Последнее исправление: MahMahoritos (всего исправлений: 1)
Ответ на: комментарий от goodwin

кушать что дают - подбирать за свои деньги железо до тех пор, пока оно не заработает под линуксом,

Он тебе указал прямым текстом - надо брать оборудование, производитель которого прямо указал поддержку линукса. В случае ноутбука это должен быть производитель ноутбука. Никаких перебираний, просто открываешь спецификации и смотришь, какие ОС поддерживает этот ноут. Всё, никаких переборов

MahMahoritos ★★★
()
Ответ на: комментарий от MahMahoritos

Ты в курсе, что поддержку можно оказывать и для устаревшей мажорной версии - регулярно и на протяжении долгого времени ?

Так вот по мне такой вариант это не поддержка, а профанация. Так ведроид можно вообще ни разу не обновить(версию), а выпускать 20 лет секурные патчи, заявляя при этом поддержку в 20 лет.

Loki13 ★★★★★
()
Ответ на: комментарий от Loki13

Так вот по мне такой вариант это не поддержка, а профанация. Так ведроид можно вообще ни разу не обновить(версию), а выпускать 20 лет секурные патчи, заявляя при этом поддержку в 20 лет.

Угу, ты еще скажи, что поддержка любого ПО заключается в завозе в него новых функций, а не просто в исправлении ошибок и мелких улучшениях. Или что купив ПО на определенной версии ты автоматически получаешь многолетнюю подписку на дальнейшие версии этого ПО.

MahMahoritos ★★★
()
Ответ на: комментарий от Loki13

Так ведроид можно вообще ни разу не обновить(версию), а выпускать 20 лет секурные патчи, заявляя при этом поддержку в 20 лет.

Лично меня это вполне устроило бы. А если производитель прямо скажет «предоставляем 20 лет, но только секурные патчи» - так и вообще всё честно.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Лично меня это вполне устроило бы.

ага, только уже куча софта есть под ведроид с минимальными требованиям лолипопа. там какие-то апи завезли, которые все начали использовать.

Loki13 ★★★★★
()
Ответ на: комментарий от Loki13

Так ведроид можно вообще ни разу не обновить(версию), а выпускать 20 лет секурные патчи, заявляя при этом поддержку в 20 лет.

А что, всякие редхаты и майкрософты не так делают? Это не поддержка?

KillTheCat ★★★★★
()
Ответ на: комментарий от Loki13

только уже куча софта есть под ведроид с минимальными требованиям лолипопа

Это вопрос к разработчикам, почему им срать на людей, которые купили телефон два или более года назад и все еще не имеют желания его поменять. Отчасти это вопрос к гуглу, почему он в принудительном порядке не обязывает разрабов поддерживать в том числе и старые версии ОСи.

Но не к производителям конечных устройств и чипов. Тот же Z3, например, коль уж я эту модель все в примерах использую, сейчас бы на 4.4 в состоянии поставки работал в точности так же, как в день релиза. А именно за состояние поставки производитель и отвечает, не за дополнительные программы, которые вы сможете или не сможете поставить потом дополнительно.

Кстати, тут сетуют, что новые версии программ не ставятся на старые прошивки. А обратного разве быть не может? В том, что программа заброшена и, допустим, перестанет запускаться на очередной новой версии андроида, снова производитель будет виноват? Теперь в том, что он посмел обновить вам прошивку?

MahMahoritos ★★★
()

Отличный вброс. Молодчина, JB.

Deleted
()
Ответ на: комментарий от KillTheCat

А что, всякие редхаты и майкрософты не так делают? Это не поддержка?

Они не продают железо. А вот Эппл который продаёт железо, обновляет бесплатно маки до новых макосов. У меня ни разу не было продукции Эппл, но я считаю что в этом они молодцы.

Loki13 ★★★★★
()
Ответ на: комментарий от Loki13

Я понимаю, что это не всех устроит. Но думаю, что многих.

tailgunner ★★★★★
()
Ответ на: комментарий от KillTheCat

То что есть софт требующий 4.4 я знаю, а вот 5.0 ни разу не видел.

Я знаю что видел такие, а вот как их найти умышленно, я не очень представляю. Даже что в гугле писать не понятно. Не парсер гугломаркета же писать.

Loki13 ★★★★★
()
Ответ на: комментарий от Loki13

обновляет бесплатно маки до новых макосов.

Раньше обновления были платные.

pawnhearts ★★★★★
()
Ответ на: комментарий от stave

Апдейт до 5 андоеда и батарейки на 7200 закрыл все вопросы.

Ну это.. Самообманом то не стоит заниматься. Я коллеге на note1 поставил 5-й андроид. «Закрытием» всех вопросов я бы это не назвал :) Всё-таки гиг памяти и старый двухядерный процессор дают о себе знать периодическими тормозами с современным блоатварным софтом из маркета.

Deleted
()
Ответ на: комментарий от fcx

всегда был «узел» тот который из врвевок, а схерали он стал хреном?

Deleted
()
Ответ на: комментарий от Loki13

Они не продают железо.

Ну фактически и они не продают железо, продают то что из него собирают. Я думаю вся проблема в производителях железа - обновление блобов стоит денег, хотя у самсунга вроде свой soc, могли бы хоть все версии обновить до 7ки.

А те кто продают железо с виндой обновляют? Десктопы и ноуты вообще идут как-бы без ос и максимум что обновит «производитель» это свой говнософт. Другое дело что это никого не волнует - всегда можно поставить убунту или 10ку на 13-ти летний пк.

KillTheCat ★★★★★
()
Ответ на: комментарий от tailgunner

Хм. Что ты вообще называешь «идентичным кодом»?

хз, может я действительно неверно изъясняюсь.
linux
iwlwifi/iwldvm/ucode.c:

iwl_run_init_ucode() {
  iwl_load_ucode_wait_alive() {
    iwl_trans_start_fw()
  }
}
iwlwifi/iwl-trans.h:
static inline int iwl_trans_start_fw(struct iwl_trans *trans,
				     const struct fw_img *fw,
				     bool run_in_rfkill)
{
	might_sleep();
	WARN_ON_ONCE(!trans->rx_mpdu_cmd);
	clear_bit(STATUS_FW_ERROR, &trans->status);
	return trans->ops->start_fw(trans, fw, run_in_rfkill);
}
структура iwl_trans содержит в себе структуру iwl_trans_ops, в которой лежат указатели на функции.
нам нужна вот эта:
int (*start_fw)(struct iwl_trans *trans, const struct fw_img *fw,
		bool run_in_rfkill);
идем в iwlwifi/pcie/trans.c и видим:
static const struct iwl_trans_ops trans_ops_pcie = {
	//...
	.start_fw = iwl_trans_pcie_start_fw,
	//...
далее:
iwl_trans_pcie_start_fw() {
  // запрещают прерывания rfkill, проверяют точно ли они запрещены
  // разрешают прерывание от карточки после загрузки блоба (то самое)
  iwl_enable_fw_load_int()
  // еще раз проверяют запрет прерываний rfkill
  // грузят наконец-то блоб
  iwl_pcie_load_given_ucode() {
    iwl_pcie_load_cpu_sections() {
      iwl_pcie_load_section() {
          // делят секцию блока на куски, выделяют dma память под кусок
        for() {
          iwl_pcie_load_firmware_chunk() {
            memcpy(dma,chunk);
            iwl_pcie_load_firmware_chunk() {
              iwl_pcie_load_firmware_chunk_fh() {
                /* вот здесь самое интересное */
              }
            }
} } } } } }
далее возврат к ожиданию и таймаут.

openbsd
if_iwn.c:
int
iwn5000_attach(struct iwn_softc *sc, pci_product_id_t pid)
{
	struct iwn_ops *ops = &sc->ops;
	ops->load_firmware = iwn5000_load_firmware;
...
смотрим iwn5000_load_firmware():
iwn5000_load_firmware() {
  // в bsd загрузка блоба разделена на две секции
  iwn5000_load_firmware_section() {
    iwn5000_load_firmware_section() {
      /* вот здесь самое интересное */
    }
  }
  iwn5000_load_firmware_section() {
  }
}
ну и сравним что пишется в dma и как:
linux
static void iwl_pcie_load_firmware_chunk_fh(struct iwl_trans *trans,
					    u32 dst_addr, dma_addr_t phy_addr,
					    u32 byte_cnt)
{
	iwl_write32(trans, FH_TCSR_CHNL_TX_CONFIG_REG(FH_SRVC_CHNL),
		    FH_TCSR_TX_CONFIG_REG_VAL_DMA_CHNL_PAUSE);

	iwl_write32(trans, FH_SRVC_CHNL_SRAM_ADDR_REG(FH_SRVC_CHNL),
		    dst_addr);

	iwl_write32(trans, FH_TFDIB_CTRL0_REG(FH_SRVC_CHNL),
		    phy_addr & FH_MEM_TFDIB_DRAM_ADDR_LSB_MSK);

	iwl_write32(trans, FH_TFDIB_CTRL1_REG(FH_SRVC_CHNL),
		    (iwl_get_dma_hi_addr(phy_addr)
			<< FH_MEM_TFDIB_REG1_ADDR_BITSHIFT) | byte_cnt);

	iwl_write32(trans, FH_TCSR_CHNL_TX_BUF_STS_REG(FH_SRVC_CHNL),
		    BIT(FH_TCSR_CHNL_TX_BUF_STS_REG_POS_TB_NUM) |
		    BIT(FH_TCSR_CHNL_TX_BUF_STS_REG_POS_TB_IDX) |
		    FH_TCSR_CHNL_TX_BUF_STS_REG_VAL_TFDB_VALID);

	iwl_write32(trans, FH_TCSR_CHNL_TX_CONFIG_REG(FH_SRVC_CHNL),
		    FH_TCSR_TX_CONFIG_REG_VAL_DMA_CHNL_ENABLE |
		    FH_TCSR_TX_CONFIG_REG_VAL_DMA_CREDIT_DISABLE |
		    FH_TCSR_TX_CONFIG_REG_VAL_CIRQ_HOST_ENDTFD);
}
openbsd
int
iwn5000_load_firmware_section(struct iwn_softc *sc, uint32_t dst,
    const uint8_t *section, int size)
{
	struct iwn_dma_info *dma = &sc->fw_dma;
	int error;

	/* Copy firmware section into pre-allocated DMA-safe memory. */
	memcpy(dma->vaddr, section, size);
	bus_dmamap_sync(sc->sc_dmat, dma->map, 0, size, BUS_DMASYNC_PREWRITE);

	if ((error = iwn_nic_lock(sc)) != 0)
		return error;

	// отсюда начинается линуксовая iwl_pcie_load_firmware_chunk_fh()
	IWN_WRITE(sc, IWN_FH_TX_CONFIG(IWN_SRVC_DMACHNL),
	    IWN_FH_TX_CONFIG_DMA_PAUSE);

	IWN_WRITE(sc, IWN_FH_SRAM_ADDR(IWN_SRVC_DMACHNL), dst);
	IWN_WRITE(sc, IWN_FH_TFBD_CTRL0(IWN_SRVC_DMACHNL),
	    IWN_LOADDR(dma->paddr));
	IWN_WRITE(sc, IWN_FH_TFBD_CTRL1(IWN_SRVC_DMACHNL),
	    IWN_HIADDR(dma->paddr) << 28 | size);
	IWN_WRITE(sc, IWN_FH_TXBUF_STATUS(IWN_SRVC_DMACHNL),
	    IWN_FH_TXBUF_STATUS_TBNUM(1) |
	    IWN_FH_TXBUF_STATUS_TBIDX(1) |
	    IWN_FH_TXBUF_STATUS_TFBD_VALID);

	/* Kick Flow Handler to start DMA transfer. */
	IWN_WRITE(sc, IWN_FH_TX_CONFIG(IWN_SRVC_DMACHNL),
	    IWN_FH_TX_CONFIG_DMA_ENA | IWN_FH_TX_CONFIG_CIRQ_HOST_ENDTFD);
	// и здесь заканчивается

	iwn_nic_unlock(sc);

	/* Wait at most five seconds for FH DMA transfer to complete. */
	return tsleep(sc, PCATCH, "iwninit", 5 * hz);
}
iwl_write32 и IWN_WRITE делают same shit.
в линуксе:
iwl-io.h/iwl-io.c: iwl_write32() вызывает iwl_trans_write32()
iwl-trans.h: iwl_trans_write32() вызывает write32() из структуры iwl_trans->iwl_trans_ops
iwlwifi/pcie/trans.c: .write32 = iwl_trans_pcie_write32, вызывает writel(), а это уже arch/x86/include/asm/io.h
в бсд:
if_iwnreg.h: #define IWN_WRITE(sc, reg, val) bus_space_write_4((sc)->sc_st, (sc)->sc_sh, (reg), (val))
machine/bus.h: #define bus_space_write_4(_t, _h, _o, _v) ((_t)->write_4((_h), (_o), (_v)))
где _t это указатель на структуру bus_space_tag_t (x86_bus_space_ops) и всё сводится к outl()
ps: в линуксе инкапсулированно очень глубоко всё, очень геморойно ковыряться, бсд показалось сильно проще.
pps: надо закругляться, а то оффтопом пахнет...

goodwin ★★
()
Ответ на: комментарий от Loki13

Есть разница: сделать нахаляву и сделать за деньги. Первые — это Васяны, собирающие цианы и прочий аосп. Вторые — это производитель(а может и не он, а вообще левый китаец). Откуда возьмутся деньги на оплату вторым?

Что самое характерное, зачастую прошивки работают одинаково.

a1batross ★★★★★
()

Очередная волна срача на фоне обновлений ios, android - это понятно. Но где срачи на тему презентации новых вариантов консоли Sony Playstation 4?

grem ★★★★★
()
Ответ на: комментарий от Bad_ptr

1 US dollar is roughly 15000 Vietnamese dong

Так и напрашивается шутка: сколько вьетнамцев можно купить за 1 доллар? 15000 мужиков точно, для женщин нужно уточнить

upcFrost ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.