diff --git a/projects/RPi/patches/kodi-theme-Confluence/kodi-theme-Confluence-001-jarvis-rbp-backports.patch b/projects/RPi/patches/kodi-theme-Confluence/kodi-theme-Confluence-001-jarvis-rbp-backports.patch index b8c6a5c300..84ea8d1914 100644 --- a/projects/RPi/patches/kodi-theme-Confluence/kodi-theme-Confluence-001-jarvis-rbp-backports.patch +++ b/projects/RPi/patches/kodi-theme-Confluence/kodi-theme-Confluence-001-jarvis-rbp-backports.patch @@ -1,7 +1,7 @@ -From 3ea5de3b27203ea08529101f42534285cff0e1c0 Mon Sep 17 00:00:00 2001 +From 01759c5adfb050b1ba0c8a8fc4e20a875a98c0e5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 10 Aug 2014 18:58:37 +0100 -Subject: [PATCH] confluence: Remove media-overlay.jpg for when video is +Subject: [PATCH 1/2] confluence: Remove media-overlay.jpg for when video is backgrounded --- @@ -21,3 +21,97 @@ index cc996da..d6aa595 100644 [Player.HasVideo + !Skin.HasSetting(ShowBackgroundVideo)] + !Window.IsVisible(TVChannels) + !Window.IsVisible(RadioChannels) VisibleFadeEffect +-- +2.5.0 + + +From d99f70c094006144f07bdf739f5847b733030245 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 22 Jul 2013 23:19:15 +0100 +Subject: [PATCH 2/2] [confluence] Use animated gif as a cheaper working + spinner + +--- + 720p/DialogBusy.xml | 4 ++-- + media/busy.gif | Bin 0 -> 3199 bytes + 2 files changed, 2 insertions(+), 2 deletions(-) + create mode 100644 media/busy.gif + +diff --git a/720p/DialogBusy.xml b/720p/DialogBusy.xml +index b5df91f..8e84fed 100644 +--- a/720p/DialogBusy.xml ++++ b/720p/DialogBusy.xml +@@ -25,9 +25,9 @@ + 20 + 32 + 32 +- busy.png ++ busy.gif + keep +- conditional ++ + + + Busy label +diff --git a/media/busy.gif b/media/busy.gif +new file mode 100644 +index 0000000000000000000000000000000000000000..f856ed0b44fdc7e9b0520c7e39a9bebc04136897 +GIT binary patch +literal 3199 +zcmc(fX;f2Z9>y=ZH#f_@I(Toefj|vNK&XX)Kv`7?5Fj9nfFK|eqk^a)i$D+vOGrT0 +z5Y~W_Kw^kiL|j0tWs!ndI9M0djt#Zlzxi?2cy3&gq6Zb5u5$@@ybycc*-E=i(!PE0#hKFr +z8YwHA>k$o6chjKaEI)p!$wAoDL&l~=#v-6#Yi*r{$k>ZaBy{Iun&<0smBO`6!} +z&StP`{nE=0r$xK_71$KwBW33sD3@jYuko!${Lx^a-L6nm0XI6%X29c~=ih=uThmJ) +z0`sx_;Y1skXCCRh-xeI%QSoNyoC$Wv8mqotx(oQi`#)m+fqj0FJ-Ty#;#jn=BdyK1 +z=B6qP9+rpm>D&te;)?^%P6X=O1hYo3EX2|KvKf!7 +zPC<6`-z>t4dt|sDMs?7$3qAAwp-9+}MG!&HJG +zR56mo+HAFw+XYc`x>Q}qx+NXw8e)#H8!s@v;-0BxXf+|F!d7fF@#p{m^y-r6hhl}(OBf7Z9T-XA592wChCS0 +zghE0dyCjN1p_XlCgFCZKa-d{)QY(vcG`ORqtd3Hv5q9cwWnZ4q9qQ6`p6gJt`i)yI +z(k}USCso)D$=T8}kwkOttLQTdyk*$=N_P3zvI>gu=+%v7SlP7u{o}wK&@wvs;D^UR +z_hrU2=hu&--McI1v8!sb^Bc*rSV@S1`PqwVQ`z9M6-zo`(fwU?)%?V6L!Su!wg%>{ +z_Ap6;JlsqFZs&4*_Hyca%X9UeJIQa&rOjqikQOUh?PJH$+b_COMJv9VKYa@bFkHLx +zuWLOM>d88zwur244toBqkoynF%QKPCmFw0Ka@mD&l3lo%OWd7hoRh}_r7X*^);1h% +zS0Y48mAJw~sY5l#+K!_g>SODUoZ~jI`sJw?F0nP#X1q5bEJf^ykCn3huW0t=Buk;; +z>>ir2ELZoSz5-s3JdcW?Z_9fzG0p9c+f +zF75u0#&QywaXZ%t%wx{@Fph2 +z8>d4#CVRatgPNLgq_yn;r95LtQ=1x5s+u(jzg=bD(&G)*)dYbk>S|JZ)~LT9sTL@u +zECM`$!UZY^R=O23aIrSC7%KKzN9#j7fanO3;b9=-Uc$Ny%r0K&Q!3cxIY#cXS+p(!;!p<8t|C$aCa +zmw^IV`QJZ}KB=L;O)P3iejKViBr3riXEU+Os6+HSe_FAg!SQwiv}qZC3nHl$W!6d@ +z71S4lX+^(KPOx(Lj8E2YV-Zqp(+-;Kb+HVT)!}eMBgt)5sl=u6D6D9$YloY~9dexu +zC}LF_6A=VFoaEBm3%6lfCWlPwM@VL+UM3*w1;PDiz0>h(8VN;V8aTNv3fh%t9zvN$ +za|0i22m!`XM6L*S0Fdda0iPRhpr2%l$fxG?zK7#0^aKDQU~07$CjLum>`5g?|W04 +zWxRT@I!WkM-tG!!7x5q%CKh;dv|7?pi#(SC(n*+0 +z_JkG+)}Xfm$~B~iw*|Y6V&e#09^^HH!`DEm|CuKkbWa-O@fsst>tv+k@8)}8 +zIQam3jP;F3e?*@>`tHd{w(%sqW=s(>)3Q9u09{KSdvd$zkgeI0Rru=vq=DF#Oe*oT +zUC2Jj$)htMM58IqjK$$@6z*jZz{EVhT7wY1hm0T)9FAM%LDXn*5`t*q1rLmYg^^Y_ +z5X0LrM!i=K-AxOOl={&<{L5D6K +z>;#ZUjACfyRUVK|-3P;Ja2nW>ZDDm2Hk|&>-$hEgc>zg*B6Z$SRsZ~{lGhZr?x1$s1t=S{s}LNuEC0*wfD$uoK%8ST1Gwr7S<)+ +z9iovkGf8Q-PRuArxY*wt@#b!a<6hm>8dJ&H!R +z$Oeur6$C~7PILzO;&4;G^(D-5m{@KUl(MQ1yKs>x+CMqUUllb3x?=fppG8_v>@)ZY +xGUUb21Yb|%0k3;EZL|UA71ss70{N2%rZhjU!V8TtZxzYw_F;tVxR3z1e*p+ht@8i? + +literal 0 +HcmV?d00001 + +-- +2.5.0 + diff --git a/projects/RPi/patches/kodi/kodi-001-jarvis-rpb-backports.patch b/projects/RPi/patches/kodi/kodi-001-jarvis-rbp-backports.patch similarity index 95% rename from projects/RPi/patches/kodi/kodi-001-jarvis-rpb-backports.patch rename to projects/RPi/patches/kodi/kodi-001-jarvis-rbp-backports.patch index 16d501a0c6..89a72271ff 100644 --- a/projects/RPi/patches/kodi/kodi-001-jarvis-rpb-backports.patch +++ b/projects/RPi/patches/kodi/kodi-001-jarvis-rbp-backports.patch @@ -1,7 +1,8 @@ -From 927d6ad60e7f1d38b5263b12cc60910d51de31e0 Mon Sep 17 00:00:00 2001 +From 0418867953596638f7c8bd9a73f993588ef9ca14 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Sep 2015 19:11:14 +0100 -Subject: [PATCH] Enable concealed error frames, but discard them when returned +Subject: [PATCH 01/94] Enable concealed error frames, but discard them when + returned --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 17 ++++++++--------- @@ -50,11 +51,15 @@ index bebe136..727a9ea 100644 if (status != MMAL_SUCCESS) CLog::Log(LOGERROR, "%s::%s Failed to disable error concealment on %s (status=%x %s)", CLASSNAME, __func__, m_dec_input->name, status, mmal_status_to_string(status)); -From cded5cf3c63fb1a3481c3983b232fad07ba3f218 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 66a74ecce9891a49ef5af36ecb216524d399d309 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 26 Aug 2015 21:47:41 +0100 -Subject: [PATCH] Reduce framerate of high framerate videos when not running - fullscreen +Subject: [PATCH 02/94] Reduce framerate of high framerate videos when not + running fullscreen --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 14 +++++++++++++- @@ -106,7 +111,7 @@ diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h b/xbmc/cores/dvdpl index d081b9c..0ea6ecd 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h -@@ -123,6 +123,8 @@ class CMMALVideo : public CDVDVideoCodec +@@ -123,6 +123,8 @@ protected: bool SendCodecConfigData(); CDVDStreamInfo m_hints; @@ -115,10 +120,14 @@ index d081b9c..0ea6ecd 100644 // Components MMAL_INTERLACETYPE_T m_interlace_mode; EINTERLACEMETHOD m_interlace_method; -From f72fa574396fd38e389ae16aed207ce46eeefdb1 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 9aaaf4cc73da770a7900e5a8095500150fb46db7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 2 Dec 2015 20:08:05 +0000 -Subject: [PATCH] Remove preroll +Subject: [PATCH 03/94] Remove preroll --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 12 ++---------- @@ -181,7 +190,7 @@ diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h b/xbmc/cores/dvdpl index 0ea6ecd..50ac0e3 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h -@@ -131,7 +131,6 @@ class CMMALVideo : public CDVDVideoCodec +@@ -131,7 +131,6 @@ protected: double m_demuxerPts; double m_decoderPts; int m_speed; @@ -189,10 +198,14 @@ index 0ea6ecd..50ac0e3 100644 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_dec; -From da33fcf121d1dbc2455ca2ddfa9e709551cb79f4 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 103c4eb8a0a6d33bbcb42f128b82d16a5997386f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 2 Dec 2015 22:35:11 +0000 -Subject: [PATCH] Remove demux queue +Subject: [PATCH 04/94] Remove demux queue --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 81 ++++------------------ @@ -359,7 +372,7 @@ diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h b/xbmc/cores/dvdpl index 50ac0e3..f4df09c 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h -@@ -64,13 +64,6 @@ class CMMALVideoBuffer +@@ -64,13 +64,6 @@ private: class CMMALVideo : public CDVDVideoCodec { @@ -373,7 +386,7 @@ index 50ac0e3..f4df09c 100644 public: CMMALVideo(); virtual ~CMMALVideo(); -@@ -110,9 +103,6 @@ class CMMALVideo : public CDVDVideoCodec +@@ -110,9 +103,6 @@ protected: float m_aspect_ratio; const char *m_pFormatName; @@ -383,10 +396,14 @@ index 50ac0e3..f4df09c 100644 // mmal output buffers (video frames) pthread_mutex_t m_output_mutex; std::queue m_output_ready; -From 24dcd8662b2ba576f4a5621070c1b80de2d561cb Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 8869a77fbd72a0e9a341ad859a08c3dd8f64eff0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 2 Dec 2015 20:10:33 +0000 -Subject: [PATCH] Remove time based limit on submitted packets +Subject: [PATCH 05/94] Remove time based limit on submitted packets --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 24 +++------------------- @@ -458,7 +475,7 @@ diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h b/xbmc/cores/dvdpl index f4df09c..8f84557 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h -@@ -118,8 +118,6 @@ class CMMALVideo : public CDVDVideoCodec +@@ -118,8 +118,6 @@ protected: // Components MMAL_INTERLACETYPE_T m_interlace_mode; EINTERLACEMETHOD m_interlace_method; @@ -467,10 +484,14 @@ index f4df09c..8f84557 100644 int m_speed; CCriticalSection m_sharedSection; -From 6e6d985927e7bc626a2c2b68ce7b1a6228453eaf Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 2aee01ad85f6233bc6f850d75c594a0e7838930f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Dec 2015 22:18:47 +0000 -Subject: [PATCH] Add back logging of data queued in decoder +Subject: [PATCH 06/94] Add back logging of data queued in decoder --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 22 +++++++++++++++++++++- @@ -542,7 +563,7 @@ diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h b/xbmc/cores/dvdpl index 8f84557..f4df09c 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h -@@ -118,6 +118,8 @@ class CMMALVideo : public CDVDVideoCodec +@@ -118,6 +118,8 @@ protected: // Components MMAL_INTERLACETYPE_T m_interlace_mode; EINTERLACEMETHOD m_interlace_method; @@ -551,11 +572,15 @@ index 8f84557..f4df09c 100644 int m_speed; CCriticalSection m_sharedSection; -From 83759ec3a304fe3206f629d2c4eff4ba8bb16948 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 011ad87c7a06222473b06654ab4df0a292edc956 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 8 Dec 2015 11:40:17 +0000 -Subject: [PATCH] Try to minimise latency through hardware decoder. This could - reduce performance but keeps videoplayer happier +Subject: [PATCH 07/94] Try to minimise latency through hardware decoder. This + could reduce performance but keeps videoplayer happier --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 42 +++++++++++++++++----- @@ -639,10 +664,15 @@ index 35a9847..f96cc14 100644 return ret; } -From f66265227a97d12f958318188bf63c2db0da6fc4 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 3302e62bfc5a964bdb7beb98ca0624b138edadaa Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Jul 2015 19:27:25 +0100 -Subject: [PATCH] Enable QPU based deinterlace and remove resolution limit +Subject: [PATCH 08/94] Enable QPU based deinterlace and remove resolution + limit --- xbmc/cores/VideoRenderers/MMALRenderer.cpp | 2 +- @@ -709,10 +739,14 @@ index e50c13a..20ad4fa 100644 if (!advanced_deinterlace) image_filter.eImageFilter = OMX_ImageFilterDeInterlaceFast; else -From f32634dbefc6530ed540a7a57009deaea187fc71 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From db5f80d9955ecf1fa37c12f10bc48d8b84871f99 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 16 Aug 2015 15:46:33 +0100 -Subject: [PATCH] Allow deinterlace with software decode +Subject: [PATCH 09/94] Allow deinterlace with software decode --- xbmc/cores/VideoRenderers/MMALRenderer.cpp | 9 +++++++++ @@ -745,11 +779,57 @@ index bee3af1..9b5c666 100644 return m_sourceWidth * m_sourceHeight <= 576 * 720 ? VS_INTERLACEMETHOD_MMAL_ADVANCED : VS_INTERLACEMETHOD_MMAL_BOB; } -From e664ff7a544b0cb1b24f095ff6f408425e4fb3e4 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 36180656b74f719ee0c2a8748a5d12d5ccbea93b Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 15 Sep 2015 22:26:26 +0100 +Subject: [PATCH 10/94] omxplayer: Don't use AutoInterlaceMethod it changes at + start of file + +--- + xbmc/cores/omxplayer/OMXHelper.cpp | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/xbmc/cores/omxplayer/OMXHelper.cpp b/xbmc/cores/omxplayer/OMXHelper.cpp +index de493a2..7251fc1 100644 +--- a/xbmc/cores/omxplayer/OMXHelper.cpp ++++ b/xbmc/cores/omxplayer/OMXHelper.cpp +@@ -130,19 +130,19 @@ bool OMXDoProcessing(struct SOmxPlayerState &m_OmxPlayerState, int m_playSpeed, + bool audio_fifo_low = false, video_fifo_low = false, audio_fifo_high = false, video_fifo_high = false; + + if (m_OmxPlayerState.interlace_method == VS_INTERLACEMETHOD_MAX) +- m_OmxPlayerState.interlace_method = g_renderManager.AutoInterlaceMethod(CMediaSettings::GetInstance().GetCurrentVideoSettings().m_InterlaceMethod); ++ m_OmxPlayerState.interlace_method = CMediaSettings::GetInstance().GetCurrentVideoSettings().m_InterlaceMethod; + + // if deinterlace setting has changed, we should close and open video + if (m_OmxPlayerState.current_deinterlace != CMediaSettings::GetInstance().GetCurrentVideoSettings().m_DeinterlaceMode || + (m_OmxPlayerState.current_deinterlace != VS_DEINTERLACEMODE_OFF && +- m_OmxPlayerState.interlace_method != g_renderManager.AutoInterlaceMethod(CMediaSettings::GetInstance().GetCurrentVideoSettings().m_InterlaceMethod))) ++ m_OmxPlayerState.interlace_method != CMediaSettings::GetInstance().GetCurrentVideoSettings().m_InterlaceMethod)) + { + CLog::Log(LOGNOTICE, "%s - Reopen stream due to interlace change (%d,%d,%d,%d)", __FUNCTION__, + m_OmxPlayerState.current_deinterlace, CMediaSettings::GetInstance().GetCurrentVideoSettings().m_DeinterlaceMode, +- m_OmxPlayerState.interlace_method, g_renderManager.AutoInterlaceMethod(CMediaSettings::GetInstance().GetCurrentVideoSettings().m_InterlaceMethod)); ++ m_OmxPlayerState.interlace_method, CMediaSettings::GetInstance().GetCurrentVideoSettings().m_InterlaceMethod); + + m_OmxPlayerState.current_deinterlace = CMediaSettings::GetInstance().GetCurrentVideoSettings().m_DeinterlaceMode; +- m_OmxPlayerState.interlace_method = g_renderManager.AutoInterlaceMethod(CMediaSettings::GetInstance().GetCurrentVideoSettings().m_InterlaceMethod); ++ m_OmxPlayerState.interlace_method = CMediaSettings::GetInstance().GetCurrentVideoSettings().m_InterlaceMethod; + reopen_stream = true; + } + +-- +2.5.0 + + +From a0ce519db0d21eb3e9a2dfd070b0859d72784569 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Sep 2015 15:05:37 +0100 -Subject: [PATCH] Avoid calling render callback with the lock held to avoid a - deadlock +Subject: [PATCH 11/94] Avoid calling render callback with the lock held to + avoid a deadlock --- xbmc/cores/omxplayer/OMXVideo.cpp | 27 ++++++++++++++------------- @@ -842,7 +922,7 @@ index d0634bb..7baefa5 100644 class COMXVideo { public: -@@ -50,7 +58,7 @@ class COMXVideo +@@ -50,7 +58,7 @@ public: // Required overrides bool SendDecoderConfig(); bool Open(CDVDStreamInfo &hints, OMXClock *clock, EDEINTERLACEMODE deinterlace = VS_DEINTERLACEMODE_OFF, bool hdmi_clock_sync = false); @@ -851,10 +931,15 @@ index d0634bb..7baefa5 100644 void RegisterResolutionUpdateCallBack(void *ctx, ResolutionUpdateCallBackFn callback) { m_res_ctx = ctx; m_res_callback = callback; } void Close(void); unsigned int GetFreeSpace(); -From a454c0556e42cb01096a1b459f4c202c0982f961 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 8d8e6b7c7b0af50800e2489a0e370c5e656dddb1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Dec 2015 22:03:56 +0000 -Subject: [PATCH] Add settings option to enable MVC and frame packing support +Subject: [PATCH 12/94] Add settings option to enable MVC and frame packing + support --- .../resource.language.en_gb/resources/strings.po | 22 ++++++++++++++++++++++ @@ -983,7 +1068,7 @@ diff --git a/xbmc/settings/Settings.h b/xbmc/settings/Settings.h index 55e150d..f3ba426 100644 --- a/xbmc/settings/Settings.h +++ b/xbmc/settings/Settings.h -@@ -137,6 +137,7 @@ class CSettings : public CSettingCreator, public CSettingControlCreator +@@ -137,6 +137,7 @@ public: static const std::string SETTING_VIDEOPLAYER_USEMMAL; static const std::string SETTING_VIDEOPLAYER_USESTAGEFRIGHT; static const std::string SETTING_VIDEOPLAYER_LIMITGUIUPDATE; @@ -991,7 +1076,7 @@ index 55e150d..f3ba426 100644 static const std::string SETTING_MYVIDEOS_SELECTACTION; static const std::string SETTING_MYVIDEOS_EXTRACTFLAGS; static const std::string SETTING_MYVIDEOS_EXTRACTCHAPTERTHUMBS; -@@ -300,6 +301,7 @@ class CSettings : public CSettingCreator, public CSettingControlCreator +@@ -300,6 +301,7 @@ public: static const std::string SETTING_VIDEOSCREEN_GUICALIBRATION; static const std::string SETTING_VIDEOSCREEN_TESTPATTERN; static const std::string SETTING_VIDEOSCREEN_LIMITEDRANGE; @@ -999,10 +1084,14 @@ index 55e150d..f3ba426 100644 static const std::string SETTING_AUDIOOUTPUT_AUDIODEVICE; static const std::string SETTING_AUDIOOUTPUT_CHANNELS; static const std::string SETTING_AUDIOOUTPUT_CONFIG; -From 02255c425298a1240c143458e1e800e8ed45c799 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 7e941d7f0e1fc87d5d43e36b1febb3f7681f1e18 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 17 Dec 2015 15:38:34 +0000 -Subject: [PATCH] Don't adjust 3d rectangles in bypass mode +Subject: [PATCH 13/94] Don't adjust 3d rectangles in bypass mode --- xbmc/cores/VideoRenderers/BaseRenderer.cpp | 55 ++++++++++++++++-------------- @@ -1077,10 +1166,14 @@ index 7889cf8..d4bb306 100644 } CalcNormalDisplayRect(m_viewRect.x1, m_viewRect.y1, m_viewRect.Width(), m_viewRect.Height(), GetAspectRatio() * CDisplaySettings::GetInstance().GetPixelRatio(), CDisplaySettings::GetInstance().GetZoomAmount(), CDisplaySettings::GetInstance().GetVerticalShift()); -From 69364688942df22b40b5190a5cdf1a83d450a8d0 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 1b8497b41521ac8277f2fab23baa6980d5680607 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 14 Mar 2015 12:38:08 +0000 -Subject: [PATCH] Switch to using transform flags for 3d modes +Subject: [PATCH 14/94] Switch to using transform flags for 3d modes --- xbmc/cores/VideoRenderers/MMALRenderer.cpp | 100 +++++++++--------------- @@ -1454,7 +1547,7 @@ diff --git a/xbmc/cores/omxplayer/OMXVideo.h b/xbmc/cores/omxplayer/OMXVideo.h index 7baefa5..31982b4 100644 --- a/xbmc/cores/omxplayer/OMXVideo.h +++ b/xbmc/cores/omxplayer/OMXVideo.h -@@ -67,7 +67,7 @@ class COMXVideo +@@ -67,7 +67,7 @@ public: void Reset(void); void SetDropState(bool bDrop); std::string GetDecoderName() { return m_video_codec_name; }; @@ -1492,10 +1585,14 @@ index 5d5b74b..443d037 100644 CLog::Log(LOGDEBUG, "EGL set resolution %dx%d -> %dx%d @ %.2f fps (%d,%d) flags:%x aspect:%.2f\n", m_width, m_height, dst_rect.width, dst_rect.height, res.fRefreshRate, GETFLAGS_GROUP(res.dwFlags), GETFLAGS_MODE(res.dwFlags), (int)res.dwFlags, res.fPixelRatio); -From e8bc95c119f47640f864c50f4865c4cf934a94c5 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 6a912e2c074aa44c0dc288a64e0e4dff1edccc77 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 21 Jun 2015 17:42:03 +0100 -Subject: [PATCH] Remove unused Support3D function +Subject: [PATCH 15/94] Remove unused Support3D function --- xbmc/windowing/egl/WinSystemEGL.cpp | 29 ----------------------------- @@ -1546,7 +1643,7 @@ diff --git a/xbmc/windowing/egl/WinSystemEGL.h b/xbmc/windowing/egl/WinSystemEGL index 9d4baf6..1ec4225 100644 --- a/xbmc/windowing/egl/WinSystemEGL.h +++ b/xbmc/windowing/egl/WinSystemEGL.h -@@ -59,7 +59,6 @@ class CWinSystemEGL : public CWinSystemBase, public CRenderSystemGLES +@@ -59,7 +59,6 @@ public: virtual void Register(IDispResource *resource); virtual void Unregister(IDispResource *resource); @@ -1554,10 +1651,15 @@ index 9d4baf6..1ec4225 100644 virtual bool ClampToGUIDisplayLimits(int &width, int &height); EGLConfig GetEGLConfig(); -From fdef730bacc4fb43a202eb65187a35405948951d Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 299d2a7f59caf3e44aa04c67c5a4bcceae6a4310 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Dec 2015 21:08:34 +0000 -Subject: [PATCH] Avoid switching stereo mode based on current display mode +Subject: [PATCH 16/94] Avoid switching stereo mode based on current display + mode --- xbmc/guilib/GraphicContext.cpp | 24 ------------------------ @@ -1598,11 +1700,15 @@ index a1b8812..60979bb 100644 RESOLUTION_INFO info_mod = GetResInfo(res); -From be33e26546e5beb44bfacbff7d5f1cbfaa15ff8f Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 1d0be437addc2225a969b42088511d5b2e50c9f0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 21 Jun 2015 18:53:29 +0100 -Subject: [PATCH] Drop reporting 3D modes and just use current rendering mode - to request 3D signalling +Subject: [PATCH 17/94] Drop reporting 3D modes and just use current rendering + mode to request 3D signalling [rbp] Add ntsc version of 48Hz mode @@ -1862,7 +1968,7 @@ diff --git a/xbmc/windowing/egl/EGLNativeTypeRaspberryPI.h b/xbmc/windowing/egl/ index a0acb1a..e5bcae7 100644 --- a/xbmc/windowing/egl/EGLNativeTypeRaspberryPI.h +++ b/xbmc/windowing/egl/EGLNativeTypeRaspberryPI.h -@@ -69,7 +69,7 @@ class CEGLNativeTypeRaspberryPI : public CEGLNativeType +@@ -69,7 +69,7 @@ private: static void CallbackTvServiceCallback(void *userdata, uint32_t reason, uint32_t param1, uint32_t param2); void DestroyDispmaxWindow(); @@ -1872,10 +1978,14 @@ index a0acb1a..e5bcae7 100644 + int AddUniqueResolution(RESOLUTION_INFO &res, std::vector &resolutions, bool desktop = false); #endif }; -From 4bf34dc54fc0b4e5255eb8d2f2834287fa704680 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From e40391cacdb8e49b0af12cfa093d9362daf41842 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 22 Jun 2015 16:27:15 +0100 -Subject: [PATCH] Consider stereomode when creating a new window +Subject: [PATCH 18/94] Consider stereomode when creating a new window We might be changing from a non-3D to a 3D mode --- @@ -1923,7 +2033,7 @@ diff --git a/xbmc/windowing/egl/WinSystemEGL.h b/xbmc/windowing/egl/WinSystemEGL index 1ec4225..a33dedc 100644 --- a/xbmc/windowing/egl/WinSystemEGL.h +++ b/xbmc/windowing/egl/WinSystemEGL.h -@@ -78,6 +78,7 @@ class CWinSystemEGL : public CWinSystemBase, public CRenderSystemGLES +@@ -78,6 +78,7 @@ protected: EGLSurface m_surface; EGLContext m_context; EGLConfig m_config; @@ -1931,11 +2041,15 @@ index 1ec4225..a33dedc 100644 CEGLWrapper *m_egl; std::string m_extensions; -From 9167ed5222005d9b6788e6e52ea765f9d73fb13e Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From f917226a056672e2266d30540e79caee45ec869f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Apr 2014 18:19:32 +0100 -Subject: [PATCH] [rbp/omxplayer] When opening a stream don't try to update gui - so often +Subject: [PATCH 19/94] [rbp/omxplayer] When opening a stream don't try to + update gui so often --- xbmc/dialogs/GUIDialogBusy.cpp | 4 ++++ @@ -1957,10 +2071,14 @@ index 6816b45..6cc5a8f 100644 { g_windowManager.ProcessRenderLoop(false); if (allowCancel && dialog->IsCanceled()) -From 6bad783448faf1a5971a68fe8a2572c0435e125c Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From c5007f5c066a37c5d052816688e877b1559b28a9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 29 Apr 2014 15:23:22 +0100 -Subject: [PATCH] [ffmpeg] Speed up wtv index creation +Subject: [PATCH 20/94] [ffmpeg] Speed up wtv index creation The index creation is O(N^2) with number of entries (typically thousands). On a Pi this can take more than 60 seconds to execute for a recording of a few hours. @@ -2045,11 +2163,15 @@ index 0000000..d829898 + } + } + } -From 48f5c6c5ef76b9c63c1b41ce88b1f36493c63d12 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From b9a63ad68ba584cd374345d48614ea4cd04bbce1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 8 Mar 2014 15:36:06 +0000 -Subject: [PATCH] [hifiberry] Hack: force it to be recognised as IEC958 capable - to enable passthrough options +Subject: [PATCH 21/94] [hifiberry] Hack: force it to be recognised as IEC958 + capable to enable passthrough options --- xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 4 ++++ @@ -2070,10 +2192,14 @@ index e22db7a..0120bd5 100644 if (info.m_deviceType == AE_DEVTYPE_HDMI && info.m_displayName.size() > 5 && info.m_displayName.substr(info.m_displayName.size()-5) == " HDMI") { -From c043110afb41f25bbced31dd01249d74aa220d68 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 5bf1a1d26e0c3e4dd2c6a2e71f2550fb7eab2d64 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 1 May 2014 16:28:39 +0100 -Subject: [PATCH] Improved file buffering in CArchive +Subject: [PATCH 22/94] Improved file buffering in CArchive Even though memcpy is typically inlined by the compiler into byte/word loads and stores (at least for release builds), the frequency with which 1, 2 and 4 @@ -2096,7 +2222,7 @@ diff --git a/xbmc/utils/Archive.h b/xbmc/utils/Archive.h index 6ed0f8f..8506d95 100644 --- a/xbmc/utils/Archive.h +++ b/xbmc/utils/Archive.h -@@ -154,9 +154,17 @@ class CArchive +@@ -154,9 +154,17 @@ protected: * than waiting until we attempt to put more data into an already full buffer */ if (m_BufferRemain > size) { @@ -2114,7 +2240,7 @@ index 6ed0f8f..8506d95 100644 return *this; } else -@@ -171,9 +179,17 @@ class CArchive +@@ -171,9 +179,17 @@ protected: /* Note, refilling the buffer is deferred until we know we need to read more from it */ if (m_BufferRemain >= size) { @@ -2132,10 +2258,14 @@ index 6ed0f8f..8506d95 100644 return *this; } else -From b261ee73179e6cdcdee76ec5b55337f2433a9376 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 5be85818f72f316ac0419273069fd96d02ac8eb7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 12 Aug 2014 00:31:36 +0100 -Subject: [PATCH] [omxcodec] Don't force software codec with dvds +Subject: [PATCH 23/94] [omxcodec] Don't force software codec with dvds --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 2 ++ @@ -2155,10 +2285,15 @@ index 4ffe33a..4b09e8f 100644 } else if (m_pInputStream && m_pInputStream->IsStreamType(DVDSTREAM_TYPE_PVRMANAGER)) { -From eafbec7c06d774bfaae87697629eb0535de8f529 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 60f3a3087411daae5e3a690820fe4bf65c295532 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 10 Aug 2014 16:45:16 +0100 -Subject: [PATCH] filesystem: Make support of browsing into archives optional +Subject: [PATCH 24/94] filesystem: Make support of browsing into archives + optional The ability to browse, scan and play content in archives can cause problems on low powered/low memory devices. It's quite common to see reports of a large rar file that causes xbmc to crash with an out-of-memory error when browsing or scanning. @@ -2239,10 +2374,15 @@ index a1d4ee4..4929283 100644 if (url.IsFileType("xbt")) { CURL xbtUrl = URIUtils::CreateArchivePath("xbt", url); -From eed8fd81ac11ce6ea49f77efc9ae5f0428a12622 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 0417dd5c5b0c15ddf536cea15e1881594ab0eef6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 13:06:57 +0000 -Subject: [PATCH] [rbp] Make cachemembuffersize default depend on memory size +Subject: [PATCH 25/94] [rbp] Make cachemembuffersize default depend on memory + size --- xbmc/linux/RBP.cpp | 10 ++++++++++ @@ -2296,7 +2436,7 @@ diff --git a/xbmc/linux/RBP.h b/xbmc/linux/RBP.h index 9559914..7fc8b42 100644 --- a/xbmc/linux/RBP.h +++ b/xbmc/linux/RBP.h -@@ -48,6 +48,7 @@ class CRBP +@@ -48,6 +48,7 @@ public: ~CRBP(); bool Initialize(); @@ -2342,11 +2482,15 @@ index bc3aa8c..562757e 100644 m_initialized = true; } -From 607037670f5ce73906706f1649312d9137bb1cdb Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 66ca5923eb98f9fafcd35487c03079b7326fee07 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 30 May 2014 14:58:43 +0100 -Subject: [PATCH] [settings] Experiment: Report DESKTOP resolution in video - settings +Subject: [PATCH 26/94] [settings] Experiment: Report DESKTOP resolution in + video settings --- xbmc/settings/DisplaySettings.cpp | 3 +++ @@ -2366,11 +2510,15 @@ index 7993a73..761385b 100644 list.push_back(std::make_pair( StringUtils::Format("%dx%d%s", resolution->width, resolution->height, ModeFlagsToString(resolution->flags, false).c_str()), -From 9ccc337d1d203b7e8205d765a141a805dfcf0f00 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 0a2735dd4f859337281ff77d2f02b781c94f98c5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 19 Sep 2014 11:54:49 +0100 -Subject: [PATCH] [dvdplayer/rbp] Add pi specific option to maintain vsync with - pll adjustment +Subject: [PATCH 27/94] [dvdplayer/rbp] Add pi specific option to maintain + vsync with pll adjustment New A/V sync option in settings/video/playback to do "Adjust PLL". This uses video clock (so perfect video syncing) but avoids having to resample @@ -2582,7 +2730,7 @@ diff --git a/xbmc/cores/dvdplayer/DVDPlayerAudio.h b/xbmc/cores/dvdplayer/DVDPla index 014574d..409b2d7 100644 --- a/xbmc/cores/dvdplayer/DVDPlayerAudio.h +++ b/xbmc/cores/dvdplayer/DVDPlayerAudio.h -@@ -228,6 +228,9 @@ class CDVDPlayerAudio : public CThread, public IDVDStreamPlayerAudio +@@ -228,6 +228,9 @@ protected: bool m_prevskipped; double m_maxspeedadjust; double m_resampleratio; //resample ratio when using SYNC_RESAMPLE, used for the codec info @@ -2625,7 +2773,7 @@ diff --git a/xbmc/linux/RBP.h b/xbmc/linux/RBP.h index 7fc8b42..db2fade 100644 --- a/xbmc/linux/RBP.h +++ b/xbmc/linux/RBP.h -@@ -64,6 +64,8 @@ class CRBP +@@ -64,6 +64,8 @@ public: unsigned char *CaptureDisplay(int width, int height, int *stride, bool swap_red_blue, bool video_only = true); DllOMX *GetDllOMX() { return m_OMX ? m_OMX->GetDll() : NULL; } void WaitVsync(); @@ -2634,7 +2782,7 @@ index 7fc8b42..db2fade 100644 private: DllBcmHost *m_DllBcmHost; -@@ -80,6 +82,7 @@ class CRBP +@@ -80,6 +82,7 @@ private: CEvent m_vsync; class DllLibOMXCore; CCriticalSection m_critSection; @@ -2674,11 +2822,15 @@ index 6475350..93de9bd 100644 std::string m_audioDefaultPlayer; float m_audioPlayCountMinimumPercent; bool m_dvdplayerIgnoreDTSinWAV; -From 9284250ce7e47e489dd5497379112aaff306836e Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From c7f85eb57480d0ea7296ab6adac768334f1d1889 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 24 Sep 2014 23:13:52 +0100 -Subject: [PATCH] [audio] Add settings option to boost centre channel when - downmixing +Subject: [PATCH 28/94] [audio] Add settings option to boost centre channel + when downmixing This allows a dB volume increase to be added to centre channel. This can help improve dialgue in the presence of background music/effects. @@ -2766,7 +2918,7 @@ index e4ddf9e..625ea88 100644 if (remapLayout) { diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEResamplePi.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEResamplePi.cpp -index 78071493..698a6ae 100644 +index 7807149..698a6ae 100644 --- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEResamplePi.cpp +++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEResamplePi.cpp @@ -164,6 +164,12 @@ bool CActiveAEResamplePi::Init(uint64_t dst_chan_layout, int dst_channels, int d @@ -2799,10 +2951,14 @@ index 08b1b84..70d0866 100644 // stereo upmix if (upmix && m_src_channels == 2 && m_dst_channels > 2) -From 59888ef17bb7f03377208399ae46ec49b0789481 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 1592ab35c711338d52ad1ac08f79ff2fd3365020 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 15:23:51 +0000 -Subject: [PATCH] [rbp] Default extract thumbnails to false +Subject: [PATCH 29/94] [rbp] Default extract thumbnails to false It can take 80 seconds for a single file on a Pi. It can cause crashes with out-of-memory errors. It genereates a lot of support issues. Best to default to disabled and let users enable it if they must @@ -2831,10 +2987,15 @@ index 7a170c2..1506035 100644
-From 9b4bb9c37f2123332556f2a9183c59823c31fc68 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 1d482f503a08b533b17640759b9f61bad2391743 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 10 Feb 2015 15:29:16 +0000 -Subject: [PATCH] [libcec] Add repeating keypress patch from popcornmix' repo +Subject: [PATCH 30/94] [libcec] Add repeating keypress patch from popcornmix' + repo --- tools/depends/target/libcec/Makefile | 1 + @@ -3719,10 +3880,14 @@ index 0000000..8366a69 +-- +1.9.1 + -From aae277129fda65177902a4b3552b69e81ca60082 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 63cf430f0c46993da63b37ded994cf1bc964dece Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 28 Oct 2014 00:19:40 +0000 -Subject: [PATCH] [cec] Add settings for configuring button repeats +Subject: [PATCH 31/94] [cec] Add settings for configuring button repeats --- addons/resource.language.en_gb/resources/strings.po | 15 +++++++++++++++ @@ -3802,10 +3967,14 @@ index e0d8dae..f738c84 100644 if (GetSettingBool("pause_playback_on_deactivate")) { -From c87e546b73f1b58c4132cac53ae76299f3807a1b Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 3550128073031d9a7560b76c1f215acfdf58bc1d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 3 Nov 2014 23:17:46 +0000 -Subject: [PATCH] [cec] Don't discard buttons when repeat mode is enabled +Subject: [PATCH 32/94] [cec] Don't discard buttons when repeat mode is enabled --- xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 5 ++++- @@ -3827,10 +3996,14 @@ index f738c84..58d7d0d 100644 { if (m_currentButton.iButton == key.iButton && m_currentButton.iDuration == 0) { -From 3aaafcb5d5dfaa47e4285c5277e9303a583e94a8 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 8dca506d73857bc367f3e4ce0a4c95c622d269da Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 4 Nov 2014 18:50:00 +0000 -Subject: [PATCH] [cec] Temp - more logging +Subject: [PATCH 33/94] [cec] Temp - more logging --- xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 8 +++++++- @@ -3881,10 +4054,14 @@ index 58d7d0d..dfba61a 100644 m_buttonQueue.push_back(key); } -From ffba32357856396008e26926c52cb27bf7ad5b54 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From a211f8b79ba4842fcde3cb56abc5a2c2b179ba74 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 15 Nov 2014 12:03:34 +0000 -Subject: [PATCH] [dvdplayer] Add lock for player creation +Subject: [PATCH 34/94] [dvdplayer] Add lock for player creation --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 3 +++ @@ -3923,16 +4100,20 @@ diff --git a/xbmc/cores/dvdplayer/DVDPlayer.h b/xbmc/cores/dvdplayer/DVDPlayer.h index 2f00647..b1418e3 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.h +++ b/xbmc/cores/dvdplayer/DVDPlayer.h -@@ -567,4 +567,5 @@ class CDVDPlayer : public IPlayer, public CThread, public IDVDPlayer +@@ -567,4 +567,5 @@ protected: // omxplayer variables struct SOmxPlayerState m_OmxPlayerState; bool m_omxplayer_mode; // using omxplayer acceleration + CCriticalSection m_players_lock; }; -From 806552069a7085e7ec945502c5c9f325ec84db35 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 385ad863ed94508583882aff64a7e54d14ed89ae Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 24 Nov 2014 22:07:25 +0000 -Subject: [PATCH] [dvdplayervideo] Prod decoder when in stills mode +Subject: [PATCH 35/94] [dvdplayervideo] Prod decoder when in stills mode An asynchronous hardware decoder doesn't only produce output pictures when new packets arrive. In dvd stills mode give it a chance to return pictures that weren't ready when frame was decoded. @@ -4008,10 +4189,14 @@ index 379c541..b5777a1 100644 } if (pMsg->IsType(CDVDMsg::GENERAL_SYNCHRONIZE)) -From e03cd165e45dcbff956cb81b0a8f0da15154f67b Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From bbc0384997b0bb8ccd869b320ec8d60fa31d5087 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 27 Nov 2014 16:31:56 +0000 -Subject: [PATCH] [languageinvoker] Reduce priority of python threads +Subject: [PATCH 36/94] [languageinvoker] Reduce priority of python threads --- xbmc/interfaces/generic/LanguageInvokerThread.cpp | 5 +++++ @@ -4033,10 +4218,14 @@ index fcdd063..16f0c89 100644 return true; } -From b4c3faf5d8b6dec5b1e867b3cda681e1cb6b3b88 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 77e535d399cebf699327d19490ef78519004a557 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 14 Dec 2013 16:55:05 +0000 -Subject: [PATCH] logging: Add microsecond timer to log messages +Subject: [PATCH 37/94] logging: Add microsecond timer to log messages --- xbmc/utils/log.cpp | 17 +++++++++++++++-- @@ -4088,11 +4277,15 @@ index 3443f12..31c4a99 100644 (uint64_t)CThread::GetCurrentThreadId(), levelNames[logLevel]) + strData; -From 93c5a32d9c502d13f55ce0500bb9860f6375ecc1 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 661ea4c177ec232a63a9a9ba21f855c5c581a2f3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 29 Nov 2014 15:25:16 +0000 -Subject: [PATCH] [rbp] hack: wait for splash to complete before changing hdmi - mode +Subject: [PATCH 38/94] [rbp] hack: wait for splash to complete before changing + hdmi mode --- xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp | 49 +++++++++++++++++++++++++ @@ -4164,10 +4357,15 @@ index ee29770..ff0d3e3 100644 DestroyDispmaxWindow(); RENDER_STEREO_MODE stereo_mode = g_graphicsContext.GetStereoMode(); -From 89e8ca28f5f135b3eea72237c46d48c195cb555c Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 50bec5d613ec9e5b1b946f904776565de130eafd Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 11 Dec 2014 17:00:57 +0000 -Subject: [PATCH] Fix for UI not showing both extractflags and extractthumb +Subject: [PATCH 39/94] Fix for UI not showing both extractflags and + extractthumb --- addons/resource.language.en_gb/resources/strings.po | 11 ++++++++--- @@ -4229,11 +4427,15 @@ index 918e8bf..61e1a22 100644 true -From 9648793c91db1b59c4b2ae741ca81fe150462ee2 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 88fcb5323a0a277feb21bcba9ef62986089aef46 Mon Sep 17 00:00:00 2001 From: anaconda Date: Thu, 11 Sep 2014 21:30:43 +0200 -Subject: [PATCH] Disable autoscrolling while on screensaver and while opening - streams. +Subject: [PATCH 40/94] Disable autoscrolling while on screensaver and while + opening streams. --- xbmc/Application.cpp | 10 ++++++++++ @@ -4266,7 +4468,7 @@ diff --git a/xbmc/Application.h b/xbmc/Application.h index d7e5eee..a34ed98 100644 --- a/xbmc/Application.h +++ b/xbmc/Application.h -@@ -390,6 +390,8 @@ class CApplication : public CXBApplicationEx, public IPlayerCallback, public IMs +@@ -390,6 +390,8 @@ public: */ void UnregisterActionListener(IActionListener *listener); @@ -4362,10 +4564,14 @@ index d7bc1c5..ac76629 100644 { if (m_lastRenderTime) m_autoScrollDelayTime += currentTime - m_lastRenderTime; -From 31ca2e2d20ac422b29163bdedc4a3442ebc1fb42 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From ba23654e3dfab6001f1087babc1fb6ebb050b18d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 13 Dec 2014 18:35:20 +0000 -Subject: [PATCH] [demuxer] Avoid memcpy on every demuxer packet +Subject: [PATCH 41/94] [demuxer] Avoid memcpy on every demuxer packet Avoids an unnecessary memcpy on every demuxer packet which for high bitrate videos can be significant. @@ -4462,10 +4668,14 @@ index ab298b2..10c5ee0 100644 delete pPacket; } catch(...) { -From c5ab0539c4924aa9edc3decc38b667f8dd5984ae Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 5fa43ef359f31432130fe4e92fbd0a1235ca16c2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 15 Feb 2015 14:06:12 +0000 -Subject: [PATCH] [mmal] Allow mmal codec for dvd stills +Subject: [PATCH 42/94] [mmal] Allow mmal codec for dvd stills --- xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp | 7 +++++++ @@ -4496,10 +4706,14 @@ index 84e9ef1..f920f49 100644 if (hint.stills && (hint.codec == AV_CODEC_ID_MPEG2VIDEO || hint.codec == AV_CODEC_ID_MPEG1VIDEO)) { // If dvd is an mpeg2 and hint.stills -From 9a5738bae07d81d195bb362a67c0cf3112cc50d5 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From b128dfc4848e7a102208c8ec95e1390c9a7d6d47 Mon Sep 17 00:00:00 2001 From: anaconda Date: Wed, 25 Feb 2015 18:22:21 +0100 -Subject: [PATCH] Load OSD dialogs on startup. +Subject: [PATCH 43/94] Load OSD dialogs on startup. Fixes skipped frames the first time they're loaded in memory on less powered devices, like a Raspberry Pi, when using DVDPlayer. @@ -4593,11 +4807,195 @@ index b248566..96c63cd 100644 CGUIDialogVideoSettings::~CGUIDialogVideoSettings() { } -From 0c40bf778b0b018574abf05ad841d1606e237184 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 22ccff2dc885a214b951e69323c9045830607ee4 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sat, 7 Mar 2015 22:46:21 +0000 +Subject: [PATCH 44/94] configure: Add raspberry-pi2 platform + +--- + configure.ac | 14 +++++++-- + m4/xbmc_arch.m4 | 8 ++--- + tools/depends/Makefile.include.in | 2 +- + tools/depends/configure.ac | 38 ++++++++++++++++------- + tools/depends/target/Toolchain.cmake.in | 2 +- + tools/depends/target/Toolchain_binaddons.cmake.in | 2 +- + 6 files changed, 44 insertions(+), 22 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 55e73b9..7a06a31 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -698,8 +698,17 @@ case $use_platform in + raspberry-pi) + target_platform=target_raspberry_pi + use_neon=no +- use_arch="arm" + use_cpu=arm1176jzf-s ++ ;; ++ raspberry-pi2) ++ target_platform=target_raspberry_pi ++ use_neon=yes ++ use_cpu=cortex-a7 ++ ;; ++esac ++ ++if test "$target_platform" = "target_raspberry_pi" ; then ++ use_arch="arm" + use_hardcoded_tables="yes" + use_openmax=no + ARCH="arm" +@@ -708,8 +717,7 @@ case $use_platform in + USE_MMAL=1; AC_DEFINE([HAS_MMAL],[1],["Define to 1 if MMAL libs is enabled"]) + CFLAGS="$CFLAGS" + CXXFLAGS="$CXXFLAGS" +- ;; +-esac ++fi + + if test "$host_vendor" = "apple"; then + use_avahi=no +diff --git a/m4/xbmc_arch.m4 b/m4/xbmc_arch.m4 +index 0b66a82..adb8e97 100644 +--- a/m4/xbmc_arch.m4 ++++ b/m4/xbmc_arch.m4 +@@ -77,9 +77,7 @@ if test "$target_platform" = "target_android" ; then + AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -DTARGET_ANDROID") + fi + +-case $use_platform in +- raspberry-pi) +- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI") +- ;; +-esac ++if test "$target_platform" = "target_raspberry_pi" ; then ++ AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI") ++fi + ]) +diff --git a/tools/depends/Makefile.include.in b/tools/depends/Makefile.include.in +index 6e37022..326e7b8 100644 +--- a/tools/depends/Makefile.include.in ++++ b/tools/depends/Makefile.include.in +@@ -20,7 +20,7 @@ NATIVE_OS=@build_os@ + CROSS_COMPILING=@cross_compiling@ + ARCH_DEFINES=@ARCH_DEFINES@ + NATIVE_ARCH_DEFINES=@NATIVE_ARCH_DEFINES@ +-TARGET_PLATFORM=@use_platform@ ++TARGET_PLATFORM=@target_platform@ + XCODE_VERSION=@use_xcode@ + AAPT=@AAPT@ + DX=@DX@ +diff --git a/tools/depends/configure.ac b/tools/depends/configure.ac +index 12935e3..478f5f0 100644 +--- a/tools/depends/configure.ac ++++ b/tools/depends/configure.ac +@@ -17,7 +17,8 @@ AC_ARG_WITH([toolchain], + AC_ARG_WITH([platform], + [AS_HELP_STRING([--with-platform], + [target platform [auto]])], +- [use_platform=$withval]) ++ [use_platform=$withval], ++ [target_platform=$withval]) + + AC_ARG_WITH([firmware], + [AS_HELP_STRING([--with-firmware], +@@ -302,34 +303,49 @@ case $host in + AC_MSG_ERROR(unsupported host ($use_host)) + esac + +-if test "$use_platform" = "raspberry-pi"; then ++case $use_platform in ++ raspberry-pi) ++ target_platform=raspberry_pi ++ use_neon=no ++ use_cpu=arm1176jzf-s ++ platform_cflags="-mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp" ++ platform_cxxflags="-mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp" ++ platform_ldflags="" ++ ;; ++ raspberry-pi2) ++ target_platform=raspberry_pi ++ use_neon=yes ++ use_cpu=cortex-a7 ++ platform_cflags="-fPIC -mcpu=cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4" ++ platform_cxxflags="-fPIC -mcpu=cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4" ++ platform_ldflags="-lpthread" ++ ;; ++esac ++ ++if test "$target_platform" = "raspberry_pi" ; then + if test -d "${use_firmware}/opt/vc/include"; then + : + else + AC_MSG_ERROR([Raspberry Pi firmware not found]) + fi +- use_neon=no + use_arch="arm" +- use_cpu="arm1176jzf-s" + use_hardcoded_tables="yes" +- use_alsa="no" + ARCH="arm" + platform_os="linux" + cross_compiling="yes" + use_host="arm-linux-gnueabihf" + deps_dir="$use_host" +- platform_cflags="-pipe -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=hard \ +- -mfpu=vfp -mabi=aapcs-linux -Wno-psabi -Wa,-mno-warn-deprecated \ +- -Wno-deprecated-declarations -isystem${use_firmware}/opt/vc/include \ ++ platform_cflags+=" -pipe -mabi=aapcs-linux -Wno-psabi \ ++ -Wa,-mno-warn-deprecated -Wno-deprecated-declarations \ ++ -isystem${use_firmware}/opt/vc/include \ + -isystem${use_firmware}/opt/vc/include/interface/vcos/pthreads \ + -isystem${use_firmware}/opt/vc/include/interface/vmcs_host/linux" +- platform_cxxflags="-pipe -mcpu=arm1176jzf-s -mtune=arm1176jzf-s \ +- -mfloat-abi=hard -mfpu=vfp -mabi=aapcs-linux -Wno-psabi \ ++ platform_cxxflags+=" -pipe -mabi=aapcs-linux -Wno-psabi \ + -Wa,-mno-warn-deprecated -Wno-deprecated-declarations \ + -isystem${use_firmware}/opt/vc/include \ + -isystem${use_firmware}/opt/vc/include/interface/vcos/pthreads \ + -isystem${use_firmware}/opt/vc/include/interface/vmcs_host/linux" +- platform_ldflags="-L${use_firmware}/opt/vc/lib -lEGL -lGLESv2 -lbcm_host -lvcos \ ++ platform_ldflags+=" -L${use_firmware}/opt/vc/lib -lEGL -lGLESv2 -lbcm_host -lvcos \ + -lvchiq_arm" + fi + +diff --git a/tools/depends/target/Toolchain.cmake.in b/tools/depends/target/Toolchain.cmake.in +index 943be73..59385e8 100644 +--- a/tools/depends/target/Toolchain.cmake.in ++++ b/tools/depends/target/Toolchain.cmake.in +@@ -1,6 +1,6 @@ + SET(OS "@platform_os@") + SET(CPU "@use_cpu@") +-SET(PLATFORM "@use_platform@") ++SET(PLATFORM "@target_platform@") + IF("${OS}" STREQUAL "linux" OR "${OS}" STREQUAL "android") + SET(CMAKE_SYSTEM_NAME Linux) + ENDIF() +diff --git a/tools/depends/target/Toolchain_binaddons.cmake.in b/tools/depends/target/Toolchain_binaddons.cmake.in +index dc6d565..98494b4 100644 +--- a/tools/depends/target/Toolchain_binaddons.cmake.in ++++ b/tools/depends/target/Toolchain_binaddons.cmake.in +@@ -1,7 +1,7 @@ + set(CMAKE_SYSTEM_VERSION 1) + set(OS "@platform_os@") + set(CPU "@use_cpu@") +-set(PLATFORM "@use_platform@") ++set(PLATFORM "@target_platform@") + if("${OS}" STREQUAL "linux" OR "${OS}" STREQUAL "android") + set(CMAKE_SYSTEM_NAME Linux) + endif() +-- +2.5.0 + + +From a391a55f4d2e257a6716c8726165fe8d205cfffb Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 14 Apr 2015 20:51:14 +0100 -Subject: [PATCH] [gui] Also limit GUI updates when in non full-screen video - mode +Subject: [PATCH 45/94] [gui] Also limit GUI updates when in non full-screen + video mode --- xbmc/Application.cpp | 4 +++- @@ -4625,10 +5023,14 @@ index c274e2f..212a5c7 100644 } g_windowManager.FrameMove(); } -From 4a5a77bd0d87ecbbc2f45f6f73a258210def3980 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 1fe321817d24a691808649fd3ee42d81ef57087e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 21 Apr 2015 14:32:07 +0100 -Subject: [PATCH] [mmalrenderer] Add sharpness control +Subject: [PATCH 46/94] [mmalrenderer] Add sharpness control --- addons/resource.language.en_gb/resources/strings.po | 2 +- @@ -4691,7 +5093,7 @@ diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.h b/xbmc/cores/VideoRenderer index d3e5129..a71e645 100644 --- a/xbmc/cores/VideoRenderers/MMALRenderer.h +++ b/xbmc/cores/VideoRenderers/MMALRenderer.h -@@ -119,6 +119,7 @@ class CMMALRenderer : public CBaseRenderer +@@ -119,6 +119,7 @@ protected: RENDER_STEREO_MODE m_display_stereo_mode; bool m_StereoInvert; int m_inflight; @@ -4699,10 +5101,14 @@ index d3e5129..a71e645 100644 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_vout; -From 3f78d202fd034e566c44194880cd2a4c4183e947 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 679fdc4c44faf1a24d79ca7e787e756d29206467 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 24 Apr 2015 13:49:51 +0100 -Subject: [PATCH] [dvdplayer] Add back required include +Subject: [PATCH 47/94] [dvdplayer] Add back required include --- xbmc/cores/dvdplayer/DVDPlayerVideo.cpp | 1 + @@ -4720,10 +5126,15 @@ index b5777a1..64b4d60 100644 #include "DVDOverlayRenderer.h" #include "guilib/GraphicContext.h" #include -From 9f555729881bf17d4638f61009775ae5e2cfefd3 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 215bed9200f096f6c3eeb8956b19332b9fe5dbd3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 May 2015 23:58:06 +0100 -Subject: [PATCH] [screensaver] Leave GUI contents available for screensaver +Subject: [PATCH 48/94] [screensaver] Leave GUI contents available for + screensaver --- xbmc/guilib/GUIWindowManager.cpp | 11 ++++++++++- @@ -4751,11 +5162,15 @@ index 89cfb8b..767c7b6 100644 g_infoManager.SetNextWindow(WINDOW_INVALID); // Add window to the history list (we must do this before we activate it, -From 9f53886de4c8da1af721841f6bdbc8d4e85ad1ef Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 9ecafc23229679c7dedce2c5d6b7bf928cf7db9a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 6 Jun 2015 18:43:57 +0100 -Subject: [PATCH] ffmpeg: Automatic switch to software decode for GMC with more - than one warp point +Subject: [PATCH 49/94] ffmpeg: Automatic switch to software decode for GMC + with more than one warp point --- ...Signal-unsupported-GMC-with-more-than-one.patch | 48 ++++++++++++++++++++++ @@ -4872,7 +5287,7 @@ diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h b/xbmc/cores/dvdplayer/ index e380056..122e539 100644 --- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h +++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h -@@ -160,6 +160,7 @@ class CDemuxStreamVideo : public CDemuxStream +@@ -160,6 +160,7 @@ public: type = STREAM_VIDEO; iOrientation = 0; iBitsPerPixel = 0; @@ -4880,7 +5295,7 @@ index e380056..122e539 100644 } virtual ~CDemuxStreamVideo() {} -@@ -176,6 +177,7 @@ class CDemuxStreamVideo : public CDemuxStream +@@ -176,6 +177,7 @@ public: int iOrientation; // orientation of the video in degress counter clockwise int iBitsPerPixel; std::string stereo_mode; // expected stereo mode @@ -4933,7 +5348,7 @@ diff --git a/xbmc/cores/dvdplayer/DVDStreamInfo.h b/xbmc/cores/dvdplayer/DVDStre index c0e22a2..3849993 100644 --- a/xbmc/cores/dvdplayer/DVDStreamInfo.h +++ b/xbmc/cores/dvdplayer/DVDStreamInfo.h -@@ -73,6 +73,7 @@ class CDVDStreamInfo +@@ -73,6 +73,7 @@ public: int bitsperpixel; int pid; std::string stereo_mode; // stereoscopic 3d mode @@ -4967,17 +5382,21 @@ index 7251fc1..3429cea 100644 supported = true; else if ((hint.codec == AV_CODEC_ID_VC1 || hint.codec == AV_CODEC_ID_WMV3) && g_RBP.GetCodecWvc1()) supported = true; -From 62030ac330f5e95b2bb333021897f0d88ac4cc0e Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 76bbd617017c090bc0c9bb39946066a16cf2f34c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 22 Jun 2015 21:46:57 +0100 -Subject: [PATCH] [rbp] Use default resampling setting on Pi2 +Subject: [PATCH 50/94] [rbp] Use default resampling setting on Pi2 --- system/settings/rbp2.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/system/settings/rbp2.xml b/system/settings/rbp2.xml -index 8cc8f19..52778ecd 100644 +index 8cc8f19..52778ec 100644 --- a/system/settings/rbp2.xml +++ b/system/settings/rbp2.xml @@ -23,6 +23,11 @@ @@ -4992,10 +5411,14 @@ index 8cc8f19..52778ecd 100644
-From b8a4604577c8cc6e7361128fc276347dd96b7733 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 70d4f7303dea5456c7e1683a9f30ef3b89832612 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 10 Mar 2016 17:54:59 +0000 -Subject: [PATCH] rbp: Expose gpu memory allocation functions +Subject: [PATCH 51/94] rbp: Expose gpu memory allocation functions --- xbmc/linux/RBP.cpp | 116 ++++++++++++ @@ -5175,7 +5598,7 @@ index db2fade..ab24bbe 100644 class CRBP { public: -@@ -66,6 +80,7 @@ class CRBP +@@ -66,6 +80,7 @@ public: void WaitVsync(); double AdjustHDMIClock(double adjust); double GetAdjustHDMIClock() { return m_last_pll_adjust; } @@ -5183,7 +5606,7 @@ index db2fade..ab24bbe 100644 private: DllBcmHost *m_DllBcmHost; -@@ -83,6 +98,7 @@ class CRBP +@@ -83,6 +98,7 @@ private: class DllLibOMXCore; CCriticalSection m_critSection; double m_last_pll_adjust; @@ -5657,10 +6080,14 @@ index 0000000..94e6e79 + +#endif /* __USER_VCSM__H__INCLUDED__ */ + -From aea67bb43ee0f8ac00c40c541520250e53b429f2 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 9910d8fb2c3e0273d9e272920e6fd7b1c48b28ec Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 10 Mar 2016 17:56:11 +0000 -Subject: [PATCH] [rbp] HW mouse pointer +Subject: [PATCH 52/94] [rbp] HW mouse pointer Updating the mouse point provokes a complete screen update which can make it feel laggy and results in high cpu. @@ -5881,7 +6308,7 @@ diff --git a/xbmc/linux/RBP.h b/xbmc/linux/RBP.h index ab24bbe..2eee35d 100644 --- a/xbmc/linux/RBP.h +++ b/xbmc/linux/RBP.h -@@ -99,6 +99,15 @@ class CRBP +@@ -99,6 +99,15 @@ private: CCriticalSection m_critSection; double m_last_pll_adjust; int m_mb; @@ -6077,7 +6504,7 @@ index a17e987..23244a2 100644 class CWinEventsLinux : public IWinEvents { -@@ -43,6 +44,16 @@ class CWinEventsLinux : public IWinEvents +@@ -43,6 +44,16 @@ public: private: static bool m_initialized; static CLinuxInputDevices m_devices; @@ -6094,10 +6521,14 @@ index a17e987..23244a2 100644 }; #endif -From 499ac171bb8804bd2627a74f25bcdc5cb3b4bc5d Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From ad1619a742ebf4e5ac70f1e30877a1ff0e035ac2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 2 Aug 2014 17:48:04 +0100 -Subject: [PATCH] [omx] Report decoded image name +Subject: [PATCH 53/94] [omx] Report decoded image name --- xbmc/cores/omxplayer/OMXImage.cpp | 1 + @@ -6115,11 +6546,15 @@ index 1524214..a01c435 100644 } else { -From 8ddf6074bbfb0f1fb727e069467d9cecde625343 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 9ddc7a2bc142caee6322e5cf709e47c87ce3c182 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 11 Apr 2014 16:12:27 +0100 -Subject: [PATCH] [omxplayer] Add ability to log more timestamp info in extra - debug settings +Subject: [PATCH 54/94] [omxplayer] Add ability to log more timestamp info in + extra debug settings --- addons/resource.language.en_gb/resources/strings.po | 5 +++++ @@ -6268,10 +6703,14 @@ index 22b8459..8045a03 100644 } void CAdvancedSettings::setExtraLogLevel(const std::vector &components) -From 3c6bfac3696f081191678d1257e3d8f28b24c95f Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From f72277b8b4cb29365ad55a8e6d08dd73262b8423 Mon Sep 17 00:00:00 2001 From: Memphiz Date: Tue, 18 Nov 2014 13:28:36 +0100 -Subject: [PATCH] - evaluate the setting for hiding watched +Subject: [PATCH 55/94] - evaluate the setting for hiding watched movies/episodes/musicvideos in recently added job (should influence homescreen of skins only) @@ -6383,7 +6822,7 @@ diff --git a/xbmc/video/VideoDatabase.h b/xbmc/video/VideoDatabase.h index 2021dd9..5f67d10 100644 --- a/xbmc/video/VideoDatabase.h +++ b/xbmc/video/VideoDatabase.h -@@ -693,9 +693,9 @@ class CVideoDatabase : public CDatabase +@@ -693,9 +693,9 @@ public: bool GetEpisodesNav(const std::string& strBaseDir, CFileItemList& items, int idGenre=-1, int idYear=-1, int idActor=-1, int idDirector=-1, int idShow=-1, int idSeason=-1, const SortDescription &sortDescription = SortDescription()); bool GetMusicVideosNav(const std::string& strBaseDir, CFileItemList& items, int idGenre=-1, int idYear=-1, int idArtist=-1, int idDirector=-1, int idStudio=-1, int idAlbum=-1, int idTag=-1, const SortDescription &sortDescription = SortDescription()); @@ -6396,10 +6835,14 @@ index 2021dd9..5f67d10 100644 bool HasContent(); bool HasContent(VIDEODB_CONTENT_TYPE type); -From 8e03571c814cd16ae2a32d7c5ce37078734d871d Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 50ca0e3e5e048055865c0e89f50e5293db9f95b2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 7 May 2015 14:28:37 +0100 -Subject: [PATCH] build: Add vcsm lib +Subject: [PATCH 56/94] build: Add vcsm lib --- configure.ac | 2 +- @@ -6418,11 +6861,15 @@ index 7a06a31..239a2a1 100644 else AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library)) AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library)) -From 9710e21f10846bad03639d788f59593aadafb4ed Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From da10dd6464f3bce3ed9f515baa0eed44c2775d9f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 8 May 2015 14:09:31 +0100 -Subject: [PATCH] [cec] re-implement 'RFC' style POLLing for LA registering - process +Subject: [PATCH 57/94] [cec] re-implement 'RFC' style POLLing for LA + registering process --- ...t-RFC-style-POLLing-for-LA-registering-pr.patch | 194 +++++++++++++++++++++ @@ -6642,10 +7089,14 @@ index ddf9963..5d1f933 100644 cd $(PLATFORM)/build; $(CMAKE) -DBUILD_SHARED_LIBS=1 -DSKIP_PYTHON_WRAPPER:STRING=1 -DCMAKE_INSTALL_LIBDIR=$(PREFIX)/lib .. $(LIBDYLIB): $(PLATFORM) -From 44cef9d4312ed30c96b24a85a6980318c036d0f5 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 390171edbbd26e7763b5989d9793ec508e6a2e8f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 7 May 2015 15:35:43 +0100 -Subject: [PATCH] ffmpeg: test: increase number of threads +Subject: [PATCH 58/94] ffmpeg: test: increase number of threads --- xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 3 +++ @@ -6665,10 +7116,14 @@ index 3498503..c2f3287 100644 if( num_threads > 1) m_pCodecContext->thread_count = num_threads; m_pCodecContext->thread_safe_callbacks = 1; -From b73a054068ac03f6e65f6ed559b8f9d2a3a8d5ff Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 3234bb00454e29cbfcfb36011d0a85fcb2891235 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 22 May 2015 13:56:29 +0100 -Subject: [PATCH] ffmpeg: Allow neon to be enabled in unified builds +Subject: [PATCH 59/94] ffmpeg: Allow neon to be enabled in unified builds --- tools/depends/target/ffmpeg/Makefile | 4 ++++ @@ -6690,10 +7145,15 @@ index 6a9f105..fef5ef2 100644 endif ifeq ($(OS), linux) ffmpg_config += --target-os=$(OS) --cpu=$(CPU) -From 541c085a991610efe5258b4eab31d1fcbea67c9a Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 6942378a95385798c8fe53d0480cddee6a5ad3b8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 5 Mar 2015 20:00:59 +0000 -Subject: [PATCH] [ffmpmeg] Discard data before VO/VOL in mpeg-4 over mpegts +Subject: [PATCH 60/94] [ffmpmeg] Discard data before VO/VOL in mpeg-4 over + mpegts --- ...-data-before-VO-VOL-in-mpeg-4-over-mpegts.patch | 69 ++++++++++++++++++++++ @@ -6798,10 +7258,14 @@ index fef5ef2..e780521 100644 cd $(PLATFORM);\ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \ ./configure $(ffmpg_config) -From 9b44a82266b1c68388206b0b963c0483e2b1f25b Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 3c407f5763ef0302d8cdaf7fae59e963555517e3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 27 Feb 2015 14:37:27 +0000 -Subject: [PATCH] ffmpeg: Add some upstream HEVC optimisations +Subject: [PATCH 61/94] ffmpeg: Add some upstream HEVC optimisations --- tools/depends/target/ffmpeg/Makefile | 6 +- @@ -10584,10 +11048,14 @@ index 0000000..5e8e07d +-- +2.5.0 + -From 9950c711b222577d755847c188b26d7f92944561 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 1d2a77c2e92160fb532fc21c53f712cf1ffc3701 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 7 May 2015 14:04:18 +0100 -Subject: [PATCH] [ffmpeg] Add GPU acceleration to hevc +Subject: [PATCH 62/94] [ffmpeg] Add GPU acceleration to hevc --- tools/depends/target/ffmpeg/Makefile | 4 +- @@ -47295,10 +47763,14 @@ index 0000000..f2b8ffc +-- +2.5.0 + -From 102d10e79b164ff891130f6d694662d062a76219 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 9f7e6280af3292b27e4bdcd5e9e8a51eee261521 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 14 Dec 2015 12:35:14 +0000 -Subject: [PATCH] [build] Add patches to ffmpeg for native build +Subject: [PATCH 63/94] [build] Add patches to ffmpeg for native build --- tools/depends/target/ffmpeg/autobuild.sh | 8 ++++++++ @@ -47323,10 +47795,14 @@ index b9bfd57..f6d4c3b 100755 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \ ./configure --prefix=$FFMPEG_PREFIX \ --extra-version="kodi-${VERSION}" \ -From fb9bc934858656128ef500f2d4078489b84030b8 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From b525cc97c0f168cc16849c87ec91234ea05ddd13 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 12 Jan 2016 16:29:57 +0000 -Subject: [PATCH] ffmpeg: Add cabac opimisations for hevc +Subject: [PATCH 64/94] ffmpeg: Add cabac opimisations for hevc --- .../0001-Squashed-commit-of-the-following.patch | 2288 ++++++++++++++++++++ @@ -49658,10 +50134,93 @@ index e4acfa9..072e711 100644 cd $(PLATFORM);\ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \ -From 56e531b1a6fbe9b7cb67afe9249586438b60328d Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 4ba5e77ceafc42f8307d5611d59efe5065df16fa Mon Sep 17 00:00:00 2001 +From: Rainer Hochecker +Date: Tue, 14 Jul 2015 08:30:44 +0200 +Subject: [PATCH 65/94] fix high cpu load caused by false positive frame + limiter + +--- + xbmc/Application.cpp | 20 +++++++++----------- + 1 file changed, 9 insertions(+), 11 deletions(-) + +diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp +index 212a5c7..1adbb01 100644 +--- a/xbmc/Application.cpp ++++ b/xbmc/Application.cpp +@@ -1902,7 +1902,7 @@ void CApplication::Render() + + bool hasRendered = false; + bool limitFrames = false; +- unsigned int singleFrameTime = 10; // default limit 100 fps ++ unsigned int singleFrameTime = 40; // default limit 25 fps + bool vsync = true; + + // Whether externalplayer is playing and we're unfocused +@@ -1916,24 +1916,22 @@ void CApplication::Render() + if (!extPlayerActive && g_graphicsContext.IsFullScreenVideo() && !m_pPlayer->IsPausedPlayback()) + { + m_bPresentFrame = g_renderManager.HasFrame(); +- if (vsync_mode == VSYNC_DISABLED) +- vsync = false; + } + else + { + // engage the frame limiter as needed + limitFrames = lowfps || extPlayerActive; +- // DXMERGE - we checked for g_videoConfig.GetVSyncMode() before this +- // perhaps allowing it to be set differently than the UI option?? ++ ++ // TODO: ++ // remove those useless modes, they don't do any good + if (vsync_mode == VSYNC_DISABLED || vsync_mode == VSYNC_VIDEO) + { + limitFrames = true; // not using vsync. +- vsync = false; ++ singleFrameTime = 10; + } +- else if ((g_infoManager.GetFPS() > g_graphicsContext.GetFPS() + 10) && g_infoManager.GetFPS() > 1000.0f / singleFrameTime) ++ else if ((g_infoManager.GetFPS() > g_graphicsContext.GetFPS() + 10) && g_infoManager.GetFPS() > 100.0f) + { + limitFrames = true; // using vsync, but it isn't working. +- vsync = false; + } + + if (limitFrames) +@@ -1957,7 +1955,10 @@ void CApplication::Render() + else if (vsync_mode == VSYNC_ALWAYS) + g_Windowing.SetVSync(true); + else if (vsync_mode != VSYNC_DRIVER) ++ { + g_Windowing.SetVSync(false); ++ vsync = false; ++ } + + if (m_bPresentFrame && m_pPlayer->IsPlaying() && !m_pPlayer->IsPaused()) + ResetScreenSaver(); +@@ -2025,9 +2026,6 @@ void CApplication::Render() + //fps limiter, make sure each frame lasts at least singleFrameTime milliseconds + if (limitFrames || !(flip || m_bPresentFrame)) + { +- if (!limitFrames) +- singleFrameTime = 40; //if not flipping, loop at 25 fps +- + unsigned int frameTime = now - m_lastFrameTime; + if (frameTime < singleFrameTime) + Sleep(singleFrameTime - frameTime); +-- +2.5.0 + + +From 488f86f0dc3a9a986c4535697827ad656d8fedf1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 5 Aug 2015 13:43:25 +0100 -Subject: [PATCH] [dvdplayeraudio] Avoid busy spinning when queue is empty +Subject: [PATCH 66/94] [dvdplayeraudio] Avoid busy spinning when queue is + empty --- xbmc/cores/dvdplayer/DVDPlayerAudio.cpp | 2 ++ @@ -49680,10 +50239,14 @@ index 97a23a6..9f21a19 100644 } continue; -From 9ca8d9d2b8799f4c9c6ebce05b815d34a086ba13 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 05a5655c10b72fc3f9da1a7b91e077bb4eee0c50 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 6 Aug 2015 11:23:05 +0100 -Subject: [PATCH] [rbp] Make sync playback to display the default option +Subject: [PATCH 67/94] [rbp] Make sync playback to display the default option --- system/settings/rbp.xml | 7 +++++++ @@ -49707,11 +50270,15 @@ index 1506035..f2a6892 100644 false -From 1aa08c1f2360c42cdcb4cc21d28b5dd701fca571 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 3f638db8e9c0eed4dc2d53007c76b6ac48cb7a95 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 8 Sep 2015 23:42:30 +0100 -Subject: [PATCH] [cec] Fixing initialisation issue found on Raspberry Pi with - Buildroot +Subject: [PATCH 68/94] [cec] Fixing initialisation issue found on Raspberry Pi + with Buildroot --- tools/depends/target/libcec/Makefile | 1 + @@ -49761,11 +50328,15 @@ index 0000000..8f289f2 + { + m_queue = new CRPiCECAdapterMessageQueue(this); + } -From ee6c60cdfb97ea162c07430f349fe17bf826d17a Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 6ddb38f37c38455d28d9caa357b597b4b9d327e4 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 9 Dec 2015 13:31:14 +0000 -Subject: [PATCH] [mmalcodec] Fail to open when width is invalid. Can happen - with mpegts files +Subject: [PATCH 69/94] [mmalcodec] Fail to open when width is invalid. Can + happen with mpegts files --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 4 ++++ @@ -49786,11 +50357,264 @@ index 3345685..5386b4a 100644 // we always qualify even if DVDFactoryCodec does this too. if (!CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEMMAL) || hints.software) return false; -From 0c6232841ddc2caaf3f17c6866ed48d880421b38 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 9bfbe66e6e477429af4b3ab01f5b3bf4f10ee221 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 21 Dec 2015 18:34:06 +0000 +Subject: [PATCH 70/94] [mmalrender] Force a SetVideoRect after a reconfigure + +There has been an issue with dvd stills and a hdmi refresh rate change. +The hdmi mode change loses the currently displayed picture. +Not an issue for normal video playback as another picture will be along soon. +Not the case in DVD menus. + +SetVideoRect makes the last picture redisplay and so fixes up the menu. +--- + xbmc/cores/VideoRenderers/MMALRenderer.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +index adf6f73..ad3f66f 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +@@ -286,6 +286,10 @@ bool CMMALRenderer::Configure(unsigned int width, unsigned int height, unsigned + m_fps = fps; + m_iFlags = flags; + ++ // cause SetVideoRect to trigger - needed after a hdmi mode change ++ m_src_rect.SetRect(0, 0, 0, 0); ++ m_dst_rect.SetRect(0, 0, 0, 0); ++ + CLog::Log(LOGDEBUG, "%s::%s - %dx%d->%dx%d@%.2f flags:%x format:%d ext:%x orient:%d", CLASSNAME, __func__, width, height, d_width, d_height, fps, flags, format, extended_format, orientation); + if (format != RENDER_FMT_YUV420P && format != RENDER_FMT_BYPASS && format != RENDER_FMT_MMAL) + { +-- +2.5.0 + + +From 138c0d96b6f9979a304f4d3e087f8659717b2471 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 31 Mar 2015 17:31:47 +0100 +Subject: [PATCH 71/94] mmalcodec: Add SetCodecControl function + +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 10 +++++++++- + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h | 2 ++ + 2 files changed, 11 insertions(+), 1 deletion(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +index 5386b4a..799b708 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +@@ -130,6 +130,7 @@ CMMALVideo::CMMALVideo() + m_speed = DVD_PLAYSPEED_NORMAL; + m_fps = 0.0f; + m_num_decoded = 0; ++ m_codecControlFlags = 0; + } + + CMMALVideo::~CMMALVideo() +@@ -875,7 +876,7 @@ int CMMALVideo::Decode(uint8_t* pData, int iSize, double dts, double pts) + } + + if (g_advancedSettings.CanLogComponent(LOGVIDEO)) +- CLog::Log(LOGDEBUG, "%s::%s - ret(%x) pics(%d) inputs(%d) slept(%d) queued(%.2f) (%.2f:%.2f) full(%d)", CLASSNAME, __func__, ret, m_output_ready.size(), mmal_queue_length(m_dec_input_pool->queue), slept, queued*1e-6, m_demuxerPts*1e-6, m_decoderPts*1e-6, full); ++ CLog::Log(LOGDEBUG, "%s::%s - ret(%x) pics(%d) inputs(%d) slept(%d) queued(%.2f) (%.2f:%.2f) full(%d) flags(%x)", CLASSNAME, __func__, ret, m_output_ready.size(), mmal_queue_length(m_dec_input_pool->queue), slept, queued*1e-6, m_demuxerPts*1e-6, m_decoderPts*1e-6, full, m_codecControlFlags); + + return ret; + } +@@ -939,6 +940,7 @@ void CMMALVideo::Reset(void) + } + m_decoderPts = DVD_NOPTS_VALUE; + m_demuxerPts = DVD_NOPTS_VALUE; ++ m_codecControlFlags = 0; + } + + void CMMALVideo::SetSpeed(int iSpeed) +@@ -1049,3 +1051,9 @@ bool CMMALVideo::GetCodecStats(double &pts, int &droppedPics) + droppedPics= -1; + return false; + } ++ ++void CMMALVideo::SetCodecControl(int flags) ++{ ++ CSingleLock lock(m_sharedSection); ++ m_codecControlFlags = flags; ++} +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h +index f4df09c..37d0868 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h +@@ -79,6 +79,7 @@ public: + virtual void SetDropState(bool bDrop); + virtual const char* GetName(void) { return m_pFormatName ? m_pFormatName:"mmal-xxx"; } + virtual bool GetCodecStats(double &pts, int &droppedPics); ++ virtual void SetCodecControl(int flags); + virtual void SetSpeed(int iSpeed); + + // MMAL decoder callback routines. +@@ -121,6 +122,7 @@ protected: + double m_demuxerPts; + double m_decoderPts; + int m_speed; ++ int m_codecControlFlags; + + CCriticalSection m_sharedSection; + MMAL_COMPONENT_T *m_dec; +-- +2.5.0 + + +From db15bb3280518a33c1a67864e126a44b87767047 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sun, 27 Dec 2015 18:44:22 +0000 +Subject: [PATCH 72/94] mmalcodec: Switch to a condition variable when blocking + waiting for a picture + +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 38 ++++++++++++---------- + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h | 3 +- + 2 files changed, 23 insertions(+), 18 deletions(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +index 799b708..3579966 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +@@ -102,7 +102,6 @@ CMMALVideo::CMMALVideo() + { + if (g_advancedSettings.CanLogComponent(LOGVIDEO)) + CLog::Log(LOGDEBUG, "%s::%s %p", CLASSNAME, __func__, this); +- pthread_mutex_init(&m_output_mutex, NULL); + + m_decoded_width = 0; + m_decoded_height = 0; +@@ -141,7 +140,6 @@ CMMALVideo::~CMMALVideo() + Dispose(); + + CSingleLock lock(m_sharedSection); +- pthread_mutex_destroy(&m_output_mutex); + + if (m_deint && m_deint->control && m_deint->control->is_enabled) + mmal_port_disable(m_deint->control); +@@ -285,9 +283,11 @@ void CMMALVideo::dec_output_port_cb(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T *buf + omvb->width = m_decoded_width; + omvb->height = m_decoded_height; + omvb->m_aspect_ratio = m_aspect_ratio; +- pthread_mutex_lock(&m_output_mutex); +- m_output_ready.push(omvb); +- pthread_mutex_unlock(&m_output_mutex); ++ { ++ CSingleLock lock(m_output_mutex); ++ m_output_ready.push(omvb); ++ m_output_cond.notifyAll(); ++ } + kept = true; + } + } +@@ -867,7 +867,8 @@ int CMMALVideo::Decode(uint8_t* pData, int iSize, double dts, double pts) + { + // otherwise we busy spin + CSingleExit unlock(m_sharedSection); +- Sleep(10); ++ CSingleLock lock(m_output_mutex); ++ m_output_cond.wait(lock, 10); + } + if (!m_output_ready.empty()) + ret |= VC_PICTURE; +@@ -916,14 +917,16 @@ void CMMALVideo::Reset(void) + while (1) + { + CMMALVideoBuffer *buffer = NULL; +- pthread_mutex_lock(&m_output_mutex); +- // fetch a output buffer and pop it off the ready list +- if (!m_output_ready.empty()) + { +- buffer = m_output_ready.front(); +- m_output_ready.pop(); ++ CSingleLock lock(m_output_mutex); ++ // fetch a output buffer and pop it off the ready list ++ if (!m_output_ready.empty()) ++ { ++ buffer = m_output_ready.front(); ++ m_output_ready.pop(); ++ } ++ m_output_cond.notifyAll(); + } +- pthread_mutex_unlock(&m_output_mutex); + if (buffer) + { + buffer->Acquire(); +@@ -984,11 +987,12 @@ bool CMMALVideo::GetPicture(DVDVideoPicture* pDvdVideoPicture) + { + CMMALVideoBuffer *buffer; + // fetch a output buffer and pop it off the ready list +- pthread_mutex_lock(&m_output_mutex); +- buffer = m_output_ready.front(); +- m_output_ready.pop(); +- pthread_mutex_unlock(&m_output_mutex); +- ++ { ++ CSingleLock lock(m_output_mutex); ++ buffer = m_output_ready.front(); ++ m_output_ready.pop(); ++ m_output_cond.notifyAll(); ++ } + assert(buffer->mmal_buffer); + memset(pDvdVideoPicture, 0, sizeof *pDvdVideoPicture); + pDvdVideoPicture->format = RENDER_FMT_MMAL; +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h +index 37d0868..ca28c6f 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h +@@ -105,7 +105,8 @@ protected: + const char *m_pFormatName; + + // mmal output buffers (video frames) +- pthread_mutex_t m_output_mutex; ++ CCriticalSection m_output_mutex; ++ XbmcThreads::ConditionVariable m_output_cond; + std::queue m_output_ready; + + // initialize mmal and get decoder component +-- +2.5.0 + + +From 426d5fc36b57594a4cc77985bc9ad78746e0e502 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sat, 16 Jan 2016 16:46:03 +0000 +Subject: [PATCH 73/94] omxaudio: Avoid reporting a spurious cached value + +Avoids seek bar showing zero after a seek +--- + xbmc/cores/omxplayer/OMXAudio.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/cores/omxplayer/OMXAudio.cpp b/xbmc/cores/omxplayer/OMXAudio.cpp +index 70d0866..052b5ef 100644 +--- a/xbmc/cores/omxplayer/OMXAudio.cpp ++++ b/xbmc/cores/omxplayer/OMXAudio.cpp +@@ -1335,7 +1335,7 @@ float COMXAudio::GetDelay() + if (m_last_pts != DVD_NOPTS_VALUE && m_av_clock) + stamp = m_av_clock->OMXMediaTime(); + // if possible the delay is current media time - time of last submitted packet +- if (stamp != DVD_NOPTS_VALUE) ++ if (stamp != DVD_NOPTS_VALUE && stamp != 0.0) + { + ret = (m_last_pts - stamp) * (1.0 / DVD_TIME_BASE); + } +-- +2.5.0 + + +From 87509c4cfa3ce6f9a4239cee724ab254ba2a3d3b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 21 Dec 2015 22:17:25 +0000 -Subject: [PATCH] [omximage] Fall back to arm jpeg encode/decode when gpu is - busy +Subject: [PATCH 74/94] [omximage] Fall back to arm jpeg encode/decode when gpu + is busy --- xbmc/cores/omxplayer/OMXImage.cpp | 50 ++++++++++++++++++++++++++++++++------- @@ -49975,7 +50799,7 @@ diff --git a/xbmc/cores/omxplayer/OMXImage.h b/xbmc/cores/omxplayer/OMXImage.h index a93aa82..6f38dbc 100644 --- a/xbmc/cores/omxplayer/OMXImage.h +++ b/xbmc/cores/omxplayer/OMXImage.h -@@ -133,6 +133,7 @@ class COMXImageDec +@@ -133,6 +133,7 @@ protected: OMX_PARAM_PORTDEFINITIONTYPE m_decoded_format; CCriticalSection m_OMXSection; bool m_success; @@ -49983,7 +50807,7 @@ index a93aa82..6f38dbc 100644 }; class COMXImageEnc -@@ -144,6 +145,7 @@ class COMXImageEnc +@@ -144,6 +145,7 @@ public: // Required overrides bool CreateThumbnailFromSurface(unsigned char* buffer, unsigned int width, unsigned int height, unsigned int format, unsigned int pitch, const std::string& destFile); @@ -49991,7 +50815,7 @@ index a93aa82..6f38dbc 100644 protected: bool Encode(unsigned char *buffer, int size, unsigned int width, unsigned int height, unsigned int pitch); // Components -@@ -152,6 +154,7 @@ class COMXImageEnc +@@ -152,6 +154,7 @@ protected: OMX_PARAM_PORTDEFINITIONTYPE m_encoded_format; CCriticalSection m_OMXSection; bool m_success; @@ -49999,7 +50823,7 @@ index a93aa82..6f38dbc 100644 }; class COMXImageReEnc -@@ -163,6 +166,7 @@ class COMXImageReEnc +@@ -163,6 +166,7 @@ public: // Required overrides void Close(); bool ReEncode(COMXImageFile &srcFile, unsigned int width, unsigned int height, void * &pDestBuffer, unsigned int &nDestSize); @@ -50007,7 +50831,7 @@ index a93aa82..6f38dbc 100644 protected: bool HandlePortSettingChange(unsigned int resize_width, unsigned int resize_height, int orientation, bool port_settings_changed); // Components -@@ -176,6 +180,7 @@ class COMXImageReEnc +@@ -176,6 +180,7 @@ protected: void *m_pDestBuffer; unsigned int m_nDestAllocSize; bool m_success; @@ -50015,7 +50839,7 @@ index a93aa82..6f38dbc 100644 }; class COMXTexture -@@ -187,6 +192,7 @@ class COMXTexture +@@ -187,6 +192,7 @@ public: // Required overrides void Close(void); bool Decode(const uint8_t *data, unsigned size, unsigned int width, unsigned int height, void *egl_image); @@ -50023,7 +50847,7 @@ index a93aa82..6f38dbc 100644 protected: bool HandlePortSettingChange(unsigned int resize_width, unsigned int resize_height, void *egl_image, bool port_settings_changed); -@@ -201,6 +207,7 @@ class COMXTexture +@@ -201,6 +207,7 @@ protected: OMX_BUFFERHEADERTYPE *m_egl_buffer; CCriticalSection m_OMXSection; bool m_success; @@ -50031,10 +50855,138 @@ index a93aa82..6f38dbc 100644 }; extern COMXImage g_OMXImage; -From 47df934cc713ef7921c612fbb2d42a14c53df618 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 0fea3baccdb25c562be89bd1c69f464bce182f6f Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sat, 2 Jan 2016 18:08:16 +0000 +Subject: [PATCH 75/94] [mmalcodec] Don't send zero sized extradata + +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +index 3579966..0f5c1b7 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +@@ -501,7 +501,7 @@ bool CMMALVideo::SendCodecConfigData() + { + CSingleLock lock(m_sharedSection); + MMAL_STATUS_T status; +- if (!m_dec_input_pool) ++ if (!m_dec_input_pool || !m_hints.extrasize) + return true; + // send code config data + MMAL_BUFFER_HEADER_T *buffer = mmal_queue_timedwait(m_dec_input_pool->queue, 500); +-- +2.5.0 + + +From 49f0bbf2f288d4d2f51db8f55d10268c78afdbfe Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sun, 3 Jan 2016 19:12:16 +0000 +Subject: [PATCH 76/94] stereoscopicmanager: Ensure we don't have a stale value + of videoplayer stereoscopic mode + +--- + xbmc/guilib/StereoscopicsManager.cpp | 30 +++++++++++++++++++++--------- + xbmc/guilib/StereoscopicsManager.h | 2 ++ + 2 files changed, 23 insertions(+), 9 deletions(-) + +diff --git a/xbmc/guilib/StereoscopicsManager.cpp b/xbmc/guilib/StereoscopicsManager.cpp +index d9e0fa4..4942f01 100644 +--- a/xbmc/guilib/StereoscopicsManager.cpp ++++ b/xbmc/guilib/StereoscopicsManager.cpp +@@ -140,12 +140,7 @@ void CStereoscopicsManager::SetStereoMode(const RENDER_STEREO_MODE &mode) + + // resolve automatic mode before applying + if (mode == RENDER_STEREO_MODE_AUTO) +- { +- if (g_infoManager.EvaluateBool("videoplayer.isstereoscopic")) +- applyMode = GetStereoModeOfPlayingVideo(); +- else +- applyMode = RENDER_STEREO_MODE_OFF; +- } ++ applyMode = GetStereoModeOfPlayingVideo(); + + if (applyMode != currentMode && applyMode >= RENDER_STEREO_MODE_OFF) + { +@@ -209,7 +204,7 @@ RENDER_STEREO_MODE CStereoscopicsManager::GetStereoModeByUserChoice(const std::s + { + RENDER_STEREO_MODE mode = GetStereoMode(); + // if no stereo mode is set already, suggest mode of current video by preselecting it +- if (mode == RENDER_STEREO_MODE_OFF && g_infoManager.EvaluateBool("videoplayer.isstereoscopic")) ++ if (mode == RENDER_STEREO_MODE_OFF) + mode = GetStereoModeOfPlayingVideo(); + + CGUIDialogSelect* pDlgSelect = (CGUIDialogSelect*)g_windowManager.GetWindow(WINDOW_DIALOG_SELECT); +@@ -254,8 +249,8 @@ RENDER_STEREO_MODE CStereoscopicsManager::GetStereoModeByUserChoice(const std::s + RENDER_STEREO_MODE CStereoscopicsManager::GetStereoModeOfPlayingVideo(void) + { + RENDER_STEREO_MODE mode = RENDER_STEREO_MODE_OFF; ++ std::string playerMode = GetVideoStereoMode(); + +- std::string playerMode = g_infoManager.GetLabel(VIDEOPLAYER_STEREOSCOPIC_MODE); + if (!playerMode.empty()) + { + int convertedMode = ConvertVideoToGuiStereoMode(playerMode); +@@ -504,6 +499,23 @@ void CStereoscopicsManager::ApplyStereoMode(const RENDER_STEREO_MODE &mode, bool + } + } + ++std::string CStereoscopicsManager::GetVideoStereoMode() ++{ ++ std::string playerMode; ++ if (g_application.m_pPlayer->IsPlaying()) ++ { ++ SPlayerVideoStreamInfo videoInfo; ++ g_application.m_pPlayer->GetVideoStreamInfo(videoInfo); ++ playerMode = videoInfo.stereoMode; ++ } ++ return playerMode; ++} ++ ++bool CStereoscopicsManager::IsVideoStereoscopic() ++{ ++ return !GetVideoStereoMode().empty(); ++} ++ + void CStereoscopicsManager::OnPlaybackStarted(void) + { + STEREOSCOPIC_PLAYBACK_MODE playbackMode = (STEREOSCOPIC_PLAYBACK_MODE) CSettings::GetInstance().GetInt(CSettings::SETTING_VIDEOPLAYER_STEREOSCOPICPLAYBACKMODE); +@@ -513,7 +525,7 @@ void CStereoscopicsManager::OnPlaybackStarted(void) + if (playbackMode == STEREOSCOPIC_PLAYBACK_MODE_IGNORE && mode == RENDER_STEREO_MODE_OFF) + return; + +- if (!g_infoManager.EvaluateBool("videoplayer.isstereoscopic")) ++ if (!CStereoscopicsManager::IsVideoStereoscopic()) + { + // exit stereo mode if started item is not stereoscopic + // and if user prefers to stop 3D playback when movie is finished +diff --git a/xbmc/guilib/StereoscopicsManager.h b/xbmc/guilib/StereoscopicsManager.h +index ec2310f..f090bb9 100644 +--- a/xbmc/guilib/StereoscopicsManager.h ++++ b/xbmc/guilib/StereoscopicsManager.h +@@ -92,6 +92,8 @@ private: + void ApplyStereoMode(const RENDER_STEREO_MODE &mode, bool notify = true); + void OnPlaybackStarted(void); + void OnPlaybackStopped(void); ++ std::string GetVideoStereoMode(); ++ bool IsVideoStereoscopic(); + + RENDER_STEREO_MODE m_stereoModeSetByUser; + RENDER_STEREO_MODE m_lastStereoModeSetByUser; +-- +2.5.0 + + +From 7399f59303833e2f6442e67e2d9d4c17adc41e35 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Sep 2015 19:05:12 +0100 -Subject: [PATCH] [3d] Make MVC a valid 3D filename tag +Subject: [PATCH 77/94] [3d] Make MVC a valid 3D filename tag --- xbmc/guilib/StereoscopicsManager.cpp | 9 +++++++++ @@ -50094,10 +51046,14 @@ index 93de9bd..4da88f4 100644 /*!< @brief position behavior of ass subtitiles when setting "subtitle position on screen" set to "fixed" True to show at the fixed position set in video calibration -From 917036937e1e6bcdee5add347e8a9cfc8f571932 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 6cee5258e6f154631e457615c4028b74fd4e5525 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 24 Jan 2016 16:42:04 +0000 -Subject: [PATCH] fixup! [build] Add patches to ffmpeg for native build +Subject: [PATCH 78/94] fixup! [build] Add patches to ffmpeg for native build --- tools/depends/target/ffmpeg/autobuild.sh | 2 +- @@ -50116,337 +51072,1579 @@ index f6d4c3b..cc59d17 100755 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \ ./configure --prefix=$FFMPEG_PREFIX \ -From 4c58ea8b09c9f22527263d521589e5842ef2ceea Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From a4f972065465a09a608315605358cfca1088365d Mon Sep 17 00:00:00 2001 From: popcornmix -Date: Mon, 15 Feb 2016 15:50:00 +0000 -Subject: [PATCH] temp: Add lock around mmal and omx calls to avoid stalled - audio issue +Date: Tue, 26 Jan 2016 19:58:30 +0000 +Subject: [PATCH 79/94] OMXAudio: Make use of m_bGotFrame to skip decoding when + full --- - xbmc/cores/VideoRenderers/MMALRenderer.cpp | 1 + - xbmc/cores/VideoRenderers/MMALRenderer.h | 2 +- - xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 1 + - xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h | 2 +- - xbmc/linux/OMXCore.cpp | 29 ++++++++++++++++++++++ - xbmc/linux/OMXCore.h | 2 ++ - xbmc/linux/RBP.h | 1 + - 7 files changed, 36 insertions(+), 2 deletions(-) + xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) -diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -index ad3f66f6..a619448 100644 ---- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp -+++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -@@ -240,6 +240,7 @@ bool CMMALRenderer::init_vout(ERenderFormat format) +diff --git a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp +index 33c4c6a..b9dab89 100644 +--- a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp ++++ b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp +@@ -158,7 +158,8 @@ int COMXAudioCodecOMX::Decode(BYTE* pData, int iSize, double dts, double pts) + if (!m_pCodecContext) return -1; + + AVPacket avpkt; +- m_bGotFrame = false; ++ if (m_bGotFrame) ++ return 0; + av_init_packet(&avpkt); + avpkt.data = pData; + avpkt.size = iSize; +@@ -257,6 +258,7 @@ int COMXAudioCodecOMX::GetData(BYTE** dst, double &dts, double &pts) + outputSize = 0; + } + } ++ m_bGotFrame = false; + int desired_size = AUDIO_DECODE_OUTPUT_BUFFER * (m_pCodecContext->channels * GetBitsPerSample()) >> (rounded_up_channels_shift[m_pCodecContext->channels] + 4); + + if (m_bFirstFrame) +@@ -274,7 +276,6 @@ int COMXAudioCodecOMX::GetData(BYTE** dst, double &dts, double &pts) + if (m_iBufferOutputUsed + outputSize > desired_size || m_bNoConcatenate) + { + int ret = m_iBufferOutputUsed; +- m_bGotFrame = false; + m_iBufferOutputUsed = 0; + dts = m_dts; + pts = m_pts; +-- +2.5.0 + + +From c6f3b279c5d18c805ae6c3a6e9db8b5680602a61 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 26 Jan 2016 20:01:18 +0000 +Subject: [PATCH 80/94] OMXAudio: Handle GetData before adding the next buffer + so we can be sure it fits + +--- + xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp | 28 ++++++++++++++-------------- + 1 file changed, 14 insertions(+), 14 deletions(-) + +diff --git a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp +index b9dab89..f150dc6 100644 +--- a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp ++++ b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp +@@ -206,12 +206,24 @@ int COMXAudioCodecOMX::GetData(BYTE** dst, double &dts, double &pts) + /* output audio will be packed */ + int outputSize = av_samples_get_buffer_size(&outLineSize, m_pCodecContext->channels, m_pFrame1->nb_samples, m_desiredSampleFormat, 1); + ++ // if this buffer won't fit then flush out what we have ++ int desired_size = AUDIO_DECODE_OUTPUT_BUFFER * (m_pCodecContext->channels * GetBitsPerSample()) >> (rounded_up_channels_shift[m_pCodecContext->channels] + 4); ++ if (m_iBufferOutputUsed && (m_iBufferOutputUsed + outputSize > desired_size || m_bNoConcatenate)) ++ { ++ int ret = m_iBufferOutputUsed; ++ m_iBufferOutputUsed = 0; ++ dts = m_dts; ++ pts = m_pts; ++ *dst = m_pBufferOutput; ++ return ret; ++ } ++ m_frameSize = outputSize; ++ + if (m_iBufferOutputAlloced < m_iBufferOutputUsed + outputSize) + { + m_pBufferOutput = (BYTE*)av_realloc(m_pBufferOutput, m_iBufferOutputUsed + outputSize + FF_INPUT_BUFFER_PADDING_SIZE); + m_iBufferOutputAlloced = m_iBufferOutputUsed + outputSize; + } +- *dst = m_pBufferOutput; + + /* need to convert format */ + if(m_pCodecContext->sample_fmt != m_desiredSampleFormat) +@@ -259,28 +271,16 @@ int COMXAudioCodecOMX::GetData(BYTE** dst, double &dts, double &pts) + } + } + m_bGotFrame = false; +- int desired_size = AUDIO_DECODE_OUTPUT_BUFFER * (m_pCodecContext->channels * GetBitsPerSample()) >> (rounded_up_channels_shift[m_pCodecContext->channels] + 4); + + if (m_bFirstFrame) + { +- CLog::Log(LOGDEBUG, "COMXAudioCodecOMX::GetData size=%d/%d line=%d/%d buf=%p, desired=%d", inputSize, outputSize, inLineSize, outLineSize, *dst, desired_size); ++ CLog::Log(LOGDEBUG, "COMXAudioCodecOMX::GetData size=%d/%d line=%d/%d buf=%p, desired=%d", inputSize, outputSize, inLineSize, outLineSize, m_pBufferOutput, desired_size); + m_bFirstFrame = false; + } + m_iBufferOutputUsed += outputSize; + + if (!m_bNoConcatenate && m_pCodecContext->sample_fmt == AV_SAMPLE_FMT_FLTP && m_frameSize && (int)m_frameSize != outputSize) + CLog::Log(LOGERROR, "COMXAudioCodecOMX::GetData Unexpected change of size (%d->%d)", m_frameSize, outputSize); +- m_frameSize = outputSize; +- +- // if next buffer submitted won't fit then flush it out +- if (m_iBufferOutputUsed + outputSize > desired_size || m_bNoConcatenate) +- { +- int ret = m_iBufferOutputUsed; +- m_iBufferOutputUsed = 0; +- dts = m_dts; +- pts = m_pts; +- return ret; +- } + return 0; } - CMMALRenderer::CMMALRenderer() -+: m_sharedSection(g_RBP.GetLock()) - { - CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); - m_vout = NULL; -diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.h b/xbmc/cores/VideoRenderers/MMALRenderer.h -index a71e645..084d59a 100644 ---- a/xbmc/cores/VideoRenderers/MMALRenderer.h -+++ b/xbmc/cores/VideoRenderers/MMALRenderer.h -@@ -121,7 +121,7 @@ class CMMALRenderer : public CBaseRenderer - int m_inflight; - float m_sharpness; +-- +2.5.0 + + +From 9dbad1bfa2329d5ca5a1d82e3e982a69dbad965d Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 26 Jan 2016 20:03:49 +0000 +Subject: [PATCH 81/94] OMXAudio: Handle changes in decoded audio size + correctly + +--- + xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp +index f150dc6..4956b5b 100644 +--- a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp ++++ b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp +@@ -103,10 +103,6 @@ bool COMXAudioCodecOMX::Open(CDVDStreamInfo &hints) + if (m_pCodecContext->request_channel_layout) + CLog::Log(LOGNOTICE,"COMXAudioCodecOMX::Open() Requesting channel layout of %x", (unsigned)m_pCodecContext->request_channel_layout); -- CCriticalSection m_sharedSection; -+ CCriticalSection &m_sharedSection; - MMAL_COMPONENT_T *m_vout; - MMAL_PORT_T *m_vout_input; - MMAL_POOL_T *m_vout_input_pool; +- // vorbis and wma2v2 have variable sized planar output, so skip concatenation +- if (hints.codec == AV_CODEC_ID_VORBIS || hints.codec == AV_CODEC_ID_WMAV2) +- m_bNoConcatenate = true; +- + if(m_pCodecContext->bits_per_coded_sample == 0) + m_pCodecContext->bits_per_coded_sample = 16; + +@@ -206,12 +202,19 @@ int COMXAudioCodecOMX::GetData(BYTE** dst, double &dts, double &pts) + /* output audio will be packed */ + int outputSize = av_samples_get_buffer_size(&outLineSize, m_pCodecContext->channels, m_pFrame1->nb_samples, m_desiredSampleFormat, 1); + ++ if (!m_bNoConcatenate && m_iBufferOutputUsed && (int)m_frameSize != outputSize) ++ { ++ CLog::Log(LOGERROR, "COMXAudioCodecOMX::GetData Unexpected change of size (%d->%d)", m_frameSize, outputSize); ++ m_bNoConcatenate = true; ++ } ++ + // if this buffer won't fit then flush out what we have + int desired_size = AUDIO_DECODE_OUTPUT_BUFFER * (m_pCodecContext->channels * GetBitsPerSample()) >> (rounded_up_channels_shift[m_pCodecContext->channels] + 4); + if (m_iBufferOutputUsed && (m_iBufferOutputUsed + outputSize > desired_size || m_bNoConcatenate)) + { + int ret = m_iBufferOutputUsed; + m_iBufferOutputUsed = 0; ++ m_bNoConcatenate = false; + dts = m_dts; + pts = m_pts; + *dst = m_pBufferOutput; +@@ -278,9 +281,6 @@ int COMXAudioCodecOMX::GetData(BYTE** dst, double &dts, double &pts) + m_bFirstFrame = false; + } + m_iBufferOutputUsed += outputSize; +- +- if (!m_bNoConcatenate && m_pCodecContext->sample_fmt == AV_SAMPLE_FMT_FLTP && m_frameSize && (int)m_frameSize != outputSize) +- CLog::Log(LOGERROR, "COMXAudioCodecOMX::GetData Unexpected change of size (%d->%d)", m_frameSize, outputSize); + return 0; + } + +-- +2.5.0 + + +From 88f9f9f084fde1e563e9c7510cfb84bedf21c842 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Thu, 4 Feb 2016 15:29:55 +0000 +Subject: [PATCH 82/94] MMALCodec: Set dropped flag on output pictures when + input requested that + +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 6 ++++++ + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h | 1 + + 2 files changed, 7 insertions(+) + diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp -index 08f61fc..25a4c84 100644 +index 0f5c1b7..7b025fd 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp -@@ -99,6 +99,7 @@ long CMMALVideoBuffer::Release() - #define CLASSNAME "CMMALVideo" - - CMMALVideo::CMMALVideo() -+: m_sharedSection(g_RBP.GetLock()) +@@ -759,6 +759,7 @@ void CMMALVideo::SetDropState(bool bDrop) { if (g_advancedSettings.CanLogComponent(LOGVIDEO)) - CLog::Log(LOGDEBUG, "%s::%s %p", CLASSNAME, __func__, this); + CLog::Log(LOGDEBUG, "%s::%s - bDrop(%d)", CLASSNAME, __func__, bDrop); ++ m_dropState = bDrop; + } + + int CMMALVideo::Decode(uint8_t* pData, int iSize, double dts, double pts) +@@ -794,6 +795,8 @@ int CMMALVideo::Decode(uint8_t* pData, int iSize, double dts, double pts) + buffer->length = (uint32_t)iSize > buffer->alloc_size ? buffer->alloc_size : (uint32_t)iSize; + // set a flag so we can identify primary frames from generated frames (deinterlace) + buffer->flags = MMAL_BUFFER_HEADER_FLAG_USER0; ++ if (m_dropState) ++ buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER3; + + memcpy(buffer->data, pData, buffer->length); + iSize -= buffer->length; +@@ -944,6 +947,7 @@ void CMMALVideo::Reset(void) + m_decoderPts = DVD_NOPTS_VALUE; + m_demuxerPts = DVD_NOPTS_VALUE; + m_codecControlFlags = 0; ++ m_dropState = false; + } + + void CMMALVideo::SetSpeed(int iSpeed) +@@ -1021,6 +1025,8 @@ bool CMMALVideo::GetPicture(DVDVideoPicture* pDvdVideoPicture) + + pDvdVideoPicture->MMALBuffer->Acquire(); + pDvdVideoPicture->iFlags = DVP_FLAG_ALLOCATED; ++ if (buffer->mmal_buffer->flags & MMAL_BUFFER_HEADER_FLAG_USER3) ++ pDvdVideoPicture->iFlags |= DVP_FLAG_DROPPED; + if (g_advancedSettings.CanLogComponent(LOGVIDEO)) + CLog::Log(LOGINFO, "%s::%s dts:%.3f pts:%.3f flags:%x:%x MMALBuffer:%p mmal_buffer:%p", CLASSNAME, __func__, + pDvdVideoPicture->dts == DVD_NOPTS_VALUE ? 0.0 : pDvdVideoPicture->dts*1e-6, pDvdVideoPicture->pts == DVD_NOPTS_VALUE ? 0.0 : pDvdVideoPicture->pts*1e-6, diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h -index bf669e0..60a3e5f 100644 +index ca28c6f..bf669e0 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h -@@ -126,7 +126,7 @@ class CMMALVideo : public CDVDVideoCodec +@@ -124,6 +124,7 @@ protected: + double m_decoderPts; + int m_speed; int m_codecControlFlags; - bool m_dropState; ++ bool m_dropState; -- CCriticalSection m_sharedSection; -+ CCriticalSection &m_sharedSection; + CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_dec; - MMAL_PORT_T *m_dec_input; - MMAL_PORT_T *m_dec_output; -diff --git a/xbmc/linux/OMXCore.cpp b/xbmc/linux/OMXCore.cpp -index 5f91787..a7edc95 100644 ---- a/xbmc/linux/OMXCore.cpp -+++ b/xbmc/linux/OMXCore.cpp -@@ -59,6 +59,7 @@ static void add_timespecs(struct timespec &time, long millisecs) +-- +2.5.0 + + +From e51fd26cfe75c298e107f26af4ba6dd3a68f4e22 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 3 Feb 2016 21:35:01 +0000 +Subject: [PATCH 83/94] DVDVideoCodecFFmpeg: Enable refcounted frames + +Without this frames will get (deep) copied when deinterlace is set to automatic, +but file is not deinterlaced. + +For 1080p24 that costs 150MB/s of memory bandwidth which is very expensive. +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +index c2f3287..64087f2 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +@@ -316,6 +316,10 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options + av_opt_set(m_pCodecContext, it->m_name.c_str(), it->m_value.c_str(), 0); + } ++ // If non-zero, the decoded audio and video frames returned from avcodec_decode_video2() are reference-counted and are valid indefinitely. ++ // Without this frames will get (deep) copied when deinterlace is set to automatic, but file is not deinterlaced. ++ m_pCodecContext->refcounted_frames = 1; ++ + if (avcodec_open2(m_pCodecContext, pCodec, NULL) < 0) + { + CLog::Log(LOGDEBUG,"CDVDVideoCodecFFmpeg::Open() Unable to open codec"); +-- +2.5.0 + + +From 6df990c5d6b5930b34a05167b989bb0155a6fcae Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Fri, 19 Feb 2016 13:45:23 +0000 +Subject: [PATCH 84/94] mmal: increase decode buffering a little to help harder + MVC files + +PR8610 reduced buffering in codec which generally improved behaviour, +but we have some reports of hard streams (like 3D BluRay) that now +lag. The problem is when the codec's input buffer runs dry you +waste useful decoder cycles. It seems adding another two frames of +latency to decoder gets the performance back. +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +index 7b025fd..08f61fc 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +@@ -676,7 +676,7 @@ bool CMMALVideo::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options) - COMXCoreTunel::COMXCoreTunel() -+: m_sharedSection(g_RBP.GetLock()) + // limit number of callback structures in video_decode to reduce latency. Too low and video hangs. + // negative numbers have special meaning. -1=size of DPB -2=size of DPB+1 +- status = mmal_port_parameter_set_uint32(m_dec_input, MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS, -3); ++ status = mmal_port_parameter_set_uint32(m_dec_input, MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS, -5); + if (status != MMAL_SUCCESS) + CLog::Log(LOGERROR, "%s::%s Failed to configure max num callbacks on %s (status=%x %s)", CLASSNAME, __func__, m_dec_input->name, status, mmal_status_to_string(status)); + +-- +2.5.0 + + +From 1d254cfd3db48c1fc2307467da5c801639cc73c3 Mon Sep 17 00:00:00 2001 +From: Mario Holzinger +Date: Fri, 11 Dec 2015 16:48:57 +0100 +Subject: [PATCH 85/94] touch panel to display adjustment + +--- + xbmc/input/linux/LinuxInputDevices.cpp | 7 ++++--- + xbmc/settings/AdvancedSettings.cpp | 16 ++++++++++++++++ + xbmc/settings/AdvancedSettings.h | 6 ++++++ + 3 files changed, 26 insertions(+), 3 deletions(-) + +diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp +index 9f3e866..a506956 100644 +--- a/xbmc/input/linux/LinuxInputDevices.cpp ++++ b/xbmc/input/linux/LinuxInputDevices.cpp +@@ -98,6 +98,7 @@ typedef unsigned long kernel_ulong_t; + #include "utils/log.h" + #include "input/touch/generic/GenericTouchActionHandler.h" + #include "input/touch/generic/GenericTouchInputHandler.h" ++#include "settings/AdvancedSettings.h" + + #ifndef BITS_PER_LONG + #define BITS_PER_LONG (sizeof(long) * 8) +@@ -653,13 +654,13 @@ bool CLinuxInputDevice::AbsEvent(const struct input_event& levt, XBMC_Event& dev + switch (levt.code) + { + case ABS_X: +- m_mouseX = levt.value; ++ m_mouseX = (int)((float)levt.value * g_advancedSettings.m_screenAlign_xStretchFactor) + g_advancedSettings.m_screenAlign_xOffset; // stretch and shift touch x coordinates + break; + + case ABS_Y: +- m_mouseY = levt.value; ++ m_mouseY = (int)((float)levt.value * g_advancedSettings.m_screenAlign_yStretchFactor) + g_advancedSettings.m_screenAlign_yOffset; // stretch and shift touch y coordinates + break; +- ++ + case ABS_MISC: + remoteStatus = levt.value & 0xFF; + break; +diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp +index aeea13b..326e9f5 100644 +--- a/xbmc/settings/AdvancedSettings.cpp ++++ b/xbmc/settings/AdvancedSettings.cpp +@@ -303,6 +303,12 @@ void CAdvancedSettings::Initialize() + m_iEdlCommBreakAutowait = 0; // Off by default + m_iEdlCommBreakAutowind = 0; // Off by default + ++ // Touchscreen default values if no adjustment is necessarry ++ m_screenAlign_xOffset = 0; ++ m_screenAlign_yOffset= 0; ++ m_screenAlign_xStretchFactor = 1.0; ++ m_screenAlign_yStretchFactor = 1.0; ++ + m_curlconnecttimeout = 10; + m_curllowspeedtime = 20; + m_curlretries = 2; +@@ -871,6 +877,16 @@ void CAdvancedSettings::ParseSettingsFile(const std::string &file) + XMLUtils::GetInt(pElement, "commbreakautowind", m_iEdlCommBreakAutowind, 0, 10); // Between 0 and 10 seconds + } + ++ // Touchscreen ++ pElement = pRootElement->FirstChildElement("touchscreen"); ++ if (pElement) ++ { ++ XMLUtils::GetInt(pElement, "x_offset", m_screenAlign_xOffset ); ++ XMLUtils::GetInt(pElement, "y_offset", m_screenAlign_yOffset ); ++ XMLUtils::GetFloat(pElement, "x_stretch_factor", m_screenAlign_xStretchFactor ); ++ XMLUtils::GetFloat(pElement, "y_stretch_factor", m_screenAlign_yStretchFactor ); ++ } ++ + // picture exclude regexps + TiXmlElement* pPictureExcludes = pRootElement->FirstChildElement("pictureexcludes"); + if (pPictureExcludes) +diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h +index 4da88f4..1bdc77e 100644 +--- a/xbmc/settings/AdvancedSettings.h ++++ b/xbmc/settings/AdvancedSettings.h +@@ -334,6 +334,12 @@ class CAdvancedSettings : public ISettingCallback, public ISettingsHandler + std::string m_cpuTempCmd; + std::string m_gpuTempCmd; + ++ // Touchscreen ++ int m_screenAlign_xOffset; ++ int m_screenAlign_yOffset; ++ float m_screenAlign_xStretchFactor; ++ float m_screenAlign_yStretchFactor; ++ + /* PVR/TV related advanced settings */ + int m_iPVRTimeCorrection; /*!< @brief correct all times (epg tags, timer tags, recording tags) by this amount of minutes. defaults to 0. */ + int m_iPVRInfoToggleInterval; /*!< @brief if there are more than 1 pvr gui info item available (e.g. multiple recordings active at the same time), use this toggle delay in milliseconds. defaults to 3000. */ +-- +2.5.0 + + +From e5e1e2f22f64436ddcabf7f51d25bcd6a13eb4a4 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 15 Feb 2016 15:51:11 +0000 +Subject: [PATCH 86/94] touch panel to display adjustment - support multitouch + +PR7978 allowed a simple calibration to be applied to touch input +It didn't cover multitouch which this adds support for +--- + xbmc/input/linux/LinuxInputDevices.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp +index a506956..3579cd0 100644 +--- a/xbmc/input/linux/LinuxInputDevices.cpp ++++ b/xbmc/input/linux/LinuxInputDevices.cpp +@@ -707,7 +707,7 @@ bool CLinuxInputDevice::mtAbsEvent(const struct input_event& levt) + case ABS_MT_POSITION_X: + if (m_mt_currentSlot < TOUCH_MAX_POINTERS) + { +- m_mt_x[m_mt_currentSlot] = levt.value; ++ m_mt_x[m_mt_currentSlot] = (int)((float)levt.value * g_advancedSettings.m_screenAlign_xStretchFactor) + g_advancedSettings.m_screenAlign_xOffset; // stretch and shift touch x coordinates + if (m_mt_event[m_mt_currentSlot] == TouchInputUnchanged) + m_mt_event[m_mt_currentSlot] = TouchInputMove; + } +@@ -716,7 +716,7 @@ bool CLinuxInputDevice::mtAbsEvent(const struct input_event& levt) + case ABS_MT_POSITION_Y: + if (m_mt_currentSlot < TOUCH_MAX_POINTERS) + { +- m_mt_y[m_mt_currentSlot] = levt.value; ++ m_mt_y[m_mt_currentSlot] = (int)((float)levt.value * g_advancedSettings.m_screenAlign_yStretchFactor) + g_advancedSettings.m_screenAlign_yOffset; // stretch and shift touch y coordinates; + if (m_mt_event[m_mt_currentSlot] == TouchInputUnchanged) + m_mt_event[m_mt_currentSlot] = TouchInputMove; + } +-- +2.5.0 + + +From 93502d0fbe98de0119c0e03a245528cfb89e69b9 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 22 Mar 2016 22:28:13 +0000 +Subject: [PATCH 87/94] [linux] Move hotplug checking into its own thread + +Currently checking for new linux input devices is called from the rendering thread. +We've been getting reports of skipped frames on raspberry pi. + +Specifically if eventlirc is active and you have an LIRC capable device connected +the hotplug check is slow and you get a frame skip every ten seconds. + +So move this code into its own thread +--- + xbmc/input/linux/LinuxInputDevices.cpp | 54 +++++++++++++++++++++------------- + xbmc/input/linux/LinuxInputDevices.h | 14 ++++++++- + xbmc/windowing/WinEventsLinux.cpp | 1 + + xbmc/windowing/WinEventsLinux.h | 2 ++ + 4 files changed, 49 insertions(+), 22 deletions(-) + +diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp +index 3579cd0..7b3c6ad 100644 +--- a/xbmc/input/linux/LinuxInputDevices.cpp ++++ b/xbmc/input/linux/LinuxInputDevices.cpp +@@ -1081,6 +1081,30 @@ bool CLinuxInputDevice::IsUnplugged() + return m_bUnplugged; + } + ++CLinuxInputDevicesCheckHotplugged::CLinuxInputDevicesCheckHotplugged(CLinuxInputDevices &parent) : ++ CThread("CLinuxInputDevicesCheckHotplugged"), m_parent(parent) ++{ ++ Create(); ++ SetPriority(THREAD_PRIORITY_BELOW_NORMAL); ++} ++ ++CLinuxInputDevicesCheckHotplugged::~CLinuxInputDevicesCheckHotplugged() ++{ ++ m_bStop = true; ++ m_quitEvent.Set(); ++ StopThread(true); ++} ++ ++void CLinuxInputDevicesCheckHotplugged::Process() ++{ ++ while (!m_bStop) ++ { ++ m_parent.CheckHotplugged(); ++ // every ten seconds ++ m_quitEvent.WaitMSec(10000); ++ } ++} ++ + bool CLinuxInputDevices::CheckDevice(const char *device) { - m_src_component = NULL; - m_dst_component = NULL; -@@ -74,6 +75,7 @@ COMXCoreTunel::~COMXCoreTunel() - - void COMXCoreTunel::Initialize(COMXCoreComponent *src_component, unsigned int src_port, COMXCoreComponent *dst_component, unsigned int dst_port) + int fd; +@@ -1147,10 +1171,6 @@ void CLinuxInputDevices::InitAvailable() + */ + void CLinuxInputDevices::CheckHotplugged() { -+ CSingleLock lock(m_sharedSection); - m_src_component = src_component; - m_src_port = src_port; - m_dst_component = dst_component; -@@ -82,6 +84,7 @@ void COMXCoreTunel::Initialize(COMXCoreComponent *src_component, unsigned int sr +- CSingleLock lock(m_devicesListLock); +- +- int deviceId = m_devices.size(); +- + /* No devices specified. Try to guess some. */ + for (int i = 0; i < MAX_LINUX_INPUT_DEVICES; i++) + { +@@ -1158,18 +1178,22 @@ void CLinuxInputDevices::CheckHotplugged() + bool ispresent = false; - OMX_ERRORTYPE COMXCoreTunel::Deestablish(bool noWait) + snprintf(buf, 32, "/dev/input/event%d", i); +- +- for (size_t j = 0; j < m_devices.size(); j++) + { +- if (m_devices[j]->GetFileName().compare(buf) == 0) ++ CSingleLock lock(m_devicesListLock); ++ for (size_t j = 0; j < m_devices.size(); j++) + { +- ispresent = true; +- break; ++ if (m_devices[j]->GetFileName().compare(buf) == 0) ++ { ++ ispresent = true; ++ break; ++ } + } + } + + if (!ispresent && CheckDevice(buf)) + { ++ CSingleLock lock(m_devicesListLock); ++ int deviceId = m_devices.size(); + CLog::Log(LOGINFO, "Found input device %s", buf); + m_devices.push_back(new CLinuxInputDevice(buf, deviceId)); + ++deviceId; +@@ -1360,18 +1384,6 @@ XBMC_Event CLinuxInputDevices::ReadEvent() + InitAvailable(); + m_bReInitialize = false; + } +- else +- { +- time_t now; +- time(&now); +- +- if ((now - m_lastHotplugCheck) >= 10) +- { +- CheckHotplugged(); +- m_lastHotplugCheck = now; +- } +- } +- + CSingleLock lock(m_devicesListLock); + + XBMC_Event event; +diff --git a/xbmc/input/linux/LinuxInputDevices.h b/xbmc/input/linux/LinuxInputDevices.h +index 8c88a1d..4fde1aa 100644 +--- a/xbmc/input/linux/LinuxInputDevices.h ++++ b/xbmc/input/linux/LinuxInputDevices.h +@@ -28,6 +28,7 @@ + #include "threads/SingleLock.h" + #include "input/touch/ITouchInputHandler.h" + #include "input/touch/generic/IGenericTouchGestureDetector.h" ++#include "threads/Thread.h" + + struct KeymapEntry { -+ CSingleLock lock(m_sharedSection); - if(!m_src_component || !m_dst_component || !IsInitialized()) - return OMX_ErrorUndefined; - -@@ -156,6 +159,7 @@ OMX_ERRORTYPE COMXCoreTunel::Deestablish(bool noWait) - - OMX_ERRORTYPE COMXCoreTunel::Establish(bool enable_ports /* = true */, bool disable_ports /* = false */) - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - OMX_PARAM_U32TYPE param; - OMX_INIT_STRUCTURE(param); -@@ -293,6 +297,7 @@ OMX_ERRORTYPE COMXCoreTunel::Establish(bool enable_ports /* = true */, bool disa - //////////////////////////////////////////////////////////////////////////////////////////// - - COMXCoreComponent::COMXCoreComponent() -+: m_sharedSection(g_RBP.GetLock()) - { - m_input_port = 0; - m_output_port = 0; -@@ -332,6 +337,7 @@ COMXCoreComponent::COMXCoreComponent() - - COMXCoreComponent::~COMXCoreComponent() - { -+ CSingleLock lock(m_sharedSection); - Deinitialize(); - - pthread_mutex_destroy(&m_omx_input_mutex); -@@ -357,6 +363,7 @@ void COMXCoreComponent::TransitionToStateLoaded() - - OMX_ERRORTYPE COMXCoreComponent::EmptyThisBuffer(OMX_BUFFERHEADERTYPE *omx_buffer) - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - - #if defined(OMX_DEBUG_EVENTHANDLER) -@@ -377,6 +384,7 @@ OMX_ERRORTYPE COMXCoreComponent::EmptyThisBuffer(OMX_BUFFERHEADERTYPE *omx_buffe - - OMX_ERRORTYPE COMXCoreComponent::FillThisBuffer(OMX_BUFFERHEADERTYPE *omx_buffer) - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - - #if defined(OMX_DEBUG_EVENTHANDLER) -@@ -397,6 +405,7 @@ OMX_ERRORTYPE COMXCoreComponent::FillThisBuffer(OMX_BUFFERHEADERTYPE *omx_buffer - - OMX_ERRORTYPE COMXCoreComponent::FreeOutputBuffer(OMX_BUFFERHEADERTYPE *omx_buffer) - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - - if(!m_handle || !omx_buffer) -@@ -420,6 +429,7 @@ void COMXCoreComponent::FlushAll() - - void COMXCoreComponent::FlushInput() - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle || m_resource_error) - return; - -@@ -435,6 +445,7 @@ void COMXCoreComponent::FlushInput() - - void COMXCoreComponent::FlushOutput() - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle || m_resource_error) - return; - -@@ -568,6 +579,7 @@ OMX_ERRORTYPE COMXCoreComponent::WaitForOutputDone(long timeout /*=200*/) - - OMX_ERRORTYPE COMXCoreComponent::AllocInputBuffers(bool use_buffers /* = false **/) - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - - m_omx_input_use_buffers = use_buffers; -@@ -649,6 +661,7 @@ OMX_ERRORTYPE COMXCoreComponent::AllocInputBuffers(bool use_buffers /* = false * - - OMX_ERRORTYPE COMXCoreComponent::AllocOutputBuffers(bool use_buffers /* = false */) - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - - if(!m_handle) -@@ -730,6 +743,7 @@ OMX_ERRORTYPE COMXCoreComponent::AllocOutputBuffers(bool use_buffers /* = false - - OMX_ERRORTYPE COMXCoreComponent::FreeInputBuffers() - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - - if(!m_handle) -@@ -788,6 +802,7 @@ OMX_ERRORTYPE COMXCoreComponent::FreeInputBuffers() - - OMX_ERRORTYPE COMXCoreComponent::FreeOutputBuffers() - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - - if(!m_handle) -@@ -846,6 +861,7 @@ OMX_ERRORTYPE COMXCoreComponent::FreeOutputBuffers() - - OMX_ERRORTYPE COMXCoreComponent::DisableAllPorts() - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle) - return OMX_ErrorUndefined; - -@@ -1074,6 +1090,7 @@ OMX_ERRORTYPE COMXCoreComponent::WaitForCommand(OMX_U32 command, OMX_U32 nData2, - - OMX_ERRORTYPE COMXCoreComponent::SetStateForComponent(OMX_STATETYPE state) - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle) - return OMX_ErrorUndefined; - -@@ -1112,6 +1129,7 @@ OMX_ERRORTYPE COMXCoreComponent::SetStateForComponent(OMX_STATETYPE state) - - OMX_STATETYPE COMXCoreComponent::GetState() const - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle) - return (OMX_STATETYPE)0; - -@@ -1123,6 +1141,7 @@ OMX_STATETYPE COMXCoreComponent::GetState() const - - OMX_ERRORTYPE COMXCoreComponent::SetParameter(OMX_INDEXTYPE paramIndex, OMX_PTR paramStruct) - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle) - return OMX_ErrorUndefined; - -@@ -1139,6 +1158,7 @@ OMX_ERRORTYPE COMXCoreComponent::SetParameter(OMX_INDEXTYPE paramIndex, OMX_PTR - - OMX_ERRORTYPE COMXCoreComponent::GetParameter(OMX_INDEXTYPE paramIndex, OMX_PTR paramStruct) const - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle) - return OMX_ErrorUndefined; - -@@ -1155,6 +1175,7 @@ OMX_ERRORTYPE COMXCoreComponent::GetParameter(OMX_INDEXTYPE paramIndex, OMX_PTR - - OMX_ERRORTYPE COMXCoreComponent::SetConfig(OMX_INDEXTYPE configIndex, OMX_PTR configStruct) - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle) - return OMX_ErrorUndefined; - -@@ -1171,6 +1192,7 @@ OMX_ERRORTYPE COMXCoreComponent::SetConfig(OMX_INDEXTYPE configIndex, OMX_PTR co - - OMX_ERRORTYPE COMXCoreComponent::GetConfig(OMX_INDEXTYPE configIndex, OMX_PTR configStruct) const - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle) - return OMX_ErrorUndefined; - -@@ -1187,6 +1209,7 @@ OMX_ERRORTYPE COMXCoreComponent::GetConfig(OMX_INDEXTYPE configIndex, OMX_PTR co - - OMX_ERRORTYPE COMXCoreComponent::SendCommand(OMX_COMMANDTYPE cmd, OMX_U32 cmdParam, OMX_PTR cmdParamData) - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle) - return OMX_ErrorUndefined; - -@@ -1203,6 +1226,7 @@ OMX_ERRORTYPE COMXCoreComponent::SendCommand(OMX_COMMANDTYPE cmd, OMX_U32 cmdPar - - OMX_ERRORTYPE COMXCoreComponent::EnablePort(unsigned int port, bool wait) - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle) - return OMX_ErrorUndefined; - -@@ -1237,6 +1261,7 @@ OMX_ERRORTYPE COMXCoreComponent::EnablePort(unsigned int port, bool wait) - - OMX_ERRORTYPE COMXCoreComponent::DisablePort(unsigned int port, bool wait) - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle) - return OMX_ErrorUndefined; - -@@ -1271,6 +1296,7 @@ OMX_ERRORTYPE COMXCoreComponent::DisablePort(unsigned int port, bool wait) - - OMX_ERRORTYPE COMXCoreComponent::UseEGLImage(OMX_BUFFERHEADERTYPE** ppBufferHdr, OMX_U32 nPortIndex, OMX_PTR pAppPrivate, void* eglImage) - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - - if(!m_handle) -@@ -1350,6 +1376,7 @@ OMX_ERRORTYPE COMXCoreComponent::UseEGLImage(OMX_BUFFERHEADERTYPE** ppBufferHdr, - - bool COMXCoreComponent::Initialize( const std::string &component_name, OMX_INDEXTYPE index) - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err; - - m_input_port = 0; -@@ -1437,6 +1464,7 @@ bool COMXCoreComponent::Initialize( const std::string &component_name, OMX_INDEX - - void COMXCoreComponent::ResetEos() - { -+ CSingleLock lock(m_sharedSection); - pthread_mutex_lock(&m_omx_eos_mutex); - m_eos = false; - pthread_mutex_unlock(&m_omx_eos_mutex); -@@ -1444,6 +1472,7 @@ void COMXCoreComponent::ResetEos() - - bool COMXCoreComponent::Deinitialize() - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err; - - m_exit = true; -diff --git a/xbmc/linux/OMXCore.h b/xbmc/linux/OMXCore.h -index 05052e5..2c2f91c 100644 ---- a/xbmc/linux/OMXCore.h -+++ b/xbmc/linux/OMXCore.h -@@ -78,6 +78,7 @@ class COMXCoreTunel - unsigned int m_dst_port; - DllOMX *m_DllOMX; - bool m_tunnel_set; -+ CCriticalSection &m_sharedSection; +@@ -105,7 +106,18 @@ private: + bool CheckDevice(const char *device); + std::vector m_devices; + bool m_bReInitialize; +- time_t m_lastHotplugCheck; ++}; ++ ++class CLinuxInputDevicesCheckHotplugged : protected CThread ++{ ++public: ++ CLinuxInputDevicesCheckHotplugged(CLinuxInputDevices &parent); ++ ~CLinuxInputDevicesCheckHotplugged(); ++private: ++ CLinuxInputDevices &m_parent; ++ CEvent m_quitEvent; ++protected: ++ virtual void Process(); }; - class COMXCoreComponent -@@ -199,6 +200,7 @@ class COMXCoreComponent - bool m_flush_input; - bool m_flush_output; - bool m_resource_error; -+ CCriticalSection &m_sharedSection; - }; + #endif /* LINUXINPUTDEVICES_H_ */ +diff --git a/xbmc/windowing/WinEventsLinux.cpp b/xbmc/windowing/WinEventsLinux.cpp +index 2b3d77a..fb6c987 100644 +--- a/xbmc/windowing/WinEventsLinux.cpp ++++ b/xbmc/windowing/WinEventsLinux.cpp +@@ -134,6 +134,7 @@ bool CWinEventsLinux::MessagePump() + if (!m_initialized) + { + m_devices.InitAvailable(); ++ m_checkHotplug = std::unique_ptr(new CLinuxInputDevicesCheckHotplugged(m_devices)); + m_initialized = true; + #ifdef TARGET_RASPBERRY_PI + LoadXML("Pointer.xml"); +diff --git a/xbmc/windowing/WinEventsLinux.h b/xbmc/windowing/WinEventsLinux.h +index 23244a2..c82ba84 100644 +--- a/xbmc/windowing/WinEventsLinux.h ++++ b/xbmc/windowing/WinEventsLinux.h +@@ -22,6 +22,7 @@ + #define WINDOW_EVENTS_LINUX_H - class COMXCore + #pragma once ++#include + #include "windowing/WinEvents.h" + #include "input/linux/LinuxInputDevices.h" + #include "guilib/TextureManager.h" +@@ -44,6 +45,7 @@ public: + private: + static bool m_initialized; + static CLinuxInputDevices m_devices; ++ std::unique_ptr m_checkHotplug; + #ifdef TARGET_RASPBERRY_PI + bool LoadXML(const std::string strFileName); + int64_t m_last_mouse_move_time; +-- +2.5.0 + + +From 19d44a0062028cc3b1625989de2492f39c5af9b3 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 28 Jul 2015 17:47:33 +0100 +Subject: [PATCH 88/94] [rbp] Refactor the vsync handle to support multiple + callers + +--- + xbmc/linux/RBP.cpp | 100 ++++++++++++++++++++++++++++++++++------------------- + xbmc/linux/RBP.h | 10 ++++-- + 2 files changed, 73 insertions(+), 37 deletions(-) + +diff --git a/xbmc/linux/RBP.cpp b/xbmc/linux/RBP.cpp +index 13b0504..ddc2b9c 100644 +--- a/xbmc/linux/RBP.cpp ++++ b/xbmc/linux/RBP.cpp +@@ -34,6 +34,7 @@ + #include + #include + #include "rpi_user_vcsm.h" ++#include "utils/TimeUtils.h" + + #define MAJOR_NUM 100 + #define IOCTL_MBOX_PROPERTY _IOWR(MAJOR_NUM, 0, char *) +@@ -56,6 +57,8 @@ CRBP::CRBP() + m_enabled = 0; + m_mb = mbox_open(); + vcsm_init(); ++ m_vsync_count = 0; ++ m_last_vsync = 0; + } + + CRBP::~CRBP() +@@ -73,7 +76,7 @@ void CRBP::InitializeSettings() + + bool CRBP::Initialize() + { +- CSingleLock lock (m_critSection); ++ CSingleLock lock(m_critSection); + if (m_initialized) + return true; + +@@ -133,11 +136,62 @@ void CRBP::LogFirmwareVerison() + CLog::Log(LOGNOTICE, "Config:\n%s", response); + } + ++static void vsync_callback_static(DISPMANX_UPDATE_HANDLE_T u, void *arg) ++{ ++ CRBP *rbp = reinterpret_cast(arg); ++ rbp->VSyncCallback(); ++} ++ ++void CRBP::VSyncCallback() ++{ ++ CSingleLock lock(m_vsync_lock); ++ m_vsync_count++; ++ m_last_vsync = CurrentHostCounter(); ++ m_vsync_cond.notifyAll(); ++} ++ ++unsigned int CRBP::VsyncCount() ++{ ++ CSingleLock lock(m_vsync_lock); ++ return m_vsync_count; ++} ++ ++int64_t CRBP::LastVsync() ++{ ++ CSingleLock lock(m_vsync_lock); ++ return m_last_vsync; ++} ++ ++unsigned int CRBP::WaitVsync(unsigned int target) ++{ ++ CSingleLock vlock(m_vsync_lock); ++ DISPMANX_DISPLAY_HANDLE_T display = m_display; ++ XbmcThreads::EndTime delay(50); ++ if (target == ~0U) ++ target = m_vsync_count+1; ++ while (!delay.IsTimePast()) ++ { ++ CSingleLock lock(m_critSection); ++ if (m_vsync_count >= target) ++ break; ++ lock.Leave(); ++ if (!m_vsync_cond.wait(vlock, delay.MillisLeft())) ++ break; ++ } ++ if (m_vsync_count < target) ++ CLog::Log(LOGDEBUG, "CRBP::%s no vsync %d/%d display:%x(%x) delay:%d", __FUNCTION__, m_vsync_count, target, m_display, display, delay.MillisLeft()); ++ ++ return m_vsync_count; ++} ++ + DISPMANX_DISPLAY_HANDLE_T CRBP::OpenDisplay(uint32_t device) + { ++ CSingleLock lock(m_critSection); + if (m_display == DISPMANX_NO_HANDLE) + { + m_display = vc_dispmanx_display_open( 0 /*screen*/ ); ++ int s = vc_dispmanx_vsync_callback(m_display, vsync_callback_static, (void *)this); ++ assert(s == 0); + init_cursor(); + } + return m_display; +@@ -145,16 +199,20 @@ DISPMANX_DISPLAY_HANDLE_T CRBP::OpenDisplay(uint32_t device) + + void CRBP::CloseDisplay(DISPMANX_DISPLAY_HANDLE_T display) + { ++ CSingleLock lock(m_critSection); + assert(display == m_display); ++ int s = vc_dispmanx_vsync_callback(m_display, NULL, NULL); ++ assert(s == 0); ++ uninit_cursor(); + vc_dispmanx_display_close(m_display); + m_display = DISPMANX_NO_HANDLE; +- uninit_cursor(); + } + + void CRBP::GetDisplaySize(int &width, int &height) + { ++ CSingleLock lock(m_critSection); + DISPMANX_MODEINFO_T info; +- if (vc_dispmanx_display_get_info(m_display, &info) == 0) ++ if (m_display != DISPMANX_NO_HANDLE && vc_dispmanx_display_get_info(m_display, &info) == 0) + { + width = info.width; + height = info.height; +@@ -183,13 +241,13 @@ unsigned char *CRBP::CaptureDisplay(int width, int height, int *pstride, bool sw + flags |= DISPMANX_SNAPSHOT_PACK; + + stride = ((width + 15) & ~15) * 4; +- image = new unsigned char [height * stride]; + +- if (image) ++ CSingleLock lock(m_critSection); ++ if (m_display != DISPMANX_NO_HANDLE) + { ++ image = new unsigned char [height * stride]; + resource = vc_dispmanx_resource_create( VC_IMAGE_RGBA32, width, height, &vc_image_ptr ); + +- assert(m_display != DISPMANX_NO_HANDLE); + vc_dispmanx_snapshot(m_display, resource, (DISPMANX_TRANSFORM_T)flags); + + vc_dispmanx_rect_set(&rect, 0, 0, width, height); +@@ -201,35 +259,6 @@ unsigned char *CRBP::CaptureDisplay(int width, int height, int *pstride, bool sw + return image; + } + +- +-static void vsync_callback(DISPMANX_UPDATE_HANDLE_T u, void *arg) +-{ +- CEvent *sync = (CEvent *)arg; +- sync->Set(); +-} +- +-void CRBP::WaitVsync() +-{ +- int s; +- DISPMANX_DISPLAY_HANDLE_T m_display = vc_dispmanx_display_open( 0 /*screen*/ ); +- if (m_display == DISPMANX_NO_HANDLE) +- { +- CLog::Log(LOGDEBUG, "CRBP::%s skipping while display closed", __func__); +- return; +- } +- m_vsync.Reset(); +- s = vc_dispmanx_vsync_callback(m_display, vsync_callback, (void *)&m_vsync); +- if (s == 0) +- { +- m_vsync.WaitMSec(1000); +- } +- else assert(0); +- s = vc_dispmanx_vsync_callback(m_display, NULL, NULL); +- assert(s == 0); +- vc_dispmanx_display_close( m_display ); +-} +- +- + void CRBP::Deinitialize() + { + if (m_omx_image_init) +@@ -260,6 +289,7 @@ void CRBP::Deinitialize() + + double CRBP::AdjustHDMIClock(double adjust) + { ++ CSingleLock lock(m_critSection); + char response[80]; + vc_gencmd(response, sizeof response, "hdmi_adjust_clock %f", adjust); + char *p = strchr(response, '='); diff --git a/xbmc/linux/RBP.h b/xbmc/linux/RBP.h -index 2eee35d..884d7c2 100644 +index 2eee35d..3b59cd9 100644 --- a/xbmc/linux/RBP.h +++ b/xbmc/linux/RBP.h -@@ -81,6 +81,7 @@ class CRBP +@@ -77,7 +77,10 @@ public: + // stride can be null for packed output + unsigned char *CaptureDisplay(int width, int height, int *stride, bool swap_red_blue, bool video_only = true); + DllOMX *GetDllOMX() { return m_OMX ? m_OMX->GetDll() : NULL; } +- void WaitVsync(); ++ unsigned int WaitVsync(unsigned int target = ~0U); ++ int64_t LastVsync(); ++ unsigned int VsyncCount(); ++ void VSyncCallback(); double AdjustHDMIClock(double adjust); double GetAdjustHDMIClock() { return m_last_pll_adjust; } int GetMBox() { return m_mb; } -+ CCriticalSection &GetLock() { return m_critSection; } +@@ -94,7 +97,10 @@ private: + bool m_codec_wvc1_enabled; + COMXCore *m_OMX; + DISPMANX_DISPLAY_HANDLE_T m_display; +- CEvent m_vsync; ++ CCriticalSection m_vsync_lock; ++ XbmcThreads::ConditionVariable m_vsync_cond; ++ unsigned int m_vsync_count; ++ int64_t m_last_vsync; + class DllLibOMXCore; + CCriticalSection m_critSection; + double m_last_pll_adjust; +-- +2.5.0 + + +From 8a52d5281d3f5f6e4b33016233cecdcc6775f4b7 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Thu, 24 Mar 2016 23:24:18 +0000 +Subject: [PATCH 89/94] [mmalrenderer] Wait for vsync before submitting to mmal + when display sync is disabled + +This avoids an issue where video occasionally goes stuttery after a seek, until the next pause/play or seek. +The issue is when display sync is disabled, and framerate of video matches display, and render times are coincident with vsync +you find that depending on timestamp/scheduling jitter, you may or may not get an update each vsync resulting in stuttery video. + +Some scheme to force render times to be dependent on vsync is required. We do this by using a queue that is popped following vsyncs. +We ensure the queue always has 1 or 2 frames so it doesn't underrun with a late frame, but this adds a frame of latency. +--- + xbmc/cores/VideoRenderers/MMALRenderer.cpp | 52 ++++++++++++++++++++++++++---- + xbmc/cores/VideoRenderers/MMALRenderer.h | 5 ++- + 2 files changed, 50 insertions(+), 7 deletions(-) + +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +index ad3f66f..e879cba 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +@@ -239,7 +239,7 @@ bool CMMALRenderer::init_vout(ERenderFormat format) + return true; + } - private: - DllBcmHost *m_DllBcmHost; +-CMMALRenderer::CMMALRenderer() ++CMMALRenderer::CMMALRenderer() : CThread("MMALRenderer") + { + CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); + m_vout = NULL; +@@ -253,15 +253,41 @@ CMMALRenderer::CMMALRenderer() + m_iYV12RenderBuffer = 0; + m_inflight = 0; + m_sharpness = -2.0f; ++ m_queue = mmal_queue_create(); ++ Create(); + } + + CMMALRenderer::~CMMALRenderer() + { + CSingleLock lock(m_sharedSection); + CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); ++ StopThread(true); ++ mmal_queue_destroy(m_queue); + UnInit(); + } + ++void CMMALRenderer::Process() ++{ ++ bool started = false; ++ SetPriority(THREAD_PRIORITY_ABOVE_NORMAL); ++ while (!m_bStop) ++ { ++ g_RBP.WaitVsync(); ++ if (!started && mmal_queue_length(m_queue) >= 2) ++ started = true; ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - vsync:%d queue:%d started:%d", CLASSNAME, __func__, g_RBP.VsyncCount(), mmal_queue_length(m_queue), started); ++ if (started) ++ { ++ MMAL_BUFFER_HEADER_T *buffer = mmal_queue_get(m_queue); ++ if (buffer) ++ mmal_port_send_buffer(m_vout_input, buffer); ++ else ++ started = false; ++ } ++ } ++} ++ + void CMMALRenderer::AddProcessor(CMMALVideoBuffer *buffer, int index) + { + #if defined(MMAL_DEBUG_VERBOSE) +@@ -496,10 +522,17 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + return; + omvb->Acquire(); + omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; +- mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); +- } +- else +- CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); ++ if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock") && m_fps > 0.0 && fabs(m_fps - g_graphicsContext.GetFPS()) < 1e-2) ++ { ++ while (mmal_queue_length(m_queue) >= 2) ++ Sleep(1); ++ mmal_queue_put(m_queue, omvb->mmal_buffer); ++ } ++ else ++ mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); ++ } ++ else ++ CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); + } + else if (m_format == RENDER_FMT_YUV420P) + { +@@ -516,7 +549,14 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + omvb->Acquire(); + omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; + omvb->mmal_buffer->user_data = omvb; +- mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); ++ if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock") && m_fps > 0.0 && fabs(m_fps - g_graphicsContext.GetFPS()) < 1e-2) ++ { ++ while (mmal_queue_length(m_queue) >= 2) ++ Sleep(1); ++ mmal_queue_put(m_queue, omvb->mmal_buffer); ++ } ++ else ++ mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); + } + else + CLog::Log(LOGDEBUG, "%s::%s - No buffer to update: clear:%d flags:%x alpha:%d source:%d", CLASSNAME, __func__, clear, flags, alpha, source); +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.h b/xbmc/cores/VideoRenderers/MMALRenderer.h +index a71e645..f17dc47 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.h ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.h +@@ -29,6 +29,7 @@ + #include "cores/dvdplayer/DVDStreamInfo.h" + #include "guilib/Geometry.h" + #include "BaseRenderer.h" ++#include "threads/Thread.h" + + #include + #include +@@ -55,7 +56,7 @@ protected: + long m_refs; + }; + +-class CMMALRenderer : public CBaseRenderer ++class CMMALRenderer : public CBaseRenderer, public CThread + { + struct YUVBUFFER + { +@@ -66,6 +67,7 @@ public: + CMMALRenderer(); + ~CMMALRenderer(); + ++ void Process(); + virtual void Update(); + virtual void SetupScreenshot() {}; + +@@ -125,6 +127,7 @@ protected: + MMAL_COMPONENT_T *m_vout; + MMAL_PORT_T *m_vout_input; + MMAL_POOL_T *m_vout_input_pool; ++ MMAL_QUEUE_T *m_queue; + + bool init_vout(ERenderFormat format); + void ReleaseBuffers(); +-- +2.5.0 + + +From c262dea07c4ae5c6b280f534dcce4699f9ffdaf8 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Fri, 25 Mar 2016 11:36:25 +0000 +Subject: [PATCH 90/94] Revert "[mmalrenderer] Wait for vsync before submitting + to mmal when display sync is disabled" + +This reverts commit bc61a9f7823b5a934ae46ed9bac6cfa0f4b520fa. +--- + xbmc/cores/VideoRenderers/MMALRenderer.cpp | 52 ++++-------------------------- + xbmc/cores/VideoRenderers/MMALRenderer.h | 5 +-- + 2 files changed, 7 insertions(+), 50 deletions(-) + +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +index e879cba..ad3f66f 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +@@ -239,7 +239,7 @@ bool CMMALRenderer::init_vout(ERenderFormat format) + return true; + } + +-CMMALRenderer::CMMALRenderer() : CThread("MMALRenderer") ++CMMALRenderer::CMMALRenderer() + { + CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); + m_vout = NULL; +@@ -253,41 +253,15 @@ CMMALRenderer::CMMALRenderer() : CThread("MMALRenderer") + m_iYV12RenderBuffer = 0; + m_inflight = 0; + m_sharpness = -2.0f; +- m_queue = mmal_queue_create(); +- Create(); + } + + CMMALRenderer::~CMMALRenderer() + { + CSingleLock lock(m_sharedSection); + CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); +- StopThread(true); +- mmal_queue_destroy(m_queue); + UnInit(); + } + +-void CMMALRenderer::Process() +-{ +- bool started = false; +- SetPriority(THREAD_PRIORITY_ABOVE_NORMAL); +- while (!m_bStop) +- { +- g_RBP.WaitVsync(); +- if (!started && mmal_queue_length(m_queue) >= 2) +- started = true; +- if (g_advancedSettings.CanLogComponent(LOGVIDEO)) +- CLog::Log(LOGDEBUG, "%s::%s - vsync:%d queue:%d started:%d", CLASSNAME, __func__, g_RBP.VsyncCount(), mmal_queue_length(m_queue), started); +- if (started) +- { +- MMAL_BUFFER_HEADER_T *buffer = mmal_queue_get(m_queue); +- if (buffer) +- mmal_port_send_buffer(m_vout_input, buffer); +- else +- started = false; +- } +- } +-} +- + void CMMALRenderer::AddProcessor(CMMALVideoBuffer *buffer, int index) + { + #if defined(MMAL_DEBUG_VERBOSE) +@@ -522,17 +496,10 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + return; + omvb->Acquire(); + omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; +- if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock") && m_fps > 0.0 && fabs(m_fps - g_graphicsContext.GetFPS()) < 1e-2) +- { +- while (mmal_queue_length(m_queue) >= 2) +- Sleep(1); +- mmal_queue_put(m_queue, omvb->mmal_buffer); +- } +- else +- mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); +- } +- else +- CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); ++ mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); ++ } ++ else ++ CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); + } + else if (m_format == RENDER_FMT_YUV420P) + { +@@ -549,14 +516,7 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + omvb->Acquire(); + omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; + omvb->mmal_buffer->user_data = omvb; +- if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock") && m_fps > 0.0 && fabs(m_fps - g_graphicsContext.GetFPS()) < 1e-2) +- { +- while (mmal_queue_length(m_queue) >= 2) +- Sleep(1); +- mmal_queue_put(m_queue, omvb->mmal_buffer); +- } +- else +- mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); ++ mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); + } + else + CLog::Log(LOGDEBUG, "%s::%s - No buffer to update: clear:%d flags:%x alpha:%d source:%d", CLASSNAME, __func__, clear, flags, alpha, source); +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.h b/xbmc/cores/VideoRenderers/MMALRenderer.h +index f17dc47..a71e645 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.h ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.h +@@ -29,7 +29,6 @@ + #include "cores/dvdplayer/DVDStreamInfo.h" + #include "guilib/Geometry.h" + #include "BaseRenderer.h" +-#include "threads/Thread.h" + + #include + #include +@@ -56,7 +55,7 @@ protected: + long m_refs; + }; + +-class CMMALRenderer : public CBaseRenderer, public CThread ++class CMMALRenderer : public CBaseRenderer + { + struct YUVBUFFER + { +@@ -67,7 +66,6 @@ public: + CMMALRenderer(); + ~CMMALRenderer(); + +- void Process(); + virtual void Update(); + virtual void SetupScreenshot() {}; + +@@ -127,7 +125,6 @@ protected: + MMAL_COMPONENT_T *m_vout; + MMAL_PORT_T *m_vout_input; + MMAL_POOL_T *m_vout_input_pool; +- MMAL_QUEUE_T *m_queue; + + bool init_vout(ERenderFormat format); + void ReleaseBuffers(); +-- +2.5.0 + + +From aabdf8c31cbdea15c399219d99826e469fa007af Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 23 Mar 2016 15:54:43 +0000 +Subject: [PATCH 91/94] [mmalrenderer] Wait for vsync before submitting to mmal + when display sync is disabled + +This avoids an issue where video occasionally goes stuttery after a seek, until the next pause/play or seek. +The issue is when display sync is disabled, and framerate of video matches display, and render times are coincident with vsync +you find that depending on timestamp/scheduling jitter, you may or may not get an update each vsync resulting in stuttery video. + +Some scheme to force render times to be dependent on vsync is required. We do this by blocking in RenderUpdate unto next vsync. +--- + xbmc/cores/VideoRenderers/MMALRenderer.cpp | 34 ++++++++++++++++++++++++++++-- + xbmc/cores/VideoRenderers/MMALRenderer.h | 2 ++ + 2 files changed, 34 insertions(+), 2 deletions(-) + +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +index ad3f66f..a2e0df2 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +@@ -33,6 +33,7 @@ + #include "windowing/WindowingFactory.h" + #include "cores/dvdplayer/DVDCodecs/Video/MMALCodec.h" + #include "xbmc/Application.h" ++#include "utils/TimeUtils.h" + + #define CLASSNAME "CMMALRenderer" + +@@ -253,6 +254,7 @@ CMMALRenderer::CMMALRenderer() + m_iYV12RenderBuffer = 0; + m_inflight = 0; + m_sharpness = -2.0f; ++ m_vsyncCount = ~0; + } + + CMMALRenderer::~CMMALRenderer() +@@ -444,6 +446,32 @@ void CMMALRenderer::Update() + ManageDisplay(); + } + ++void CMMALRenderer::SubmitFrame(MMAL_BUFFER_HEADER_T *buffer) ++{ ++ if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock") && m_fps > 0.0f) ++ { ++ float ratio = g_graphicsContext.GetFPS() / m_fps; ++ long int factor = lrint(ratio); ++ float diff = ratio - (float)factor; ++ if (fabsf(diff) < 1e-2) ++ { ++ int64_t lastvsync = g_RBP.LastVsync(); ++ int64_t start = CurrentHostCounter(); ++ unsigned int vsynccount = g_RBP.WaitVsync(m_vsyncCount) + factor; ++ int64_t now = CurrentHostCounter(); ++ bool normal = m_vsyncCount + factor == vsynccount || m_vsyncCount + factor + 1 == vsynccount; ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - buffer:%p vfps:%.3f dfps:%.3f vsync:%d/%d delay:%.1f/%.1f dsync:%d normal:%d", CLASSNAME, __func__, buffer, m_fps, g_graphicsContext.GetFPS(), vsynccount, m_vsyncCount, ++ (now - start)*1e-6, (now - lastvsync)*1e-6, CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock"), normal); ++ if (normal) ++ m_vsyncCount += factor; ++ else ++ m_vsyncCount = vsynccount; ++ } ++ } ++ mmal_port_send_buffer(m_vout_input, buffer); ++} ++ + void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + { + CSingleLock lock(m_sharedSection); +@@ -496,7 +524,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + return; + omvb->Acquire(); + omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; +- mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); ++ lock.Leave(); ++ SubmitFrame(omvb->mmal_buffer); + } + else + CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); +@@ -516,7 +545,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + omvb->Acquire(); + omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; + omvb->mmal_buffer->user_data = omvb; +- mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); ++ lock.Leave(); ++ SubmitFrame(omvb->mmal_buffer); + } + else + CLog::Log(LOGDEBUG, "%s::%s - No buffer to update: clear:%d flags:%x alpha:%d source:%d", CLASSNAME, __func__, clear, flags, alpha, source); +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.h b/xbmc/cores/VideoRenderers/MMALRenderer.h +index a71e645..19e38f7 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.h ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.h +@@ -112,6 +112,7 @@ protected: + unsigned int m_destWidth; + unsigned int m_destHeight; + int m_neededBuffers; ++ int m_vsyncCount; + + CRect m_src_rect; + CRect m_dst_rect; +@@ -129,4 +130,5 @@ protected: + bool init_vout(ERenderFormat format); + void ReleaseBuffers(); + void UnInitMMAL(); ++ void SubmitFrame(MMAL_BUFFER_HEADER_T *buffer); + }; +-- +2.5.0 + + +From c29b3010d9bd0bbd845bebacea0af8855f0eca71 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 23 Mar 2016 16:57:19 +0000 +Subject: [PATCH 92/94] mmal: Include mmal renderer logging in video category + +On Pi the decoder and renderer are closely coupled so combining the +logging category makes sense to me. +--- + xbmc/cores/VideoRenderers/MMALRenderer.cpp | 109 +++++++++++------------------ + 1 file changed, 42 insertions(+), 67 deletions(-) + +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +index a2e0df2..a4db9af 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +@@ -37,10 +37,6 @@ + + #define CLASSNAME "CMMALRenderer" + +-#ifdef _DEBUG +-#define MMAL_DEBUG_VERBOSE +-#endif +- + + CYUVVideoBuffer::CYUVVideoBuffer() + { +@@ -57,9 +53,8 @@ CYUVVideoBuffer::~CYUVVideoBuffer() + CYUVVideoBuffer *CYUVVideoBuffer::Acquire() + { + long count = AtomicIncrement(&m_refs); +-#ifdef MMAL_DEBUG_VERBOSE +- CLog::Log(LOGDEBUG, "%s::%s omvb:%p mmal:%p ref:%ld", CLASSNAME, __func__, this, mmal_buffer, count); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s omvb:%p mmal:%p ref:%ld", CLASSNAME, __func__, this, mmal_buffer, count); + (void)count; + return this; + } +@@ -67,9 +62,8 @@ CYUVVideoBuffer *CYUVVideoBuffer::Acquire() + long CYUVVideoBuffer::Release() + { + long count = AtomicDecrement(&m_refs); +-#ifdef MMAL_DEBUG_VERBOSE +- CLog::Log(LOGDEBUG, "%s::%s omvb:%p mmal:%p ref:%ld", CLASSNAME, __func__, this, mmal_buffer, count); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s omvb:%p mmal:%p ref:%ld", CLASSNAME, __func__, this, mmal_buffer, count); + if (count == 0) + { + mmal_buffer_header_release(mmal_buffer); +@@ -89,9 +83,8 @@ CRenderInfo CMMALRenderer::GetRenderInfo() + if (!m_bMMALConfigured) + m_bMMALConfigured = init_vout(RENDER_FMT_MMAL); + +- #if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s cookie:%p", CLASSNAME, __func__, (void *)m_vout_input_pool); +- #endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s cookie:%p", CLASSNAME, __func__, (void *)m_vout_input_pool); + + info.max_buffer_size = NUM_BUFFERS; + info.optimal_buffer_size = NUM_BUFFERS; +@@ -113,18 +106,16 @@ void CMMALRenderer::vout_input_port_cb(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T * + { + CMMALVideoBuffer *omvb = (CMMALVideoBuffer *)buffer->user_data; + assert(buffer == omvb->mmal_buffer); +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s port:%p omvb:%p mmal:%p len:%d cmd:%x flags:%x flight:%d", CLASSNAME, __func__, port, omvb, omvb->mmal_buffer, buffer->length, buffer->cmd, buffer->flags, m_inflight); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s port:%p omvb:%p mmal:%p len:%d cmd:%x flags:%x flight:%d", CLASSNAME, __func__, port, omvb, omvb->mmal_buffer, buffer->length, buffer->cmd, buffer->flags, m_inflight); + omvb->Release(); + } + else if (m_format == RENDER_FMT_YUV420P) + { + CYUVVideoBuffer *omvb = (CYUVVideoBuffer *)buffer->user_data; + assert(buffer == omvb->mmal_buffer); +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s port:%p omvb:%p mmal:%p len:%d cmd:%x flags:%x flight:%d", CLASSNAME, __func__, port, omvb, omvb->mmal_buffer, buffer->length, buffer->cmd, buffer->flags, m_inflight); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s port:%p omvb:%p mmal:%p len:%d cmd:%x flags:%x flight:%d", CLASSNAME, __func__, port, omvb, omvb->mmal_buffer, buffer->length, buffer->cmd, buffer->flags, m_inflight); + m_inflight--; + omvb->Release(); + } +@@ -266,9 +257,8 @@ CMMALRenderer::~CMMALRenderer() + + void CMMALRenderer::AddProcessor(CMMALVideoBuffer *buffer, int index) + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - %p (%p) %i", CLASSNAME, __func__, buffer, buffer->mmal_buffer, index); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - %p (%p) %i", CLASSNAME, __func__, buffer, buffer->mmal_buffer, index); + + YUVBUFFER &buf = m_buffers[index]; + assert(!buf.MMALBuffer); +@@ -320,17 +310,15 @@ int CMMALRenderer::GetImage(YV12Image *image, int source, bool readonly) + { + if (!image || source < 0) + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - invalid: image:%p source:%d ro:%d flight:%d", CLASSNAME, __func__, image, source, readonly, m_inflight); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - invalid: image:%p source:%d ro:%d flight:%d", CLASSNAME, __func__, image, source, readonly, m_inflight); + return -1; + } + + if (m_format == RENDER_FMT_MMAL) + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - MMAL: image:%p source:%d ro:%d flight:%d", CLASSNAME, __func__, image, source, readonly, m_inflight); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - MMAL: image:%p source:%d ro:%d flight:%d", CLASSNAME, __func__, image, source, readonly, m_inflight); + } + else if (m_format == RENDER_FMT_YUV420P) + { +@@ -373,9 +361,8 @@ int CMMALRenderer::GetImage(YV12Image *image, int source, bool readonly) + if (!buf.YUVBuffer) + return -1; + buf.YUVBuffer->mmal_buffer = buffer; +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - YUV: image:%p source:%d ro:%d omvb:%p mmal:%p flight:%d", CLASSNAME, __func__, image, source, readonly, buf.YUVBuffer, buffer, m_inflight); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - YUV: image:%p source:%d ro:%d omvb:%p mmal:%p flight:%d", CLASSNAME, __func__, image, source, readonly, buf.YUVBuffer, buffer, m_inflight); + buf.YUVBuffer->Acquire(); + } + else assert(0); +@@ -388,16 +375,14 @@ void CMMALRenderer::ReleaseBuffer(int idx) + CSingleLock lock(m_sharedSection); + if (!m_bMMALConfigured) + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - not configured: source:%d", CLASSNAME, __func__, idx); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - not configured: source:%d", CLASSNAME, __func__, idx); + return; + } + if (m_format == RENDER_FMT_BYPASS) + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - bypass: source:%d", CLASSNAME, __func__, idx); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - bypass: source:%d", CLASSNAME, __func__, idx); + return; + } + +@@ -405,17 +390,15 @@ void CMMALRenderer::ReleaseBuffer(int idx) + if (m_format == RENDER_FMT_MMAL) + { + CMMALVideoBuffer *omvb = buffer->MMALBuffer; +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - MMAL: source:%d omvb:%p mmal:%p", CLASSNAME, __func__, idx, omvb, omvb ? omvb->mmal_buffer:NULL); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - MMAL: source:%d omvb:%p mmal:%p", CLASSNAME, __func__, idx, omvb, omvb ? omvb->mmal_buffer:NULL); + SAFE_RELEASE(buffer->MMALBuffer); + } + else if (m_format == RENDER_FMT_YUV420P) + { + CYUVVideoBuffer *omvb = buffer->YUVBuffer; +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - YUV: source:%d omvb:%p mmal:%p flight:%d", CLASSNAME, __func__, idx, omvb, omvb ? omvb->mmal_buffer:NULL, m_inflight); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - YUV: source:%d omvb:%p mmal:%p flight:%d", CLASSNAME, __func__, idx, omvb, omvb ? omvb->mmal_buffer:NULL, m_inflight); + if (omvb && omvb->mmal_buffer) + SAFE_RELEASE(buffer->YUVBuffer); + } +@@ -439,9 +422,8 @@ void CMMALRenderer::Flush() + + void CMMALRenderer::Update() + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); + if (!m_bConfigured) return; + ManageDisplay(); + } +@@ -479,9 +461,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + + if (!m_bConfigured) + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - not configured: clear:%d flags:%x alpha:%d source:%d", CLASSNAME, __func__, clear, flags, alpha, source); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - not configured: clear:%d flags:%x alpha:%d source:%d", CLASSNAME, __func__, clear, flags, alpha, source); + return; + } + +@@ -503,9 +484,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + + if (m_format == RENDER_FMT_BYPASS) + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - bypass: clear:%d flags:%x alpha:%d source:%d", CLASSNAME, __func__, clear, flags, alpha, source); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - bypass: clear:%d flags:%x alpha:%d source:%d", CLASSNAME, __func__, clear, flags, alpha, source); + return; + } + SetVideoRect(m_sourceRect, m_destRect); +@@ -516,9 +496,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + CMMALVideoBuffer *omvb = buffer->MMALBuffer; + if (omvb && omvb->mmal_buffer) + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - MMAL: clear:%d flags:%x alpha:%d source:%d omvb:%p mmal:%p mflags:%x", CLASSNAME, __func__, clear, flags, alpha, source, omvb, omvb->mmal_buffer, omvb->mmal_buffer->flags); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - MMAL: clear:%d flags:%x alpha:%d source:%d omvb:%p mmal:%p mflags:%x", CLASSNAME, __func__, clear, flags, alpha, source, omvb, omvb->mmal_buffer, omvb->mmal_buffer->flags); + // we only want to upload frames once + if (omvb->mmal_buffer->flags & MMAL_BUFFER_HEADER_FLAG_USER1) + return; +@@ -535,9 +514,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + CYUVVideoBuffer *omvb = buffer->YUVBuffer; + if (omvb && omvb->mmal_buffer) + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - YUV: clear:%d flags:%x alpha:%d source:%d omvb:%p mmal:%p mflags:%x", CLASSNAME, __func__, clear, flags, alpha, source, omvb, omvb->mmal_buffer, omvb->mmal_buffer->flags); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - YUV: clear:%d flags:%x alpha:%d source:%d omvb:%p mmal:%p mflags:%x", CLASSNAME, __func__, clear, flags, alpha, source, omvb, omvb->mmal_buffer, omvb->mmal_buffer->flags); + // we only want to upload frames once + if (omvb->mmal_buffer->flags & MMAL_BUFFER_HEADER_FLAG_USER1) + return; +@@ -559,15 +537,13 @@ void CMMALRenderer::FlipPage(int source) + CSingleLock lock(m_sharedSection); + if (!m_bConfigured || m_format == RENDER_FMT_BYPASS) + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - not configured: source:%d", CLASSNAME, __func__, source); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - not configured: source:%d", CLASSNAME, __func__, source); + return; + } + +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - source:%d", CLASSNAME, __func__, source); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - source:%d", CLASSNAME, __func__, source); + + m_iYV12RenderBuffer = source; + } +@@ -600,9 +576,8 @@ unsigned int CMMALRenderer::PreInit() + + void CMMALRenderer::ReleaseBuffers() + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); + for (int i=0; i +Date: Wed, 23 Mar 2016 17:34:48 +0000 +Subject: [PATCH 93/94] rendermanager: Increase configure timeout to see if it + fixes video playing in background issues + +--- + xbmc/cores/VideoRenderers/RenderManager.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/cores/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoRenderers/RenderManager.cpp +index 7a99ac4..4b03c86 100644 +--- a/xbmc/cores/VideoRenderers/RenderManager.cpp ++++ b/xbmc/cores/VideoRenderers/RenderManager.cpp +@@ -244,7 +244,7 @@ bool CXBMCRenderManager::Configure(unsigned int width, unsigned int height, unsi + CSingleLock lock2(m_presentlock); + + /* make sure any queued frame was fully presented */ +- XbmcThreads::EndTime endtime(5000); ++ XbmcThreads::EndTime endtime(10000); + while(m_presentstep != PRESENT_IDLE && m_presentstep != PRESENT_READY) + { + if(endtime.IsTimePast()) +-- +2.5.0 + + +From 6d406c27db47e8ac260f436a2a09187bb495a6ba Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 23 Mar 2016 17:39:47 +0000 +Subject: [PATCH 94/94] Revert "[rbp] Use default resampling setting on Pi2" + +This reverts commit e6b2f1693480ad5d8062acaed512393e72fb9b1d. +--- + system/settings/rbp2.xml | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/system/settings/rbp2.xml b/system/settings/rbp2.xml +index 52778ec..8cc8f19 100644 +--- a/system/settings/rbp2.xml ++++ b/system/settings/rbp2.xml +@@ -23,11 +23,6 @@ + + + +- +- +- 30 +- +- + + + +-- +2.5.0 + diff --git a/projects/RPi/patches/linux/linux-01-RPi_support.patch b/projects/RPi/patches/linux/linux-01-RPi_support.patch index 44b0002c43..c2039a5f5b 100644 --- a/projects/RPi/patches/linux/linux-01-RPi_support.patch +++ b/projects/RPi/patches/linux/linux-01-RPi_support.patch @@ -1,1094 +1,7 @@ -From 1c796f7ab38c7d52e201b88e1836e7adad9a1a54 Mon Sep 17 00:00:00 2001 -From: Lukas Rusak -Date: Fri, 18 Mar 2016 11:10:14 -0700 -Subject: [PATCH 000/202] *** SUBJECT HERE *** -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -*** BLURB HERE *** - -Alistair Buxton (1): - Build i2c_gpio module and add a device tree overlay to configure it. - -Andrew Litt (2): - bcm2835-mmc: Don't override bus width capabilities from devicetree - SDIO-overlay: add bus_width parameter - -Aron Szabo (1): - lirc: added support for RaspberryPi GPIO - -Cheong2K (1): - brcm: adds support for BCM43341 wifi - -Craig Roberts (1): - Updated smsc95xx driver to check for a valid MAC address in eeprom - before using smsc95xx.macaddr parameter passed on command line. - -Daniel Matuschek (5): - ASoC: wm8804: Implement MCLK configuration options, add 32bit support - WM8804 can run with PLL frequencies of 256xfs and 128xfs for most - sample rates. At 192kHz only 128xfs is supported. The existing - driver selects 128xfs automatically for some lower samples rates. By - using an additional mclk_div divider, it is now possible to control - the behaviour. This allows using 256xfs PLL frequency on all sample - rates up to 96kHz. It should allow lower jitter and better signal - quality. The behavior has to be controlled by the sound card driver, - because some sample frequency share the same setting. e.g. 192kHz - and 96kHz use 24.576MHz master clock. The only difference is the - MCLK divider. - ASoC: BCM:Add support for HiFiBerry Digi. Driver is based on the - patched WM8804 driver. - ASoC: wm8804: Set idle_bias_off to false Idle bias has been change to - remove warning on driver startup - Added support for HiFiBerry DAC+ - Added driver for HiFiBerry Amp amplifier add-on board - -Dave Stevenson (1): - DT: Add overlays to configure I2C pins - -Devon Fyson (1): - Extend clock timeout, fix modprobe baudrate parameter. - -Dhiraj Goel (1): - bcm2835-camera: fix a bug in computation of frame timestamp - -Digital Dreamtime (2): - Allow up to 24dB digital gain to be applied when using IQAudIO DAC+ - Limit PCM512x "Digital" gain to 0dB by default with HiFiBerry DAC+ - -DigitalDreamtime (1): - Remove I2S config from bt_pins. - -Eric Anholt (30): - drm/vc4: Add suport for 3D rendering using the V3D engine. - drm/vc4: Force HDMI to connected. - drm/vc4: bo cache locking fixes. - drm/vc4: bo cache locking cleanup. - drm/vc4: Use job_lock to protect seqno_cb_list. - drm/vc4: Drop struct_mutex around CL validation. - drm/vc4: Drop struct_mutex around CL validation. - drm/vc4: Add support for more display plane formats. - drm/vc4: No need to stop the stopped threads. - drm/vc4: Remove extra barrier()s aroudn CTnCA/CTnEA setup. - drm/vc4: Fix a typo in a V3D debug register. - clk: bcm2835: Also build the driver for downstream kernels. - mm: Remove the PFN busy warning - drm: Put an optional field in the driver struct for GEM obj struct - size. - drm/vc4: Add an interface for capturing the GPU state after a hang. - drm/vc4: Update a bunch of code to match upstream submission. - drm: Use the driver's gem_object_free function from CMA helpers. - drm/vc4: Add support for MSAA rendering. - drm/vc4: A few more non-functional changes to sync to upstream. - drm/vc4: Use "hpd-gpios" for HDMI GPIO, like what landed upstream. - drm/vc4: Synchronize validation code for v2 submission upstream. - clk: bcm2835: Add bindings for the auxiliary peripheral clock gates. - clk: bcm2835: Add a driver for the auxiliary peripheral clock gates. - drm/vc4: Add a debugfs node for tracking execution state. - drm/vc4: Include vc4_drm.h in uapi in downstream build. - drm/vc4: Validate that WAIT_BO padding is cleared. - drm/vc4: Fix the clear color for the first tile rendered. - drm/vc4: Return an ERR_PTR from BO creation instead of NULL. - drm/vc4: Fix -ERESTARTSYS error return from BO waits. - drm/vc4: Drop error message on seqno wait timeouts. - -Florian Meier (4): - dmaengine: Add support for BCM2708 - ASoC: Add support for PCM5102A codec - ASoC: Add support for HifiBerry DAC - ASoC: Add support for Rpi-DAC - -Fraser (1): - Aux SPI 1&2 implementation - -Gordon Garrity (1): - Add IQaudIO Sound Card support for Raspberry Pi - -Gordon Hollingworth (1): - rpi-ft5406: Add touchscreen driver for pi LCD display - -Harm Hanemaaijer (1): - Speed up console framebuffer imageblit function - -Holger Steinhaus (1): - dts: Added overlay for gpio_ir_recv driver - -Jan Grulich (2): - RaspiDAC3 support - tpa6130a2: Add headphone switch control - -Luke Wren (3): - Add /dev/gpiomem device for rootless user GPIO access - Add SMI driver - Add SMI NAND driver - -Matthias Reichl (11): - bcm2835-i2s: get base address for DMA from devicetree - bcm2835-i2s: add 24bit support, update bclk_ratio to more correct - values - bcm2835-i2s: setup clock only if CPU is clock master - bcm2835-i2s: Eliminate debugfs directory error - bcm2835-i2s: Register PCM device - bcm2835-i2s: Enable MMAP support via a DT property - bcm2835-dma: Fix dreq not set for slave transfers - bcm2835-dma: Limit cyclic transfers on lite channels to 32k - bcm2835-dma: Fix up convert to DMA pool - ASoC: bcm: add missing .owner fields in sound card drivers - scripts/dtc: Fix UMR causing corrupt dtbo overlay files - -Michael Heimpold (1): - Add overlay and enable support for QCA7000 board - -Michael Lange (1): - rtc: ds1307: add support for the DT property 'wakeup-source' - -Noralf Trønnes (13): - irqchip: bcm2835: Add FIQ support - irqchip: irq-bcm2835: Add 2836 FIQ support - ARM: bcm2835: Set Serial number and Revision - dmaengine: bcm2835: Add slave dma support - dmaengine: bcm2835: set residue_granularity field - dmaengine: bcm2835: Load driver early and support legacy API - bcm2835: Add support for uart1 - firmware: bcm2835: Add missing property tags - char: broadcom: Add vcio module - firmware: bcm2835: Support ARCH_BCM270x - bcm2835: Match with BCM2708 Device Trees - bcm2835: bcm2835_defconfig - bcm270x_dt: Add dwc2 and dwc-otg overlays - -Ondrej Wisniewski (1): - dts: Added overlay for Adafruit PiTFT 2.8" capacitive touch screen - -P33M (1): - rpi_display: add backlight driver and overlay - -Pantelis Antoniou (2): - configfs: implement binary attributes - OF: DT-Overlay configfs interface - -Phil Elwell (60): - irq-bcm2836: Prevent spurious interrupts, and trap them early - serial: 8250: Don't crash when nr_uarts is 0 - pinctrl-bcm2835: Fix interrupt handling for GPIOs 28-31 and 46-53 - pinctrl-bcm2835: Only request the interrupts listed in the DTB - spi-bcm2835: Support pin groups other than 7-11 - Adding bcm2835-sdhost driver, and an overlay to enable it - scripts: Add mkknlimg and knlinfo scripts from tools repo - fdt: Add support for the CONFIG_CMDLINE_EXTEND option - BCM270x_DT: Add pwr_led, and the required "input" trigger - enc28j60: Add device tree compatible string and an overlay - Improve __copy_to_user and __copy_from_user performance - gpio-poweroff: Allow it to work on Raspberry Pi - spidev: Add "spidev" compatible string to silence warning - scripts/dtc: Add overlay support - mfd: Add Raspberry Pi Sense HAT core driver - scripts: Multi-platform support for mkknlimg and knlinfo - drm/vc4: Enable VC4 modules, and increase CMA size with overlay - BCM270X_DT: Add at86rf233 overlay - BCM270X_DT: Add the sdtweak overlay, for tuning sdhost - bcm2835-sdhost: Add workaround for odd behaviour on some cards - bcm2835-sdhost: Add debug_flags dtparam - BCM270X_DT: Add sdio_overclock parameter to sdio overlay - FIXUP i2c_bcm2708: Don't change module baudrate parameter - BCM270X_DT: Adjust overlay README formatting - pinctrl-bcm2835: Fix cut-and-paste error in "pull" parsing - bcm2835-sdhost: Major revision - BCM270X_DT: Add dtparams for the SD interface - bcm2835-sdhost: Restore ATOMIC flag to PIO sg mapping - BCM270X_DT: at86rf233 overlay - drop to 3MHz - bcm2835-sdhost: Downgrade log message status - config: Enable HCI over UARTs - hci_h5: Don't send conf_req when ACTIVE - amba_pl011: Don't use DT aliases for numbering - BCM270X_DT: Add Pi3 support - BCM270X_DT: Add pi3-disable-bt overlay - BCM270X_DT: Add pi3-miniuart-bt DT overlay - Pi3 DT: Add dtparams for the SD interface - vchiq_arm: Tweak the logging output - bcm2835-sdhost: Only claim one DMA channel - bcm2835-mmc: Only claim one DMA channel - Pi3 DT: Add pull-ups on the UART RX lines - brcmfmac: Disable power management - BCM270X_DT: rpi-display overlay - add swapxy param - Revert "scripts/dtc: Add overlay support" - scripts/dtc: Update to upstream version 1.4.1 - Protect __release_resource against resources without parents - BCM270X_DT: Add a .dtbo target, use for overlays - scripts/knlinfo: Decode DDTK atom - Enable Dynamic Device Tree for bcmrpi_defconfig and bcm2709_defconfig - SQUASH: Add CONFIG_OF_CONFIGFS to bcmrpi_defconfig - dts, kbuild: dtbs_install installs .dtbo files too - bcm2835-sdhost: Workaround for "slow" sectors - BCM270X_DT: Add labels to spidev nodes - BCM270X_DT: Use spidev labels in overlays - BCM270X_DT: Build and document the wittypi overlay - BCM270X_DT: Add dtparam for uart1 - serial: Take care starting a hung-up tty's port - pi3-miniuart-bt-overlay: Correct and clarify info - pwm overlays: Params must have in-overlay targets - BCM270X_DT: Switch Compute Module to MMC - -Przemek Rudy (1): - dwc-overlay: Use label so overrides can apply. - -Robert Tiemann (1): - BCM2835_DT: Fix I2S register map - -Ryan Coe (1): - Update ds1307 driver for device-tree support - -Siarhei Siamashka (1): - fbdev: add FBIOCOPYAREA ioctl - -Steve Glendinning (1): - smsx95xx: fix crimes against truesize - -Stuart MacLean (1): - Add support for the HiFiBerry DAC+ Pro. - -Tim Gover (1): - vcsm: VideoCore shared memory service for BCM2835 - -Vincent Sanders (1): - bcm2835: add v4l2 camera device - -Waldemar Brodkorb (1): - Add driver for rpi-proto - -campag (1): - BCM270X_DT: Add 1-bit SDIO using minimal pins... - -gellert (1): - MMC: added alternative MMC driver - -janluca (1): - MMC: Do not use mmc_debug if CONFIG_MMC_BCM2835 is not set - -mwilliams03 (1): - New overlay for PiScreen2r - -notro (2): - pinctrl-bcm2835: Set base to 0 give expected gpio numbering - BCM2708: Add core Device Tree support - -popcornmix (27): - smsc95xx: Disable turbo mode by default - vmstat: Workaround for issue where dirty page count goes negative - Main bcm2708/bcm2709 linux port - squash: include ARCH_BCM2708 / ARCH_BCM2709 - Add dwc_otg driver - bcm2708 framebuffer driver - cma: Add vc_cma driver to enable use of CMA - bcm2708: alsa sound driver - bcm2708 vchiq driver - vc_mem: Add vc_mem driver - Add cpufreq driver - Added hwmon/thermal driver for reporting core temperature. Thanks - Dorian - Add Chris Boot's i2c driver - Allow mac address to be set in smsc95xx - enabling the realtime clock 1-wire chip DS1307 and 1-wire on GPIO4 (as - a module) - config: Enable CONFIG_MEMCG, but leave it disabled (due to memory - cost). Enable with cgroup_enable=memory. - hid: Reduce default mouse polling interval to 60Hz - config: Add default configs - irq-bcm2835: Fix building with 2708 - squash: fixups - squash: add missing vc4-kms-v3d-overlay.dtb to makefile - dcw_otg: trim xfer length when buffer larger than allocated size is - received - dcw_otg: Make trimming messages less noisy - smsx95xx: Add option to disable the crimes against truesize fix - bcm2835-virtgpio: Virtual GPIO driver - config: rebuild with savedefconfig - config: Add module for mcp3422 ADC - -vitalogy (1): - dt-overlay: add wittypi-overlay.dts - -wm4 (8): - bcm2835: extend allowed range of channels and samplerates - bcm2835: restrict channels*rate to 8*960000 - rpi: update vc_vchi_audioserv_defs.h - bcm2835: implement channel map API - bcm2835: access controls under the audio mutex - bcm2835: always use 2/4/8 channels for multichannel layouts - bcm2835: only allow stereo if analogue jack is selected - bcm2835: interpolate audio delay - - .../bindings/clock/brcm,bcm2835-aux-clock.txt | 31 + - .../devicetree/bindings/dma/brcm,bcm2835-dma.txt | 4 +- - .../bindings/misc/brcm,bcm2835-smi-dev.txt | 17 + - .../devicetree/bindings/misc/brcm,bcm2835-smi.txt | 48 + - .../bindings/mtd/brcm,bcm2835-smi-nand.txt | 42 + - .../devicetree/bindings/sound/brcm,bcm2835-i2s.txt | 4 +- - Documentation/devicetree/configfs-overlays.txt | 31 + - Documentation/filesystems/configfs/configfs.txt | 57 +- - Documentation/video4linux/bcm2835-v4l2.txt | 60 + - arch/arm/Kconfig | 49 + - arch/arm/Kconfig.debug | 8 + - arch/arm/Makefile | 2 + - arch/arm/boot/.gitignore | 2 +- - arch/arm/boot/dts/Makefile | 31 + - arch/arm/boot/dts/bcm2708-rpi-b-plus.dts | 150 + - arch/arm/boot/dts/bcm2708-rpi-b.dts | 140 + - arch/arm/boot/dts/bcm2708-rpi-cm.dts | 102 + - arch/arm/boot/dts/bcm2708-rpi-cm.dtsi | 52 + - arch/arm/boot/dts/bcm2708.dtsi | 40 + - arch/arm/boot/dts/bcm2708_common.dtsi | 379 ++ - arch/arm/boot/dts/bcm2709-rpi-2-b.dts | 150 + - arch/arm/boot/dts/bcm2709.dtsi | 102 + - arch/arm/boot/dts/bcm2710-rpi-3-b.dts | 197 + - arch/arm/boot/dts/bcm2710.dtsi | 102 + - arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 132 +- - arch/arm/boot/dts/bcm2835-rpi-b.dts | 115 +- - arch/arm/boot/dts/bcm2835-rpi-cm.dts | 93 + - arch/arm/boot/dts/bcm2835-rpi-cm.dtsi | 30 + - arch/arm/boot/dts/bcm2835.dtsi | 195 +- - arch/arm/boot/dts/overlays/Makefile | 86 + - arch/arm/boot/dts/overlays/README | 985 +++ - arch/arm/boot/dts/overlays/ads7846-overlay.dts | 89 + - arch/arm/boot/dts/overlays/at86rf233-overlay.dts | 57 + - .../dts/overlays/bmp085_i2c-sensor-overlay.dts | 23 + - arch/arm/boot/dts/overlays/dht11-overlay.dts | 39 + - arch/arm/boot/dts/overlays/dwc-otg-overlay.dts | 20 + - arch/arm/boot/dts/overlays/dwc2-overlay.dts | 29 + - arch/arm/boot/dts/overlays/enc28j60-overlay.dts | 53 + - arch/arm/boot/dts/overlays/gpio-ir-overlay.dts | 45 + - .../boot/dts/overlays/gpio-poweroff-overlay.dts | 34 + - .../boot/dts/overlays/hifiberry-amp-overlay.dts | 39 + - .../boot/dts/overlays/hifiberry-dac-overlay.dts | 34 + - .../dts/overlays/hifiberry-dacplus-overlay.dts | 54 + - .../boot/dts/overlays/hifiberry-digi-overlay.dts | 39 + - arch/arm/boot/dts/overlays/hy28a-overlay.dts | 93 + - arch/arm/boot/dts/overlays/hy28b-overlay.dts | 148 + - arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts | 28 + - arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts | 55 + - .../arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts | 36 + - .../arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts | 37 + - arch/arm/boot/dts/overlays/i2s-mmap-overlay.dts | 13 + - arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts | 39 + - .../boot/dts/overlays/iqaudio-dacplus-overlay.dts | 43 + - arch/arm/boot/dts/overlays/lirc-rpi-overlay.dts | 57 + - .../arm/boot/dts/overlays/mcp2515-can0-overlay.dts | 73 + - .../arm/boot/dts/overlays/mcp2515-can1-overlay.dts | 73 + - arch/arm/boot/dts/overlays/mmc-overlay.dts | 38 + - arch/arm/boot/dts/overlays/mz61581-overlay.dts | 117 + - .../boot/dts/overlays/pi3-disable-bt-overlay.dts | 48 + - .../boot/dts/overlays/pi3-miniuart-bt-overlay.dts | 63 + - arch/arm/boot/dts/overlays/piscreen-overlay.dts | 102 + - arch/arm/boot/dts/overlays/piscreen2r-overlay.dts | 106 + - .../dts/overlays/pitft28-capacitive-overlay.dts | 91 + - .../dts/overlays/pitft28-resistive-overlay.dts | 121 + - arch/arm/boot/dts/overlays/pps-gpio-overlay.dts | 34 + - arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts | 53 + - arch/arm/boot/dts/overlays/pwm-overlay.dts | 49 + - arch/arm/boot/dts/overlays/qca7000-overlay.dts | 52 + - arch/arm/boot/dts/overlays/raspidac3-overlay.dts | 45 + - .../boot/dts/overlays/rpi-backlight-overlay.dts | 21 + - arch/arm/boot/dts/overlays/rpi-dac-overlay.dts | 34 + - arch/arm/boot/dts/overlays/rpi-display-overlay.dts | 89 + - arch/arm/boot/dts/overlays/rpi-ft5406-overlay.dts | 17 + - arch/arm/boot/dts/overlays/rpi-proto-overlay.dts | 39 + - arch/arm/boot/dts/overlays/rpi-sense-overlay.dts | 47 + - arch/arm/boot/dts/overlays/sdhost-overlay.dts | 32 + - arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts | 36 + - arch/arm/boot/dts/overlays/sdio-overlay.dts | 36 + - arch/arm/boot/dts/overlays/sdtweak-overlay.dts | 23 + - arch/arm/boot/dts/overlays/smi-dev-overlay.dts | 18 + - arch/arm/boot/dts/overlays/smi-nand-overlay.dts | 69 + - arch/arm/boot/dts/overlays/smi-overlay.dts | 37 + - .../boot/dts/overlays/spi-gpio35-39-overlay.dts | 31 + - arch/arm/boot/dts/overlays/spi1-1cs-overlay.dts | 57 + - arch/arm/boot/dts/overlays/spi1-2cs-overlay.dts | 69 + - arch/arm/boot/dts/overlays/spi1-3cs-overlay.dts | 81 + - arch/arm/boot/dts/overlays/spi2-1cs-overlay.dts | 57 + - arch/arm/boot/dts/overlays/spi2-2cs-overlay.dts | 69 + - arch/arm/boot/dts/overlays/spi2-3cs-overlay.dts | 81 + - arch/arm/boot/dts/overlays/tinylcd35-overlay.dts | 222 + - arch/arm/boot/dts/overlays/uart1-overlay.dts | 38 + - arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts | 95 + - arch/arm/boot/dts/overlays/vga666-overlay.dts | 30 + - arch/arm/boot/dts/overlays/w1-gpio-overlay.dts | 39 + - .../boot/dts/overlays/w1-gpio-pullup-overlay.dts | 41 + - arch/arm/boot/dts/overlays/wittypi-overlay.dts | 44 + - arch/arm/configs/bcm2709_defconfig | 1264 ++++ - arch/arm/configs/bcm2835_defconfig | 1166 +++- - arch/arm/configs/bcmrpi_defconfig | 1274 ++++ - arch/arm/include/asm/irqflags.h | 16 +- - arch/arm/include/asm/string.h | 5 + - arch/arm/include/asm/uaccess.h | 3 + - arch/arm/kernel/fiqasm.S | 4 + - arch/arm/kernel/head.S | 8 + - arch/arm/kernel/process.c | 10 + - arch/arm/lib/Makefile | 15 +- - arch/arm/lib/arm-mem.h | 159 + - arch/arm/lib/copy_from_user.S | 4 +- - arch/arm/lib/exports_rpi.c | 37 + - arch/arm/lib/memcmp_rpi.S | 285 + - arch/arm/lib/memcpy_rpi.S | 61 + - arch/arm/lib/memcpymove.h | 506 ++ - arch/arm/lib/memmove_rpi.S | 61 + - arch/arm/lib/memset_rpi.S | 123 + - arch/arm/lib/uaccess_with_memcpy.c | 112 +- - arch/arm/mach-bcm/Kconfig | 1 + - arch/arm/mach-bcm/board_bcm2835.c | 34 + - arch/arm/mach-bcm2708/Kconfig | 23 + - arch/arm/mach-bcm2708/Makefile | 5 + - arch/arm/mach-bcm2708/Makefile.boot | 3 + - arch/arm/mach-bcm2708/bcm2708.c | 231 + - arch/arm/mach-bcm2708/include/mach/debug-macro.S | 22 + - arch/arm/mach-bcm2708/include/mach/io.h | 27 + - arch/arm/mach-bcm2708/include/mach/memory.h | 57 + - arch/arm/mach-bcm2708/include/mach/platform.h | 114 + - arch/arm/mach-bcm2708/include/mach/system.h | 37 + - arch/arm/mach-bcm2708/include/mach/uncompress.h | 84 + - arch/arm/mach-bcm2708/include/mach/vmalloc.h | 20 + - arch/arm/mach-bcm2709/Kconfig | 16 + - arch/arm/mach-bcm2709/Makefile | 5 + - arch/arm/mach-bcm2709/Makefile.boot | 3 + - arch/arm/mach-bcm2709/bcm2709.c | 380 ++ - arch/arm/mach-bcm2709/include/mach/debug-macro.S | 22 + - arch/arm/mach-bcm2709/include/mach/entry-macro.S | 123 + - arch/arm/mach-bcm2709/include/mach/io.h | 27 + - arch/arm/mach-bcm2709/include/mach/memory.h | 57 + - arch/arm/mach-bcm2709/include/mach/platform.h | 190 + - arch/arm/mach-bcm2709/include/mach/system.h | 37 + - arch/arm/mach-bcm2709/include/mach/uncompress.h | 84 + - arch/arm/mach-bcm2709/include/mach/vmalloc.h | 20 + - arch/arm/mm/Kconfig | 2 +- - arch/arm/mm/proc-v6.S | 15 +- - arch/arm/mm/proc-v7.S | 1 + - arch/arm/tools/mach-types | 2 + - drivers/bluetooth/hci_h5.c | 3 +- - drivers/char/Kconfig | 2 + - drivers/char/Makefile | 1 + - drivers/char/broadcom/Kconfig | 57 + - drivers/char/broadcom/Makefile | 7 + - drivers/char/broadcom/bcm2835-gpiomem.c | 260 + - drivers/char/broadcom/bcm2835_smi_dev.c | 402 ++ - drivers/char/broadcom/vc_cma/Makefile | 14 + - drivers/char/broadcom/vc_cma/vc_cma.c | 1193 ++++ - drivers/char/broadcom/vc_mem.c | 422 ++ - drivers/char/broadcom/vc_sm/Makefile | 20 + - drivers/char/broadcom/vc_sm/vc_sm_defs.h | 181 + - drivers/char/broadcom/vc_sm/vc_sm_knl.h | 55 + - drivers/char/broadcom/vc_sm/vc_vchi_sm.c | 492 ++ - drivers/char/broadcom/vc_sm/vc_vchi_sm.h | 82 + - drivers/char/broadcom/vc_sm/vmcs_sm.c | 3211 +++++++++ - drivers/char/broadcom/vcio.c | 175 + - drivers/char/hw_random/Kconfig | 2 +- - drivers/clk/Makefile | 1 + - drivers/clk/bcm/Makefile | 3 +- - drivers/clk/bcm/clk-bcm2835-aux.c | 85 + - drivers/clk/clk-hifiberry-dacpro.c | 160 + - drivers/clocksource/Makefile | 2 +- - drivers/cpufreq/Kconfig.arm | 9 + - drivers/cpufreq/Makefile | 1 + - drivers/cpufreq/bcm2835-cpufreq.c | 213 + - drivers/dma/Kconfig | 6 +- - drivers/dma/Makefile | 1 + - drivers/dma/bcm2708-dmaengine.c | 281 + - drivers/dma/bcm2835-dma.c | 261 +- - drivers/firmware/raspberrypi.c | 41 +- - drivers/gpio/Kconfig | 6 + - drivers/gpio/Makefile | 1 + - drivers/gpio/gpio-bcm-virt.c | 180 + - drivers/gpu/drm/drm_fb_cma_helper.c | 6 +- - drivers/gpu/drm/drm_gem_cma_helper.c | 14 +- - drivers/gpu/drm/vc4/Kconfig | 2 +- - drivers/gpu/drm/vc4/Makefile | 11 +- - drivers/gpu/drm/vc4/vc4_bo.c | 543 +- - drivers/gpu/drm/vc4/vc4_crtc.c | 99 +- - drivers/gpu/drm/vc4/vc4_debugfs.c | 4 + - drivers/gpu/drm/vc4/vc4_drv.c | 46 +- - drivers/gpu/drm/vc4/vc4_drv.h | 320 +- - drivers/gpu/drm/vc4/vc4_gem.c | 879 +++ - drivers/gpu/drm/vc4/vc4_hdmi.c | 2 + - drivers/gpu/drm/vc4/vc4_irq.c | 210 + - drivers/gpu/drm/vc4/vc4_kms.c | 149 +- - drivers/gpu/drm/vc4/vc4_packet.h | 399 ++ - drivers/gpu/drm/vc4/vc4_plane.c | 56 + - drivers/gpu/drm/vc4/vc4_qpu_defines.h | 264 + - drivers/gpu/drm/vc4/vc4_regs.h | 2 +- - drivers/gpu/drm/vc4/vc4_render_cl.c | 634 ++ - drivers/gpu/drm/vc4/vc4_trace.h | 63 + - drivers/gpu/drm/vc4/vc4_trace_points.c | 14 + - drivers/gpu/drm/vc4/vc4_v3d.c | 270 + - drivers/gpu/drm/vc4/vc4_validate.c | 900 +++ - drivers/gpu/drm/vc4/vc4_validate_shaders.c | 513 ++ - drivers/hid/usbhid/hid-core.c | 10 +- - drivers/i2c/busses/Kconfig | 21 +- - drivers/i2c/busses/Makefile | 2 + - drivers/i2c/busses/i2c-bcm2708.c | 508 ++ - drivers/input/joystick/Kconfig | 8 + - drivers/input/joystick/Makefile | 1 + - drivers/input/joystick/rpisense-js.c | 153 + - drivers/input/touchscreen/Kconfig | 7 + - drivers/input/touchscreen/Makefile | 1 + - drivers/input/touchscreen/rpi-ft5406.c | 246 + - drivers/irqchip/Makefile | 3 + - drivers/irqchip/irq-bcm2835.c | 90 +- - drivers/irqchip/irq-bcm2836.c | 3 +- - drivers/leds/leds-gpio.c | 18 +- - drivers/leds/trigger/Kconfig | 7 + - drivers/leds/trigger/Makefile | 1 + - drivers/leds/trigger/ledtrig-input.c | 54 + - drivers/mailbox/Kconfig | 2 +- - drivers/mailbox/bcm2835-mailbox.c | 18 +- - drivers/media/platform/Kconfig | 2 + - drivers/media/platform/Makefile | 2 + - drivers/media/platform/bcm2835/Kconfig | 25 + - drivers/media/platform/bcm2835/Makefile | 5 + - drivers/media/platform/bcm2835/bcm2835-camera.c | 1843 +++++ - drivers/media/platform/bcm2835/bcm2835-camera.h | 126 + - drivers/media/platform/bcm2835/controls.c | 1324 ++++ - drivers/media/platform/bcm2835/mmal-common.h | 53 + - drivers/media/platform/bcm2835/mmal-encodings.h | 127 + - drivers/media/platform/bcm2835/mmal-msg-common.h | 50 + - drivers/media/platform/bcm2835/mmal-msg-format.h | 81 + - drivers/media/platform/bcm2835/mmal-msg-port.h | 107 + - drivers/media/platform/bcm2835/mmal-msg.h | 404 ++ - drivers/media/platform/bcm2835/mmal-parameters.h | 656 ++ - drivers/media/platform/bcm2835/mmal-vchiq.c | 1916 ++++++ - drivers/media/platform/bcm2835/mmal-vchiq.h | 178 + - drivers/mfd/Kconfig | 8 + - drivers/mfd/Makefile | 2 + - drivers/mfd/rpisense-core.c | 157 + - drivers/misc/Kconfig | 9 + - drivers/misc/Makefile | 2 + - drivers/misc/bcm2835_smi.c | 985 +++ - drivers/misc/vc04_services/Kconfig | 9 + - drivers/misc/vc04_services/Makefile | 14 + - .../interface/vchi/connections/connection.h | 328 + - .../interface/vchi/message_drivers/message.h | 204 + - drivers/misc/vc04_services/interface/vchi/vchi.h | 378 ++ - .../misc/vc04_services/interface/vchi/vchi_cfg.h | 224 + - .../interface/vchi/vchi_cfg_internal.h | 71 + - .../vc04_services/interface/vchi/vchi_common.h | 175 + - .../misc/vc04_services/interface/vchi/vchi_mh.h | 42 + - .../misc/vc04_services/interface/vchiq_arm/vchiq.h | 40 + - .../vc04_services/interface/vchiq_arm/vchiq_2835.h | 42 + - .../interface/vchiq_arm/vchiq_2835_arm.c | 586 ++ - .../vc04_services/interface/vchiq_arm/vchiq_arm.c | 2903 ++++++++ - .../vc04_services/interface/vchiq_arm/vchiq_arm.h | 220 + - .../interface/vchiq_arm/vchiq_build_info.h | 37 + - .../vc04_services/interface/vchiq_arm/vchiq_cfg.h | 69 + - .../interface/vchiq_arm/vchiq_connected.c | 120 + - .../interface/vchiq_arm/vchiq_connected.h | 50 + - .../vc04_services/interface/vchiq_arm/vchiq_core.c | 3929 +++++++++++ - .../vc04_services/interface/vchiq_arm/vchiq_core.h | 712 ++ - .../interface/vchiq_arm/vchiq_debugfs.c | 383 ++ - .../interface/vchiq_arm/vchiq_debugfs.h | 52 + - .../interface/vchiq_arm/vchiq_genversion | 87 + - .../vc04_services/interface/vchiq_arm/vchiq_if.h | 189 + - .../interface/vchiq_arm/vchiq_ioctl.h | 131 + - .../interface/vchiq_arm/vchiq_kern_lib.c | 458 ++ - .../interface/vchiq_arm/vchiq_killable.h | 69 + - .../interface/vchiq_arm/vchiq_memdrv.h | 71 + - .../interface/vchiq_arm/vchiq_pagelist.h | 58 + - .../vc04_services/interface/vchiq_arm/vchiq_shim.c | 860 +++ - .../vc04_services/interface/vchiq_arm/vchiq_util.c | 156 + - .../vc04_services/interface/vchiq_arm/vchiq_util.h | 82 + - .../interface/vchiq_arm/vchiq_version.c | 59 + - drivers/mmc/core/quirks.c | 10 + - drivers/mmc/host/Kconfig | 39 + - drivers/mmc/host/Makefile | 2 + - drivers/mmc/host/bcm2835-mmc.c | 1571 +++++ - drivers/mmc/host/bcm2835-sdhost.c | 2121 ++++++ - drivers/mtd/nand/Kconfig | 7 + - drivers/mtd/nand/Makefile | 1 + - drivers/mtd/nand/bcm2835_smi_nand.c | 268 + - drivers/net/ethernet/microchip/enc28j60.c | 7 + - drivers/net/usb/smsc95xx.c | 70 +- - drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c | 2 + - drivers/net/wireless/brcm80211/brcmfmac/sdio.c | 5 + - .../net/wireless/brcm80211/include/brcm_hw_ids.h | 1 + - drivers/of/Kconfig | 7 + - drivers/of/Makefile | 1 + - drivers/of/configfs.c | 314 + - drivers/of/fdt.c | 29 +- - drivers/pinctrl/Makefile | 1 + - drivers/pinctrl/bcm/pinctrl-bcm2835.c | 57 +- - drivers/power/reset/gpio-poweroff.c | 4 +- - drivers/pwm/Kconfig | 2 +- - drivers/rtc/rtc-ds1307.c | 37 +- - drivers/spi/Kconfig | 4 +- - drivers/spi/spi-bcm2835.c | 45 +- - drivers/spi/spidev.c | 1 + - drivers/staging/media/lirc/Kconfig | 6 + - drivers/staging/media/lirc/Makefile | 1 + - drivers/staging/media/lirc/lirc_rpi.c | 730 ++ - drivers/thermal/Kconfig | 7 + - drivers/thermal/Makefile | 1 + - drivers/thermal/bcm2835-thermal.c | 141 + - drivers/tty/serial/8250/8250_core.c | 2 + - drivers/tty/serial/amba-pl011.c | 5 + - drivers/usb/Makefile | 1 + - drivers/usb/core/generic.c | 1 + - drivers/usb/core/hub.c | 2 +- - drivers/usb/core/message.c | 79 + - drivers/usb/core/otg_whitelist.h | 114 +- - drivers/usb/gadget/file_storage.c | 3676 ++++++++++ - drivers/usb/host/Kconfig | 13 + - drivers/usb/host/Makefile | 2 + - drivers/usb/host/dwc_common_port/Makefile | 58 + - drivers/usb/host/dwc_common_port/Makefile.fbsd | 17 + - drivers/usb/host/dwc_common_port/Makefile.linux | 49 + - drivers/usb/host/dwc_common_port/changes.txt | 174 + - drivers/usb/host/dwc_common_port/doc/doxygen.cfg | 270 + - drivers/usb/host/dwc_common_port/dwc_cc.c | 532 ++ - drivers/usb/host/dwc_common_port/dwc_cc.h | 224 + - drivers/usb/host/dwc_common_port/dwc_common_fbsd.c | 1308 ++++ - .../usb/host/dwc_common_port/dwc_common_linux.c | 1433 ++++ - drivers/usb/host/dwc_common_port/dwc_common_nbsd.c | 1275 ++++ - drivers/usb/host/dwc_common_port/dwc_crypto.c | 308 + - drivers/usb/host/dwc_common_port/dwc_crypto.h | 111 + - drivers/usb/host/dwc_common_port/dwc_dh.c | 291 + - drivers/usb/host/dwc_common_port/dwc_dh.h | 106 + - drivers/usb/host/dwc_common_port/dwc_list.h | 594 ++ - drivers/usb/host/dwc_common_port/dwc_mem.c | 245 + - drivers/usb/host/dwc_common_port/dwc_modpow.c | 636 ++ - drivers/usb/host/dwc_common_port/dwc_modpow.h | 34 + - drivers/usb/host/dwc_common_port/dwc_notifier.c | 319 + - drivers/usb/host/dwc_common_port/dwc_notifier.h | 122 + - drivers/usb/host/dwc_common_port/dwc_os.h | 1276 ++++ - drivers/usb/host/dwc_common_port/usb.h | 946 +++ - drivers/usb/host/dwc_otg/Makefile | 82 + - drivers/usb/host/dwc_otg/doc/doxygen.cfg | 224 + - drivers/usb/host/dwc_otg/dummy_audio.c | 1575 +++++ - drivers/usb/host/dwc_otg/dwc_cfi_common.h | 142 + - drivers/usb/host/dwc_otg/dwc_otg_adp.c | 854 +++ - drivers/usb/host/dwc_otg/dwc_otg_adp.h | 80 + - drivers/usb/host/dwc_otg/dwc_otg_attr.c | 1210 ++++ - drivers/usb/host/dwc_otg/dwc_otg_attr.h | 89 + - drivers/usb/host/dwc_otg/dwc_otg_cfi.c | 1876 +++++ - drivers/usb/host/dwc_otg/dwc_otg_cfi.h | 320 + - drivers/usb/host/dwc_otg/dwc_otg_cil.c | 7141 ++++++++++++++++++++ - drivers/usb/host/dwc_otg/dwc_otg_cil.h | 1464 ++++ - drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c | 1594 +++++ - drivers/usb/host/dwc_otg/dwc_otg_core_if.h | 705 ++ - drivers/usb/host/dwc_otg/dwc_otg_dbg.h | 117 + - drivers/usb/host/dwc_otg/dwc_otg_driver.c | 1757 +++++ - drivers/usb/host/dwc_otg/dwc_otg_driver.h | 86 + - drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c | 1355 ++++ - drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h | 370 + - drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S | 80 + - drivers/usb/host/dwc_otg/dwc_otg_hcd.c | 4257 ++++++++++++ - drivers/usb/host/dwc_otg/dwc_otg_hcd.h | 862 +++ - drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c | 1132 ++++ - drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h | 417 ++ - drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 2727 ++++++++ - drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 1005 +++ - drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c | 957 +++ - drivers/usb/host/dwc_otg/dwc_otg_os_dep.h | 188 + - drivers/usb/host/dwc_otg/dwc_otg_pcd.c | 2712 ++++++++ - drivers/usb/host/dwc_otg/dwc_otg_pcd.h | 266 + - drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h | 360 + - drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c | 5147 ++++++++++++++ - drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c | 1280 ++++ - drivers/usb/host/dwc_otg/dwc_otg_regs.h | 2550 +++++++ - drivers/usb/host/dwc_otg/test/Makefile | 16 + - drivers/usb/host/dwc_otg/test/dwc_otg_test.pm | 337 + - drivers/usb/host/dwc_otg/test/test_mod_param.pl | 133 + - drivers/usb/host/dwc_otg/test/test_sysfs.pl | 193 + - drivers/video/backlight/Kconfig | 6 + - drivers/video/backlight/Makefile | 1 + - drivers/video/backlight/rpi_backlight.c | 119 + - drivers/video/fbdev/Kconfig | 27 + - drivers/video/fbdev/Makefile | 2 + - drivers/video/fbdev/bcm2708_fb.c | 847 +++ - drivers/video/fbdev/core/cfbimgblt.c | 152 +- - drivers/video/fbdev/core/fbmem.c | 30 + - drivers/video/fbdev/rpisense-fb.c | 293 + - drivers/video/logo/logo_linux_clut224.ppm | 2483 +++---- - drivers/w1/masters/w1-gpio.c | 69 +- - drivers/w1/w1.h | 6 + - drivers/w1/w1_int.c | 14 + - drivers/w1/w1_io.c | 18 +- - drivers/watchdog/Kconfig | 2 +- - fs/configfs/configfs_internal.h | 14 +- - fs/configfs/dir.c | 18 +- - fs/configfs/file.c | 255 +- - fs/configfs/inode.c | 2 +- - include/drm/drmP.h | 7 + - include/dt-bindings/clock/bcm2835-aux.h | 17 + - include/linux/broadcom/bcm2835_smi.h | 391 ++ - include/linux/broadcom/vc_cma.h | 36 + - include/linux/broadcom/vc_mem.h | 35 + - include/linux/broadcom/vmcs_sm_ioctl.h | 248 + - include/linux/configfs.h | 50 + - include/linux/leds.h | 3 + - include/linux/mfd/rpisense/core.h | 47 + - include/linux/mfd/rpisense/framebuffer.h | 32 + - include/linux/mfd/rpisense/joystick.h | 35 + - include/linux/mmc/host.h | 1 + - include/linux/platform_data/bcm2708.h | 23 + - include/linux/platform_data/dma-bcm2708.h | 143 + - include/linux/serial_core.h | 2 +- - include/linux/vmstat.h | 4 + - include/linux/w1-gpio.h | 1 + - include/soc/bcm2835/raspberrypi-firmware.h | 10 + - include/uapi/drm/Kbuild | 1 + - include/uapi/drm/vc4_drm.h | 279 + - include/uapi/linux/fb.h | 5 + - kernel/cgroup.c | 23 +- - kernel/resource.c | 6 + - mm/page_alloc.c | 2 - - scripts/Makefile.dtbinst | 10 +- - scripts/Makefile.lib | 10 + - scripts/dtc/checks.c | 106 +- - scripts/dtc/dtc-lexer.l | 5 + - scripts/dtc/dtc-lexer.lex.c_shipped | 490 +- - scripts/dtc/dtc-parser.tab.c_shipped | 722 +- - scripts/dtc/dtc-parser.tab.h_shipped | 46 +- - scripts/dtc/dtc-parser.y | 22 +- - scripts/dtc/dtc.c | 9 +- - scripts/dtc/dtc.h | 40 + - scripts/dtc/flattree.c | 202 + - scripts/dtc/version_gen.h | 2 +- - scripts/knlinfo | 171 + - scripts/mkknlimg | 264 + - sound/arm/Kconfig | 8 + - sound/arm/Makefile | 5 + - sound/arm/bcm2835-ctl.c | 662 ++ - sound/arm/bcm2835-pcm.c | 626 ++ - sound/arm/bcm2835-vchiq.c | 915 +++ - sound/arm/bcm2835.c | 511 ++ - sound/arm/bcm2835.h | 172 + - sound/arm/vc_vchi_audioserv_defs.h | 125 + - sound/soc/bcm/Kconfig | 59 +- - sound/soc/bcm/Makefile | 18 + - sound/soc/bcm/bcm2835-i2s.c | 90 +- - sound/soc/bcm/hifiberry_amp.c | 128 + - sound/soc/bcm/hifiberry_dac.c | 123 + - sound/soc/bcm/hifiberry_dacplus.c | 352 + - sound/soc/bcm/hifiberry_digi.c | 224 + - sound/soc/bcm/iqaudio-dac.c | 141 + - sound/soc/bcm/raspidac3.c | 192 + - sound/soc/bcm/rpi-dac.c | 119 + - sound/soc/bcm/rpi-proto.c | 154 + - sound/soc/codecs/Kconfig | 18 + - sound/soc/codecs/Makefile | 6 + - sound/soc/codecs/pcm1794a.c | 69 + - sound/soc/codecs/pcm5102a.c | 70 + - sound/soc/codecs/pcm512x.c | 3 +- - sound/soc/codecs/tas5713.c | 369 + - sound/soc/codecs/tas5713.h | 210 + - sound/soc/codecs/tpa6130a2.c | 29 +- - sound/soc/codecs/wm8804.c | 5 +- - 461 files changed, 125035 insertions(+), 2666 deletions(-) - create mode 100644 Documentation/devicetree/bindings/clock/brcm,bcm2835-aux-clock.txt - create mode 100644 Documentation/devicetree/bindings/misc/brcm,bcm2835-smi-dev.txt - create mode 100644 Documentation/devicetree/bindings/misc/brcm,bcm2835-smi.txt - create mode 100644 Documentation/devicetree/bindings/mtd/brcm,bcm2835-smi-nand.txt - create mode 100644 Documentation/devicetree/configfs-overlays.txt - create mode 100644 Documentation/video4linux/bcm2835-v4l2.txt - create mode 100644 arch/arm/boot/dts/bcm2708-rpi-b-plus.dts - create mode 100644 arch/arm/boot/dts/bcm2708-rpi-b.dts - create mode 100755 arch/arm/boot/dts/bcm2708-rpi-cm.dts - create mode 100644 arch/arm/boot/dts/bcm2708-rpi-cm.dtsi - create mode 100644 arch/arm/boot/dts/bcm2708.dtsi - create mode 100644 arch/arm/boot/dts/bcm2708_common.dtsi - create mode 100644 arch/arm/boot/dts/bcm2709-rpi-2-b.dts - create mode 100644 arch/arm/boot/dts/bcm2709.dtsi - create mode 100644 arch/arm/boot/dts/bcm2710-rpi-3-b.dts - create mode 100644 arch/arm/boot/dts/bcm2710.dtsi - create mode 100644 arch/arm/boot/dts/bcm2835-rpi-cm.dts - create mode 100644 arch/arm/boot/dts/bcm2835-rpi-cm.dtsi - create mode 100644 arch/arm/boot/dts/overlays/Makefile - create mode 100644 arch/arm/boot/dts/overlays/README - create mode 100644 arch/arm/boot/dts/overlays/ads7846-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/at86rf233-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/bmp085_i2c-sensor-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/dht11-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/dwc-otg-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/dwc2-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/enc28j60-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/gpio-ir-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-amp-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-dac-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hy28a-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hy28b-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2s-mmap-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/lirc-rpi-overlay.dts - create mode 100755 arch/arm/boot/dts/overlays/mcp2515-can0-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/mmc-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/mz61581-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/piscreen-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/piscreen2r-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pitft28-capacitive-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pitft28-resistive-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pps-gpio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pwm-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/qca7000-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/raspidac3-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-backlight-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-dac-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-display-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-ft5406-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-proto-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-sense-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/sdhost-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/sdio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/sdtweak-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/smi-dev-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/smi-nand-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/smi-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi-gpio35-39-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi1-1cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi1-2cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi1-3cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi2-1cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi2-2cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi2-3cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/tinylcd35-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/uart1-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vga666-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/w1-gpio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/w1-gpio-pullup-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/wittypi-overlay.dts - create mode 100644 arch/arm/configs/bcm2709_defconfig - create mode 100644 arch/arm/configs/bcmrpi_defconfig - create mode 100644 arch/arm/lib/arm-mem.h - create mode 100644 arch/arm/lib/exports_rpi.c - create mode 100644 arch/arm/lib/memcmp_rpi.S - create mode 100644 arch/arm/lib/memcpy_rpi.S - create mode 100644 arch/arm/lib/memcpymove.h - create mode 100644 arch/arm/lib/memmove_rpi.S - create mode 100644 arch/arm/lib/memset_rpi.S - create mode 100644 arch/arm/mach-bcm2708/Kconfig - create mode 100644 arch/arm/mach-bcm2708/Makefile - create mode 100644 arch/arm/mach-bcm2708/Makefile.boot - create mode 100644 arch/arm/mach-bcm2708/bcm2708.c - create mode 100644 arch/arm/mach-bcm2708/include/mach/debug-macro.S - create mode 100644 arch/arm/mach-bcm2708/include/mach/io.h - create mode 100644 arch/arm/mach-bcm2708/include/mach/memory.h - create mode 100644 arch/arm/mach-bcm2708/include/mach/platform.h - create mode 100644 arch/arm/mach-bcm2708/include/mach/system.h - create mode 100644 arch/arm/mach-bcm2708/include/mach/uncompress.h - create mode 100644 arch/arm/mach-bcm2708/include/mach/vmalloc.h - create mode 100644 arch/arm/mach-bcm2709/Kconfig - create mode 100644 arch/arm/mach-bcm2709/Makefile - create mode 100644 arch/arm/mach-bcm2709/Makefile.boot - create mode 100644 arch/arm/mach-bcm2709/bcm2709.c - create mode 100644 arch/arm/mach-bcm2709/include/mach/debug-macro.S - create mode 100644 arch/arm/mach-bcm2709/include/mach/entry-macro.S - create mode 100644 arch/arm/mach-bcm2709/include/mach/io.h - create mode 100644 arch/arm/mach-bcm2709/include/mach/memory.h - create mode 100644 arch/arm/mach-bcm2709/include/mach/platform.h - create mode 100644 arch/arm/mach-bcm2709/include/mach/system.h - create mode 100644 arch/arm/mach-bcm2709/include/mach/uncompress.h - create mode 100644 arch/arm/mach-bcm2709/include/mach/vmalloc.h - create mode 100644 drivers/char/broadcom/Kconfig - create mode 100644 drivers/char/broadcom/Makefile - create mode 100644 drivers/char/broadcom/bcm2835-gpiomem.c - create mode 100644 drivers/char/broadcom/bcm2835_smi_dev.c - create mode 100644 drivers/char/broadcom/vc_cma/Makefile - create mode 100644 drivers/char/broadcom/vc_cma/vc_cma.c - create mode 100644 drivers/char/broadcom/vc_mem.c - create mode 100644 drivers/char/broadcom/vc_sm/Makefile - create mode 100644 drivers/char/broadcom/vc_sm/vc_sm_defs.h - create mode 100644 drivers/char/broadcom/vc_sm/vc_sm_knl.h - create mode 100644 drivers/char/broadcom/vc_sm/vc_vchi_sm.c - create mode 100644 drivers/char/broadcom/vc_sm/vc_vchi_sm.h - create mode 100644 drivers/char/broadcom/vc_sm/vmcs_sm.c - create mode 100644 drivers/char/broadcom/vcio.c - create mode 100644 drivers/clk/bcm/clk-bcm2835-aux.c - create mode 100644 drivers/clk/clk-hifiberry-dacpro.c - create mode 100644 drivers/cpufreq/bcm2835-cpufreq.c - create mode 100644 drivers/dma/bcm2708-dmaengine.c - create mode 100644 drivers/gpio/gpio-bcm-virt.c - create mode 100644 drivers/gpu/drm/vc4/vc4_gem.c - create mode 100644 drivers/gpu/drm/vc4/vc4_irq.c - create mode 100644 drivers/gpu/drm/vc4/vc4_packet.h - create mode 100644 drivers/gpu/drm/vc4/vc4_qpu_defines.h - create mode 100644 drivers/gpu/drm/vc4/vc4_render_cl.c - create mode 100644 drivers/gpu/drm/vc4/vc4_trace.h - create mode 100644 drivers/gpu/drm/vc4/vc4_trace_points.c - create mode 100644 drivers/gpu/drm/vc4/vc4_v3d.c - create mode 100644 drivers/gpu/drm/vc4/vc4_validate.c - create mode 100644 drivers/gpu/drm/vc4/vc4_validate_shaders.c - create mode 100644 drivers/i2c/busses/i2c-bcm2708.c - create mode 100644 drivers/input/joystick/rpisense-js.c - create mode 100644 drivers/input/touchscreen/rpi-ft5406.c - create mode 100644 drivers/leds/trigger/ledtrig-input.c - create mode 100644 drivers/media/platform/bcm2835/Kconfig - create mode 100644 drivers/media/platform/bcm2835/Makefile - create mode 100644 drivers/media/platform/bcm2835/bcm2835-camera.c - create mode 100644 drivers/media/platform/bcm2835/bcm2835-camera.h - create mode 100644 drivers/media/platform/bcm2835/controls.c - create mode 100644 drivers/media/platform/bcm2835/mmal-common.h - create mode 100644 drivers/media/platform/bcm2835/mmal-encodings.h - create mode 100644 drivers/media/platform/bcm2835/mmal-msg-common.h - create mode 100644 drivers/media/platform/bcm2835/mmal-msg-format.h - create mode 100644 drivers/media/platform/bcm2835/mmal-msg-port.h - create mode 100644 drivers/media/platform/bcm2835/mmal-msg.h - create mode 100644 drivers/media/platform/bcm2835/mmal-parameters.h - create mode 100644 drivers/media/platform/bcm2835/mmal-vchiq.c - create mode 100644 drivers/media/platform/bcm2835/mmal-vchiq.h - create mode 100644 drivers/mfd/rpisense-core.c - create mode 100644 drivers/misc/bcm2835_smi.c - create mode 100644 drivers/misc/vc04_services/Kconfig - create mode 100644 drivers/misc/vc04_services/Makefile - create mode 100644 drivers/misc/vc04_services/interface/vchi/connections/connection.h - create mode 100644 drivers/misc/vc04_services/interface/vchi/message_drivers/message.h - create mode 100644 drivers/misc/vc04_services/interface/vchi/vchi.h - create mode 100644 drivers/misc/vc04_services/interface/vchi/vchi_cfg.h - create mode 100644 drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h - create mode 100644 drivers/misc/vc04_services/interface/vchi/vchi_common.h - create mode 100644 drivers/misc/vc04_services/interface/vchi/vchi_mh.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.c - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_killable.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c - create mode 100644 drivers/mmc/host/bcm2835-mmc.c - create mode 100644 drivers/mmc/host/bcm2835-sdhost.c - create mode 100644 drivers/mtd/nand/bcm2835_smi_nand.c - create mode 100644 drivers/of/configfs.c - create mode 100644 drivers/staging/media/lirc/lirc_rpi.c - create mode 100644 drivers/thermal/bcm2835-thermal.c - create mode 100644 drivers/usb/gadget/file_storage.c - create mode 100644 drivers/usb/host/dwc_common_port/Makefile - create mode 100644 drivers/usb/host/dwc_common_port/Makefile.fbsd - create mode 100644 drivers/usb/host/dwc_common_port/Makefile.linux - create mode 100644 drivers/usb/host/dwc_common_port/changes.txt - create mode 100644 drivers/usb/host/dwc_common_port/doc/doxygen.cfg - create mode 100644 drivers/usb/host/dwc_common_port/dwc_cc.c - create mode 100644 drivers/usb/host/dwc_common_port/dwc_cc.h - create mode 100644 drivers/usb/host/dwc_common_port/dwc_common_fbsd.c - create mode 100644 drivers/usb/host/dwc_common_port/dwc_common_linux.c - create mode 100644 drivers/usb/host/dwc_common_port/dwc_common_nbsd.c - create mode 100644 drivers/usb/host/dwc_common_port/dwc_crypto.c - create mode 100644 drivers/usb/host/dwc_common_port/dwc_crypto.h - create mode 100644 drivers/usb/host/dwc_common_port/dwc_dh.c - create mode 100644 drivers/usb/host/dwc_common_port/dwc_dh.h - create mode 100644 drivers/usb/host/dwc_common_port/dwc_list.h - create mode 100644 drivers/usb/host/dwc_common_port/dwc_mem.c - create mode 100644 drivers/usb/host/dwc_common_port/dwc_modpow.c - create mode 100644 drivers/usb/host/dwc_common_port/dwc_modpow.h - create mode 100644 drivers/usb/host/dwc_common_port/dwc_notifier.c - create mode 100644 drivers/usb/host/dwc_common_port/dwc_notifier.h - create mode 100644 drivers/usb/host/dwc_common_port/dwc_os.h - create mode 100644 drivers/usb/host/dwc_common_port/usb.h - create mode 100644 drivers/usb/host/dwc_otg/Makefile - create mode 100644 drivers/usb/host/dwc_otg/doc/doxygen.cfg - create mode 100644 drivers/usb/host/dwc_otg/dummy_audio.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_cfi_common.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_adp.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_adp.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_attr.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_attr.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_cfi.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_cfi.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_cil.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_cil.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_core_if.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_dbg.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_driver.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_driver.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_hcd.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_hcd.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_os_dep.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_pcd.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_pcd.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_regs.h - create mode 100644 drivers/usb/host/dwc_otg/test/Makefile - create mode 100644 drivers/usb/host/dwc_otg/test/dwc_otg_test.pm - create mode 100644 drivers/usb/host/dwc_otg/test/test_mod_param.pl - create mode 100644 drivers/usb/host/dwc_otg/test/test_sysfs.pl - create mode 100644 drivers/video/backlight/rpi_backlight.c - create mode 100644 drivers/video/fbdev/bcm2708_fb.c - create mode 100644 drivers/video/fbdev/rpisense-fb.c - create mode 100644 include/dt-bindings/clock/bcm2835-aux.h - create mode 100644 include/linux/broadcom/bcm2835_smi.h - create mode 100644 include/linux/broadcom/vc_cma.h - create mode 100644 include/linux/broadcom/vc_mem.h - create mode 100644 include/linux/broadcom/vmcs_sm_ioctl.h - create mode 100644 include/linux/mfd/rpisense/core.h - create mode 100644 include/linux/mfd/rpisense/framebuffer.h - create mode 100644 include/linux/mfd/rpisense/joystick.h - create mode 100644 include/linux/platform_data/bcm2708.h - create mode 100644 include/linux/platform_data/dma-bcm2708.h - create mode 100644 include/uapi/drm/vc4_drm.h - create mode 100755 scripts/knlinfo - create mode 100755 scripts/mkknlimg - create mode 100755 sound/arm/bcm2835-ctl.c - create mode 100755 sound/arm/bcm2835-pcm.c - create mode 100755 sound/arm/bcm2835-vchiq.c - create mode 100644 sound/arm/bcm2835.c - create mode 100755 sound/arm/bcm2835.h - create mode 100644 sound/arm/vc_vchi_audioserv_defs.h - create mode 100644 sound/soc/bcm/hifiberry_amp.c - create mode 100644 sound/soc/bcm/hifiberry_dac.c - create mode 100644 sound/soc/bcm/hifiberry_dacplus.c - create mode 100644 sound/soc/bcm/hifiberry_digi.c - create mode 100644 sound/soc/bcm/iqaudio-dac.c - create mode 100644 sound/soc/bcm/raspidac3.c - create mode 100644 sound/soc/bcm/rpi-dac.c - create mode 100644 sound/soc/bcm/rpi-proto.c - create mode 100644 sound/soc/codecs/pcm1794a.c - create mode 100644 sound/soc/codecs/pcm5102a.c - create mode 100644 sound/soc/codecs/tas5713.c - create mode 100644 sound/soc/codecs/tas5713.h - --- -2.5.0 - From 23b133903a357066adb48bceb76aba8bd30d8c66 Mon Sep 17 00:00:00 2001 From: Steve Glendinning Date: Thu, 19 Feb 2015 18:47:12 +0000 -Subject: [PATCH 001/202] smsx95xx: fix crimes against truesize +Subject: [PATCH 001/212] smsx95xx: fix crimes against truesize smsc95xx is adjusting truesize when it shouldn't, and following a recent patch from Eric this is now triggering warnings. @@ -1129,7 +42,7 @@ index 66b3ab9..b544181 From e7515ee9af1d150d50b55d8f8f53d735a23cb253 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 17 Apr 2015 16:58:45 +0100 -Subject: [PATCH 002/202] smsc95xx: Disable turbo mode by default +Subject: [PATCH 002/212] smsc95xx: Disable turbo mode by default --- drivers/net/usb/smsc95xx.c | 2 +- @@ -1155,7 +68,7 @@ index b544181..9c0da18 100755 From 849ff5353023c95d40040ecfd279e216074b3d1c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Jun 2014 13:42:01 +0100 -Subject: [PATCH 003/202] vmstat: Workaround for issue where dirty page count +Subject: [PATCH 003/212] vmstat: Workaround for issue where dirty page count goes negative See: @@ -1188,7 +101,7 @@ index 3e5d907..2539068 100644 From d29365673ed37e7688bd3f35c4a5ad719f878190 Mon Sep 17 00:00:00 2001 From: Robert Tiemann Date: Mon, 20 Jul 2015 11:01:25 +0200 -Subject: [PATCH 004/202] BCM2835_DT: Fix I2S register map +Subject: [PATCH 004/212] BCM2835_DT: Fix I2S register map --- Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt | 4 ++-- @@ -1248,7 +161,7 @@ index aef64de..864a3ef 100644 From c891de13b385afb3e4b2c97ac5bbea7e2d97252f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 4 Dec 2015 17:41:50 +0000 -Subject: [PATCH 005/202] irq-bcm2836: Prevent spurious interrupts, and trap +Subject: [PATCH 005/212] irq-bcm2836: Prevent spurious interrupts, and trap them early The old arch-specific IRQ macros included a dsb to ensure the @@ -1285,7 +198,7 @@ index f687082..4cd8ebe 100644 From 60f7ee79b375d72f5ef46ec542b925b1f1428bad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 12 Jun 2015 19:01:05 +0200 -Subject: [PATCH 006/202] irqchip: bcm2835: Add FIQ support +Subject: [PATCH 006/212] irqchip: bcm2835: Add FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1420,7 +333,7 @@ index bf9cc5f..3f601f9 100644 From 890dccbb9c60be182adefb61b3ede805ccba1a91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 23 Oct 2015 16:26:55 +0200 -Subject: [PATCH 007/202] irqchip: irq-bcm2835: Add 2836 FIQ support +Subject: [PATCH 007/212] irqchip: irq-bcm2835: Add 2836 FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1522,7 +435,7 @@ index 3f601f9..20deb28 100644 From 9a27662aac88f95b3de1915333a0265614f88a0d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 30 Jun 2015 14:12:42 +0100 -Subject: [PATCH 008/202] serial: 8250: Don't crash when nr_uarts is 0 +Subject: [PATCH 008/212] serial: 8250: Don't crash when nr_uarts is 0 --- drivers/tty/serial/8250/8250_core.c | 2 ++ @@ -1548,7 +461,7 @@ index 3912646..b51a59c 100644 From 4d7ff05e4d4d8d8adb4e7b4dd5fa8f63ae2be0f6 Mon Sep 17 00:00:00 2001 From: notro Date: Thu, 10 Jul 2014 13:59:47 +0200 -Subject: [PATCH 009/202] pinctrl-bcm2835: Set base to 0 give expected gpio +Subject: [PATCH 009/212] pinctrl-bcm2835: Set base to 0 give expected gpio numbering Signed-off-by: Noralf Tronnes @@ -1576,7 +489,7 @@ index 2e6ca69..62cc363 100644 From 969dc44a700e1be13c3f80445d40c1fe51cc4370 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 24 Feb 2015 13:40:50 +0000 -Subject: [PATCH 010/202] pinctrl-bcm2835: Fix interrupt handling for GPIOs +Subject: [PATCH 010/212] pinctrl-bcm2835: Fix interrupt handling for GPIOs 28-31 and 46-53 Contrary to the documentation, the BCM2835 GPIO controller actually has @@ -1728,7 +641,7 @@ index 62cc363..ab345f4 100644 From b949246bf51fa852bad45136cdd6bcd91a29539e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 26 Feb 2015 09:58:22 +0000 -Subject: [PATCH 011/202] pinctrl-bcm2835: Only request the interrupts listed +Subject: [PATCH 011/212] pinctrl-bcm2835: Only request the interrupts listed in the DTB Although the GPIO controller can generate three interrupts (four counting @@ -1761,7 +674,7 @@ index ab345f4..640e3b0 100644 From 19bcdacc5a67abe6a2d604a39ddfed5a54c77b2e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Jun 2015 14:10:44 +0100 -Subject: [PATCH 012/202] spi-bcm2835: Support pin groups other than 7-11 +Subject: [PATCH 012/212] spi-bcm2835: Support pin groups other than 7-11 The spi-bcm2835 driver automatically uses GPIO chip-selects due to some unreliability of the native ones. In doing so it chooses the @@ -1848,7 +761,7 @@ index cf04960..a2b1f45 100644 From 7ce5cbfba6e930c2178f342a4390972f1efd75ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Wed, 3 Jun 2015 12:26:13 +0200 -Subject: [PATCH 013/202] ARM: bcm2835: Set Serial number and Revision +Subject: [PATCH 013/212] ARM: bcm2835: Set Serial number and Revision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1912,7 +825,7 @@ index 0f7b9ea..1e6f1cf 100644 From 569baa856d805e594011f2d1444b6849c291544d Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 16:44:05 +0200 -Subject: [PATCH 014/202] bcm2835-i2s: get base address for DMA from devicetree +Subject: [PATCH 014/212] bcm2835-i2s: get base address for DMA from devicetree Code copied from spi-bcm2835. Get physical address from devicetree instead of using hardcoded constant. @@ -1983,7 +896,7 @@ index 8c435be..0bc4f47 100644 From c61a7aef15a1aee86e1de59dca2ad7002995f9cf Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:21:16 +0200 -Subject: [PATCH 015/202] bcm2835-i2s: add 24bit support, update bclk_ratio to +Subject: [PATCH 015/212] bcm2835-i2s: add 24bit support, update bclk_ratio to more correct values Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -2068,7 +981,7 @@ index 0bc4f47..cf60390 100644 From e2a75ce0e2b6319150e14401f9822adba7895c9c Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:25:51 +0200 -Subject: [PATCH 016/202] bcm2835-i2s: setup clock only if CPU is clock master +Subject: [PATCH 016/212] bcm2835-i2s: setup clock only if CPU is clock master Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -2129,7 +1042,7 @@ index cf60390..4ac4e92 100644 From 433841fc5958e1ddbd503b579a022fb67defd74b Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:49:51 +0200 -Subject: [PATCH 017/202] bcm2835-i2s: Eliminate debugfs directory error +Subject: [PATCH 017/212] bcm2835-i2s: Eliminate debugfs directory error Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -2171,7 +1084,7 @@ index 4ac4e92..aab3df9 100644 From 7b4481818fe920904457496db40d59dd3d0a83bb Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:35:20 +0200 -Subject: [PATCH 018/202] bcm2835-i2s: Register PCM device +Subject: [PATCH 018/212] bcm2835-i2s: Register PCM device Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -2240,7 +1153,7 @@ index aab3df9..0e5c787 100644 From 027ba808e84799c97ae1c64f8424ac8eb7235cc4 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:55:21 +0200 -Subject: [PATCH 019/202] bcm2835-i2s: Enable MMAP support via a DT property +Subject: [PATCH 019/212] bcm2835-i2s: Enable MMAP support via a DT property Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -2290,7 +1203,7 @@ index 0e5c787..04c1d13 100644 From 8a349301238aabb40c9da5ca8c8492b6b8d146f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Thu, 9 Apr 2015 12:34:11 +0200 -Subject: [PATCH 020/202] dmaengine: bcm2835: Add slave dma support +Subject: [PATCH 020/212] dmaengine: bcm2835: Add slave dma support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -2616,7 +1529,7 @@ index 996c4b0..b278c66 100644 From 290f55520c62025da992d6be0002fc1e3738cfdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sat, 3 Oct 2015 15:58:59 +0200 -Subject: [PATCH 021/202] dmaengine: bcm2835: set residue_granularity field +Subject: [PATCH 021/212] dmaengine: bcm2835: set residue_granularity field MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -2651,7 +1564,7 @@ index b278c66..696fb30 100644 From 6f56fff39c811953809b011f59c49a2122c4d173 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sat, 3 Oct 2015 22:22:55 +0200 -Subject: [PATCH 022/202] dmaengine: bcm2835: Load driver early and support +Subject: [PATCH 022/212] dmaengine: bcm2835: Load driver early and support legacy API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -2757,7 +1670,7 @@ index 696fb30..5db0a95 100644 From df03f00c5e21559185b5a61ea5e8238e10959ab1 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sat, 10 Oct 2015 12:29:18 +0200 -Subject: [PATCH 023/202] bcm2835-dma: Fix dreq not set for slave transfers +Subject: [PATCH 023/212] bcm2835-dma: Fix dreq not set for slave transfers Set dreq to slave_id if it is not set like in bcm2708-dmaengine. --- @@ -2784,7 +1697,7 @@ index 5db0a95..fe1fd60 100644 From 052c2005b6ecedc5abad86632f5781adda310aa7 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 12:28:30 +0200 -Subject: [PATCH 024/202] bcm2835-dma: Limit cyclic transfers on lite channels +Subject: [PATCH 024/212] bcm2835-dma: Limit cyclic transfers on lite channels to 32k Transfers larger than 32k cause repeated clicking with I2S soundcards. @@ -2827,7 +1740,7 @@ index fe1fd60..0adc347 100644 From a72021ae99021409319d552dad744572b20febfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sat, 15 Aug 2015 20:50:02 +0200 -Subject: [PATCH 025/202] bcm2835: Add support for uart1 +Subject: [PATCH 025/212] bcm2835: Add support for uart1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -2890,7 +1803,7 @@ index 1e6f1cf..ea36eec 100644 From 4364707caa6d3d9edf84fa8469a04f33e1ba5d76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:21:20 +0200 -Subject: [PATCH 026/202] firmware: bcm2835: Add missing property tags +Subject: [PATCH 026/212] firmware: bcm2835: Add missing property tags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -2958,7 +1871,7 @@ index c07d74a..525816d 100644 From cd721670ab8c729d0c62e99a1d173c2575b63282 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 12 May 2013 12:24:19 +0100 -Subject: [PATCH 027/202] Main bcm2708/bcm2709 linux port +Subject: [PATCH 027/212] Main bcm2708/bcm2709 linux port MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -5479,7 +4392,7 @@ index 8673ffe..ad22ebb 100644 From 812484cc27980e3351360200478e7044de983f40 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 11 Nov 2015 21:01:15 +0000 -Subject: [PATCH 028/202] squash: include ARCH_BCM2708 / ARCH_BCM2709 +Subject: [PATCH 028/212] squash: include ARCH_BCM2708 / ARCH_BCM2709 --- drivers/char/hw_random/Kconfig | 2 +- @@ -5637,7 +4550,7 @@ index 6a834e1..c5070ae 100644 From 7efc2851a46faa1aceda5f6ec255d0e814812ccf Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 May 2013 19:46:17 +0100 -Subject: [PATCH 029/202] Add dwc_otg driver +Subject: [PATCH 029/212] Add dwc_otg driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -66622,7 +65535,7 @@ index 0000000..cdc9963 From d3b7394edae550f295e185be4651ed43529e7042 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 17:06:34 +0100 -Subject: [PATCH 030/202] bcm2708 framebuffer driver +Subject: [PATCH 030/212] bcm2708 framebuffer driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -70090,7 +69003,7 @@ index 3c14e43..7626beb 100644 From 99b7c3cfd05f5898e96d7c44c5970880f2c0cd16 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:22:53 +0100 -Subject: [PATCH 031/202] dmaengine: Add support for BCM2708 +Subject: [PATCH 031/212] dmaengine: Add support for BCM2708 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -70716,7 +69629,7 @@ index 0000000..99cc7fd From 65c8aadfd88010efb2d2a2821fea7aac978b6c78 Mon Sep 17 00:00:00 2001 From: gellert Date: Fri, 15 Aug 2014 16:35:06 +0100 -Subject: [PATCH 032/202] MMC: added alternative MMC driver +Subject: [PATCH 032/212] MMC: added alternative MMC driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -72420,7 +71333,7 @@ index 0000000..43aed6e From c58bec0d84082837415562c6567396e9e5ba62f7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 25 Mar 2015 17:49:47 +0000 -Subject: [PATCH 033/202] Adding bcm2835-sdhost driver, and an overlay to +Subject: [PATCH 033/212] Adding bcm2835-sdhost driver, and an overlay to enable it BCM2835 has two SD card interfaces. This driver uses the other one. @@ -74453,7 +73366,7 @@ index 0000000..da089985 From 36d8db53953365eecdf56695944e9f9919634de0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:31:47 +0100 -Subject: [PATCH 034/202] cma: Add vc_cma driver to enable use of CMA +Subject: [PATCH 034/212] cma: Add vc_cma driver to enable use of CMA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -75802,7 +74715,7 @@ index 0000000..be2819d From 2dd634f97c4fb77d9e81be289a8da29c390a0309 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 26 Mar 2012 22:15:50 +0100 -Subject: [PATCH 035/202] bcm2708: alsa sound driver +Subject: [PATCH 035/212] bcm2708: alsa sound driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -78506,7 +77419,7 @@ index 0000000..af3e6eb From 112360f76c91c892f1a29825eb2807bbf86ac67d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 2 Jul 2013 23:42:01 +0100 -Subject: [PATCH 036/202] bcm2708 vchiq driver +Subject: [PATCH 036/212] bcm2708 vchiq driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -91817,7 +90730,7 @@ index 0000000..b6bfa21 From b0acaf43055bacef7918c835517ff6ea7da26e83 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 16:07:06 +0100 -Subject: [PATCH 037/202] vc_mem: Add vc_mem driver +Subject: [PATCH 037/212] vc_mem: Add vc_mem driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -92828,7 +91741,7 @@ index 0000000..20a4753 From 5f05accd033e4b032f64717a0276d7174f697919 Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Tue, 22 Jul 2014 15:41:04 +0100 -Subject: [PATCH 038/202] vcsm: VideoCore shared memory service for BCM2835 +Subject: [PATCH 038/212] vcsm: VideoCore shared memory service for BCM2835 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -97250,7 +96163,7 @@ index 0000000..334f36d From 1ee3b49a62efe1416a6b40fb5c6032288f3d2b08 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Fri, 21 Aug 2015 23:14:48 +0100 -Subject: [PATCH 039/202] Add /dev/gpiomem device for rootless user GPIO access +Subject: [PATCH 039/212] Add /dev/gpiomem device for rootless user GPIO access Signed-off-by: Luke Wren @@ -97567,7 +96480,7 @@ index 0000000..911f5b7 From e19c303e7d54d986e0bd3e47107a83e30329c1d0 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:14:45 +0100 -Subject: [PATCH 040/202] Add SMI driver +Subject: [PATCH 040/212] Add SMI driver Signed-off-by: Luke Wren --- @@ -99524,7 +98437,7 @@ index 0000000..ee3a75e From c0fe401b61ae4d002f6fc84438ce69c5917c580a Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:16:10 +0100 -Subject: [PATCH 041/202] Add SMI NAND driver +Subject: [PATCH 041/212] Add SMI NAND driver Signed-off-by: Luke Wren --- @@ -99896,7 +98809,7 @@ index 0000000..b747326 From 0bc00c67aea43098c7b066e7b123379b260cc7de Mon Sep 17 00:00:00 2001 From: Aron Szabo Date: Sat, 16 Jun 2012 12:15:55 +0200 -Subject: [PATCH 042/202] lirc: added support for RaspberryPi GPIO +Subject: [PATCH 042/212] lirc: added support for RaspberryPi GPIO lirc_rpi: Use read_current_timer to determine transmitter delay. Thanks to jjmz and others See: https://github.com/raspberrypi/linux/issues/525 @@ -100751,7 +99664,7 @@ index 0000000..fb69624 From 007ef35b2cf5d8a0197e81e712b38fb72cebae2e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:49:20 +0100 -Subject: [PATCH 043/202] Add cpufreq driver +Subject: [PATCH 043/212] Add cpufreq driver Signed-off-by: popcornmix --- @@ -101019,7 +99932,7 @@ index 0000000..3eb9e93 From 9f251fdbaaf3bd895c2901413748679d68a0c644 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 19:24:24 +0000 -Subject: [PATCH 044/202] Added hwmon/thermal driver for reporting core +Subject: [PATCH 044/212] Added hwmon/thermal driver for reporting core temperature. Thanks Dorian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -101223,7 +100136,7 @@ index 0000000..08d8dc7 From 28a4399bf03eeb3ec5b7b56c9445b296e1427665 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 15:44:08 +0100 -Subject: [PATCH 045/202] Add Chris Boot's i2c driver +Subject: [PATCH 045/212] Add Chris Boot's i2c driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -101869,7 +100782,7 @@ index 0000000..85f411c From 75804edaed6c45d813dcee866d39445130d82539 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:27:06 +0200 -Subject: [PATCH 046/202] char: broadcom: Add vcio module +Subject: [PATCH 046/212] char: broadcom: Add vcio module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -102101,7 +101014,7 @@ index 0000000..c19bc20 From 80b7c5e2cc3d633b3d3a1afbdb537e2ccfe906c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:25:01 +0200 -Subject: [PATCH 047/202] firmware: bcm2835: Support ARCH_BCM270x +Subject: [PATCH 047/212] firmware: bcm2835: Support ARCH_BCM270x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -102213,7 +101126,7 @@ index dd506cd3..b980d53 100644 From e15fddd4332bd3a762d0feef48ff2b5e3df10af0 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Wed, 30 Jan 2013 12:45:18 +0000 -Subject: [PATCH 048/202] bcm2835: add v4l2 camera device +Subject: [PATCH 048/212] bcm2835: add v4l2 camera device - Supports raw YUV capture, preview, JPEG and H264. - Uses videobuf2 for data transfer, using dma_buf. @@ -109604,7 +108517,7 @@ index 0000000..9d1d11e From 91e833ab0b220bb0bb810bb9605b0a03cd76baa8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 May 2015 09:00:42 +0100 -Subject: [PATCH 049/202] scripts: Add mkknlimg and knlinfo scripts from tools +Subject: [PATCH 049/212] scripts: Add mkknlimg and knlinfo scripts from tools repo The Raspberry Pi firmware looks for a trailer on the kernel image to @@ -110075,7 +108988,7 @@ index 0000000..3998d43 From 918b9e451bbaebb775725a292fd3b6e3d4cf804f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 5 Dec 2014 17:26:26 +0000 -Subject: [PATCH 050/202] fdt: Add support for the CONFIG_CMDLINE_EXTEND option +Subject: [PATCH 050/212] fdt: Add support for the CONFIG_CMDLINE_EXTEND option --- drivers/of/fdt.c | 29 ++++++++++++++++++++++++----- @@ -110136,7 +109049,7 @@ index 655f79d..fdc4501 100644 From d1fdaf68df66e82bea1081b490ebeea414d69203 Mon Sep 17 00:00:00 2001 From: notro Date: Wed, 9 Jul 2014 14:46:08 +0200 -Subject: [PATCH 051/202] BCM2708: Add core Device Tree support +Subject: [PATCH 051/212] BCM2708: Add core Device Tree support Add the bare minimum needed to boot BCM2708 from a Device Tree. @@ -114868,7 +113781,7 @@ index 0000000..66a98f6 From da7cdef4979282624e0e7527c3c8334a59f39676 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sat, 15 Aug 2015 20:47:07 +0200 -Subject: [PATCH 052/202] bcm2835: Match with BCM2708 Device Trees +Subject: [PATCH 052/212] bcm2835: Match with BCM2708 Device Trees MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -115392,7 +114305,7 @@ index 864a3ef..3256bff 100644 From b28366cb5b514e5c59586f9a5509d3afff5337d5 Mon Sep 17 00:00:00 2001 From: Siarhei Siamashka Date: Mon, 17 Jun 2013 13:32:11 +0300 -Subject: [PATCH 053/202] fbdev: add FBIOCOPYAREA ioctl +Subject: [PATCH 053/212] fbdev: add FBIOCOPYAREA ioctl Based on the patch authored by Ali Gholami Rudi at https://lkml.org/lkml/2009/7/13/153 @@ -115488,10 +114401,10 @@ index fb795c3..fa72af0 100644 2.5.0 -From a4c5960d433cb5f977a96b7311c950ca03c1df66 Mon Sep 17 00:00:00 2001 +From e68c4a4b1033c1d9aeb528d7d47c2b9ca038e7c2 Mon Sep 17 00:00:00 2001 From: Harm Hanemaaijer Date: Thu, 20 Jun 2013 20:21:39 +0200 -Subject: [PATCH 054/202] Speed up console framebuffer imageblit function +Subject: [PATCH 054/212] Speed up console framebuffer imageblit function Especially on platforms with a slower CPU but a relatively high framebuffer fill bandwidth, like current ARM devices, the existing @@ -115703,10 +114616,10 @@ index a2bb276..436494f 100644 2.5.0 -From 77c2af00464f6206afc0ef09e5549c7cc2c3b27f Mon Sep 17 00:00:00 2001 +From 17639169a94391cb42ca31e7237cabebf1b12422 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 17:26:38 +0000 -Subject: [PATCH 055/202] Allow mac address to be set in smsc95xx +Subject: [PATCH 055/212] Allow mac address to be set in smsc95xx Signed-off-by: popcornmix --- @@ -115800,10 +114713,10 @@ index 9c0da18..3244a90 100755 2.5.0 -From 3bbc521705e696bdde9dc12d65ff87a2ed74c1c0 Mon Sep 17 00:00:00 2001 +From 5a93579be93ad956dae57d474401333ae97590ea Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 8 May 2013 11:46:50 +0100 -Subject: [PATCH 056/202] enabling the realtime clock 1-wire chip DS1307 and +Subject: [PATCH 056/212] enabling the realtime clock 1-wire chip DS1307 and 1-wire on GPIO4 (as a module) 1-wire: Add support for configuring pin for w1-gpio kernel module @@ -116056,10 +114969,10 @@ index d58594a..feae942 100644 2.5.0 -From ca0fd948924880e50601f4c0661d0dca53e48200 Mon Sep 17 00:00:00 2001 +From daf3cfd1062a6fc173f4dc2475f1c07b52cd6cae Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Dec 2013 22:16:19 +0000 -Subject: [PATCH 057/202] config: Enable CONFIG_MEMCG, but leave it disabled +Subject: [PATCH 057/212] config: Enable CONFIG_MEMCG, but leave it disabled (due to memory cost). Enable with cgroup_enable=memory. --- @@ -116111,10 +115024,10 @@ index fb1ecfd..888d308 100644 2.5.0 -From 363f2959e5b15d1aa267f8bb8931317df72a85d9 Mon Sep 17 00:00:00 2001 +From b7437ee59d30a334efa61158f1a579307b2bf72d Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:59:51 +0100 -Subject: [PATCH 058/202] ASoC: Add support for PCM5102A codec +Subject: [PATCH 058/212] ASoC: Add support for PCM5102A codec Some definitions to support the PCM5102A codec by Texas Instruments. @@ -116250,10 +115163,10 @@ index 0000000..7c6598e 2.5.0 -From b1aeaf598edd4e11a93192add17fea1d33ea8f8c Mon Sep 17 00:00:00 2001 +From d4500551e35ce29d539316941347f78d5bbb4e9a Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 19:19:08 +0100 -Subject: [PATCH 059/202] ASoC: Add support for HifiBerry DAC +Subject: [PATCH 059/212] ASoC: Add support for HifiBerry DAC This adds a machine driver for the HifiBerry DAC. It is a sound card that can @@ -116426,10 +115339,10 @@ index 0000000..3ab0f47 2.5.0 -From 0c5411c9815d94c0479f377f6d51c09dbd5cebb1 Mon Sep 17 00:00:00 2001 +From f34036f9682e66adfb024a2e2a4c411c9abc85c3 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 19:21:34 +0100 -Subject: [PATCH 060/202] ASoC: Add support for Rpi-DAC +Subject: [PATCH 060/212] ASoC: Add support for Rpi-DAC --- sound/soc/bcm/Kconfig | 7 +++ @@ -116719,10 +115632,10 @@ index 0000000..afe1b41 2.5.0 -From 17189fc28617ee5e6d41c050a7a196d66b30cfce Mon Sep 17 00:00:00 2001 +From 1ddb922071cbe8a3f747a4971538d983a1b1715a Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:41:23 +0100 -Subject: [PATCH 061/202] ASoC: wm8804: Implement MCLK configuration options, +Subject: [PATCH 061/212] ASoC: wm8804: Implement MCLK configuration options, add 32bit support WM8804 can run with PLL frequencies of 256xfs and 128xfs for most sample rates. At 192kHz only 128xfs is supported. The existing driver selects 128xfs automatically for some lower samples rates. By using an @@ -116765,10 +115678,10 @@ index 8d91470..5795fb1 100644 2.5.0 -From 94f1ed18022a893a76a0becdd8debf50a9b06597 Mon Sep 17 00:00:00 2001 +From d131f2daebd4eb4ece7b6db2e3f3a1180b94c2c2 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:42:08 +0100 -Subject: [PATCH 062/202] ASoC: BCM:Add support for HiFiBerry Digi. Driver is +Subject: [PATCH 062/212] ASoC: BCM:Add support for HiFiBerry Digi. Driver is based on the patched WM8804 driver. Signed-off-by: Daniel Matuschek @@ -117058,10 +115971,10 @@ index 0000000..80732b8 2.5.0 -From 32bb0f6f0f2b54aedb5db917682e102e75705911 Mon Sep 17 00:00:00 2001 +From b0f5c51bb26e93f672217fcd472da7f2b2c88e6b Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Thu, 16 Jan 2014 07:36:35 +0100 -Subject: [PATCH 063/202] ASoC: wm8804: Set idle_bias_off to false Idle bias +Subject: [PATCH 063/212] ASoC: wm8804: Set idle_bias_off to false Idle bias has been change to remove warning on driver startup Signed-off-by: Daniel Matuschek @@ -117086,10 +115999,10 @@ index 5795fb1..c846716 100644 2.5.0 -From 0b6443f1daafad5f4e1083d211e7f91ad0cc1ab9 Mon Sep 17 00:00:00 2001 +From 152ebb776340c3073c0a32106167a7fe467d3456 Mon Sep 17 00:00:00 2001 From: Gordon Garrity Date: Sat, 8 Mar 2014 16:56:57 +0000 -Subject: [PATCH 064/202] Add IQaudIO Sound Card support for Raspberry Pi +Subject: [PATCH 064/212] Add IQaudIO Sound Card support for Raspberry Pi Set a limit of 0dB on Digital Volume Control @@ -117275,10 +116188,10 @@ index 0000000..37038d4 2.5.0 -From 2ea838c17bd5bd0e599aa0cb1063578e15d4148e Mon Sep 17 00:00:00 2001 +From c37587c1c15e2f2f8bad810115c0e32cc0d4093f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 14 Jul 2014 22:02:09 +0100 -Subject: [PATCH 065/202] hid: Reduce default mouse polling interval to 60Hz +Subject: [PATCH 065/212] hid: Reduce default mouse polling interval to 60Hz Reduces overhead when using X --- @@ -117317,10 +116230,10 @@ index 5dd426f..9ae0cd5 100644 2.5.0 -From 226b2b79539d495f78cd33af2830bdd24c3c1aba Mon Sep 17 00:00:00 2001 +From f893beacf8b0975e20d0099d3a443ab5fb483db6 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 10:06:56 +0200 -Subject: [PATCH 066/202] Added support for HiFiBerry DAC+ +Subject: [PATCH 066/212] Added support for HiFiBerry DAC+ The driver is based on the HiFiBerry DAC driver. However HiFiBerry DAC+ uses a different codec chip (PCM5122), therefore a new driver is necessary. @@ -117518,10 +116431,10 @@ index 0000000..11e4f39 2.5.0 -From b680272f13777e2b9243b7f45e201e98368525ef Mon Sep 17 00:00:00 2001 +From b4d78cb8345c9d0ed833a765f3c90a2c4b83ba82 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 11:09:58 +0200 -Subject: [PATCH 067/202] Added driver for HiFiBerry Amp amplifier add-on board +Subject: [PATCH 067/212] Added driver for HiFiBerry Amp amplifier add-on board The driver contains a low-level hardware driver for the TAS5713 and the drivers for the Raspberry Pi I2S subsystem. @@ -118355,10 +117268,10 @@ index 0000000..8f019e0 2.5.0 -From 5a6c5da66860a98e64694592540b482d58b5565e Mon Sep 17 00:00:00 2001 +From 4ac6bff6336e2a6c482919e8dc39de114e9651cd Mon Sep 17 00:00:00 2001 From: Ryan Coe Date: Sat, 31 Jan 2015 18:25:49 -0700 -Subject: [PATCH 068/202] Update ds1307 driver for device-tree support +Subject: [PATCH 068/212] Update ds1307 driver for device-tree support Signed-off-by: Ryan Coe --- @@ -118388,10 +117301,10 @@ index aa705bb..1cb13fee 100644 2.5.0 -From 8c8c61de2e45aa9b2b190e6eaac941b6d6be3f3b Mon Sep 17 00:00:00 2001 +From f341ac7091d56c69c1b7cc0d3cffed6f8091f8d8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 Feb 2015 13:50:57 +0000 -Subject: [PATCH 069/202] BCM270x_DT: Add pwr_led, and the required "input" +Subject: [PATCH 069/212] BCM270x_DT: Add pwr_led, and the required "input" trigger The "input" trigger makes the associated GPIO an input. This is to support @@ -118573,10 +117486,10 @@ index fa359c7..4b25a1a 100644 2.5.0 -From d0787e89ceb690c63b2c93810088b293f81e3701 Mon Sep 17 00:00:00 2001 +From af6a88df92cf2a08abc429822f8c9309ecdb26a1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 27 Feb 2015 15:10:24 +0000 -Subject: [PATCH 070/202] enc28j60: Add device tree compatible string and an +Subject: [PATCH 070/212] enc28j60: Add device tree compatible string and an overlay --- @@ -118608,10 +117521,10 @@ index 86ea17e..a1b20c1 100644 2.5.0 -From d773339d21eb8ce28e60c24d5fff8e11cdca731b Mon Sep 17 00:00:00 2001 +From 32f267566e1a67e6170cb37a59a907e5b167600a Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 25 Mar 2015 09:26:17 +0100 -Subject: [PATCH 071/202] Add driver for rpi-proto +Subject: [PATCH 071/212] Add driver for rpi-proto Forward port of 3.10.x driver from https://github.com/koalo We are using a custom board and would like to use rpi 3.18.x @@ -118829,10 +117742,10 @@ index 0000000..c6e45a0 2.5.0 -From 5e4dce05393ec9a17ec6bdd7216fd59c91858545 Mon Sep 17 00:00:00 2001 +From cd9d2d406b40d4f03e7060e4795a64a31d14d41b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Apr 2015 17:16:29 +0100 -Subject: [PATCH 072/202] config: Add default configs +Subject: [PATCH 072/212] config: Add default configs --- arch/arm/configs/bcm2709_defconfig | 1254 +++++++++++++++++++++++++++++++++++ @@ -121376,10 +120289,10 @@ index 0000000..1d1b799 2.5.0 -From 8576c28c47db7c578b341c1d24687dafa196773c Mon Sep 17 00:00:00 2001 +From 9a8719a7ae9fa9145e24bdaee98da18798088ce8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Wed, 29 Apr 2015 17:24:02 +0200 -Subject: [PATCH 073/202] bcm2835: bcm2835_defconfig +Subject: [PATCH 073/212] bcm2835: bcm2835_defconfig MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -122808,10 +121721,10 @@ index 31cb073..fdb2e2a 100644 2.5.0 -From ab001f276e110d23fa4dc8f3cc92c1a1f0353d88 Mon Sep 17 00:00:00 2001 +From e84f83b441f7900f2a968ef2e72c644d76084c9a Mon Sep 17 00:00:00 2001 From: Gordon Hollingworth Date: Tue, 12 May 2015 14:47:56 +0100 -Subject: [PATCH 074/202] rpi-ft5406: Add touchscreen driver for pi LCD display +Subject: [PATCH 074/212] rpi-ft5406: Add touchscreen driver for pi LCD display Fix driver detection failure Check that the buffer response is non-zero meaning the touchscreen was detected @@ -123109,10 +122022,10 @@ index 0000000..b27dbee 2.5.0 -From 3c73c02eda8e46ed37bd3c2c0bfb04f57dd7e36a Mon Sep 17 00:00:00 2001 +From 3e7f9b8176516fb739849da22fc9f6ac3fd32678 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Oct 2014 11:47:53 +0100 -Subject: [PATCH 075/202] Improve __copy_to_user and __copy_from_user +Subject: [PATCH 075/212] Improve __copy_to_user and __copy_from_user performance Provide a __copy_from_user that uses memcpy. On BCM2708, use @@ -124654,10 +123567,10 @@ index 588bbc2..c29df92 100644 2.5.0 -From 7f13b0b4ba1c97ab275adc7e28cbc3d0b3cc9496 Mon Sep 17 00:00:00 2001 +From 5364f52d5d68ee0f2c8effff82a49cd0fd050e80 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 25 Jun 2015 12:16:11 +0100 -Subject: [PATCH 076/202] gpio-poweroff: Allow it to work on Raspberry Pi +Subject: [PATCH 076/212] gpio-poweroff: Allow it to work on Raspberry Pi The Raspberry Pi firmware manages the power-down and reboot process. To do this it installs a pm_power_off handler, causing @@ -124695,10 +123608,10 @@ index be3d81f..a030ae9 100644 2.5.0 -From 7b2216154dfe296734c656cfdb283b680f59c5d8 Mon Sep 17 00:00:00 2001 +From 463afd111279575433b3af7bdbe99470bba74dac Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 10:26:09 +0100 -Subject: [PATCH 077/202] spidev: Add "spidev" compatible string to silence +Subject: [PATCH 077/212] spidev: Add "spidev" compatible string to silence warning See: https://github.com/raspberrypi/linux/issues/1054 @@ -124722,10 +123635,10 @@ index d0e7dfc..57b0760 100644 2.5.0 -From 641ea248f2c0b9c25d5bd7d63fb5069e408cdf33 Mon Sep 17 00:00:00 2001 +From dbf49b74de1fdfb29ebd736bbc7234aed612e765 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 17:00:18 +0100 -Subject: [PATCH 078/202] scripts/dtc: Add overlay support +Subject: [PATCH 078/212] scripts/dtc: Add overlay support --- scripts/dtc/checks.c | 119 ++- @@ -129133,10 +128046,10 @@ index 5b8c7d5..86b7338 100644 2.5.0 -From 07b501bcd398e42152986d17f89e87492a19f184 Mon Sep 17 00:00:00 2001 +From 5f01f9a24681e7695fb2102af1d342fde0b97c2a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 14:32:47 +0100 -Subject: [PATCH 079/202] mfd: Add Raspberry Pi Sense HAT core driver +Subject: [PATCH 079/212] mfd: Add Raspberry Pi Sense HAT core driver --- drivers/input/joystick/Kconfig | 8 + @@ -130005,10 +128918,10 @@ index 0000000..56196dc 2.5.0 -From afc0fe2949f43d4b8364ba857712927d22b817c4 Mon Sep 17 00:00:00 2001 +From 77199aeb92c0c5ce60a151d59793b225864a0ce0 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Mon, 24 Aug 2015 16:03:47 +0100 -Subject: [PATCH 080/202] RaspiDAC3 support +Subject: [PATCH 080/212] RaspiDAC3 support Signed-off-by: Jan Grulich @@ -130259,10 +129172,10 @@ index 0000000..3cabf5b 2.5.0 -From 4e7bd302d0fdbe5082ffb98b65e8a21615139e1b Mon Sep 17 00:00:00 2001 +From cc2397b92c6c93e59cc331ce393bd176180924e0 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Mon, 24 Aug 2015 16:02:34 +0100 -Subject: [PATCH 081/202] tpa6130a2: Add headphone switch control +Subject: [PATCH 081/212] tpa6130a2: Add headphone switch control Signed-off-by: Jan Grulich --- @@ -130356,10 +129269,10 @@ index 11d85c5..3caaa17 100644 2.5.0 -From b81852e06a277d074d650b99c989d94b97032b57 Mon Sep 17 00:00:00 2001 +From 46913983d3c4cb9bea875cd370b860fb256ebfa5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 28 Sep 2015 23:38:59 +0100 -Subject: [PATCH 082/202] irq-bcm2835: Fix building with 2708 +Subject: [PATCH 082/212] irq-bcm2835: Fix building with 2708 --- drivers/irqchip/irq-bcm2835.c | 3 ++- @@ -130390,10 +129303,10 @@ index 20deb28..c02bf8a 100644 2.5.0 -From 03b563cf57afa7f62351c166a8ffa11e21e389dd Mon Sep 17 00:00:00 2001 +From 65ad56a247b8f7dccad07dab71035fddf6395a7c Mon Sep 17 00:00:00 2001 From: P33M Date: Wed, 21 Oct 2015 14:55:21 +0100 -Subject: [PATCH 083/202] rpi_display: add backlight driver and overlay +Subject: [PATCH 083/212] rpi_display: add backlight driver and overlay Add a mailbox-driven backlight controller for the Raspberry Pi DSI touchscreen display. Requires updated GPU firmware to recognise the @@ -130664,10 +129577,10 @@ index 525816d..b011489 100644 2.5.0 -From 655be6ee32fd0b627416423902daa49ee88d4bd5 Mon Sep 17 00:00:00 2001 +From cba1e5bd58f1906f211403a627927e0b264d9c77 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Mon, 16 Nov 2015 14:05:35 +0000 -Subject: [PATCH 084/202] bcm2835-dma: Fix up convert to DMA pool +Subject: [PATCH 084/212] bcm2835-dma: Fix up convert to DMA pool --- drivers/dma/bcm2835-dma.c | 36 ++++++++++++++++++++++++++---------- @@ -130755,10 +129668,10 @@ index 0adc347..985019b 100644 2.5.0 -From 40e2dfcb5df69ac004a74f891f4dd10663b96975 Mon Sep 17 00:00:00 2001 +From 543f475d54bec825bbc0a385ce353fdaae9ccd57 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 11 Nov 2015 11:38:59 +0000 -Subject: [PATCH 085/202] scripts: Multi-platform support for mkknlimg and +Subject: [PATCH 085/212] scripts: Multi-platform support for mkknlimg and knlinfo The firmware uses tags in the kernel trailer to choose which dtb file @@ -131010,10 +129923,10 @@ index 3998d43..005f404 100755 2.5.0 -From f51be11993cac67d260243b9b431ab849f298333 Mon Sep 17 00:00:00 2001 +From 056cc2def7c928c6a98851b1b77cb2dae362d56a Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 2 Mar 2015 13:01:12 -0800 -Subject: [PATCH 086/202] drm/vc4: Add suport for 3D rendering using the V3D +Subject: [PATCH 086/212] drm/vc4: Add suport for 3D rendering using the V3D engine. This is a squash of the out-of-tree development series. Since that @@ -136621,10 +135534,10 @@ index 0000000..499daae 2.5.0 -From 02646ea17c8c1546c6a9f105bc1d3b2436081fbb Mon Sep 17 00:00:00 2001 +From 2a813115480d8c0f081c8c6c0e549109cc0075dc Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 14 Oct 2015 11:32:14 -0700 -Subject: [PATCH 087/202] drm/vc4: Force HDMI to connected. +Subject: [PATCH 087/212] drm/vc4: Force HDMI to connected. For some reason on the downstream tree, the HPD GPIO isn't working. @@ -136650,10 +135563,10 @@ index da9a36d..d15c529 100644 2.5.0 -From 87206eacf724fcc455fd96f708a37add14cfeb6f Mon Sep 17 00:00:00 2001 +From cf791fbae0d308fb1f2186d18397790114a1e649 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 19 Oct 2015 08:23:18 -0700 -Subject: [PATCH 088/202] drm/vc4: bo cache locking fixes. +Subject: [PATCH 088/212] drm/vc4: bo cache locking fixes. Signed-off-by: Eric Anholt --- @@ -136805,10 +135718,10 @@ index 8cc89d1..c079b82 100644 2.5.0 -From 9cee9f05320fd9214241644ffa12e6ae809d45be Mon Sep 17 00:00:00 2001 +From db80c3ad79b1ac13b5f3a7f42ab2156fb555b11e Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 19 Oct 2015 08:29:41 -0700 -Subject: [PATCH 089/202] drm/vc4: bo cache locking cleanup. +Subject: [PATCH 089/212] drm/vc4: bo cache locking cleanup. Signed-off-by: Eric Anholt --- @@ -136903,10 +135816,10 @@ index af0fde6..acd360c 100644 2.5.0 -From 615b4d8b6714f768577c6b0133b3d83b5044fb0d Mon Sep 17 00:00:00 2001 +From 89ebd35d75433420fe36f43bb509fcaf45c8d646 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 19 Oct 2015 08:32:24 -0700 -Subject: [PATCH 090/202] drm/vc4: Use job_lock to protect seqno_cb_list. +Subject: [PATCH 090/212] drm/vc4: Use job_lock to protect seqno_cb_list. We're (mostly) not supposed to be using struct_mutex in drivers these days. @@ -136963,10 +135876,10 @@ index 361390b..b1853b2 100644 2.5.0 -From ecea4dcf1111398101b2bd775148f5997568559c Mon Sep 17 00:00:00 2001 +From 36c69d93940d99aba7de5f185c546f6a52da1e8d Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 19 Oct 2015 08:44:35 -0700 -Subject: [PATCH 091/202] drm/vc4: Drop struct_mutex around CL validation. +Subject: [PATCH 091/212] drm/vc4: Drop struct_mutex around CL validation. We were using it so that we could make sure that shader validation state didn't change while we were validating, but now shader @@ -137032,10 +135945,10 @@ index b1853b2..32f375a 100644 2.5.0 -From 08f1e2935400e320810fe13ea30c8785aa8e0fa4 Mon Sep 17 00:00:00 2001 +From 9f70809d45f431a273e1c51f33d9e058de218e10 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 19 Oct 2015 08:44:35 -0700 -Subject: [PATCH 092/202] drm/vc4: Drop struct_mutex around CL validation. +Subject: [PATCH 092/212] drm/vc4: Drop struct_mutex around CL validation. We were using it so that we could make sure that shader validation state didn't change while we were validating, but now shader @@ -137112,10 +136025,10 @@ index 32f375a..55551ea 100644 2.5.0 -From 0f3ada324bcc856ef5b0b7a6bfc49abed4aec9a7 Mon Sep 17 00:00:00 2001 +From fed19f5e27f3cf921df7d769dab2149a14eef879 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 20 Oct 2015 13:59:15 +0100 -Subject: [PATCH 093/202] drm/vc4: Add support for more display plane formats. +Subject: [PATCH 093/212] drm/vc4: Add support for more display plane formats. Signed-off-by: Eric Anholt --- @@ -137153,10 +136066,10 @@ index 65e5455..0f85eb5 100644 2.5.0 -From 9a0054b9bdc072f3893a5289359e4e0346115755 Mon Sep 17 00:00:00 2001 +From 36ffe6c581f978a23a52303240104d8271841396 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 23 Oct 2015 12:31:56 +0100 -Subject: [PATCH 094/202] drm/vc4: No need to stop the stopped threads. +Subject: [PATCH 094/212] drm/vc4: No need to stop the stopped threads. This was leftover debug code from the hackdriver. We never submit unless the thread is already idle. @@ -137185,10 +136098,10 @@ index 55551ea..eeb0925 100644 2.5.0 -From 28d030c3811a6e22dcb05bea7780efac5cfbe0cb Mon Sep 17 00:00:00 2001 +From 34edb58810f0250eb4ef20c63a3c54d2e10aaf5a Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 23 Oct 2015 12:33:43 +0100 -Subject: [PATCH 095/202] drm/vc4: Remove extra barrier()s aroudn CTnCA/CTnEA +Subject: [PATCH 095/212] drm/vc4: Remove extra barrier()s aroudn CTnCA/CTnEA setup. The writel() that these expand to already does barriers. @@ -137224,10 +136137,10 @@ index eeb0925..0cea723 100644 2.5.0 -From 7ab1ee700c591062f73f07fa7927691005a253f9 Mon Sep 17 00:00:00 2001 +From ffa05b4688ba9471d4f1825047428e73f3226abd Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 23 Oct 2015 14:57:22 +0100 -Subject: [PATCH 096/202] drm/vc4: Fix a typo in a V3D debug register. +Subject: [PATCH 096/212] drm/vc4: Fix a typo in a V3D debug register. Signed-off-by: Eric Anholt --- @@ -137265,10 +136178,10 @@ index b9cb7cf..cf35f58 100644 2.5.0 -From 2af587ae7ee2665dfe7d927f6fc5605afae1d2fe Mon Sep 17 00:00:00 2001 +From 0d927d46afb62aa0e68627362dae3d9e1849b214 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 2 Nov 2015 17:07:33 +0000 -Subject: [PATCH 097/202] drm/vc4: Enable VC4 modules, and increase CMA size +Subject: [PATCH 097/212] drm/vc4: Enable VC4 modules, and increase CMA size with overlay If using the overlay, be careful not to boot to GUI or run startx, @@ -137431,10 +136344,10 @@ index 146add9..d6aa058 100644 2.5.0 -From f17051a726412f09431be05b2397d48562f71e0d Mon Sep 17 00:00:00 2001 +From 63af9035dbaaceed5f1d63107bc7f7b31d425c6d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Nov 2015 18:29:58 +0000 -Subject: [PATCH 098/202] squash: fixups +Subject: [PATCH 098/212] squash: fixups --- drivers/gpu/drm/vc4/Kconfig | 2 +- @@ -137484,10 +136397,10 @@ index c83287a..2082713 100644 2.5.0 -From 7f665bb6c785114b5fb46ed49016f149678b525a Mon Sep 17 00:00:00 2001 +From 011e5c58f30ad2f3510f88a65da2356a93f09818 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Nov 2015 20:26:03 +0000 -Subject: [PATCH 099/202] squash: add missing vc4-kms-v3d-overlay.dtb to +Subject: [PATCH 099/212] squash: add missing vc4-kms-v3d-overlay.dtb to makefile --- @@ -137510,10 +136423,10 @@ index fb7ac49..fc09bfb 100644 2.5.0 -From e813bb1c026d2c59752049734d28f8c6755dcfb7 Mon Sep 17 00:00:00 2001 +From da11a97037709e598c7a8b769290a2b5ef5b45d9 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 12 Oct 2015 11:23:34 -0700 -Subject: [PATCH 100/202] clk: bcm2835: Also build the driver for downstream +Subject: [PATCH 100/212] clk: bcm2835: Also build the driver for downstream kernels. Signed-off-by: Eric Anholt @@ -137538,10 +136451,10 @@ index 3fc9506..a1b4cbc 100644 2.5.0 -From f341dbd4b04fd06e945139ab0dc95140ac1ad71e Mon Sep 17 00:00:00 2001 +From 7414a68fb326de9e255ad834337181a49a0b1451 Mon Sep 17 00:00:00 2001 From: Holger Steinhaus Date: Sat, 14 Nov 2015 18:37:43 +0100 -Subject: [PATCH 101/202] dts: Added overlay for gpio_ir_recv driver +Subject: [PATCH 101/212] dts: Added overlay for gpio_ir_recv driver --- arch/arm/boot/dts/overlays/Makefile | 1 + @@ -137653,10 +136566,10 @@ index 0000000..a2d6bc7 2.5.0 -From 273eda7351c9a46b426ae21b73528abf957c57f6 Mon Sep 17 00:00:00 2001 +From 7ee4b08baeeed3173d07236ffaa28028fc9f2f28 Mon Sep 17 00:00:00 2001 From: Alistair Buxton Date: Sun, 1 Nov 2015 22:27:56 +0000 -Subject: [PATCH 102/202] Build i2c_gpio module and add a device tree overlay +Subject: [PATCH 102/212] Build i2c_gpio module and add a device tree overlay to configure it. --- @@ -137768,10 +136681,10 @@ index d6aa058..51dc019 100644 2.5.0 -From 296e46b6d380eb6cd4bfecc379517a62b635eca8 Mon Sep 17 00:00:00 2001 +From 7ab460fb0d3ed6b0c396a50cf4f02e38c0c47a89 Mon Sep 17 00:00:00 2001 From: mwilliams03 Date: Sun, 18 Oct 2015 17:07:24 -0700 -Subject: [PATCH 103/202] New overlay for PiScreen2r +Subject: [PATCH 103/212] New overlay for PiScreen2r --- arch/arm/boot/dts/overlays/Makefile | 1 + @@ -137927,10 +136840,10 @@ index 0000000..7c018e0 2.5.0 -From d76eb4efe98b70eb0047d57eb9ec9d6e9dd95607 Mon Sep 17 00:00:00 2001 +From 34aa337eb59b8aefb9d02080f2e9cbdf497652c1 Mon Sep 17 00:00:00 2001 From: Ondrej Wisniewski Date: Fri, 6 Nov 2015 15:01:28 +0100 -Subject: [PATCH 104/202] dts: Added overlay for Adafruit PiTFT 2.8" capacitive +Subject: [PATCH 104/212] dts: Added overlay for Adafruit PiTFT 2.8" capacitive touch screen --- @@ -138083,10 +136996,10 @@ index 0000000..48920e9 2.5.0 -From a283c76b87524c66dc56a0f975841daa0c99a7ea Mon Sep 17 00:00:00 2001 +From 5c184dc77f6902787f498878c9675fd968ecc09e Mon Sep 17 00:00:00 2001 From: Stuart MacLean Date: Fri, 2 Oct 2015 15:12:59 +0100 -Subject: [PATCH 105/202] Add support for the HiFiBerry DAC+ Pro. +Subject: [PATCH 105/212] Add support for the HiFiBerry DAC+ Pro. The HiFiBerry DAC+ and DAC+ Pro products both use the existing bcm sound driver with the DAC+ Pro having a special clock device driver representing the two high precision oscillators. @@ -138637,10 +137550,10 @@ index 047c489..090fe0e 100644 2.5.0 -From 220fe094e0b8e4a9f2d783d204d6c54b4132c406 Mon Sep 17 00:00:00 2001 +From 0c2baf70040e2b5584ada2b0ba2a3604f16e3fdd Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 5 Oct 2015 10:47:45 +0100 -Subject: [PATCH 106/202] BCM270X_DT: Add at86rf233 overlay +Subject: [PATCH 106/212] BCM270X_DT: Add at86rf233 overlay Add an overlay to support the Atmel AT86RF233 WPAN transceiver on spi0.0. @@ -138778,10 +137691,10 @@ index 0000000..0460269 2.5.0 -From c32bcfcff996839e7d7b6996922aff643ae0535f Mon Sep 17 00:00:00 2001 +From f47e2fc8f4302c4ee94b128b219001e9ae911948 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 18 Dec 2014 16:07:15 -0800 -Subject: [PATCH 107/202] mm: Remove the PFN busy warning +Subject: [PATCH 107/212] mm: Remove the PFN busy warning See commit dae803e165a11bc88ca8dbc07a11077caf97bbcb -- the warning is expected sometimes when using CMA. However, that commit still spams @@ -138809,10 +137722,10 @@ index 9d666df..b682acc 100644 2.5.0 -From 0919a2fb041c5e3813596db3cde8a90daeb362fe Mon Sep 17 00:00:00 2001 +From 9c0106493da20fe3181733ac0fe6d2d5a1fdd920 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 19 Nov 2014 12:06:38 -0800 -Subject: [PATCH 108/202] drm: Put an optional field in the driver struct for +Subject: [PATCH 108/212] drm: Put an optional field in the driver struct for GEM obj struct size. This allows a driver to derive from the CMA object without copying all @@ -138857,10 +137770,10 @@ index 0a271ca..54f5469 100644 2.5.0 -From 8cfb1a1a94f936da77811ae9513b88895f03a96c Mon Sep 17 00:00:00 2001 +From 65a65dd777707a226c59a3492663154c28e756f1 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 30 Oct 2015 10:09:02 -0700 -Subject: [PATCH 109/202] drm/vc4: Add an interface for capturing the GPU state +Subject: [PATCH 109/212] drm/vc4: Add an interface for capturing the GPU state after a hang. This can be parsed with vc4-gpu-tools tools for trying to figure out @@ -139204,10 +138117,10 @@ index 499daae..4a8d19f 100644 2.5.0 -From b1e6f362a464e17cfc83b8dfff90872a682cbaeb Mon Sep 17 00:00:00 2001 +From f775356d50749c9d9aa85715f73947622bb3b87d Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 4 Dec 2015 11:35:34 -0800 -Subject: [PATCH 110/202] drm/vc4: Update a bunch of code to match upstream +Subject: [PATCH 110/212] drm/vc4: Update a bunch of code to match upstream submission. This gets almost everything matching, except for the MSAA support and @@ -141130,10 +140043,10 @@ index 54f5469..987c25a 100644 2.5.0 -From f92448b5a6efc36f75c530920f64cf466e36b29b Mon Sep 17 00:00:00 2001 +From 4124ae18d51739d55e3074c8cdaa683f88bb57d7 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 11 Dec 2015 19:45:03 -0800 -Subject: [PATCH 111/202] drm: Use the driver's gem_object_free function from +Subject: [PATCH 111/212] drm: Use the driver's gem_object_free function from CMA helpers. VC4 wraps the CMA objects in its own structures, so it needs to do its @@ -141197,10 +140110,10 @@ index 0f7b00b..e5df53b 100644 2.5.0 -From 5ca52418d4bededfe378b832767be8008f44b08d Mon Sep 17 00:00:00 2001 +From 558f0e9dd21472a7aa6c58905fd22bd5004c6bdc Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 17 Jul 2015 13:15:50 -0700 -Subject: [PATCH 112/202] drm/vc4: Add support for MSAA rendering. +Subject: [PATCH 112/212] drm/vc4: Add support for MSAA rendering. For MSAA, you set a bit in the binner that halves the size of tiles in each direction, so you can pack 4 samples per pixel in the tile @@ -141727,10 +140640,10 @@ index 4a8d19f..49cd992 100644 2.5.0 -From 9597fef5c8255fec92ae6d275df828b754aa6170 Mon Sep 17 00:00:00 2001 +From 45a2f6d868c6e3240a7e3fffc033c67ba80caa7d Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 8 Dec 2015 14:00:43 -0800 -Subject: [PATCH 113/202] drm/vc4: A few more non-functional changes to sync to +Subject: [PATCH 113/212] drm/vc4: A few more non-functional changes to sync to upstream. At this point all that's left is the force-enable of HDMI connector, @@ -142077,10 +140990,10 @@ index 49cd992..eeb37e3 100644 2.5.0 -From 8e24c74075b585b624124e39366fd47a39c71a2d Mon Sep 17 00:00:00 2001 +From 90a59a430589d9e6cd6f81e670bb59281e6e5607 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 15 Dec 2015 23:46:32 +0000 -Subject: [PATCH 114/202] drm/vc4: Use "hpd-gpios" for HDMI GPIO, like what +Subject: [PATCH 114/212] drm/vc4: Use "hpd-gpios" for HDMI GPIO, like what landed upstream. Signed-off-by: Eric Anholt @@ -142105,10 +141018,10 @@ index cf5d5c9..da37483 100644 2.5.0 -From d0298deaf8398f11edd796648a10e7ca69379d2c Mon Sep 17 00:00:00 2001 +From a2c8c4439951f905abeea055cddf6f3077f96035 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 7 Dec 2015 12:35:01 -0800 -Subject: [PATCH 115/202] drm/vc4: Synchronize validation code for v2 +Subject: [PATCH 115/212] drm/vc4: Synchronize validation code for v2 submission upstream. Signed-off-by: Eric Anholt @@ -142728,10 +141641,10 @@ index 2f22f19..0fb5b99 100644 2.5.0 -From 974524c4140d04038441cdbff9dffb0782f40a05 Mon Sep 17 00:00:00 2001 +From afb5127383dd765c242485c0c37f0c21527dbfaf Mon Sep 17 00:00:00 2001 From: janluca Date: Sun, 27 Dec 2015 14:34:04 +0100 -Subject: [PATCH 116/202] MMC: Do not use mmc_debug if CONFIG_MMC_BCM2835 is +Subject: [PATCH 116/212] MMC: Do not use mmc_debug if CONFIG_MMC_BCM2835 is not set If CONFIG_MMC_BCM2835 was not set the compiling of the kernel failed @@ -142771,10 +141684,10 @@ index 87ae2e9..b79fe14 100644 2.5.0 -From 487fad313351d76a0a3c0c5bba4bd427050bc56d Mon Sep 17 00:00:00 2001 +From c5107c1a576bb26003c4369d95d7ef60249a60cf Mon Sep 17 00:00:00 2001 From: Devon Fyson Date: Wed, 30 Dec 2015 16:40:47 -0500 -Subject: [PATCH 117/202] Extend clock timeout, fix modprobe baudrate +Subject: [PATCH 117/212] Extend clock timeout, fix modprobe baudrate parameter. Set the BSC_CLKT clock streching timeout to 35ms as per SMBus specs.\n- Increase priority of baudrate parameter passed to modprobe (in /etc/modprobe.d/*.conf or command line). Currently custom baudrates don't work because they are overridden by clock-frequency in the platform_device passed to the function. @@ -142885,10 +141798,10 @@ index 85f411c..b152639 100644 2.5.0 -From c66ac8683cc53f8aac24bea6a2720469b50069bd Mon Sep 17 00:00:00 2001 +From fd4c982472e595a262ea849b97084c6115cda9b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Thu, 31 Dec 2015 16:44:58 +0100 -Subject: [PATCH 118/202] bcm270x_dt: Add dwc2 and dwc-otg overlays +Subject: [PATCH 118/212] bcm270x_dt: Add dwc2 and dwc-otg overlays --- arch/arm/boot/dts/overlays/Makefile | 2 ++ @@ -143009,10 +141922,10 @@ index 0000000..90c9811 2.5.0 -From 2cb19a8364ae9dd33061c4c279361271f89dcc10 Mon Sep 17 00:00:00 2001 +From ed645c6641fba36237a97d65a883777be63df916 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 4 Jan 2016 14:42:17 +0000 -Subject: [PATCH 119/202] BCM270X_DT: Add the sdtweak overlay, for tuning +Subject: [PATCH 119/212] BCM270X_DT: Add the sdtweak overlay, for tuning sdhost The sdhost overlay declares the sdhost interface and allows parameters @@ -143094,10 +142007,10 @@ index 0000000..74c168d 2.5.0 -From e3382f8f0b18f8e1ea9d5c40efd3539a0d165794 Mon Sep 17 00:00:00 2001 +From 3acef3b02e2c93056fb1097e7d50ae038a69fac9 Mon Sep 17 00:00:00 2001 From: Andrew Litt Date: Mon, 11 Jan 2016 07:54:21 +0000 -Subject: [PATCH 120/202] bcm2835-mmc: Don't override bus width capabilities +Subject: [PATCH 120/212] bcm2835-mmc: Don't override bus width capabilities from devicetree Take out the force setting of the MMC_CAP_4_BIT_DATA host capability @@ -143124,10 +142037,10 @@ index 43aed6e..104f93e 100644 2.5.0 -From a11bf3332c06b3fbc179463e420eb3ec45a660ec Mon Sep 17 00:00:00 2001 +From 91f811cbf707c53384de0084455e2f9d60b084f1 Mon Sep 17 00:00:00 2001 From: Andrew Litt Date: Mon, 11 Jan 2016 07:55:54 +0000 -Subject: [PATCH 121/202] SDIO-overlay: add bus_width parameter +Subject: [PATCH 121/212] SDIO-overlay: add bus_width parameter Allow setting of the SDIO bus width capability of the bcm2835-mmc host. This is helpful when only a 1 bit wide bus is connected @@ -143174,10 +142087,10 @@ index afc8742..7935e7a 100644 2.5.0 -From 0a46a058444e051b7c89a6ff2e35e2218a2868cc Mon Sep 17 00:00:00 2001 +From a012473e3bb7f7e075b655de7bb32b47a0adc127 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:41:45 +0100 -Subject: [PATCH 122/202] bcm2835: extend allowed range of channels and +Subject: [PATCH 122/212] bcm2835: extend allowed range of channels and samplerates Allow everything the videocore accepts. @@ -143217,10 +142130,10 @@ index 8c86375..31e3131 100755 2.5.0 -From 873bcc0cb360320a96529bea66f803935f03dbb7 Mon Sep 17 00:00:00 2001 +From a09d3d4ae3cf7bf71876125e8971122ee19ed49e Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:42:18 +0100 -Subject: [PATCH 123/202] bcm2835: restrict channels*rate to 8*960000 +Subject: [PATCH 123/212] bcm2835: restrict channels*rate to 8*960000 This is required at least for SPDIF. If the bitrate goes above, videocore will either resample the audio or corrupt it due to @@ -143303,10 +142216,10 @@ index 31e3131..b17ed32 100755 2.5.0 -From 6a87797ccd34fb3b820e25c57f074322c8b3b8ad Mon Sep 17 00:00:00 2001 +From 078830307a9c15381bf15efc16ea06ece73aa289 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:42:48 +0100 -Subject: [PATCH 124/202] rpi: update vc_vchi_audioserv_defs.h +Subject: [PATCH 124/212] rpi: update vc_vchi_audioserv_defs.h Add audioserv 3 extensions. The changes were taken from the paste linked here: @@ -143375,10 +142288,10 @@ index af3e6eb..5f4409f 100644 2.5.0 -From 783d6951c3e03540b4dd1d4c023ec470e605db59 Mon Sep 17 00:00:00 2001 +From df7e0fcfc9c38f0de7da12c279be70c270c9d59c Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:43:12 +0100 -Subject: [PATCH 125/202] bcm2835: implement channel map API +Subject: [PATCH 125/212] bcm2835: implement channel map API Report all layouts supported by the HDMI protocol to userspace. Make the videocore set the correct layout according to the @@ -143808,10 +142721,10 @@ index 0f71c5d..997fb69 100755 2.5.0 -From 29c755de5dad00e61f8e4273091bb4ea116f44d1 Mon Sep 17 00:00:00 2001 +From ff6e9741269962792a0088f07b8607eec4d50aad Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:43:35 +0100 -Subject: [PATCH 126/202] bcm2835: access controls under the audio mutex +Subject: [PATCH 126/212] bcm2835: access controls under the audio mutex I don't think the ALSA framework provides any kind of automatic synchronization within the control callbacks. We most likely need @@ -144053,10 +142966,10 @@ index 1067460..48da3bb 100755 2.5.0 -From 10cf210dfdceadb70e710d5b31242b2d9d4da57b Mon Sep 17 00:00:00 2001 +From 80028c7c862f81d645d55e5ec86ce76d4d430dfe Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:44:03 +0100 -Subject: [PATCH 127/202] bcm2835: always use 2/4/8 channels for multichannel +Subject: [PATCH 127/212] bcm2835: always use 2/4/8 channels for multichannel layouts Pad the unused channels with NA. This means userspace needs to write @@ -144198,10 +143111,10 @@ index 5b8e6bd2..dec052b 100755 2.5.0 -From dab0f1d3c0949e409e790db9d40114c7cdb43bca Mon Sep 17 00:00:00 2001 +From 3a99b76e72196621895b660c1ea3956001d142a8 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:44:24 +0100 -Subject: [PATCH 128/202] bcm2835: only allow stereo if analogue jack is +Subject: [PATCH 128/212] bcm2835: only allow stereo if analogue jack is selected Sending more than 2 channels to videocore while outputting to analogue @@ -144266,10 +143179,10 @@ index dec052b..e930718 100755 2.5.0 -From 6728179c7b8ae8c8051f37318363aac77f4f3dc3 Mon Sep 17 00:00:00 2001 +From 6ef4a201d74800ab3c3b7872388ffb46dc8ddd4b Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:44:47 +0100 -Subject: [PATCH 129/202] bcm2835: interpolate audio delay +Subject: [PATCH 129/212] bcm2835: interpolate audio delay It appears the GPU only sends us a message all 10ms to update the playback progress. Other than this, the playback position @@ -144364,10 +143277,10 @@ index 997fb69..20ef108 100755 2.5.0 -From e53f3d34c2b0a7eb9b0870d6c537b80d6dad87b8 Mon Sep 17 00:00:00 2001 +From 2e8ff846aafe99f7ba4adb548d6d544bfecd8b62 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 19 Jan 2016 17:16:38 +0000 -Subject: [PATCH 130/202] bcm2835-sdhost: Add workaround for odd behaviour on +Subject: [PATCH 130/212] bcm2835-sdhost: Add workaround for odd behaviour on some cards For reasons not understood, the sdhost driver fails when reading @@ -144507,10 +143420,10 @@ index da089985..309633c 100644 2.5.0 -From 3e6b6b963edde53c9dfb819f43ae76757cd408a5 Mon Sep 17 00:00:00 2001 +From f67d16104899ead42512ad6353dc0cf2b84e10d5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 22 Jan 2016 16:03:24 +0000 -Subject: [PATCH 131/202] bcm2835-sdhost: Add debug_flags dtparam +Subject: [PATCH 131/212] bcm2835-sdhost: Add debug_flags dtparam Bit zero disables the single-read-sectors map: @@ -144637,10 +143550,10 @@ index 309633c..ef9b1e6 100644 2.5.0 -From c0e077f8c0f5f5e6b1c061623170dd0da3bf5ccb Mon Sep 17 00:00:00 2001 +From 5e61b24ec5c5aab7342f7c319d297c66eb369c0a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 25 Jan 2016 09:12:06 +0000 -Subject: [PATCH 132/202] BCM270X_DT: Add sdio_overclock parameter to sdio +Subject: [PATCH 132/212] BCM270X_DT: Add sdio_overclock parameter to sdio overlay The sdio_overclock parameter is like the overclock_50 parameter, i.e. @@ -144714,10 +143627,10 @@ index 7935e7a..398bd81 100644 2.5.0 -From f2d3f04444eebfa5fae7e251839c1adf1f5d9d1c Mon Sep 17 00:00:00 2001 +From 8c403ccd42234846cf57496b32948b9af14f06d1 Mon Sep 17 00:00:00 2001 From: Michael Lange Date: Thu, 21 Jan 2016 18:10:16 +0100 -Subject: [PATCH 133/202] rtc: ds1307: add support for the DT property +Subject: [PATCH 133/212] rtc: ds1307: add support for the DT property 'wakeup-source' For RTC chips with no IRQ directly connected to the SoC, the RTC chip @@ -144814,10 +143727,10 @@ index 1cb13fee..28ca4bf 100644 2.5.0 -From 5b7c9cf38ada4cb21b098a6818d2c4982179096e Mon Sep 17 00:00:00 2001 +From e5b28cae15b25c2ab427cbde47d462547c4b004b Mon Sep 17 00:00:00 2001 From: vitalogy Date: Tue, 19 Jan 2016 07:02:02 +0100 -Subject: [PATCH 134/202] dt-overlay: add wittypi-overlay.dts +Subject: [PATCH 134/212] dt-overlay: add wittypi-overlay.dts --- arch/arm/boot/dts/overlays/wittypi-overlay.dts | 44 ++++++++++++++++++++++++++ @@ -144878,10 +143791,10 @@ index 0000000..be5987d 2.5.0 -From 36b271ee29d60ec2e74cbb69746463aa01328318 Mon Sep 17 00:00:00 2001 +From aba5d4af2234386f97b9fb79e015c7557c6ab899 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 19 Jan 2016 16:28:05 +0000 -Subject: [PATCH 135/202] FIXUP i2c_bcm2708: Don't change module baudrate +Subject: [PATCH 135/212] FIXUP i2c_bcm2708: Don't change module baudrate parameter Overwriting the baudrate module parameter creates an apparent @@ -144983,10 +143896,10 @@ index b152639..c9b8e5c 100644 2.5.0 -From 68b2dd06f3f6a5b221031816606cf7751c1a09b1 Mon Sep 17 00:00:00 2001 +From 11ad0c1a8fcfe6de7b6b33dd66709ba82b63cce9 Mon Sep 17 00:00:00 2001 From: Digital Dreamtime Date: Thu, 4 Feb 2016 14:14:44 +0000 -Subject: [PATCH 136/202] Allow up to 24dB digital gain to be applied when +Subject: [PATCH 136/212] Allow up to 24dB digital gain to be applied when using IQAudIO DAC+ 24db_digital_gain DT param can be used to specify that PCM512x @@ -145092,10 +144005,10 @@ index 37038d4..124d7a9 100644 2.5.0 -From 5858366b26774d89d5abd25feddbc8bf3f5fec06 Mon Sep 17 00:00:00 2001 +From 08248da930abc0946b75fcb46b76dc7522b47c69 Mon Sep 17 00:00:00 2001 From: Digital Dreamtime Date: Thu, 4 Feb 2016 20:04:00 +0000 -Subject: [PATCH 137/202] Limit PCM512x "Digital" gain to 0dB by default with +Subject: [PATCH 137/212] Limit PCM512x "Digital" gain to 0dB by default with HiFiBerry DAC+ 24db_digital_gain DT param can be used to specify that PCM512x @@ -145200,10 +144113,10 @@ index a6b651c..153dbcd 100644 2.5.0 -From 9685a03cd17b6e0fdfa92bd161101d4cd24fcd32 Mon Sep 17 00:00:00 2001 +From cb87abec84007f53e1ff4c86c1fddd07b07ead8d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 8 Feb 2016 09:46:33 +0000 -Subject: [PATCH 138/202] BCM270X_DT: Adjust overlay README formatting +Subject: [PATCH 138/212] BCM270X_DT: Adjust overlay README formatting --- arch/arm/boot/dts/overlays/README | 414 +++++++++++++++++++------------------- @@ -145935,10 +144848,10 @@ index 296184f..f987565 100644 2.5.0 -From 1499860c7ba1a1629d8232e85261ecdf0837ef06 Mon Sep 17 00:00:00 2001 +From 415be23999f27b9d2095f5c3b118887589da7b9c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 9 Feb 2016 09:52:13 +0000 -Subject: [PATCH 139/202] pinctrl-bcm2835: Fix cut-and-paste error in "pull" +Subject: [PATCH 139/212] pinctrl-bcm2835: Fix cut-and-paste error in "pull" parsing The DT bindings for pinctrl-bcm2835 allow both the function and pull @@ -145966,10 +144879,10 @@ index 640e3b0..32f779e 100644 2.5.0 -From d09afbbb59e8894b6bfa1ea2d4df5e60f6783aed Mon Sep 17 00:00:00 2001 +From 24f55761e0dc84d32e244587a535b32ea7d2ef19 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 11 Feb 2016 16:51:01 +0000 -Subject: [PATCH 140/202] bcm2835-sdhost: Major revision +Subject: [PATCH 140/212] bcm2835-sdhost: Major revision This is a significant revision of the bcm2835-sdhost driver. It improves on the original in a number of ways: @@ -148041,10 +146954,10 @@ index ef9b1e6..262180b 100644 2.5.0 -From 54f9951624f2826f7a82fec141f0f45b4802abd6 Mon Sep 17 00:00:00 2001 +From b7326af0e71cfcbde46bb22a295bef9606ca6f13 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 12 Feb 2016 15:38:00 +0000 -Subject: [PATCH 141/202] BCM270X_DT: Add dtparams for the SD interface +Subject: [PATCH 141/212] BCM270X_DT: Add dtparams for the SD interface Add new base dtparams sd_overclock, sd_force_pio, sd_pio_limit and sd_debug. @@ -148300,10 +147213,10 @@ index b0b208c..e4a4677 100644 2.5.0 -From b6234c897994f12ff02cf0f20cc7b32c4e0c7813 Mon Sep 17 00:00:00 2001 +From e4e7ecb342e186a35cefd2e515ded768263ba41c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 12 Feb 2016 14:50:25 +0000 -Subject: [PATCH 142/202] dcw_otg: trim xfer length when buffer larger than +Subject: [PATCH 142/212] dcw_otg: trim xfer length when buffer larger than allocated size is received --- @@ -148343,10 +147256,10 @@ index 8db3dfc..d672a76 100644 2.5.0 -From ce5440f195ba5d3c6275d0239329fe39bbe655e2 Mon Sep 17 00:00:00 2001 +From e95065aaae7ce07c033d2a6f2f0c1d70aef2e126 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 15 Feb 2016 10:00:27 +0000 -Subject: [PATCH 143/202] bcm2835-sdhost: Restore ATOMIC flag to PIO sg mapping +Subject: [PATCH 143/212] bcm2835-sdhost: Restore ATOMIC flag to PIO sg mapping Allocation problems have been seen in a wireless driver, and this is the only change which might have been responsible. @@ -148381,10 +147294,10 @@ index 262180b..d66385c 100644 2.5.0 -From 9dc27a6d0ff5dac62cecdddec3c33494557f4dfd Mon Sep 17 00:00:00 2001 +From 0ad399d93387ff3b50f1f3ee2891f9bafd5adfa0 Mon Sep 17 00:00:00 2001 From: Craig Roberts Date: Tue, 16 Feb 2016 10:03:42 +0000 -Subject: [PATCH 144/202] Updated smsc95xx driver to check for a valid MAC +Subject: [PATCH 144/212] Updated smsc95xx driver to check for a valid MAC address in eeprom before using smsc95xx.macaddr parameter passed on command line. @@ -148427,10 +147340,10 @@ index 3244a90..7483222 100755 2.5.0 -From 71c05e7cae7b0fc2352002375f20cf2d1fa0af8c Mon Sep 17 00:00:00 2001 +From b5ef1237577219944bc9594e7860e06c7d1d4307 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Feb 2016 19:02:31 +0000 -Subject: [PATCH 145/202] dcw_otg: Make trimming messages less noisy +Subject: [PATCH 145/212] dcw_otg: Make trimming messages less noisy --- drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 6 ++++-- @@ -148464,10 +147377,10 @@ index d672a76..e6b38ac 100644 2.5.0 -From 8abd7b26d66589f2221ecc3b1d18489118ecc399 Mon Sep 17 00:00:00 2001 +From aaa26a79a5887736a946f9f959adce468fecd1cf Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 18 Feb 2016 15:28:14 +0000 -Subject: [PATCH 146/202] BCM270X_DT: at86rf233 overlay - drop to 3MHz +Subject: [PATCH 146/212] BCM270X_DT: at86rf233 overlay - drop to 3MHz The consensus is that 6MHz is too fast, but that 3MHz is OK. @@ -148508,10 +147421,10 @@ index 0460269..eab4052 100644 2.5.0 -From 58421243022b65d9c3b137fdbffc700650b511d1 Mon Sep 17 00:00:00 2001 +From 374767b7cbade15fbfa8e15bdc770127d5590b25 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 19 Feb 2016 12:04:48 +0000 -Subject: [PATCH 147/202] bcm2835-sdhost: Downgrade log message status +Subject: [PATCH 147/212] bcm2835-sdhost: Downgrade log message status --- drivers/mmc/host/bcm2835-sdhost.c | 4 ++-- @@ -148536,10 +147449,10 @@ index d66385c..4f6cab5 100644 2.5.0 -From 2b98fe79fc81819373bb568de316c0fb62c5c8a3 Mon Sep 17 00:00:00 2001 +From 8c32ef025a5e8946dd33da5028b812a667eee823 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 15 Jan 2016 16:48:27 +0000 -Subject: [PATCH 148/202] config: Enable HCI over UARTs +Subject: [PATCH 148/212] config: Enable HCI over UARTs --- arch/arm/configs/bcm2709_defconfig | 3 +++ @@ -148577,10 +147490,10 @@ index 51dc019..4368f0d 100644 2.5.0 -From b1181d79adc4ed58bbf7d5480f55d4078639a8d0 Mon Sep 17 00:00:00 2001 +From f2f74adffe62e1ae486ca4830a6340e65d5324fb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Dec 2015 13:37:07 +0000 -Subject: [PATCH 149/202] hci_h5: Don't send conf_req when ACTIVE +Subject: [PATCH 149/212] hci_h5: Don't send conf_req when ACTIVE Without this patch, a modem and kernel can continuously bombard each other with conf_req and conf_rsp messages, in a demented game of tag. @@ -148606,10 +147519,10 @@ index abee221..2825833 100644 2.5.0 -From bffef6ff226a796b94d5c5988d679e44c21dedcc Mon Sep 17 00:00:00 2001 +From c7944a877f516a6974059711820093dc5a4052bf Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Feb 2016 17:26:48 +0000 -Subject: [PATCH 150/202] amba_pl011: Don't use DT aliases for numbering +Subject: [PATCH 150/212] amba_pl011: Don't use DT aliases for numbering The pl011 driver looks for DT aliases of the form "serial", and if found uses as the device ID. This can cause @@ -148641,10 +147554,10 @@ index 899a771..68b3353 100644 2.5.0 -From 77d28ae443addf8e7bd25a313970fa37363faa48 Mon Sep 17 00:00:00 2001 +From f77097a5484b7f2b3e74a426646ef50957224a39 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 15 Dec 2015 15:35:57 -0800 -Subject: [PATCH 151/202] clk: bcm2835: Add bindings for the auxiliary +Subject: [PATCH 151/212] clk: bcm2835: Add bindings for the auxiliary peripheral clock gates. These will be used for enabling UART1, SPI1, and SPI2. @@ -148723,10 +147636,10 @@ index 0000000..d91156e 2.5.0 -From ecc35a6b134a6c2bef82e39bb03239ed2d598095 Mon Sep 17 00:00:00 2001 +From 80fb61da72241cde200e07c044e8c86ed5b45bc1 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 15 Dec 2015 15:35:58 -0800 -Subject: [PATCH 152/202] clk: bcm2835: Add a driver for the auxiliary +Subject: [PATCH 152/212] clk: bcm2835: Add a driver for the auxiliary peripheral clock gates. There are a pair of SPI masters and a mini UART that were last minute @@ -148850,10 +147763,10 @@ index 0000000..e4f89e2 2.5.0 -From 7743e2c05a1eed5ca7a49b24e8b0b270a7a9682e Mon Sep 17 00:00:00 2001 +From 9c1a31196fa5ffc0ddbf7af89f0b87ecf54b517f Mon Sep 17 00:00:00 2001 From: Fraser Date: Tue, 23 Feb 2016 10:04:37 +1100 -Subject: [PATCH 153/202] Aux SPI 1&2 implementation +Subject: [PATCH 153/212] Aux SPI 1&2 implementation Adds aux spi 1 & 2 devices to compatible raspberry PIs. * Minor config of the driver build environment to ensure they get built @@ -149586,10 +148499,10 @@ index e842e86..c9d1558 100644 2.5.0 -From e88b57e4b6de74b7e39754f8e481301a41673a58 Mon Sep 17 00:00:00 2001 +From a98503ac7da42217919f0d5c2efcfa7473cf6d75 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Tue, 23 Feb 2016 17:28:23 +0100 -Subject: [PATCH 154/202] ASoC: bcm: add missing .owner fields in sound card +Subject: [PATCH 154/212] ASoC: bcm: add missing .owner fields in sound card drivers If snd_soc_card.owner is not set the kernel won't do usage refcounting @@ -149714,10 +148627,10 @@ index c6e45a0..9db678e 100644 2.5.0 -From 8564b947293a16ad0531186384f0ea3e1fe2915b Mon Sep 17 00:00:00 2001 +From d32fc7cbb16dd0a8d44cda715688c030fbed20ce Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 20 Jan 2016 17:50:09 +0000 -Subject: [PATCH 155/202] smsx95xx: Add option to disable the crimes against +Subject: [PATCH 155/212] smsx95xx: Add option to disable the crimes against truesize fix It may improve iperf numbers on Pi 1, but may generate dmesg warnings and possibly cause network issues @@ -149766,10 +148679,10 @@ index 7483222..a61bd08 2.5.0 -From b81b339f5b87a0bafaaae0593dba356ce3545690 Mon Sep 17 00:00:00 2001 +From a3747dd75561206cbfb7ff536ceac9bd23df982f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 23 Feb 2016 19:56:04 +0000 -Subject: [PATCH 156/202] bcm2835-virtgpio: Virtual GPIO driver +Subject: [PATCH 156/212] bcm2835-virtgpio: Virtual GPIO driver Add a virtual GPIO driver that uses the firmware mailbox interface to request that the VPU toggles LEDs. @@ -150025,10 +148938,10 @@ index b011489..c844968 100644 2.5.0 -From 363ecceee7b220ff16868384f9cec31b919b80c5 Mon Sep 17 00:00:00 2001 +From 3992e10e19e4fdee00b1ae74f5fc74594f83a744 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 21 Jan 2016 17:57:49 +0000 -Subject: [PATCH 157/202] BCM270X_DT: Add Pi3 support +Subject: [PATCH 157/212] BCM270X_DT: Add Pi3 support --- arch/arm/boot/dts/Makefile | 1 + @@ -150360,10 +149273,10 @@ index 0000000..1a48686 2.5.0 -From 6848438a152616770d4818be867dde95317f4766 Mon Sep 17 00:00:00 2001 +From 0c58748a6303f42568c49c6971729df36827b76d Mon Sep 17 00:00:00 2001 From: Dave Stevenson <6by9@users.noreply.github.com> Date: Mon, 8 Feb 2016 23:49:41 +0000 -Subject: [PATCH 158/202] DT: Add overlays to configure I2C pins +Subject: [PATCH 158/212] DT: Add overlays to configure I2C pins Lifted from https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=120938&p=825883 @@ -150508,10 +149421,10 @@ index 0000000..e303b9c 2.5.0 -From 9719a89d2010e0d61ea7aa395993a7a69636dd75 Mon Sep 17 00:00:00 2001 +From 4068e875bf7cb8498635d72166557d227d7243a3 Mon Sep 17 00:00:00 2001 From: Dhiraj Goel Date: Thu, 3 Mar 2016 21:10:50 -0800 -Subject: [PATCH 159/202] bcm2835-camera: fix a bug in computation of frame +Subject: [PATCH 159/212] bcm2835-camera: fix a bug in computation of frame timestamp Fixes #1318 @@ -150537,10 +149450,10 @@ index e83334c..98a892e 100644 2.5.0 -From 952a86548ec554416c07c48fd074c8a0b2bc7116 Mon Sep 17 00:00:00 2001 +From 4adfed725c209453a215ba42d24fc4b8cfb3a401 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 2 Mar 2016 10:59:05 +0000 -Subject: [PATCH 160/202] BCM270X_DT: Add pi3-disable-bt overlay +Subject: [PATCH 160/212] BCM270X_DT: Add pi3-disable-bt overlay Disable Bluetooth and restore UART0/ttyAMA0 over GPIOs 14 & 15. To disable the systemd service that initialises the modem so it doesn't use the UART: @@ -150644,10 +149557,10 @@ index 0000000..05403e2 2.5.0 -From a2689328409bbc51374116903ba229e07acf4efc Mon Sep 17 00:00:00 2001 +From 4449ab94c62979b57fec60f5c5ba1b4954a85988 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Mar 2016 09:53:03 +0000 -Subject: [PATCH 161/202] BCM270X_DT: Add pi3-miniuart-bt DT overlay +Subject: [PATCH 161/212] BCM270X_DT: Add pi3-miniuart-bt DT overlay Switch Pi3 Bluetooth function to use the mini-UART (ttyS0) and restore UART0/ttyAMA0 over GPIOs 14 & 15. Note that this may reduce the maximum @@ -150772,10 +149685,10 @@ index 0000000..ae1292a 2.5.0 -From 336f35afc339dd8a44a492581ba7686cf32135de Mon Sep 17 00:00:00 2001 +From 72c4fbe3e30b0fb7ab8f0b26cb51b4fc869a34a4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Mar 2016 13:38:39 +0000 -Subject: [PATCH 162/202] Pi3 DT: Add dtparams for the SD interface +Subject: [PATCH 162/212] Pi3 DT: Add dtparams for the SD interface Add new base dtparams sd_overclock, sd_force_pio, sd_pio_limit and sd_debug. These were missed out of the initial Pi3 DTB. @@ -150803,10 +149716,10 @@ index cc06089..36972d8 100644 2.5.0 -From 2cb3d4dc651a0f3a562a79ce769663e04fd5da8b Mon Sep 17 00:00:00 2001 +From dcc0c1cb720d89d4ec64353753e8c6bdf3ad590b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Mar 2016 15:05:11 +0000 -Subject: [PATCH 163/202] vchiq_arm: Tweak the logging output +Subject: [PATCH 163/212] vchiq_arm: Tweak the logging output Signed-off-by: Phil Elwell --- @@ -150884,10 +149797,10 @@ index 2c98da4..160db24 100644 2.5.0 -From 94ecc7bb0c553cf6a60505345463657b6b102384 Mon Sep 17 00:00:00 2001 +From 94f1af91e237587bcbf12aba4cef19807f8bbb72 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Mar 2016 16:46:39 +0000 -Subject: [PATCH 164/202] bcm2835-sdhost: Only claim one DMA channel +Subject: [PATCH 164/212] bcm2835-sdhost: Only claim one DMA channel With both MMC controllers enabled there are few DMA channels left. The bcm2835-sdhost driver only uses DMA in one direction at a time, so it @@ -151052,10 +149965,10 @@ index 4f6cab5..4cc4272 100644 2.5.0 -From cabc01bd0ac6cb9dc77e20c627f6c25eb0897986 Mon Sep 17 00:00:00 2001 +From 76b2574366bed59d626ac8bcba92df246aff1354 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 8 Mar 2016 09:49:16 +0000 -Subject: [PATCH 165/202] bcm2835-mmc: Only claim one DMA channel +Subject: [PATCH 165/212] bcm2835-mmc: Only claim one DMA channel With both MMC controllers enabled there are few DMA channels left. The bcm2835-mmc driver only uses DMA in one direction at a time, so it @@ -151230,10 +150143,10 @@ index 104f93e..ceb3793 100644 2.5.0 -From 4f49fa2bcb9d1b536ba2eea6b02488bf3c455139 Mon Sep 17 00:00:00 2001 +From 7658391939ddd59e52b90a9164eb85350669fda3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 8 Mar 2016 17:08:39 +0000 -Subject: [PATCH 166/202] config: rebuild with savedefconfig +Subject: [PATCH 166/212] config: rebuild with savedefconfig --- arch/arm/configs/bcm2709_defconfig | 3 +-- @@ -151264,10 +150177,10 @@ index 6d6b519..116002b 100644 2.5.0 -From cab546ee091931f70d534314ed09fd33ffb8a9eb Mon Sep 17 00:00:00 2001 +From 3710f5f0d09adcdfa82da57ae653e32d8ce18704 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 8 Mar 2016 17:06:33 +0000 -Subject: [PATCH 167/202] config: Add module for mcp3422 ADC +Subject: [PATCH 167/212] config: Add module for mcp3422 ADC --- arch/arm/configs/bcm2709_defconfig | 1 + @@ -151302,10 +150215,10 @@ index 1ca1695..f09be87 100644 2.5.0 -From 62497b4dc8fcd710856352013eefe3e6b2aa6564 Mon Sep 17 00:00:00 2001 +From d6922f32d4324a8556ccb28048ff3fadf9573995 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 8 Mar 2016 16:18:57 +0000 -Subject: [PATCH 168/202] Pi3 DT: Add pull-ups on the UART RX lines +Subject: [PATCH 168/212] Pi3 DT: Add pull-ups on the UART RX lines Signed-off-by: Phil Elwell --- @@ -151350,10 +150263,10 @@ index ae1292a..0b8f0ca 100644 2.5.0 -From 6fdacd51042fb50e6437b232ae027051e299f9c8 Mon Sep 17 00:00:00 2001 +From 0c427324249a0a6e691dec7b09f4911b952c8722 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 9 Mar 2016 17:25:59 +0000 -Subject: [PATCH 169/202] brcmfmac: Disable power management +Subject: [PATCH 169/212] brcmfmac: Disable power management Disable wireless power saving in the brcmfmac WLAN driver. This is a temporary measure until the connectivity loss resulting from power @@ -151381,10 +150294,10 @@ index deb5f78..90f65d9 100644 2.5.0 -From bec5f2c792b5c63335ab926b585c416dbf409ba9 Mon Sep 17 00:00:00 2001 +From 1c639a4618ee2f1c46da57f921fc797662853564 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 9 Mar 2016 21:28:52 +0000 -Subject: [PATCH 170/202] BCM270X_DT: rpi-display overlay - add swapxy param +Subject: [PATCH 170/212] BCM270X_DT: rpi-display overlay - add swapxy param Signed-off-by: Phil Elwell --- @@ -151427,10 +150340,10 @@ index a8fa974..ccb296e 100644 2.5.0 -From 0f17d031cc109fcca9cc086ff52148e312433620 Mon Sep 17 00:00:00 2001 +From 0cefbfe0e1b4bfaed991394978938177204cc91d Mon Sep 17 00:00:00 2001 From: DigitalDreamtime Date: Fri, 11 Mar 2016 11:44:35 +0000 -Subject: [PATCH 171/202] Remove I2S config from bt_pins. +Subject: [PATCH 171/212] Remove I2S config from bt_pins. Remove I2S config from bt_pins. Causes issues with clock alignment when I2S is used by an external DAC via GPIO header. @@ -151473,10 +150386,10 @@ index 0b8f0ca..f07afcb 100644 2.5.0 -From d1d0794ae504d82dd32ac24900b9cb79f710cb3b Mon Sep 17 00:00:00 2001 +From a05e949b3366bf0722d1dde41b1658469c5d7879 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 10 Aug 2015 09:44:59 +0100 -Subject: [PATCH 172/202] Revert "scripts/dtc: Add overlay support" +Subject: [PATCH 172/212] Revert "scripts/dtc: Add overlay support" This reverts commit fa6d1755c2fdd9451077d8248e3804f0619f19b9. --- @@ -155884,10 +154797,10 @@ index 86b7338..5b8c7d5 100644 2.5.0 -From 7c92c220e1563faa6fb8061e4b5a0423eaedcb0c Mon Sep 17 00:00:00 2001 +From d382779bec89ee69044498641c17f30bccdd9fc2 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 10 Aug 2015 09:49:15 +0100 -Subject: [PATCH 173/202] scripts/dtc: Update to upstream version 1.4.1 +Subject: [PATCH 173/212] scripts/dtc: Update to upstream version 1.4.1 Includes the new localfixups format. @@ -158644,10 +157557,10 @@ index 5b8c7d5..2595dfd 100644 2.5.0 -From ba2e612145072d88cf8233826bc373a7f8f6ab36 Mon Sep 17 00:00:00 2001 +From b5636f4c891e18774ceaa09d14151ee8b21401e2 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Thu, 22 Oct 2015 23:30:04 +0300 -Subject: [PATCH 174/202] configfs: implement binary attributes +Subject: [PATCH 174/212] configfs: implement binary attributes ConfigFS lacked binary attributes up until now. This patch introduces support for binary attributes in a somewhat similar @@ -159299,10 +158212,10 @@ index 758a029..f7300d0 100644 2.5.0 -From ba0e4bb7b7359eb7fc0b573043f16ac99814f519 Mon Sep 17 00:00:00 2001 +From c1cbbf13f7c0a13c2087fd37ac5272d58f8cd604 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Wed, 3 Dec 2014 13:23:28 +0200 -Subject: [PATCH 175/202] OF: DT-Overlay configfs interface +Subject: [PATCH 175/212] OF: DT-Overlay configfs interface This is a port of Pantelis Antoniou's v3 port that makes use of the new upstreamed configfs support for binary attributes. @@ -159721,10 +158634,10 @@ index 0000000..7b66deb 2.5.0 -From 8e3132253b8f6330be77d81567c5c54422565a28 Mon Sep 17 00:00:00 2001 +From a73f8e98f1a96fca0e7c21f3ac8a1f5ca36d92ff Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 12:43:36 +0000 -Subject: [PATCH 176/202] Protect __release_resource against resources without +Subject: [PATCH 176/212] Protect __release_resource against resources without parents Without this patch, removing a device tree overlay can crash here. @@ -159755,10 +158668,10 @@ index 249b1eb..eb973a53 100644 2.5.0 -From 7376930a9b78d3cc610c00c1e04d9ed7183cf19e Mon Sep 17 00:00:00 2001 +From fa4e1d1a1a7dbc7d8375a72503f31d55f22e6095 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 20:00:21 +0000 -Subject: [PATCH 177/202] BCM270X_DT: Add a .dtbo target, use for overlays +Subject: [PATCH 177/212] BCM270X_DT: Add a .dtbo target, use for overlays Change the filenames and extensions to keep the pre-DDT style of overlay (-overlay.dtb) distinct from new ones that use a @@ -159958,10 +158871,10 @@ index 79e8661..7209d622 100644 2.5.0 -From c85d239dce9f0b01a15ec4702daab23d100fbfea Mon Sep 17 00:00:00 2001 +From 25c63fa16a6aa48cbf99265bc27e80a08aa84a1b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 May 2015 11:18:58 +0100 -Subject: [PATCH 178/202] scripts/knlinfo: Decode DDTK atom +Subject: [PATCH 178/212] scripts/knlinfo: Decode DDTK atom Show the DDTK atom as being a boolean. @@ -159995,10 +158908,10 @@ index b9ef124..263ec93 100755 2.5.0 -From 0b8d6f9d852cdb55e4ff24f0c9e8abe5513432cd Mon Sep 17 00:00:00 2001 +From 326b9503455a448c6c610f9b482767d9fcb5559a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 May 2015 11:48:59 +0100 -Subject: [PATCH 179/202] Enable Dynamic Device Tree for bcmrpi_defconfig and +Subject: [PATCH 179/212] Enable Dynamic Device Tree for bcmrpi_defconfig and bcm2709_defconfig Signed-off-by: Phil Elwell @@ -160043,10 +158956,10 @@ index f09be87..2db41e6 100644 2.5.0 -From da35fe70e85bb6dd5d084ac5ad2b374891d15ebe Mon Sep 17 00:00:00 2001 +From 097557a49914162c5de1eba0c69d7a33a69600bb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sun, 13 Mar 2016 16:14:44 +0000 -Subject: [PATCH 180/202] SQUASH: Add CONFIG_OF_CONFIGFS to bcmrpi_defconfig +Subject: [PATCH 180/212] SQUASH: Add CONFIG_OF_CONFIGFS to bcmrpi_defconfig Signed-off-by: Phil Elwell --- @@ -160078,10 +158991,10 @@ index 2db41e6..74149cf 100644 2.5.0 -From 2665d362b68e147a96a63bc60f318b10ae2c8974 Mon Sep 17 00:00:00 2001 +From 521d08e97d9c65c9fc9b587253ca44fecff0d603 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 14 Mar 2016 16:56:54 +0000 -Subject: [PATCH 181/202] dts, kbuild: dtbs_install installs .dtbo files too +Subject: [PATCH 181/212] dts, kbuild: dtbs_install installs .dtbo files too Signed-off-by: Phil Elwell --- @@ -160126,10 +159039,10 @@ index 1c15717..43647b3 100644 2.5.0 -From f20c1a01f16243b90b5e34179c35d5c9b848197c Mon Sep 17 00:00:00 2001 +From 3f9b9614e3e1c169285d04c3183bd68fb4a743d0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Mar 2016 14:10:29 +0000 -Subject: [PATCH 182/202] bcm2835-sdhost: Workaround for "slow" sectors +Subject: [PATCH 182/212] bcm2835-sdhost: Workaround for "slow" sectors Some cards have been seen to cause timeouts after certain sectors are read. This workaround enforces a minimum delay between the stop after @@ -160250,10 +159163,10 @@ index 4cc4272..f43aae0 100644 2.5.0 -From a2be538e4c2f1c1615a4c3b53774eb528b8310f4 Mon Sep 17 00:00:00 2001 +From 4f6ba307c5ca47f6d67cf3af83b536d6b512d835 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Mar 2016 15:49:16 +0000 -Subject: [PATCH 183/202] BCM270X_DT: Add labels to spidev nodes +Subject: [PATCH 183/212] BCM270X_DT: Add labels to spidev nodes Signed-off-by: Phil Elwell --- @@ -160378,10 +159291,10 @@ index 2cb7d43..1ce4ea2 100644 2.5.0 -From c3341d026f71e2b76cc37ea8c2fafdfc0d920f62 Mon Sep 17 00:00:00 2001 +From 47c38ad4901f42a05ec66da812ab59cf071f9493 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Mar 2016 16:27:26 +0000 -Subject: [PATCH 184/202] BCM270X_DT: Use spidev labels in overlays +Subject: [PATCH 184/212] BCM270X_DT: Use spidev labels in overlays --- arch/arm/boot/dts/overlays/ads7846-overlay.dts | 22 ++++++++++------- @@ -161038,10 +159951,10 @@ index f7102c8..33c0651 100644 2.5.0 -From 984a30a9cdc45ed9cd9df980ec3bf12a4f831162 Mon Sep 17 00:00:00 2001 +From 1379d524f5915c349e03308cf75fdb83d7bfc492 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Mar 2016 16:41:37 +0000 -Subject: [PATCH 185/202] BCM270X_DT: Build and document the wittypi overlay +Subject: [PATCH 185/212] BCM270X_DT: Build and document the wittypi overlay Signed-off-by: Phil Elwell --- @@ -161098,10 +160011,10 @@ index be5987d..8498134 100644 2.5.0 -From d1931436a822e5acf29b69c696c82071022894cc Mon Sep 17 00:00:00 2001 +From aa17ecdb23d2505d7fb0b4ddb30200a85128f789 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Tue, 15 Mar 2016 21:13:39 +0100 -Subject: [PATCH 186/202] scripts/dtc: Fix UMR causing corrupt dtbo overlay +Subject: [PATCH 186/212] scripts/dtc: Fix UMR causing corrupt dtbo overlay files struct fixup_entry is allocated from the heap but it's member @@ -161131,10 +160044,10 @@ index 540a3ea..2b3b3a7 100644 2.5.0 -From 9c7a38064f9c562ed462c88c8ee4c6dd77f54b5c Mon Sep 17 00:00:00 2001 +From c2264c1cccd9cb6e6ae7c76e3a058aeb6299c84e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 16 Mar 2016 08:35:06 +0000 -Subject: [PATCH 187/202] BCM270X_DT: Add dtparam for uart1 +Subject: [PATCH 187/212] BCM270X_DT: Add dtparam for uart1 Signed-off-by: Phil Elwell --- @@ -161224,10 +160137,10 @@ index d939739..4ce7921 100644 2.5.0 -From a3f10016b7a4791dd5237a60826a7dbd48d25c2f Mon Sep 17 00:00:00 2001 +From 9611f112a5e627b0f377cccfecd0e84799e650a5 Mon Sep 17 00:00:00 2001 From: Przemek Rudy Date: Fri, 11 Mar 2016 22:41:26 +0100 -Subject: [PATCH 188/202] dwc-overlay: Use label so overrides can apply. +Subject: [PATCH 188/212] dwc-overlay: Use label so overrides can apply. --- arch/arm/boot/dts/overlays/dwc2-overlay.dts | 10 +++++----- @@ -161264,10 +160177,10 @@ index 90c9811..527abc9 100644 2.5.0 -From 8ba5d971dec37b82cd23b3854fd0025c0b331f82 Mon Sep 17 00:00:00 2001 +From c648d4f19f07b090f14ddd8679ea4154f01ce5d0 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 22 Jan 2016 13:06:39 -0800 -Subject: [PATCH 189/202] drm/vc4: Add a debugfs node for tracking execution +Subject: [PATCH 189/212] drm/vc4: Add a debugfs node for tracking execution state. Signed-off-by: Eric Anholt @@ -161330,10 +160243,10 @@ index 39f29e7..1243f4e 100644 2.5.0 -From 10aa0867318467a8db95f444d6284a2c4b82e40f Mon Sep 17 00:00:00 2001 +From 4902ce61be294705ca6b1bdf84d6f1935ae78cc8 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 13:03:33 -0800 -Subject: [PATCH 190/202] drm/vc4: Include vc4_drm.h in uapi in downstream +Subject: [PATCH 190/212] drm/vc4: Include vc4_drm.h in uapi in downstream build. Signed-off-by: Eric Anholt @@ -161357,10 +160270,10 @@ index 38d4370..23381b5 100644 2.5.0 -From 1ad56b05115562a8348da65ada8803f51f2c5c49 Mon Sep 17 00:00:00 2001 +From e9364538abf2079525c72496c649d28d40f2b7f9 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 13:05:00 -0800 -Subject: [PATCH 191/202] drm/vc4: Validate that WAIT_BO padding is cleared. +Subject: [PATCH 191/212] drm/vc4: Validate that WAIT_BO padding is cleared. This is ABI future-proofing if we ever want to extend the pad to mean something. @@ -161388,10 +160301,10 @@ index 1243f4e..849d374 100644 2.5.0 -From 7a497d204122a4266ea46b2086c735f189c091e2 Mon Sep 17 00:00:00 2001 +From 87d958a5f2547128db8962d9539749ddf994984d Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 13:52:41 -0800 -Subject: [PATCH 192/202] drm/vc4: Fix the clear color for the first tile +Subject: [PATCH 192/212] drm/vc4: Fix the clear color for the first tile rendered. Apparently in hardware (as opposed to simulation), the clear colors @@ -161443,10 +160356,10 @@ index 8a2a312..dea97f4 100644 2.5.0 -From 3312985b5a723597099387f5b62089e4a87daf58 Mon Sep 17 00:00:00 2001 +From faa71a44d64ed4e07131355ac726fe90da932534 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 14:13:12 -0800 -Subject: [PATCH 193/202] drm/vc4: Return an ERR_PTR from BO creation instead +Subject: [PATCH 193/212] drm/vc4: Return an ERR_PTR from BO creation instead of NULL. Fixes igt vc4_create_bo/create-bo-0 by returning -EINVAL from the @@ -161594,10 +160507,10 @@ index 0fb5b99..8396960 100644 2.5.0 -From f37e01abef40cc6f9c4621fb3465f603443f44d3 Mon Sep 17 00:00:00 2001 +From 623176f2f83b693f0200107f838cd9e81462b352 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 14:32:41 -0800 -Subject: [PATCH 194/202] drm/vc4: Fix -ERESTARTSYS error return from BO waits. +Subject: [PATCH 194/212] drm/vc4: Fix -ERESTARTSYS error return from BO waits. This caused the wait ioctls to claim that waiting had completed when we actually got interrupted by a signal before it was done. Fixes @@ -161632,10 +160545,10 @@ index f8c003a..dc3044d 100644 2.5.0 -From 76965689a6ad70481e79988ef713906fdc3af1b4 Mon Sep 17 00:00:00 2001 +From f1598fe20200c9270f7704dc1c8934134aee553c Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 14:33:50 -0800 -Subject: [PATCH 195/202] drm/vc4: Drop error message on seqno wait timeouts. +Subject: [PATCH 195/212] drm/vc4: Drop error message on seqno wait timeouts. These ioctls end up getting exposed to userspace, and having normal user requests print DRM errors is obviously wrong. The message was @@ -161665,10 +160578,10 @@ index dc3044d..a6fa63f 100644 2.5.0 -From 0f8b1d49dde419c1acdc72dd992a4aa881b5007a Mon Sep 17 00:00:00 2001 +From 7f87241605ce81fa96ed6db02ccf1f9a7efb9701 Mon Sep 17 00:00:00 2001 From: campag Date: Wed, 24 Feb 2016 16:45:42 +0000 -Subject: [PATCH 196/202] BCM270X_DT: Add 1-bit SDIO using minimal pins... +Subject: [PATCH 196/212] BCM270X_DT: Add 1-bit SDIO using minimal pins... ... for that mode: GPIOs 22-25. --- @@ -161755,10 +160668,10 @@ index 0000000..46d4538 2.5.0 -From 296787e902c2d7fa259831a7bcd8e6a0fb03bc66 Mon Sep 17 00:00:00 2001 +From 2d8f51979e764adc684bb97ccabaa6e65ea9784f Mon Sep 17 00:00:00 2001 From: Cheong2K Date: Fri, 26 Feb 2016 18:20:10 +0800 -Subject: [PATCH 197/202] brcm: adds support for BCM43341 wifi +Subject: [PATCH 197/212] brcm: adds support for BCM43341 wifi --- drivers/net/wireless/brcm80211/brcmfmac/sdio.c | 5 +++++ @@ -161811,10 +160724,10 @@ index aa06ea2..f3ae83d 100644 2.5.0 -From 1a6cc13ab3a24451e5407d853945493626382cc2 Mon Sep 17 00:00:00 2001 +From 51686bb53ddd56289868a746a01ff7b01c8099c7 Mon Sep 17 00:00:00 2001 From: Michael Heimpold Date: Fri, 29 Jan 2016 12:00:37 +0100 -Subject: [PATCH 198/202] Add overlay and enable support for QCA7000 board +Subject: [PATCH 198/212] Add overlay and enable support for QCA7000 board This adds a device tree overlay for the QCA7000 which can be used when attaching an I2SE's PLC Stamp micro EVK to the Raspberry Pi. @@ -161953,10 +160866,10 @@ index 74149cf..e720c74 100644 2.5.0 -From de7df8ec94b46845e6331778fac4b91f3754c254 Mon Sep 17 00:00:00 2001 +From f49137d032857588f47edd41164968f0924e026f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 9 Mar 2016 13:28:24 +0000 -Subject: [PATCH 199/202] serial: Take care starting a hung-up tty's port +Subject: [PATCH 199/212] serial: Take care starting a hung-up tty's port tty_port_hangup sets a port's tty field to NULL (holding the port lock), but uart_tx_stopped, called from __uart_start (with the port lock), @@ -161987,10 +160900,10 @@ index 297d4fa..00ce6c6 100644 2.5.0 -From baa5e46504bd6091c6b2ca2b69f40f42c9889673 Mon Sep 17 00:00:00 2001 +From 7b430f6efc914a23ce58900619ae212b16a46ba4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Mar 2016 10:16:16 +0000 -Subject: [PATCH 200/202] pi3-miniuart-bt-overlay: Correct and clarify info +Subject: [PATCH 200/212] pi3-miniuart-bt-overlay: Correct and clarify info Signed-off-by: Phil Elwell --- @@ -162036,10 +160949,10 @@ index f07afcb..38ed33b 100644 2.5.0 -From 177b4e8fb5a22cc6939038516f2a6bdf22cc5d0a Mon Sep 17 00:00:00 2001 +From 334bc7c31a21f7bce55866107699f2a1e31f07b4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Mar 2016 10:41:56 +0000 -Subject: [PATCH 201/202] pwm overlays: Params must have in-overlay targets +Subject: [PATCH 201/212] pwm overlays: Params must have in-overlay targets --- arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts | 9 ++++++++- @@ -162096,10 +161009,10 @@ index ddd67ff..bf030a6 100644 2.5.0 -From 1c796f7ab38c7d52e201b88e1836e7adad9a1a54 Mon Sep 17 00:00:00 2001 +From a56b30a387d234e82cd586f22ccd1b2734c170fe Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 18 Mar 2016 13:06:29 +0000 -Subject: [PATCH 202/202] BCM270X_DT: Switch Compute Module to MMC +Subject: [PATCH 202/212] BCM270X_DT: Switch Compute Module to MMC Signed-off-by: Phil Elwell --- @@ -162154,3 +161067,687 @@ index e09e499..90e330d 100644 -- 2.5.0 + +From 0af6e86d99b38cc25814b2b1c058fc7dc8a09e0a Mon Sep 17 00:00:00 2001 +From: P33M +Date: Fri, 18 Mar 2016 17:38:37 +0000 +Subject: [PATCH 203/212] dwc_otg: Don't free qh align buffers in atomic + context + +--- + drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c +index acd0dd7..3b2a607 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c +@@ -56,6 +56,9 @@ void dwc_otg_hcd_qh_free(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + { + dwc_otg_qtd_t *qtd, *qtd_tmp; + dwc_irqflags_t flags; ++ uint32_t buf_size = 0; ++ uint8_t *align_buf_virt = NULL; ++ dwc_dma_t align_buf_dma; + + /* Free each QTD in the QTD list */ + DWC_SPINLOCK_IRQSAVE(hcd->lock, &flags); +@@ -67,17 +70,19 @@ void dwc_otg_hcd_qh_free(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + if (hcd->core_if->dma_desc_enable) { + dwc_otg_hcd_qh_free_ddma(hcd, qh); + } else if (qh->dw_align_buf) { +- uint32_t buf_size; + if (qh->ep_type == UE_ISOCHRONOUS) { + buf_size = 4096; + } else { + buf_size = hcd->core_if->core_params->max_transfer_size; + } +- DWC_DMA_FREE(buf_size, qh->dw_align_buf, qh->dw_align_buf_dma); ++ align_buf_virt = qh->dw_align_buf; ++ align_buf_dma = qh->dw_align_buf_dma; + } + + DWC_FREE(qh); + DWC_SPINUNLOCK_IRQRESTORE(hcd->lock, flags); ++ if (align_buf_virt) ++ DWC_DMA_FREE(buf_size, align_buf_virt, align_buf_dma); + return; + } + +-- +2.5.0 + + +From 713b15634de730a60c3f8a633beddf83e8270659 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 21 Mar 2016 15:38:38 +0000 +Subject: [PATCH 204/212] dwc_otg: Enable the hack for Split Interrupt + transactions by default + +dwc_otg.fiq_fsm_mask=0xF has long been a suggestion for users with audio stutters or other USB bandwidth issues. +So far we are aware of many success stories but no failure caused by this setting. +Make it a default to learn more. + +See: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=70437 + +Signed-off-by: popcornmix +--- + drivers/usb/host/dwc_otg/dwc_otg_driver.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_driver.c b/drivers/usb/host/dwc_otg/dwc_otg_driver.c +index 95edadf..cb060a7 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_driver.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_driver.c +@@ -247,7 +247,7 @@ bool fiq_fsm_enable = true; + //Bulk split-transaction NAK holdoff in microframes + uint16_t nak_holdoff = 8; + +-unsigned short fiq_fsm_mask = 0x07; ++unsigned short fiq_fsm_mask = 0x0F; + + /** + * This function shows the Driver Version. +-- +2.5.0 + + +From bc34eb8e494f45f0a18c56603f3d06e378035fb7 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Sat, 19 Mar 2016 16:51:37 +0000 +Subject: [PATCH 205/212] BCM270X_DT: Remove explicit claiming of UART pins + +It is convenient to be able to map a different function to the UART +pins (e.g. DPI for vga666) without having to disable the UART first. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2710-rpi-3-b.dts | 6 +++--- + .../boot/dts/overlays/pi3-disable-bt-overlay.dts | 10 ++++----- + .../boot/dts/overlays/pi3-miniuart-bt-overlay.dts | 25 +++++++++++----------- + 3 files changed, 20 insertions(+), 21 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2710-rpi-3-b.dts b/arch/arm/boot/dts/bcm2710-rpi-3-b.dts +index d2d39c6..adba682 100644 +--- a/arch/arm/boot/dts/bcm2710-rpi-3-b.dts ++++ b/arch/arm/boot/dts/bcm2710-rpi-3-b.dts +@@ -57,9 +57,9 @@ + }; + + uart1_pins: uart1_pins { +- brcm,pins = <14 15>; +- brcm,function = <2>; /* alt5=UART1 */ +- brcm,pull = <0 2>; ++ brcm,pins; ++ brcm,function; ++ brcm,pull; + }; + }; + +diff --git a/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts b/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts +index 05403e2..68f6069 100644 +--- a/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts ++++ b/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts +@@ -28,13 +28,11 @@ + }; + + fragment@2 { +- target = <&gpio>; ++ target = <&uart0_pins>; + __overlay__ { +- uart0_pins: uart0_pins { +- brcm,pins = <14 15>; +- brcm,function = <4>; /* alt0 */ +- brcm,pull = <0 2>; +- }; ++ brcm,pins; ++ brcm,function; ++ brcm,pull; + }; + }; + +diff --git a/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts b/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts +index 38ed33b..17d04cf 100644 +--- a/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts ++++ b/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts +@@ -37,23 +37,24 @@ + }; + + fragment@2 { +- target = <&gpio>; ++ target = <&uart0_pins>; + __overlay__ { +- uart0_pins: uart0_pins { +- brcm,pins = <14 15>; +- brcm,function = <4>; /* alt0 */ +- brcm,pull = <0 2>; +- }; +- +- uart1_pins: uart1_pins { +- brcm,pins = <32 33>; +- brcm,function = <2>; /* alt5=UART1 */ +- brcm,pull = <0 2>; +- }; ++ brcm,pins; ++ brcm,function; ++ brcm,pull; + }; + }; + + fragment@3 { ++ target = <&uart1_pins>; ++ __overlay__ { ++ brcm,pins = <32 33>; ++ brcm,function = <2>; /* alt5=UART1 */ ++ brcm,pull = <0 2>; ++ }; ++ }; ++ ++ fragment@4 { + target-path = "/aliases"; + __overlay__ { + serial0 = "/soc/uart@7e201000"; +-- +2.5.0 + + +From cc50f3828fe7e3c53178d88b978f8947965af004 Mon Sep 17 00:00:00 2001 +From: Rodrigo Freire +Date: Tue, 22 Mar 2016 12:40:33 -0300 +Subject: [PATCH 206/212] lirc_rpi: Lower IR reception error to debug + +Lowers a IR reception error condition message to KERNEL_DEBUG +--- + drivers/staging/media/lirc/lirc_rpi.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/staging/media/lirc/lirc_rpi.c b/drivers/staging/media/lirc/lirc_rpi.c +index cd09c99..0624439 100644 +--- a/drivers/staging/media/lirc/lirc_rpi.c ++++ b/drivers/staging/media/lirc/lirc_rpi.c +@@ -271,7 +271,7 @@ static irqreturn_t irq_handler(int i, void *blah, struct pt_regs *regs) + data = PULSE_MASK; /* really long time */ + if (!(signal^sense)) { + /* sanity check */ +- printk(KERN_WARNING LIRC_DRIVER_NAME ++ printk(KERN_DEBUG LIRC_DRIVER_NAME + ": AIEEEE: %d %d %lx %lx %lx %lx\n", + signal, sense, tv.tv_sec, lasttv.tv_sec, + tv.tv_usec, lasttv.tv_usec); +-- +2.5.0 + + +From e73df5dd62f01c4f81043b9892d4571a844f53f0 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Wed, 23 Mar 2016 14:16:25 +0000 +Subject: [PATCH 207/212] vchiq_arm: Access the dequeue_pending flag locked + +Reading through this code looking for another problem (now found in userland) +the use of dequeue_pending outside a lock didn't seem safe. + +Signed-off-by: Phil Elwell +--- + .../misc/vc04_services/interface/vchiq_arm/vchiq_arm.c | 17 ++++++++++++----- + 1 file changed, 12 insertions(+), 5 deletions(-) + +diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c +index e11c0e0..71883e5 100644 +--- a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c ++++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c +@@ -279,6 +279,7 @@ service_callback(VCHIQ_REASON_T reason, VCHIQ_HEADER_T *header, + USER_SERVICE_T *user_service; + VCHIQ_SERVICE_T *service; + VCHIQ_INSTANCE_T instance; ++ int skip_completion = 0; + DEBUG_INITIALISE(g_state.local) + + DEBUG_TRACE(SERVICE_CALLBACK_LINE); +@@ -345,9 +346,6 @@ service_callback(VCHIQ_REASON_T reason, VCHIQ_HEADER_T *header, + user_service->msg_queue[user_service->msg_insert & + (MSG_QUEUE_SIZE - 1)] = header; + user_service->msg_insert++; +- spin_unlock(&msg_queue_spinlock); +- +- up(&user_service->insert_event); + + /* If there is a thread waiting in DEQUEUE_MESSAGE, or if + ** there is a MESSAGE_AVAILABLE in the completion queue then +@@ -356,13 +354,22 @@ service_callback(VCHIQ_REASON_T reason, VCHIQ_HEADER_T *header, + if (((user_service->message_available_pos - + instance->completion_remove) >= 0) || + user_service->dequeue_pending) { +- DEBUG_TRACE(SERVICE_CALLBACK_LINE); + user_service->dequeue_pending = 0; +- return VCHIQ_SUCCESS; ++ skip_completion = 1; + } + ++ spin_unlock(&msg_queue_spinlock); ++ ++ up(&user_service->insert_event); ++ + header = NULL; + } ++ ++ if (skip_completion) { ++ DEBUG_TRACE(SERVICE_CALLBACK_LINE); ++ return VCHIQ_SUCCESS; ++ } ++ + DEBUG_TRACE(SERVICE_CALLBACK_LINE); + + return add_completion(instance, reason, header, user_service, +-- +2.5.0 + + +From 0c0b0bcf4da549395576b4fe0f86c7323d223d8a Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Wed, 23 Mar 2016 15:57:14 +0000 +Subject: [PATCH 208/212] BCM270X_DT: Add pi3-act-led overlay + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 19 +++++++++++++++ + arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts | 27 ++++++++++++++++++++++ + 3 files changed, 47 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index f4ae95a..4c3db73 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -39,6 +39,7 @@ dtbo-$(RPI_DT_OVERLAYS) += mcp2515-can0.dtbo + dtbo-$(RPI_DT_OVERLAYS) += mcp2515-can1.dtbo + dtbo-$(RPI_DT_OVERLAYS) += mmc.dtbo + dtbo-$(RPI_DT_OVERLAYS) += mz61581.dtbo ++dtbo-$(RPI_DT_OVERLAYS) += pi3-act-led.dtbo + dtbo-$(RPI_DT_OVERLAYS) += pi3-disable-bt.dtbo + dtbo-$(RPI_DT_OVERLAYS) += pi3-miniuart-bt.dtbo + dtbo-$(RPI_DT_OVERLAYS) += piscreen.dtbo +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index b674394..9b49868 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -136,12 +136,14 @@ Params: + + act_led_activelow Set to "on" to invert the sense of the LED + (default "off") ++ N.B. For Pi3 see pi3-act-led overlay. + + act_led_gpio Set which GPIO to use for the activity LED + (in case you want to connect it to an external + device) + (default "16" on a non-Plus board, "47" on a + Plus or Pi 2) ++ N.B. For Pi3 see pi3-act-led overlay. + + pwr_led_trigger + pwr_led_activelow +@@ -499,6 +501,23 @@ Params: speed Display SPI bus speed + [ The pcf8563-rtc overlay has been deleted. See i2c-rtc. ] + + ++Name: pi3-act-led ++Info: Pi3 uses a GPIO expander to drive the LEDs which can only be accessed ++ from the VPU. There is a special driver for this with a separate DT ++ node, which has the unfortunate consequence of breaking the ++ act_led_gpio and act_led_activelow dtparams. ++ This overlay changes the GPIO controller back to the standard one and ++ restores the dtparams. ++Load: dtoverlay=pi3-act-led,= ++Params: activelow Set to "on" to invert the sense of the LED ++ (default "off") ++ ++ gpio Set which GPIO to use for the activity LED ++ (in case you want to connect it to an external ++ device) ++ REQUIRED ++ ++ + Name: pi3-disable-bt + Info: Disable Pi3 Bluetooth and restore UART0/ttyAMA0 over GPIOs 14 & 15 + N.B. To disable the systemd service that initialises the modem so it +diff --git a/arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts b/arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts +new file mode 100644 +index 0000000..14a59dc +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts +@@ -0,0 +1,27 @@ ++/dts-v1/; ++/plugin/; ++ ++/* Pi3 uses a GPIO expander to drive the LEDs which can only be accessed ++ from the VPU. There is a special driver for this with a separate DT node, ++ which has the unfortunate consequence of breaking the act_led_gpio and ++ act_led_activelow dtparams. ++ ++ This overlay changes the GPIO controller back to the standard one and ++ restores the dtparams. ++*/ ++ ++/{ ++ compatible = "brcm,bcm2708"; ++ ++ fragment@0 { ++ target = <&act_led>; ++ frag0: __overlay__ { ++ gpios = <&gpio 0 0>; ++ }; ++ }; ++ ++ __overrides__ { ++ gpio = <&frag0>,"gpios:4"; ++ activelow = <&frag0>,"gpios:8"; ++ }; ++}; +-- +2.5.0 + + +From 3b2aa82be15317803d4b789f0580551d29cd3689 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Wed, 23 Mar 2016 20:53:47 +0000 +Subject: [PATCH 209/212] vchiq_arm: Service callbacks must not fail + +Service callbacks are not allowed to return an error. The internal callback +that delivers events and messages to user tasks does not enqueue them if +the service is closing, but this is not an error and should not be +reported as such. + +Signed-off-by: Phil Elwell +--- + drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c +index 71883e5..a5cc385 100644 +--- a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c ++++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c +@@ -224,7 +224,7 @@ add_completion(VCHIQ_INSTANCE_T instance, VCHIQ_REASON_T reason, + } else if (instance->closing) { + vchiq_log_info(vchiq_arm_log_level, + "service_callback closing"); +- return VCHIQ_ERROR; ++ return VCHIQ_SUCCESS; + } + DEBUG_TRACE(SERVICE_CALLBACK_LINE); + } +-- +2.5.0 + + +From 8058dba3efbfbaab969fec06d9ddc6e7bfe39112 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson <6by9@users.noreply.github.com> +Date: Thu, 17 Mar 2016 18:16:16 +0000 +Subject: [PATCH 210/212] Add configs and overlay for PCA9548 I2C mux + +Adds kernel configs for I2C muxes and a dt overlay for PCA9548 +that adds the 8 muxed I2C buses and mux device. +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 6 ++ + .../boot/dts/overlays/i2c-mux-pca9548a-overlay.dts | 67 ++++++++++++++++++++++ + arch/arm/configs/bcm2709_defconfig | 2 + + arch/arm/configs/bcmrpi_defconfig | 2 + + 5 files changed, 78 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/i2c-mux-pca9548a-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index 4c3db73..7c4fc30 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -29,6 +29,7 @@ dtbo-$(RPI_DT_OVERLAYS) += hy28a.dtbo + dtbo-$(RPI_DT_OVERLAYS) += hy28b.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2c-rtc.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2c-gpio.dtbo ++dtbo-$(RPI_DT_OVERLAYS) += i2c-mux-pca9548a.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2c0-bcm2708.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2c1-bcm2708.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2s-mmap.dtbo +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 9b49868..a9b1ff5 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -360,6 +360,12 @@ Params: i2c_gpio_sda GPIO used for I2C data (default "23") + (default "2" = ~100kHz) + + ++Name: i2c-mux-pca9548a ++Info: Adds support for an NXP PCA9548A I2C multiplexer on i2c_arm ++Load: dtoverlay=i2c-mux-pca9548a,= ++Params: addr I2C address of PCA9548A (default 0x70) ++ ++ + Name: i2c-rtc + Info: Adds support for a number of I2C Real Time Clock devices + Load: dtoverlay=i2c-rtc,= +diff --git a/arch/arm/boot/dts/overlays/i2c-mux-pca9548a-overlay.dts b/arch/arm/boot/dts/overlays/i2c-mux-pca9548a-overlay.dts +new file mode 100644 +index 0000000..1729fd6 +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/i2c-mux-pca9548a-overlay.dts +@@ -0,0 +1,67 @@ ++// Definitions for NXP PCA9548A I2C mux on ARM I2C bus. ++/dts-v1/; ++/plugin/; ++ ++/{ ++ compatible = "brcm,bcm2708"; ++ ++ fragment@0 { ++ target = <&i2c_arm>; ++ __overlay__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ ++ i2cmux: mux@70 { ++ compatible = "nxp,pca9548"; ++ reg = <0x70>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ i2c@0 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <0>; ++ }; ++ i2c@1 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <1>; ++ }; ++ i2c@2 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <2>; ++ }; ++ i2c@3 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <3>; ++ }; ++ i2c@4 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <4>; ++ }; ++ i2c@5 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <5>; ++ }; ++ i2c@6 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <6>; ++ }; ++ i2c@7 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <7>; ++ }; ++ }; ++ }; ++ }; ++ __overrides__ { ++ addr = <&i2cmux>,"reg:0"; ++ }; ++}; +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index b63632d..2c8e4b7 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -600,6 +600,8 @@ CONFIG_I2C=y + CONFIG_I2C_CHARDEV=m + CONFIG_I2C_BCM2708=m + CONFIG_I2C_GPIO=m ++CONFIG_I2C_MUX=m ++CONFIG_I2C_MUX_PCA954x=m + CONFIG_SPI=y + CONFIG_SPI_BCM2835=m + CONFIG_SPI_BCM2835AUX=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index e720c74..f6e2d84 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -593,6 +593,8 @@ CONFIG_I2C=y + CONFIG_I2C_CHARDEV=m + CONFIG_I2C_BCM2708=m + CONFIG_I2C_GPIO=m ++CONFIG_I2C_MUX=m ++CONFIG_I2C_MUX_PCA954x=m + CONFIG_SPI=y + CONFIG_SPI_BCM2835=m + CONFIG_SPI_BCM2835AUX=m +-- +2.5.0 + + +From 29add1ee331555e816078c211619e7ae651f9d85 Mon Sep 17 00:00:00 2001 +From: Nicolas Boullis +Date: Wed, 23 Mar 2016 23:40:15 +0100 +Subject: [PATCH 211/212] BCM270X_DT: Add DS1339 to i2c-rtc overlay + +--- + arch/arm/boot/dts/overlays/README | 4 ++++ + arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts | 8 ++++++++ + 2 files changed, 12 insertions(+) + +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index a9b1ff5..e88e7c8 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -371,6 +371,8 @@ Info: Adds support for a number of I2C Real Time Clock devices + Load: dtoverlay=i2c-rtc,= + Params: ds1307 Select the DS1307 device + ++ ds1339 Select the DS1339 device ++ + ds3231 Select the DS3231 device + + mcp7941x Select the MCP7941x device +@@ -381,6 +383,8 @@ Params: ds1307 Select the DS1307 device + + pcf8563 Select the PCF8563 device + ++ trickle-resistor-ohms Resistor value for trickle charge (DS1339-only) ++ + + Name: i2c0-bcm2708 + Info: Enable the i2c_bcm2708 driver for the i2c0 bus +diff --git a/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts b/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts +index fed4bd8..eecec16 100644 +--- a/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts ++++ b/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts +@@ -17,6 +17,12 @@ + reg = <0x68>; + status = "disable"; + }; ++ ds1339: ds1339@68 { ++ compatible = "dallas,ds1339"; ++ trickle-resistor-ohms = <0>; ++ reg = <0x68>; ++ status = "disable"; ++ }; + mcp7941x: mcp7941x@6f { + compatible = "microchip,mcp7941x"; + reg = <0x6f>; +@@ -46,10 +52,12 @@ + }; + __overrides__ { + ds1307 = <&ds1307>,"status"; ++ ds1339 = <&ds1339>,"status"; + ds3231 = <&ds3231>,"status"; + mcp7941x = <&mcp7941x>,"status"; + pcf2127 = <&pcf2127>,"status"; + pcf8523 = <&pcf8523>,"status"; + pcf8563 = <&pcf8563>,"status"; ++ trickle-resistor-ohms = <&ds1339>,"trickle-resistor-ohms:0"; + }; + }; +-- +2.5.0 + + +From 37869b99dabaa84934387962d3c31bb1cd56aec3 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Tue, 29 Mar 2016 15:32:30 +0100 +Subject: [PATCH 212/212] copy_from_user: CPU_SW_DOMAIN_PAN compatibility + +The downstream copy_from_user acceleration must also play nice with +CONFIG_CPU_SW_DOMAIN_PAN. + +See: https://github.com/raspberrypi/linux/issues/1381 + +Signed-off-by: Phil Elwell +--- + arch/arm/lib/uaccess_with_memcpy.c | 14 +++++++++++--- + 1 file changed, 11 insertions(+), 3 deletions(-) + +diff --git a/arch/arm/lib/uaccess_with_memcpy.c b/arch/arm/lib/uaccess_with_memcpy.c +index c29df92..6681df5 100644 +--- a/arch/arm/lib/uaccess_with_memcpy.c ++++ b/arch/arm/lib/uaccess_with_memcpy.c +@@ -186,6 +186,7 @@ out: + unsigned long noinline + __copy_from_user_memcpy(void *to, const void __user *from, unsigned long n) + { ++ unsigned long ua_flags; + int atomic; + + if (unlikely(segment_eq(get_fs(), KERNEL_DS))) { +@@ -217,7 +218,9 @@ __copy_from_user_memcpy(void *to, const void __user *from, unsigned long n) + if (tocopy > n) + tocopy = n; + ++ ua_flags = uaccess_save_and_enable(); + memcpy(to, (const void *)from, tocopy); ++ uaccess_restore(ua_flags); + to += tocopy; + from += tocopy; + n -= tocopy; +@@ -261,9 +264,14 @@ arm_copy_from_user(void *to, const void __user *from, unsigned long n) + * With frame pointer disabled, tail call optimization kicks in + * as well making this test almost invisible. + */ +- if (n < COPY_FROM_USER_THRESHOLD) +- return __copy_from_user_std(to, from, n); +- return __copy_from_user_memcpy(to, from, n); ++ if (n < COPY_TO_USER_THRESHOLD) { ++ unsigned long ua_flags = uaccess_save_and_enable(); ++ n = __copy_from_user_std(to, from, n); ++ uaccess_restore(ua_flags); ++ } else { ++ n = __copy_from_user_memcpy(to, from, n); ++ } ++ return n; + } + + static unsigned long noinline +-- +2.5.0 + diff --git a/projects/RPi2/patches/kodi-theme-Confluence/kodi-theme-Confluence-001-jarvis-rbp-backports.patch b/projects/RPi2/patches/kodi-theme-Confluence/kodi-theme-Confluence-001-jarvis-rbp-backports.patch index b8c6a5c300..84ea8d1914 100644 --- a/projects/RPi2/patches/kodi-theme-Confluence/kodi-theme-Confluence-001-jarvis-rbp-backports.patch +++ b/projects/RPi2/patches/kodi-theme-Confluence/kodi-theme-Confluence-001-jarvis-rbp-backports.patch @@ -1,7 +1,7 @@ -From 3ea5de3b27203ea08529101f42534285cff0e1c0 Mon Sep 17 00:00:00 2001 +From 01759c5adfb050b1ba0c8a8fc4e20a875a98c0e5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 10 Aug 2014 18:58:37 +0100 -Subject: [PATCH] confluence: Remove media-overlay.jpg for when video is +Subject: [PATCH 1/2] confluence: Remove media-overlay.jpg for when video is backgrounded --- @@ -21,3 +21,97 @@ index cc996da..d6aa595 100644 [Player.HasVideo + !Skin.HasSetting(ShowBackgroundVideo)] + !Window.IsVisible(TVChannels) + !Window.IsVisible(RadioChannels) VisibleFadeEffect
+-- +2.5.0 + + +From d99f70c094006144f07bdf739f5847b733030245 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 22 Jul 2013 23:19:15 +0100 +Subject: [PATCH 2/2] [confluence] Use animated gif as a cheaper working + spinner + +--- + 720p/DialogBusy.xml | 4 ++-- + media/busy.gif | Bin 0 -> 3199 bytes + 2 files changed, 2 insertions(+), 2 deletions(-) + create mode 100644 media/busy.gif + +diff --git a/720p/DialogBusy.xml b/720p/DialogBusy.xml +index b5df91f..8e84fed 100644 +--- a/720p/DialogBusy.xml ++++ b/720p/DialogBusy.xml +@@ -25,9 +25,9 @@ + 20 + 32 + 32 +- busy.png ++ busy.gif + keep +- conditional ++ + + + Busy label +diff --git a/media/busy.gif b/media/busy.gif +new file mode 100644 +index 0000000000000000000000000000000000000000..f856ed0b44fdc7e9b0520c7e39a9bebc04136897 +GIT binary patch +literal 3199 +zcmc(fX;f2Z9>y=ZH#f_@I(Toefj|vNK&XX)Kv`7?5Fj9nfFK|eqk^a)i$D+vOGrT0 +z5Y~W_Kw^kiL|j0tWs!ndI9M0djt#Zlzxi?2cy3&gq6Zb5u5$@@ybycc*-E=i(!PE0#hKFr +z8YwHA>k$o6chjKaEI)p!$wAoDL&l~=#v-6#Yi*r{$k>ZaBy{Iun&<0smBO`6!} +z&StP`{nE=0r$xK_71$KwBW33sD3@jYuko!${Lx^a-L6nm0XI6%X29c~=ih=uThmJ) +z0`sx_;Y1skXCCRh-xeI%QSoNyoC$Wv8mqotx(oQi`#)m+fqj0FJ-Ty#;#jn=BdyK1 +z=B6qP9+rpm>D&te;)?^%P6X=O1hYo3EX2|KvKf!7 +zPC<6`-z>t4dt|sDMs?7$3qAAwp-9+}MG!&HJG +zR56mo+HAFw+XYc`x>Q}qx+NXw8e)#H8!s@v;-0BxXf+|F!d7fF@#p{m^y-r6hhl}(OBf7Z9T-XA592wChCS0 +zghE0dyCjN1p_XlCgFCZKa-d{)QY(vcG`ORqtd3Hv5q9cwWnZ4q9qQ6`p6gJt`i)yI +z(k}USCso)D$=T8}kwkOttLQTdyk*$=N_P3zvI>gu=+%v7SlP7u{o}wK&@wvs;D^UR +z_hrU2=hu&--McI1v8!sb^Bc*rSV@S1`PqwVQ`z9M6-zo`(fwU?)%?V6L!Su!wg%>{ +z_Ap6;JlsqFZs&4*_Hyca%X9UeJIQa&rOjqikQOUh?PJH$+b_COMJv9VKYa@bFkHLx +zuWLOM>d88zwur244toBqkoynF%QKPCmFw0Ka@mD&l3lo%OWd7hoRh}_r7X*^);1h% +zS0Y48mAJw~sY5l#+K!_g>SODUoZ~jI`sJw?F0nP#X1q5bEJf^ykCn3huW0t=Buk;; +z>>ir2ELZoSz5-s3JdcW?Z_9fzG0p9c+f +zF75u0#&QywaXZ%t%wx{@Fph2 +z8>d4#CVRatgPNLgq_yn;r95LtQ=1x5s+u(jzg=bD(&G)*)dYbk>S|JZ)~LT9sTL@u +zECM`$!UZY^R=O23aIrSC7%KKzN9#j7fanO3;b9=-Uc$Ny%r0K&Q!3cxIY#cXS+p(!;!p<8t|C$aCa +zmw^IV`QJZ}KB=L;O)P3iejKViBr3riXEU+Os6+HSe_FAg!SQwiv}qZC3nHl$W!6d@ +z71S4lX+^(KPOx(Lj8E2YV-Zqp(+-;Kb+HVT)!}eMBgt)5sl=u6D6D9$YloY~9dexu +zC}LF_6A=VFoaEBm3%6lfCWlPwM@VL+UM3*w1;PDiz0>h(8VN;V8aTNv3fh%t9zvN$ +za|0i22m!`XM6L*S0Fdda0iPRhpr2%l$fxG?zK7#0^aKDQU~07$CjLum>`5g?|W04 +zWxRT@I!WkM-tG!!7x5q%CKh;dv|7?pi#(SC(n*+0 +z_JkG+)}Xfm$~B~iw*|Y6V&e#09^^HH!`DEm|CuKkbWa-O@fsst>tv+k@8)}8 +zIQam3jP;F3e?*@>`tHd{w(%sqW=s(>)3Q9u09{KSdvd$zkgeI0Rru=vq=DF#Oe*oT +zUC2Jj$)htMM58IqjK$$@6z*jZz{EVhT7wY1hm0T)9FAM%LDXn*5`t*q1rLmYg^^Y_ +z5X0LrM!i=K-AxOOl={&<{L5D6K +z>;#ZUjACfyRUVK|-3P;Ja2nW>ZDDm2Hk|&>-$hEgc>zg*B6Z$SRsZ~{lGhZr?x1$s1t=S{s}LNuEC0*wfD$uoK%8ST1Gwr7S<)+ +z9iovkGf8Q-PRuArxY*wt@#b!a<6hm>8dJ&H!R +z$Oeur6$C~7PILzO;&4;G^(D-5m{@KUl(MQ1yKs>x+CMqUUllb3x?=fppG8_v>@)ZY +xGUUb21Yb|%0k3;EZL|UA71ss70{N2%rZhjU!V8TtZxzYw_F;tVxR3z1e*p+ht@8i? + +literal 0 +HcmV?d00001 + +-- +2.5.0 + diff --git a/projects/RPi2/patches/kodi/kodi-001-jarvis-rpb-backports.patch b/projects/RPi2/patches/kodi/kodi-001-jarvis-rbp-backports.patch similarity index 95% rename from projects/RPi2/patches/kodi/kodi-001-jarvis-rpb-backports.patch rename to projects/RPi2/patches/kodi/kodi-001-jarvis-rbp-backports.patch index 16d501a0c6..89a72271ff 100644 --- a/projects/RPi2/patches/kodi/kodi-001-jarvis-rpb-backports.patch +++ b/projects/RPi2/patches/kodi/kodi-001-jarvis-rbp-backports.patch @@ -1,7 +1,8 @@ -From 927d6ad60e7f1d38b5263b12cc60910d51de31e0 Mon Sep 17 00:00:00 2001 +From 0418867953596638f7c8bd9a73f993588ef9ca14 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Sep 2015 19:11:14 +0100 -Subject: [PATCH] Enable concealed error frames, but discard them when returned +Subject: [PATCH 01/94] Enable concealed error frames, but discard them when + returned --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 17 ++++++++--------- @@ -50,11 +51,15 @@ index bebe136..727a9ea 100644 if (status != MMAL_SUCCESS) CLog::Log(LOGERROR, "%s::%s Failed to disable error concealment on %s (status=%x %s)", CLASSNAME, __func__, m_dec_input->name, status, mmal_status_to_string(status)); -From cded5cf3c63fb1a3481c3983b232fad07ba3f218 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 66a74ecce9891a49ef5af36ecb216524d399d309 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 26 Aug 2015 21:47:41 +0100 -Subject: [PATCH] Reduce framerate of high framerate videos when not running - fullscreen +Subject: [PATCH 02/94] Reduce framerate of high framerate videos when not + running fullscreen --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 14 +++++++++++++- @@ -106,7 +111,7 @@ diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h b/xbmc/cores/dvdpl index d081b9c..0ea6ecd 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h -@@ -123,6 +123,8 @@ class CMMALVideo : public CDVDVideoCodec +@@ -123,6 +123,8 @@ protected: bool SendCodecConfigData(); CDVDStreamInfo m_hints; @@ -115,10 +120,14 @@ index d081b9c..0ea6ecd 100644 // Components MMAL_INTERLACETYPE_T m_interlace_mode; EINTERLACEMETHOD m_interlace_method; -From f72fa574396fd38e389ae16aed207ce46eeefdb1 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 9aaaf4cc73da770a7900e5a8095500150fb46db7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 2 Dec 2015 20:08:05 +0000 -Subject: [PATCH] Remove preroll +Subject: [PATCH 03/94] Remove preroll --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 12 ++---------- @@ -181,7 +190,7 @@ diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h b/xbmc/cores/dvdpl index 0ea6ecd..50ac0e3 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h -@@ -131,7 +131,6 @@ class CMMALVideo : public CDVDVideoCodec +@@ -131,7 +131,6 @@ protected: double m_demuxerPts; double m_decoderPts; int m_speed; @@ -189,10 +198,14 @@ index 0ea6ecd..50ac0e3 100644 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_dec; -From da33fcf121d1dbc2455ca2ddfa9e709551cb79f4 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 103c4eb8a0a6d33bbcb42f128b82d16a5997386f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 2 Dec 2015 22:35:11 +0000 -Subject: [PATCH] Remove demux queue +Subject: [PATCH 04/94] Remove demux queue --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 81 ++++------------------ @@ -359,7 +372,7 @@ diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h b/xbmc/cores/dvdpl index 50ac0e3..f4df09c 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h -@@ -64,13 +64,6 @@ class CMMALVideoBuffer +@@ -64,13 +64,6 @@ private: class CMMALVideo : public CDVDVideoCodec { @@ -373,7 +386,7 @@ index 50ac0e3..f4df09c 100644 public: CMMALVideo(); virtual ~CMMALVideo(); -@@ -110,9 +103,6 @@ class CMMALVideo : public CDVDVideoCodec +@@ -110,9 +103,6 @@ protected: float m_aspect_ratio; const char *m_pFormatName; @@ -383,10 +396,14 @@ index 50ac0e3..f4df09c 100644 // mmal output buffers (video frames) pthread_mutex_t m_output_mutex; std::queue m_output_ready; -From 24dcd8662b2ba576f4a5621070c1b80de2d561cb Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 8869a77fbd72a0e9a341ad859a08c3dd8f64eff0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 2 Dec 2015 20:10:33 +0000 -Subject: [PATCH] Remove time based limit on submitted packets +Subject: [PATCH 05/94] Remove time based limit on submitted packets --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 24 +++------------------- @@ -458,7 +475,7 @@ diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h b/xbmc/cores/dvdpl index f4df09c..8f84557 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h -@@ -118,8 +118,6 @@ class CMMALVideo : public CDVDVideoCodec +@@ -118,8 +118,6 @@ protected: // Components MMAL_INTERLACETYPE_T m_interlace_mode; EINTERLACEMETHOD m_interlace_method; @@ -467,10 +484,14 @@ index f4df09c..8f84557 100644 int m_speed; CCriticalSection m_sharedSection; -From 6e6d985927e7bc626a2c2b68ce7b1a6228453eaf Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 2aee01ad85f6233bc6f850d75c594a0e7838930f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Dec 2015 22:18:47 +0000 -Subject: [PATCH] Add back logging of data queued in decoder +Subject: [PATCH 06/94] Add back logging of data queued in decoder --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 22 +++++++++++++++++++++- @@ -542,7 +563,7 @@ diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h b/xbmc/cores/dvdpl index 8f84557..f4df09c 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h -@@ -118,6 +118,8 @@ class CMMALVideo : public CDVDVideoCodec +@@ -118,6 +118,8 @@ protected: // Components MMAL_INTERLACETYPE_T m_interlace_mode; EINTERLACEMETHOD m_interlace_method; @@ -551,11 +572,15 @@ index 8f84557..f4df09c 100644 int m_speed; CCriticalSection m_sharedSection; -From 83759ec3a304fe3206f629d2c4eff4ba8bb16948 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 011ad87c7a06222473b06654ab4df0a292edc956 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 8 Dec 2015 11:40:17 +0000 -Subject: [PATCH] Try to minimise latency through hardware decoder. This could - reduce performance but keeps videoplayer happier +Subject: [PATCH 07/94] Try to minimise latency through hardware decoder. This + could reduce performance but keeps videoplayer happier --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 42 +++++++++++++++++----- @@ -639,10 +664,15 @@ index 35a9847..f96cc14 100644 return ret; } -From f66265227a97d12f958318188bf63c2db0da6fc4 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 3302e62bfc5a964bdb7beb98ca0624b138edadaa Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Jul 2015 19:27:25 +0100 -Subject: [PATCH] Enable QPU based deinterlace and remove resolution limit +Subject: [PATCH 08/94] Enable QPU based deinterlace and remove resolution + limit --- xbmc/cores/VideoRenderers/MMALRenderer.cpp | 2 +- @@ -709,10 +739,14 @@ index e50c13a..20ad4fa 100644 if (!advanced_deinterlace) image_filter.eImageFilter = OMX_ImageFilterDeInterlaceFast; else -From f32634dbefc6530ed540a7a57009deaea187fc71 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From db5f80d9955ecf1fa37c12f10bc48d8b84871f99 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 16 Aug 2015 15:46:33 +0100 -Subject: [PATCH] Allow deinterlace with software decode +Subject: [PATCH 09/94] Allow deinterlace with software decode --- xbmc/cores/VideoRenderers/MMALRenderer.cpp | 9 +++++++++ @@ -745,11 +779,57 @@ index bee3af1..9b5c666 100644 return m_sourceWidth * m_sourceHeight <= 576 * 720 ? VS_INTERLACEMETHOD_MMAL_ADVANCED : VS_INTERLACEMETHOD_MMAL_BOB; } -From e664ff7a544b0cb1b24f095ff6f408425e4fb3e4 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 36180656b74f719ee0c2a8748a5d12d5ccbea93b Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 15 Sep 2015 22:26:26 +0100 +Subject: [PATCH 10/94] omxplayer: Don't use AutoInterlaceMethod it changes at + start of file + +--- + xbmc/cores/omxplayer/OMXHelper.cpp | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/xbmc/cores/omxplayer/OMXHelper.cpp b/xbmc/cores/omxplayer/OMXHelper.cpp +index de493a2..7251fc1 100644 +--- a/xbmc/cores/omxplayer/OMXHelper.cpp ++++ b/xbmc/cores/omxplayer/OMXHelper.cpp +@@ -130,19 +130,19 @@ bool OMXDoProcessing(struct SOmxPlayerState &m_OmxPlayerState, int m_playSpeed, + bool audio_fifo_low = false, video_fifo_low = false, audio_fifo_high = false, video_fifo_high = false; + + if (m_OmxPlayerState.interlace_method == VS_INTERLACEMETHOD_MAX) +- m_OmxPlayerState.interlace_method = g_renderManager.AutoInterlaceMethod(CMediaSettings::GetInstance().GetCurrentVideoSettings().m_InterlaceMethod); ++ m_OmxPlayerState.interlace_method = CMediaSettings::GetInstance().GetCurrentVideoSettings().m_InterlaceMethod; + + // if deinterlace setting has changed, we should close and open video + if (m_OmxPlayerState.current_deinterlace != CMediaSettings::GetInstance().GetCurrentVideoSettings().m_DeinterlaceMode || + (m_OmxPlayerState.current_deinterlace != VS_DEINTERLACEMODE_OFF && +- m_OmxPlayerState.interlace_method != g_renderManager.AutoInterlaceMethod(CMediaSettings::GetInstance().GetCurrentVideoSettings().m_InterlaceMethod))) ++ m_OmxPlayerState.interlace_method != CMediaSettings::GetInstance().GetCurrentVideoSettings().m_InterlaceMethod)) + { + CLog::Log(LOGNOTICE, "%s - Reopen stream due to interlace change (%d,%d,%d,%d)", __FUNCTION__, + m_OmxPlayerState.current_deinterlace, CMediaSettings::GetInstance().GetCurrentVideoSettings().m_DeinterlaceMode, +- m_OmxPlayerState.interlace_method, g_renderManager.AutoInterlaceMethod(CMediaSettings::GetInstance().GetCurrentVideoSettings().m_InterlaceMethod)); ++ m_OmxPlayerState.interlace_method, CMediaSettings::GetInstance().GetCurrentVideoSettings().m_InterlaceMethod); + + m_OmxPlayerState.current_deinterlace = CMediaSettings::GetInstance().GetCurrentVideoSettings().m_DeinterlaceMode; +- m_OmxPlayerState.interlace_method = g_renderManager.AutoInterlaceMethod(CMediaSettings::GetInstance().GetCurrentVideoSettings().m_InterlaceMethod); ++ m_OmxPlayerState.interlace_method = CMediaSettings::GetInstance().GetCurrentVideoSettings().m_InterlaceMethod; + reopen_stream = true; + } + +-- +2.5.0 + + +From a0ce519db0d21eb3e9a2dfd070b0859d72784569 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Sep 2015 15:05:37 +0100 -Subject: [PATCH] Avoid calling render callback with the lock held to avoid a - deadlock +Subject: [PATCH 11/94] Avoid calling render callback with the lock held to + avoid a deadlock --- xbmc/cores/omxplayer/OMXVideo.cpp | 27 ++++++++++++++------------- @@ -842,7 +922,7 @@ index d0634bb..7baefa5 100644 class COMXVideo { public: -@@ -50,7 +58,7 @@ class COMXVideo +@@ -50,7 +58,7 @@ public: // Required overrides bool SendDecoderConfig(); bool Open(CDVDStreamInfo &hints, OMXClock *clock, EDEINTERLACEMODE deinterlace = VS_DEINTERLACEMODE_OFF, bool hdmi_clock_sync = false); @@ -851,10 +931,15 @@ index d0634bb..7baefa5 100644 void RegisterResolutionUpdateCallBack(void *ctx, ResolutionUpdateCallBackFn callback) { m_res_ctx = ctx; m_res_callback = callback; } void Close(void); unsigned int GetFreeSpace(); -From a454c0556e42cb01096a1b459f4c202c0982f961 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 8d8e6b7c7b0af50800e2489a0e370c5e656dddb1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Dec 2015 22:03:56 +0000 -Subject: [PATCH] Add settings option to enable MVC and frame packing support +Subject: [PATCH 12/94] Add settings option to enable MVC and frame packing + support --- .../resource.language.en_gb/resources/strings.po | 22 ++++++++++++++++++++++ @@ -983,7 +1068,7 @@ diff --git a/xbmc/settings/Settings.h b/xbmc/settings/Settings.h index 55e150d..f3ba426 100644 --- a/xbmc/settings/Settings.h +++ b/xbmc/settings/Settings.h -@@ -137,6 +137,7 @@ class CSettings : public CSettingCreator, public CSettingControlCreator +@@ -137,6 +137,7 @@ public: static const std::string SETTING_VIDEOPLAYER_USEMMAL; static const std::string SETTING_VIDEOPLAYER_USESTAGEFRIGHT; static const std::string SETTING_VIDEOPLAYER_LIMITGUIUPDATE; @@ -991,7 +1076,7 @@ index 55e150d..f3ba426 100644 static const std::string SETTING_MYVIDEOS_SELECTACTION; static const std::string SETTING_MYVIDEOS_EXTRACTFLAGS; static const std::string SETTING_MYVIDEOS_EXTRACTCHAPTERTHUMBS; -@@ -300,6 +301,7 @@ class CSettings : public CSettingCreator, public CSettingControlCreator +@@ -300,6 +301,7 @@ public: static const std::string SETTING_VIDEOSCREEN_GUICALIBRATION; static const std::string SETTING_VIDEOSCREEN_TESTPATTERN; static const std::string SETTING_VIDEOSCREEN_LIMITEDRANGE; @@ -999,10 +1084,14 @@ index 55e150d..f3ba426 100644 static const std::string SETTING_AUDIOOUTPUT_AUDIODEVICE; static const std::string SETTING_AUDIOOUTPUT_CHANNELS; static const std::string SETTING_AUDIOOUTPUT_CONFIG; -From 02255c425298a1240c143458e1e800e8ed45c799 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 7e941d7f0e1fc87d5d43e36b1febb3f7681f1e18 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 17 Dec 2015 15:38:34 +0000 -Subject: [PATCH] Don't adjust 3d rectangles in bypass mode +Subject: [PATCH 13/94] Don't adjust 3d rectangles in bypass mode --- xbmc/cores/VideoRenderers/BaseRenderer.cpp | 55 ++++++++++++++++-------------- @@ -1077,10 +1166,14 @@ index 7889cf8..d4bb306 100644 } CalcNormalDisplayRect(m_viewRect.x1, m_viewRect.y1, m_viewRect.Width(), m_viewRect.Height(), GetAspectRatio() * CDisplaySettings::GetInstance().GetPixelRatio(), CDisplaySettings::GetInstance().GetZoomAmount(), CDisplaySettings::GetInstance().GetVerticalShift()); -From 69364688942df22b40b5190a5cdf1a83d450a8d0 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 1b8497b41521ac8277f2fab23baa6980d5680607 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 14 Mar 2015 12:38:08 +0000 -Subject: [PATCH] Switch to using transform flags for 3d modes +Subject: [PATCH 14/94] Switch to using transform flags for 3d modes --- xbmc/cores/VideoRenderers/MMALRenderer.cpp | 100 +++++++++--------------- @@ -1454,7 +1547,7 @@ diff --git a/xbmc/cores/omxplayer/OMXVideo.h b/xbmc/cores/omxplayer/OMXVideo.h index 7baefa5..31982b4 100644 --- a/xbmc/cores/omxplayer/OMXVideo.h +++ b/xbmc/cores/omxplayer/OMXVideo.h -@@ -67,7 +67,7 @@ class COMXVideo +@@ -67,7 +67,7 @@ public: void Reset(void); void SetDropState(bool bDrop); std::string GetDecoderName() { return m_video_codec_name; }; @@ -1492,10 +1585,14 @@ index 5d5b74b..443d037 100644 CLog::Log(LOGDEBUG, "EGL set resolution %dx%d -> %dx%d @ %.2f fps (%d,%d) flags:%x aspect:%.2f\n", m_width, m_height, dst_rect.width, dst_rect.height, res.fRefreshRate, GETFLAGS_GROUP(res.dwFlags), GETFLAGS_MODE(res.dwFlags), (int)res.dwFlags, res.fPixelRatio); -From e8bc95c119f47640f864c50f4865c4cf934a94c5 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 6a912e2c074aa44c0dc288a64e0e4dff1edccc77 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 21 Jun 2015 17:42:03 +0100 -Subject: [PATCH] Remove unused Support3D function +Subject: [PATCH 15/94] Remove unused Support3D function --- xbmc/windowing/egl/WinSystemEGL.cpp | 29 ----------------------------- @@ -1546,7 +1643,7 @@ diff --git a/xbmc/windowing/egl/WinSystemEGL.h b/xbmc/windowing/egl/WinSystemEGL index 9d4baf6..1ec4225 100644 --- a/xbmc/windowing/egl/WinSystemEGL.h +++ b/xbmc/windowing/egl/WinSystemEGL.h -@@ -59,7 +59,6 @@ class CWinSystemEGL : public CWinSystemBase, public CRenderSystemGLES +@@ -59,7 +59,6 @@ public: virtual void Register(IDispResource *resource); virtual void Unregister(IDispResource *resource); @@ -1554,10 +1651,15 @@ index 9d4baf6..1ec4225 100644 virtual bool ClampToGUIDisplayLimits(int &width, int &height); EGLConfig GetEGLConfig(); -From fdef730bacc4fb43a202eb65187a35405948951d Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 299d2a7f59caf3e44aa04c67c5a4bcceae6a4310 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Dec 2015 21:08:34 +0000 -Subject: [PATCH] Avoid switching stereo mode based on current display mode +Subject: [PATCH 16/94] Avoid switching stereo mode based on current display + mode --- xbmc/guilib/GraphicContext.cpp | 24 ------------------------ @@ -1598,11 +1700,15 @@ index a1b8812..60979bb 100644 RESOLUTION_INFO info_mod = GetResInfo(res); -From be33e26546e5beb44bfacbff7d5f1cbfaa15ff8f Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 1d0be437addc2225a969b42088511d5b2e50c9f0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 21 Jun 2015 18:53:29 +0100 -Subject: [PATCH] Drop reporting 3D modes and just use current rendering mode - to request 3D signalling +Subject: [PATCH 17/94] Drop reporting 3D modes and just use current rendering + mode to request 3D signalling [rbp] Add ntsc version of 48Hz mode @@ -1862,7 +1968,7 @@ diff --git a/xbmc/windowing/egl/EGLNativeTypeRaspberryPI.h b/xbmc/windowing/egl/ index a0acb1a..e5bcae7 100644 --- a/xbmc/windowing/egl/EGLNativeTypeRaspberryPI.h +++ b/xbmc/windowing/egl/EGLNativeTypeRaspberryPI.h -@@ -69,7 +69,7 @@ class CEGLNativeTypeRaspberryPI : public CEGLNativeType +@@ -69,7 +69,7 @@ private: static void CallbackTvServiceCallback(void *userdata, uint32_t reason, uint32_t param1, uint32_t param2); void DestroyDispmaxWindow(); @@ -1872,10 +1978,14 @@ index a0acb1a..e5bcae7 100644 + int AddUniqueResolution(RESOLUTION_INFO &res, std::vector &resolutions, bool desktop = false); #endif }; -From 4bf34dc54fc0b4e5255eb8d2f2834287fa704680 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From e40391cacdb8e49b0af12cfa093d9362daf41842 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 22 Jun 2015 16:27:15 +0100 -Subject: [PATCH] Consider stereomode when creating a new window +Subject: [PATCH 18/94] Consider stereomode when creating a new window We might be changing from a non-3D to a 3D mode --- @@ -1923,7 +2033,7 @@ diff --git a/xbmc/windowing/egl/WinSystemEGL.h b/xbmc/windowing/egl/WinSystemEGL index 1ec4225..a33dedc 100644 --- a/xbmc/windowing/egl/WinSystemEGL.h +++ b/xbmc/windowing/egl/WinSystemEGL.h -@@ -78,6 +78,7 @@ class CWinSystemEGL : public CWinSystemBase, public CRenderSystemGLES +@@ -78,6 +78,7 @@ protected: EGLSurface m_surface; EGLContext m_context; EGLConfig m_config; @@ -1931,11 +2041,15 @@ index 1ec4225..a33dedc 100644 CEGLWrapper *m_egl; std::string m_extensions; -From 9167ed5222005d9b6788e6e52ea765f9d73fb13e Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From f917226a056672e2266d30540e79caee45ec869f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Apr 2014 18:19:32 +0100 -Subject: [PATCH] [rbp/omxplayer] When opening a stream don't try to update gui - so often +Subject: [PATCH 19/94] [rbp/omxplayer] When opening a stream don't try to + update gui so often --- xbmc/dialogs/GUIDialogBusy.cpp | 4 ++++ @@ -1957,10 +2071,14 @@ index 6816b45..6cc5a8f 100644 { g_windowManager.ProcessRenderLoop(false); if (allowCancel && dialog->IsCanceled()) -From 6bad783448faf1a5971a68fe8a2572c0435e125c Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From c5007f5c066a37c5d052816688e877b1559b28a9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 29 Apr 2014 15:23:22 +0100 -Subject: [PATCH] [ffmpeg] Speed up wtv index creation +Subject: [PATCH 20/94] [ffmpeg] Speed up wtv index creation The index creation is O(N^2) with number of entries (typically thousands). On a Pi this can take more than 60 seconds to execute for a recording of a few hours. @@ -2045,11 +2163,15 @@ index 0000000..d829898 + } + } + } -From 48f5c6c5ef76b9c63c1b41ce88b1f36493c63d12 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From b9a63ad68ba584cd374345d48614ea4cd04bbce1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 8 Mar 2014 15:36:06 +0000 -Subject: [PATCH] [hifiberry] Hack: force it to be recognised as IEC958 capable - to enable passthrough options +Subject: [PATCH 21/94] [hifiberry] Hack: force it to be recognised as IEC958 + capable to enable passthrough options --- xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 4 ++++ @@ -2070,10 +2192,14 @@ index e22db7a..0120bd5 100644 if (info.m_deviceType == AE_DEVTYPE_HDMI && info.m_displayName.size() > 5 && info.m_displayName.substr(info.m_displayName.size()-5) == " HDMI") { -From c043110afb41f25bbced31dd01249d74aa220d68 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 5bf1a1d26e0c3e4dd2c6a2e71f2550fb7eab2d64 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 1 May 2014 16:28:39 +0100 -Subject: [PATCH] Improved file buffering in CArchive +Subject: [PATCH 22/94] Improved file buffering in CArchive Even though memcpy is typically inlined by the compiler into byte/word loads and stores (at least for release builds), the frequency with which 1, 2 and 4 @@ -2096,7 +2222,7 @@ diff --git a/xbmc/utils/Archive.h b/xbmc/utils/Archive.h index 6ed0f8f..8506d95 100644 --- a/xbmc/utils/Archive.h +++ b/xbmc/utils/Archive.h -@@ -154,9 +154,17 @@ class CArchive +@@ -154,9 +154,17 @@ protected: * than waiting until we attempt to put more data into an already full buffer */ if (m_BufferRemain > size) { @@ -2114,7 +2240,7 @@ index 6ed0f8f..8506d95 100644 return *this; } else -@@ -171,9 +179,17 @@ class CArchive +@@ -171,9 +179,17 @@ protected: /* Note, refilling the buffer is deferred until we know we need to read more from it */ if (m_BufferRemain >= size) { @@ -2132,10 +2258,14 @@ index 6ed0f8f..8506d95 100644 return *this; } else -From b261ee73179e6cdcdee76ec5b55337f2433a9376 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 5be85818f72f316ac0419273069fd96d02ac8eb7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 12 Aug 2014 00:31:36 +0100 -Subject: [PATCH] [omxcodec] Don't force software codec with dvds +Subject: [PATCH 23/94] [omxcodec] Don't force software codec with dvds --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 2 ++ @@ -2155,10 +2285,15 @@ index 4ffe33a..4b09e8f 100644 } else if (m_pInputStream && m_pInputStream->IsStreamType(DVDSTREAM_TYPE_PVRMANAGER)) { -From eafbec7c06d774bfaae87697629eb0535de8f529 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 60f3a3087411daae5e3a690820fe4bf65c295532 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 10 Aug 2014 16:45:16 +0100 -Subject: [PATCH] filesystem: Make support of browsing into archives optional +Subject: [PATCH 24/94] filesystem: Make support of browsing into archives + optional The ability to browse, scan and play content in archives can cause problems on low powered/low memory devices. It's quite common to see reports of a large rar file that causes xbmc to crash with an out-of-memory error when browsing or scanning. @@ -2239,10 +2374,15 @@ index a1d4ee4..4929283 100644 if (url.IsFileType("xbt")) { CURL xbtUrl = URIUtils::CreateArchivePath("xbt", url); -From eed8fd81ac11ce6ea49f77efc9ae5f0428a12622 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 0417dd5c5b0c15ddf536cea15e1881594ab0eef6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 13:06:57 +0000 -Subject: [PATCH] [rbp] Make cachemembuffersize default depend on memory size +Subject: [PATCH 25/94] [rbp] Make cachemembuffersize default depend on memory + size --- xbmc/linux/RBP.cpp | 10 ++++++++++ @@ -2296,7 +2436,7 @@ diff --git a/xbmc/linux/RBP.h b/xbmc/linux/RBP.h index 9559914..7fc8b42 100644 --- a/xbmc/linux/RBP.h +++ b/xbmc/linux/RBP.h -@@ -48,6 +48,7 @@ class CRBP +@@ -48,6 +48,7 @@ public: ~CRBP(); bool Initialize(); @@ -2342,11 +2482,15 @@ index bc3aa8c..562757e 100644 m_initialized = true; } -From 607037670f5ce73906706f1649312d9137bb1cdb Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 66ca5923eb98f9fafcd35487c03079b7326fee07 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 30 May 2014 14:58:43 +0100 -Subject: [PATCH] [settings] Experiment: Report DESKTOP resolution in video - settings +Subject: [PATCH 26/94] [settings] Experiment: Report DESKTOP resolution in + video settings --- xbmc/settings/DisplaySettings.cpp | 3 +++ @@ -2366,11 +2510,15 @@ index 7993a73..761385b 100644 list.push_back(std::make_pair( StringUtils::Format("%dx%d%s", resolution->width, resolution->height, ModeFlagsToString(resolution->flags, false).c_str()), -From 9ccc337d1d203b7e8205d765a141a805dfcf0f00 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 0a2735dd4f859337281ff77d2f02b781c94f98c5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 19 Sep 2014 11:54:49 +0100 -Subject: [PATCH] [dvdplayer/rbp] Add pi specific option to maintain vsync with - pll adjustment +Subject: [PATCH 27/94] [dvdplayer/rbp] Add pi specific option to maintain + vsync with pll adjustment New A/V sync option in settings/video/playback to do "Adjust PLL". This uses video clock (so perfect video syncing) but avoids having to resample @@ -2582,7 +2730,7 @@ diff --git a/xbmc/cores/dvdplayer/DVDPlayerAudio.h b/xbmc/cores/dvdplayer/DVDPla index 014574d..409b2d7 100644 --- a/xbmc/cores/dvdplayer/DVDPlayerAudio.h +++ b/xbmc/cores/dvdplayer/DVDPlayerAudio.h -@@ -228,6 +228,9 @@ class CDVDPlayerAudio : public CThread, public IDVDStreamPlayerAudio +@@ -228,6 +228,9 @@ protected: bool m_prevskipped; double m_maxspeedadjust; double m_resampleratio; //resample ratio when using SYNC_RESAMPLE, used for the codec info @@ -2625,7 +2773,7 @@ diff --git a/xbmc/linux/RBP.h b/xbmc/linux/RBP.h index 7fc8b42..db2fade 100644 --- a/xbmc/linux/RBP.h +++ b/xbmc/linux/RBP.h -@@ -64,6 +64,8 @@ class CRBP +@@ -64,6 +64,8 @@ public: unsigned char *CaptureDisplay(int width, int height, int *stride, bool swap_red_blue, bool video_only = true); DllOMX *GetDllOMX() { return m_OMX ? m_OMX->GetDll() : NULL; } void WaitVsync(); @@ -2634,7 +2782,7 @@ index 7fc8b42..db2fade 100644 private: DllBcmHost *m_DllBcmHost; -@@ -80,6 +82,7 @@ class CRBP +@@ -80,6 +82,7 @@ private: CEvent m_vsync; class DllLibOMXCore; CCriticalSection m_critSection; @@ -2674,11 +2822,15 @@ index 6475350..93de9bd 100644 std::string m_audioDefaultPlayer; float m_audioPlayCountMinimumPercent; bool m_dvdplayerIgnoreDTSinWAV; -From 9284250ce7e47e489dd5497379112aaff306836e Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From c7f85eb57480d0ea7296ab6adac768334f1d1889 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 24 Sep 2014 23:13:52 +0100 -Subject: [PATCH] [audio] Add settings option to boost centre channel when - downmixing +Subject: [PATCH 28/94] [audio] Add settings option to boost centre channel + when downmixing This allows a dB volume increase to be added to centre channel. This can help improve dialgue in the presence of background music/effects. @@ -2766,7 +2918,7 @@ index e4ddf9e..625ea88 100644 if (remapLayout) { diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEResamplePi.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEResamplePi.cpp -index 78071493..698a6ae 100644 +index 7807149..698a6ae 100644 --- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEResamplePi.cpp +++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEResamplePi.cpp @@ -164,6 +164,12 @@ bool CActiveAEResamplePi::Init(uint64_t dst_chan_layout, int dst_channels, int d @@ -2799,10 +2951,14 @@ index 08b1b84..70d0866 100644 // stereo upmix if (upmix && m_src_channels == 2 && m_dst_channels > 2) -From 59888ef17bb7f03377208399ae46ec49b0789481 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 1592ab35c711338d52ad1ac08f79ff2fd3365020 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 15:23:51 +0000 -Subject: [PATCH] [rbp] Default extract thumbnails to false +Subject: [PATCH 29/94] [rbp] Default extract thumbnails to false It can take 80 seconds for a single file on a Pi. It can cause crashes with out-of-memory errors. It genereates a lot of support issues. Best to default to disabled and let users enable it if they must @@ -2831,10 +2987,15 @@ index 7a170c2..1506035 100644
-From 9b4bb9c37f2123332556f2a9183c59823c31fc68 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 1d482f503a08b533b17640759b9f61bad2391743 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 10 Feb 2015 15:29:16 +0000 -Subject: [PATCH] [libcec] Add repeating keypress patch from popcornmix' repo +Subject: [PATCH 30/94] [libcec] Add repeating keypress patch from popcornmix' + repo --- tools/depends/target/libcec/Makefile | 1 + @@ -3719,10 +3880,14 @@ index 0000000..8366a69 +-- +1.9.1 + -From aae277129fda65177902a4b3552b69e81ca60082 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 63cf430f0c46993da63b37ded994cf1bc964dece Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 28 Oct 2014 00:19:40 +0000 -Subject: [PATCH] [cec] Add settings for configuring button repeats +Subject: [PATCH 31/94] [cec] Add settings for configuring button repeats --- addons/resource.language.en_gb/resources/strings.po | 15 +++++++++++++++ @@ -3802,10 +3967,14 @@ index e0d8dae..f738c84 100644 if (GetSettingBool("pause_playback_on_deactivate")) { -From c87e546b73f1b58c4132cac53ae76299f3807a1b Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 3550128073031d9a7560b76c1f215acfdf58bc1d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 3 Nov 2014 23:17:46 +0000 -Subject: [PATCH] [cec] Don't discard buttons when repeat mode is enabled +Subject: [PATCH 32/94] [cec] Don't discard buttons when repeat mode is enabled --- xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 5 ++++- @@ -3827,10 +3996,14 @@ index f738c84..58d7d0d 100644 { if (m_currentButton.iButton == key.iButton && m_currentButton.iDuration == 0) { -From 3aaafcb5d5dfaa47e4285c5277e9303a583e94a8 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 8dca506d73857bc367f3e4ce0a4c95c622d269da Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 4 Nov 2014 18:50:00 +0000 -Subject: [PATCH] [cec] Temp - more logging +Subject: [PATCH 33/94] [cec] Temp - more logging --- xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 8 +++++++- @@ -3881,10 +4054,14 @@ index 58d7d0d..dfba61a 100644 m_buttonQueue.push_back(key); } -From ffba32357856396008e26926c52cb27bf7ad5b54 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From a211f8b79ba4842fcde3cb56abc5a2c2b179ba74 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 15 Nov 2014 12:03:34 +0000 -Subject: [PATCH] [dvdplayer] Add lock for player creation +Subject: [PATCH 34/94] [dvdplayer] Add lock for player creation --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 3 +++ @@ -3923,16 +4100,20 @@ diff --git a/xbmc/cores/dvdplayer/DVDPlayer.h b/xbmc/cores/dvdplayer/DVDPlayer.h index 2f00647..b1418e3 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.h +++ b/xbmc/cores/dvdplayer/DVDPlayer.h -@@ -567,4 +567,5 @@ class CDVDPlayer : public IPlayer, public CThread, public IDVDPlayer +@@ -567,4 +567,5 @@ protected: // omxplayer variables struct SOmxPlayerState m_OmxPlayerState; bool m_omxplayer_mode; // using omxplayer acceleration + CCriticalSection m_players_lock; }; -From 806552069a7085e7ec945502c5c9f325ec84db35 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 385ad863ed94508583882aff64a7e54d14ed89ae Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 24 Nov 2014 22:07:25 +0000 -Subject: [PATCH] [dvdplayervideo] Prod decoder when in stills mode +Subject: [PATCH 35/94] [dvdplayervideo] Prod decoder when in stills mode An asynchronous hardware decoder doesn't only produce output pictures when new packets arrive. In dvd stills mode give it a chance to return pictures that weren't ready when frame was decoded. @@ -4008,10 +4189,14 @@ index 379c541..b5777a1 100644 } if (pMsg->IsType(CDVDMsg::GENERAL_SYNCHRONIZE)) -From e03cd165e45dcbff956cb81b0a8f0da15154f67b Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From bbc0384997b0bb8ccd869b320ec8d60fa31d5087 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 27 Nov 2014 16:31:56 +0000 -Subject: [PATCH] [languageinvoker] Reduce priority of python threads +Subject: [PATCH 36/94] [languageinvoker] Reduce priority of python threads --- xbmc/interfaces/generic/LanguageInvokerThread.cpp | 5 +++++ @@ -4033,10 +4218,14 @@ index fcdd063..16f0c89 100644 return true; } -From b4c3faf5d8b6dec5b1e867b3cda681e1cb6b3b88 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 77e535d399cebf699327d19490ef78519004a557 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 14 Dec 2013 16:55:05 +0000 -Subject: [PATCH] logging: Add microsecond timer to log messages +Subject: [PATCH 37/94] logging: Add microsecond timer to log messages --- xbmc/utils/log.cpp | 17 +++++++++++++++-- @@ -4088,11 +4277,15 @@ index 3443f12..31c4a99 100644 (uint64_t)CThread::GetCurrentThreadId(), levelNames[logLevel]) + strData; -From 93c5a32d9c502d13f55ce0500bb9860f6375ecc1 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 661ea4c177ec232a63a9a9ba21f855c5c581a2f3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 29 Nov 2014 15:25:16 +0000 -Subject: [PATCH] [rbp] hack: wait for splash to complete before changing hdmi - mode +Subject: [PATCH 38/94] [rbp] hack: wait for splash to complete before changing + hdmi mode --- xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp | 49 +++++++++++++++++++++++++ @@ -4164,10 +4357,15 @@ index ee29770..ff0d3e3 100644 DestroyDispmaxWindow(); RENDER_STEREO_MODE stereo_mode = g_graphicsContext.GetStereoMode(); -From 89e8ca28f5f135b3eea72237c46d48c195cb555c Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 50bec5d613ec9e5b1b946f904776565de130eafd Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 11 Dec 2014 17:00:57 +0000 -Subject: [PATCH] Fix for UI not showing both extractflags and extractthumb +Subject: [PATCH 39/94] Fix for UI not showing both extractflags and + extractthumb --- addons/resource.language.en_gb/resources/strings.po | 11 ++++++++--- @@ -4229,11 +4427,15 @@ index 918e8bf..61e1a22 100644 true -From 9648793c91db1b59c4b2ae741ca81fe150462ee2 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 88fcb5323a0a277feb21bcba9ef62986089aef46 Mon Sep 17 00:00:00 2001 From: anaconda Date: Thu, 11 Sep 2014 21:30:43 +0200 -Subject: [PATCH] Disable autoscrolling while on screensaver and while opening - streams. +Subject: [PATCH 40/94] Disable autoscrolling while on screensaver and while + opening streams. --- xbmc/Application.cpp | 10 ++++++++++ @@ -4266,7 +4468,7 @@ diff --git a/xbmc/Application.h b/xbmc/Application.h index d7e5eee..a34ed98 100644 --- a/xbmc/Application.h +++ b/xbmc/Application.h -@@ -390,6 +390,8 @@ class CApplication : public CXBApplicationEx, public IPlayerCallback, public IMs +@@ -390,6 +390,8 @@ public: */ void UnregisterActionListener(IActionListener *listener); @@ -4362,10 +4564,14 @@ index d7bc1c5..ac76629 100644 { if (m_lastRenderTime) m_autoScrollDelayTime += currentTime - m_lastRenderTime; -From 31ca2e2d20ac422b29163bdedc4a3442ebc1fb42 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From ba23654e3dfab6001f1087babc1fb6ebb050b18d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 13 Dec 2014 18:35:20 +0000 -Subject: [PATCH] [demuxer] Avoid memcpy on every demuxer packet +Subject: [PATCH 41/94] [demuxer] Avoid memcpy on every demuxer packet Avoids an unnecessary memcpy on every demuxer packet which for high bitrate videos can be significant. @@ -4462,10 +4668,14 @@ index ab298b2..10c5ee0 100644 delete pPacket; } catch(...) { -From c5ab0539c4924aa9edc3decc38b667f8dd5984ae Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 5fa43ef359f31432130fe4e92fbd0a1235ca16c2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 15 Feb 2015 14:06:12 +0000 -Subject: [PATCH] [mmal] Allow mmal codec for dvd stills +Subject: [PATCH 42/94] [mmal] Allow mmal codec for dvd stills --- xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp | 7 +++++++ @@ -4496,10 +4706,14 @@ index 84e9ef1..f920f49 100644 if (hint.stills && (hint.codec == AV_CODEC_ID_MPEG2VIDEO || hint.codec == AV_CODEC_ID_MPEG1VIDEO)) { // If dvd is an mpeg2 and hint.stills -From 9a5738bae07d81d195bb362a67c0cf3112cc50d5 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From b128dfc4848e7a102208c8ec95e1390c9a7d6d47 Mon Sep 17 00:00:00 2001 From: anaconda Date: Wed, 25 Feb 2015 18:22:21 +0100 -Subject: [PATCH] Load OSD dialogs on startup. +Subject: [PATCH 43/94] Load OSD dialogs on startup. Fixes skipped frames the first time they're loaded in memory on less powered devices, like a Raspberry Pi, when using DVDPlayer. @@ -4593,11 +4807,195 @@ index b248566..96c63cd 100644 CGUIDialogVideoSettings::~CGUIDialogVideoSettings() { } -From 0c40bf778b0b018574abf05ad841d1606e237184 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 22ccff2dc885a214b951e69323c9045830607ee4 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sat, 7 Mar 2015 22:46:21 +0000 +Subject: [PATCH 44/94] configure: Add raspberry-pi2 platform + +--- + configure.ac | 14 +++++++-- + m4/xbmc_arch.m4 | 8 ++--- + tools/depends/Makefile.include.in | 2 +- + tools/depends/configure.ac | 38 ++++++++++++++++------- + tools/depends/target/Toolchain.cmake.in | 2 +- + tools/depends/target/Toolchain_binaddons.cmake.in | 2 +- + 6 files changed, 44 insertions(+), 22 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 55e73b9..7a06a31 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -698,8 +698,17 @@ case $use_platform in + raspberry-pi) + target_platform=target_raspberry_pi + use_neon=no +- use_arch="arm" + use_cpu=arm1176jzf-s ++ ;; ++ raspberry-pi2) ++ target_platform=target_raspberry_pi ++ use_neon=yes ++ use_cpu=cortex-a7 ++ ;; ++esac ++ ++if test "$target_platform" = "target_raspberry_pi" ; then ++ use_arch="arm" + use_hardcoded_tables="yes" + use_openmax=no + ARCH="arm" +@@ -708,8 +717,7 @@ case $use_platform in + USE_MMAL=1; AC_DEFINE([HAS_MMAL],[1],["Define to 1 if MMAL libs is enabled"]) + CFLAGS="$CFLAGS" + CXXFLAGS="$CXXFLAGS" +- ;; +-esac ++fi + + if test "$host_vendor" = "apple"; then + use_avahi=no +diff --git a/m4/xbmc_arch.m4 b/m4/xbmc_arch.m4 +index 0b66a82..adb8e97 100644 +--- a/m4/xbmc_arch.m4 ++++ b/m4/xbmc_arch.m4 +@@ -77,9 +77,7 @@ if test "$target_platform" = "target_android" ; then + AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -DTARGET_ANDROID") + fi + +-case $use_platform in +- raspberry-pi) +- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI") +- ;; +-esac ++if test "$target_platform" = "target_raspberry_pi" ; then ++ AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI") ++fi + ]) +diff --git a/tools/depends/Makefile.include.in b/tools/depends/Makefile.include.in +index 6e37022..326e7b8 100644 +--- a/tools/depends/Makefile.include.in ++++ b/tools/depends/Makefile.include.in +@@ -20,7 +20,7 @@ NATIVE_OS=@build_os@ + CROSS_COMPILING=@cross_compiling@ + ARCH_DEFINES=@ARCH_DEFINES@ + NATIVE_ARCH_DEFINES=@NATIVE_ARCH_DEFINES@ +-TARGET_PLATFORM=@use_platform@ ++TARGET_PLATFORM=@target_platform@ + XCODE_VERSION=@use_xcode@ + AAPT=@AAPT@ + DX=@DX@ +diff --git a/tools/depends/configure.ac b/tools/depends/configure.ac +index 12935e3..478f5f0 100644 +--- a/tools/depends/configure.ac ++++ b/tools/depends/configure.ac +@@ -17,7 +17,8 @@ AC_ARG_WITH([toolchain], + AC_ARG_WITH([platform], + [AS_HELP_STRING([--with-platform], + [target platform [auto]])], +- [use_platform=$withval]) ++ [use_platform=$withval], ++ [target_platform=$withval]) + + AC_ARG_WITH([firmware], + [AS_HELP_STRING([--with-firmware], +@@ -302,34 +303,49 @@ case $host in + AC_MSG_ERROR(unsupported host ($use_host)) + esac + +-if test "$use_platform" = "raspberry-pi"; then ++case $use_platform in ++ raspberry-pi) ++ target_platform=raspberry_pi ++ use_neon=no ++ use_cpu=arm1176jzf-s ++ platform_cflags="-mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp" ++ platform_cxxflags="-mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp" ++ platform_ldflags="" ++ ;; ++ raspberry-pi2) ++ target_platform=raspberry_pi ++ use_neon=yes ++ use_cpu=cortex-a7 ++ platform_cflags="-fPIC -mcpu=cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4" ++ platform_cxxflags="-fPIC -mcpu=cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4" ++ platform_ldflags="-lpthread" ++ ;; ++esac ++ ++if test "$target_platform" = "raspberry_pi" ; then + if test -d "${use_firmware}/opt/vc/include"; then + : + else + AC_MSG_ERROR([Raspberry Pi firmware not found]) + fi +- use_neon=no + use_arch="arm" +- use_cpu="arm1176jzf-s" + use_hardcoded_tables="yes" +- use_alsa="no" + ARCH="arm" + platform_os="linux" + cross_compiling="yes" + use_host="arm-linux-gnueabihf" + deps_dir="$use_host" +- platform_cflags="-pipe -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=hard \ +- -mfpu=vfp -mabi=aapcs-linux -Wno-psabi -Wa,-mno-warn-deprecated \ +- -Wno-deprecated-declarations -isystem${use_firmware}/opt/vc/include \ ++ platform_cflags+=" -pipe -mabi=aapcs-linux -Wno-psabi \ ++ -Wa,-mno-warn-deprecated -Wno-deprecated-declarations \ ++ -isystem${use_firmware}/opt/vc/include \ + -isystem${use_firmware}/opt/vc/include/interface/vcos/pthreads \ + -isystem${use_firmware}/opt/vc/include/interface/vmcs_host/linux" +- platform_cxxflags="-pipe -mcpu=arm1176jzf-s -mtune=arm1176jzf-s \ +- -mfloat-abi=hard -mfpu=vfp -mabi=aapcs-linux -Wno-psabi \ ++ platform_cxxflags+=" -pipe -mabi=aapcs-linux -Wno-psabi \ + -Wa,-mno-warn-deprecated -Wno-deprecated-declarations \ + -isystem${use_firmware}/opt/vc/include \ + -isystem${use_firmware}/opt/vc/include/interface/vcos/pthreads \ + -isystem${use_firmware}/opt/vc/include/interface/vmcs_host/linux" +- platform_ldflags="-L${use_firmware}/opt/vc/lib -lEGL -lGLESv2 -lbcm_host -lvcos \ ++ platform_ldflags+=" -L${use_firmware}/opt/vc/lib -lEGL -lGLESv2 -lbcm_host -lvcos \ + -lvchiq_arm" + fi + +diff --git a/tools/depends/target/Toolchain.cmake.in b/tools/depends/target/Toolchain.cmake.in +index 943be73..59385e8 100644 +--- a/tools/depends/target/Toolchain.cmake.in ++++ b/tools/depends/target/Toolchain.cmake.in +@@ -1,6 +1,6 @@ + SET(OS "@platform_os@") + SET(CPU "@use_cpu@") +-SET(PLATFORM "@use_platform@") ++SET(PLATFORM "@target_platform@") + IF("${OS}" STREQUAL "linux" OR "${OS}" STREQUAL "android") + SET(CMAKE_SYSTEM_NAME Linux) + ENDIF() +diff --git a/tools/depends/target/Toolchain_binaddons.cmake.in b/tools/depends/target/Toolchain_binaddons.cmake.in +index dc6d565..98494b4 100644 +--- a/tools/depends/target/Toolchain_binaddons.cmake.in ++++ b/tools/depends/target/Toolchain_binaddons.cmake.in +@@ -1,7 +1,7 @@ + set(CMAKE_SYSTEM_VERSION 1) + set(OS "@platform_os@") + set(CPU "@use_cpu@") +-set(PLATFORM "@use_platform@") ++set(PLATFORM "@target_platform@") + if("${OS}" STREQUAL "linux" OR "${OS}" STREQUAL "android") + set(CMAKE_SYSTEM_NAME Linux) + endif() +-- +2.5.0 + + +From a391a55f4d2e257a6716c8726165fe8d205cfffb Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 14 Apr 2015 20:51:14 +0100 -Subject: [PATCH] [gui] Also limit GUI updates when in non full-screen video - mode +Subject: [PATCH 45/94] [gui] Also limit GUI updates when in non full-screen + video mode --- xbmc/Application.cpp | 4 +++- @@ -4625,10 +5023,14 @@ index c274e2f..212a5c7 100644 } g_windowManager.FrameMove(); } -From 4a5a77bd0d87ecbbc2f45f6f73a258210def3980 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 1fe321817d24a691808649fd3ee42d81ef57087e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 21 Apr 2015 14:32:07 +0100 -Subject: [PATCH] [mmalrenderer] Add sharpness control +Subject: [PATCH 46/94] [mmalrenderer] Add sharpness control --- addons/resource.language.en_gb/resources/strings.po | 2 +- @@ -4691,7 +5093,7 @@ diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.h b/xbmc/cores/VideoRenderer index d3e5129..a71e645 100644 --- a/xbmc/cores/VideoRenderers/MMALRenderer.h +++ b/xbmc/cores/VideoRenderers/MMALRenderer.h -@@ -119,6 +119,7 @@ class CMMALRenderer : public CBaseRenderer +@@ -119,6 +119,7 @@ protected: RENDER_STEREO_MODE m_display_stereo_mode; bool m_StereoInvert; int m_inflight; @@ -4699,10 +5101,14 @@ index d3e5129..a71e645 100644 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_vout; -From 3f78d202fd034e566c44194880cd2a4c4183e947 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 679fdc4c44faf1a24d79ca7e787e756d29206467 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 24 Apr 2015 13:49:51 +0100 -Subject: [PATCH] [dvdplayer] Add back required include +Subject: [PATCH 47/94] [dvdplayer] Add back required include --- xbmc/cores/dvdplayer/DVDPlayerVideo.cpp | 1 + @@ -4720,10 +5126,15 @@ index b5777a1..64b4d60 100644 #include "DVDOverlayRenderer.h" #include "guilib/GraphicContext.h" #include -From 9f555729881bf17d4638f61009775ae5e2cfefd3 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 215bed9200f096f6c3eeb8956b19332b9fe5dbd3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 May 2015 23:58:06 +0100 -Subject: [PATCH] [screensaver] Leave GUI contents available for screensaver +Subject: [PATCH 48/94] [screensaver] Leave GUI contents available for + screensaver --- xbmc/guilib/GUIWindowManager.cpp | 11 ++++++++++- @@ -4751,11 +5162,15 @@ index 89cfb8b..767c7b6 100644 g_infoManager.SetNextWindow(WINDOW_INVALID); // Add window to the history list (we must do this before we activate it, -From 9f53886de4c8da1af721841f6bdbc8d4e85ad1ef Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 9ecafc23229679c7dedce2c5d6b7bf928cf7db9a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 6 Jun 2015 18:43:57 +0100 -Subject: [PATCH] ffmpeg: Automatic switch to software decode for GMC with more - than one warp point +Subject: [PATCH 49/94] ffmpeg: Automatic switch to software decode for GMC + with more than one warp point --- ...Signal-unsupported-GMC-with-more-than-one.patch | 48 ++++++++++++++++++++++ @@ -4872,7 +5287,7 @@ diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h b/xbmc/cores/dvdplayer/ index e380056..122e539 100644 --- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h +++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h -@@ -160,6 +160,7 @@ class CDemuxStreamVideo : public CDemuxStream +@@ -160,6 +160,7 @@ public: type = STREAM_VIDEO; iOrientation = 0; iBitsPerPixel = 0; @@ -4880,7 +5295,7 @@ index e380056..122e539 100644 } virtual ~CDemuxStreamVideo() {} -@@ -176,6 +177,7 @@ class CDemuxStreamVideo : public CDemuxStream +@@ -176,6 +177,7 @@ public: int iOrientation; // orientation of the video in degress counter clockwise int iBitsPerPixel; std::string stereo_mode; // expected stereo mode @@ -4933,7 +5348,7 @@ diff --git a/xbmc/cores/dvdplayer/DVDStreamInfo.h b/xbmc/cores/dvdplayer/DVDStre index c0e22a2..3849993 100644 --- a/xbmc/cores/dvdplayer/DVDStreamInfo.h +++ b/xbmc/cores/dvdplayer/DVDStreamInfo.h -@@ -73,6 +73,7 @@ class CDVDStreamInfo +@@ -73,6 +73,7 @@ public: int bitsperpixel; int pid; std::string stereo_mode; // stereoscopic 3d mode @@ -4967,17 +5382,21 @@ index 7251fc1..3429cea 100644 supported = true; else if ((hint.codec == AV_CODEC_ID_VC1 || hint.codec == AV_CODEC_ID_WMV3) && g_RBP.GetCodecWvc1()) supported = true; -From 62030ac330f5e95b2bb333021897f0d88ac4cc0e Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 76bbd617017c090bc0c9bb39946066a16cf2f34c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 22 Jun 2015 21:46:57 +0100 -Subject: [PATCH] [rbp] Use default resampling setting on Pi2 +Subject: [PATCH 50/94] [rbp] Use default resampling setting on Pi2 --- system/settings/rbp2.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/system/settings/rbp2.xml b/system/settings/rbp2.xml -index 8cc8f19..52778ecd 100644 +index 8cc8f19..52778ec 100644 --- a/system/settings/rbp2.xml +++ b/system/settings/rbp2.xml @@ -23,6 +23,11 @@ @@ -4992,10 +5411,14 @@ index 8cc8f19..52778ecd 100644
-From b8a4604577c8cc6e7361128fc276347dd96b7733 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 70d4f7303dea5456c7e1683a9f30ef3b89832612 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 10 Mar 2016 17:54:59 +0000 -Subject: [PATCH] rbp: Expose gpu memory allocation functions +Subject: [PATCH 51/94] rbp: Expose gpu memory allocation functions --- xbmc/linux/RBP.cpp | 116 ++++++++++++ @@ -5175,7 +5598,7 @@ index db2fade..ab24bbe 100644 class CRBP { public: -@@ -66,6 +80,7 @@ class CRBP +@@ -66,6 +80,7 @@ public: void WaitVsync(); double AdjustHDMIClock(double adjust); double GetAdjustHDMIClock() { return m_last_pll_adjust; } @@ -5183,7 +5606,7 @@ index db2fade..ab24bbe 100644 private: DllBcmHost *m_DllBcmHost; -@@ -83,6 +98,7 @@ class CRBP +@@ -83,6 +98,7 @@ private: class DllLibOMXCore; CCriticalSection m_critSection; double m_last_pll_adjust; @@ -5657,10 +6080,14 @@ index 0000000..94e6e79 + +#endif /* __USER_VCSM__H__INCLUDED__ */ + -From aea67bb43ee0f8ac00c40c541520250e53b429f2 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 9910d8fb2c3e0273d9e272920e6fd7b1c48b28ec Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 10 Mar 2016 17:56:11 +0000 -Subject: [PATCH] [rbp] HW mouse pointer +Subject: [PATCH 52/94] [rbp] HW mouse pointer Updating the mouse point provokes a complete screen update which can make it feel laggy and results in high cpu. @@ -5881,7 +6308,7 @@ diff --git a/xbmc/linux/RBP.h b/xbmc/linux/RBP.h index ab24bbe..2eee35d 100644 --- a/xbmc/linux/RBP.h +++ b/xbmc/linux/RBP.h -@@ -99,6 +99,15 @@ class CRBP +@@ -99,6 +99,15 @@ private: CCriticalSection m_critSection; double m_last_pll_adjust; int m_mb; @@ -6077,7 +6504,7 @@ index a17e987..23244a2 100644 class CWinEventsLinux : public IWinEvents { -@@ -43,6 +44,16 @@ class CWinEventsLinux : public IWinEvents +@@ -43,6 +44,16 @@ public: private: static bool m_initialized; static CLinuxInputDevices m_devices; @@ -6094,10 +6521,14 @@ index a17e987..23244a2 100644 }; #endif -From 499ac171bb8804bd2627a74f25bcdc5cb3b4bc5d Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From ad1619a742ebf4e5ac70f1e30877a1ff0e035ac2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 2 Aug 2014 17:48:04 +0100 -Subject: [PATCH] [omx] Report decoded image name +Subject: [PATCH 53/94] [omx] Report decoded image name --- xbmc/cores/omxplayer/OMXImage.cpp | 1 + @@ -6115,11 +6546,15 @@ index 1524214..a01c435 100644 } else { -From 8ddf6074bbfb0f1fb727e069467d9cecde625343 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 9ddc7a2bc142caee6322e5cf709e47c87ce3c182 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 11 Apr 2014 16:12:27 +0100 -Subject: [PATCH] [omxplayer] Add ability to log more timestamp info in extra - debug settings +Subject: [PATCH 54/94] [omxplayer] Add ability to log more timestamp info in + extra debug settings --- addons/resource.language.en_gb/resources/strings.po | 5 +++++ @@ -6268,10 +6703,14 @@ index 22b8459..8045a03 100644 } void CAdvancedSettings::setExtraLogLevel(const std::vector &components) -From 3c6bfac3696f081191678d1257e3d8f28b24c95f Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From f72277b8b4cb29365ad55a8e6d08dd73262b8423 Mon Sep 17 00:00:00 2001 From: Memphiz Date: Tue, 18 Nov 2014 13:28:36 +0100 -Subject: [PATCH] - evaluate the setting for hiding watched +Subject: [PATCH 55/94] - evaluate the setting for hiding watched movies/episodes/musicvideos in recently added job (should influence homescreen of skins only) @@ -6383,7 +6822,7 @@ diff --git a/xbmc/video/VideoDatabase.h b/xbmc/video/VideoDatabase.h index 2021dd9..5f67d10 100644 --- a/xbmc/video/VideoDatabase.h +++ b/xbmc/video/VideoDatabase.h -@@ -693,9 +693,9 @@ class CVideoDatabase : public CDatabase +@@ -693,9 +693,9 @@ public: bool GetEpisodesNav(const std::string& strBaseDir, CFileItemList& items, int idGenre=-1, int idYear=-1, int idActor=-1, int idDirector=-1, int idShow=-1, int idSeason=-1, const SortDescription &sortDescription = SortDescription()); bool GetMusicVideosNav(const std::string& strBaseDir, CFileItemList& items, int idGenre=-1, int idYear=-1, int idArtist=-1, int idDirector=-1, int idStudio=-1, int idAlbum=-1, int idTag=-1, const SortDescription &sortDescription = SortDescription()); @@ -6396,10 +6835,14 @@ index 2021dd9..5f67d10 100644 bool HasContent(); bool HasContent(VIDEODB_CONTENT_TYPE type); -From 8e03571c814cd16ae2a32d7c5ce37078734d871d Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 50ca0e3e5e048055865c0e89f50e5293db9f95b2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 7 May 2015 14:28:37 +0100 -Subject: [PATCH] build: Add vcsm lib +Subject: [PATCH 56/94] build: Add vcsm lib --- configure.ac | 2 +- @@ -6418,11 +6861,15 @@ index 7a06a31..239a2a1 100644 else AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library)) AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library)) -From 9710e21f10846bad03639d788f59593aadafb4ed Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From da10dd6464f3bce3ed9f515baa0eed44c2775d9f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 8 May 2015 14:09:31 +0100 -Subject: [PATCH] [cec] re-implement 'RFC' style POLLing for LA registering - process +Subject: [PATCH 57/94] [cec] re-implement 'RFC' style POLLing for LA + registering process --- ...t-RFC-style-POLLing-for-LA-registering-pr.patch | 194 +++++++++++++++++++++ @@ -6642,10 +7089,14 @@ index ddf9963..5d1f933 100644 cd $(PLATFORM)/build; $(CMAKE) -DBUILD_SHARED_LIBS=1 -DSKIP_PYTHON_WRAPPER:STRING=1 -DCMAKE_INSTALL_LIBDIR=$(PREFIX)/lib .. $(LIBDYLIB): $(PLATFORM) -From 44cef9d4312ed30c96b24a85a6980318c036d0f5 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 390171edbbd26e7763b5989d9793ec508e6a2e8f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 7 May 2015 15:35:43 +0100 -Subject: [PATCH] ffmpeg: test: increase number of threads +Subject: [PATCH 58/94] ffmpeg: test: increase number of threads --- xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 3 +++ @@ -6665,10 +7116,14 @@ index 3498503..c2f3287 100644 if( num_threads > 1) m_pCodecContext->thread_count = num_threads; m_pCodecContext->thread_safe_callbacks = 1; -From b73a054068ac03f6e65f6ed559b8f9d2a3a8d5ff Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 3234bb00454e29cbfcfb36011d0a85fcb2891235 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 22 May 2015 13:56:29 +0100 -Subject: [PATCH] ffmpeg: Allow neon to be enabled in unified builds +Subject: [PATCH 59/94] ffmpeg: Allow neon to be enabled in unified builds --- tools/depends/target/ffmpeg/Makefile | 4 ++++ @@ -6690,10 +7145,15 @@ index 6a9f105..fef5ef2 100644 endif ifeq ($(OS), linux) ffmpg_config += --target-os=$(OS) --cpu=$(CPU) -From 541c085a991610efe5258b4eab31d1fcbea67c9a Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 6942378a95385798c8fe53d0480cddee6a5ad3b8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 5 Mar 2015 20:00:59 +0000 -Subject: [PATCH] [ffmpmeg] Discard data before VO/VOL in mpeg-4 over mpegts +Subject: [PATCH 60/94] [ffmpmeg] Discard data before VO/VOL in mpeg-4 over + mpegts --- ...-data-before-VO-VOL-in-mpeg-4-over-mpegts.patch | 69 ++++++++++++++++++++++ @@ -6798,10 +7258,14 @@ index fef5ef2..e780521 100644 cd $(PLATFORM);\ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \ ./configure $(ffmpg_config) -From 9b44a82266b1c68388206b0b963c0483e2b1f25b Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 3c407f5763ef0302d8cdaf7fae59e963555517e3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 27 Feb 2015 14:37:27 +0000 -Subject: [PATCH] ffmpeg: Add some upstream HEVC optimisations +Subject: [PATCH 61/94] ffmpeg: Add some upstream HEVC optimisations --- tools/depends/target/ffmpeg/Makefile | 6 +- @@ -10584,10 +11048,14 @@ index 0000000..5e8e07d +-- +2.5.0 + -From 9950c711b222577d755847c188b26d7f92944561 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 1d2a77c2e92160fb532fc21c53f712cf1ffc3701 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 7 May 2015 14:04:18 +0100 -Subject: [PATCH] [ffmpeg] Add GPU acceleration to hevc +Subject: [PATCH 62/94] [ffmpeg] Add GPU acceleration to hevc --- tools/depends/target/ffmpeg/Makefile | 4 +- @@ -47295,10 +47763,14 @@ index 0000000..f2b8ffc +-- +2.5.0 + -From 102d10e79b164ff891130f6d694662d062a76219 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 9f7e6280af3292b27e4bdcd5e9e8a51eee261521 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 14 Dec 2015 12:35:14 +0000 -Subject: [PATCH] [build] Add patches to ffmpeg for native build +Subject: [PATCH 63/94] [build] Add patches to ffmpeg for native build --- tools/depends/target/ffmpeg/autobuild.sh | 8 ++++++++ @@ -47323,10 +47795,14 @@ index b9bfd57..f6d4c3b 100755 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \ ./configure --prefix=$FFMPEG_PREFIX \ --extra-version="kodi-${VERSION}" \ -From fb9bc934858656128ef500f2d4078489b84030b8 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From b525cc97c0f168cc16849c87ec91234ea05ddd13 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 12 Jan 2016 16:29:57 +0000 -Subject: [PATCH] ffmpeg: Add cabac opimisations for hevc +Subject: [PATCH 64/94] ffmpeg: Add cabac opimisations for hevc --- .../0001-Squashed-commit-of-the-following.patch | 2288 ++++++++++++++++++++ @@ -49658,10 +50134,93 @@ index e4acfa9..072e711 100644 cd $(PLATFORM);\ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \ -From 56e531b1a6fbe9b7cb67afe9249586438b60328d Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 4ba5e77ceafc42f8307d5611d59efe5065df16fa Mon Sep 17 00:00:00 2001 +From: Rainer Hochecker +Date: Tue, 14 Jul 2015 08:30:44 +0200 +Subject: [PATCH 65/94] fix high cpu load caused by false positive frame + limiter + +--- + xbmc/Application.cpp | 20 +++++++++----------- + 1 file changed, 9 insertions(+), 11 deletions(-) + +diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp +index 212a5c7..1adbb01 100644 +--- a/xbmc/Application.cpp ++++ b/xbmc/Application.cpp +@@ -1902,7 +1902,7 @@ void CApplication::Render() + + bool hasRendered = false; + bool limitFrames = false; +- unsigned int singleFrameTime = 10; // default limit 100 fps ++ unsigned int singleFrameTime = 40; // default limit 25 fps + bool vsync = true; + + // Whether externalplayer is playing and we're unfocused +@@ -1916,24 +1916,22 @@ void CApplication::Render() + if (!extPlayerActive && g_graphicsContext.IsFullScreenVideo() && !m_pPlayer->IsPausedPlayback()) + { + m_bPresentFrame = g_renderManager.HasFrame(); +- if (vsync_mode == VSYNC_DISABLED) +- vsync = false; + } + else + { + // engage the frame limiter as needed + limitFrames = lowfps || extPlayerActive; +- // DXMERGE - we checked for g_videoConfig.GetVSyncMode() before this +- // perhaps allowing it to be set differently than the UI option?? ++ ++ // TODO: ++ // remove those useless modes, they don't do any good + if (vsync_mode == VSYNC_DISABLED || vsync_mode == VSYNC_VIDEO) + { + limitFrames = true; // not using vsync. +- vsync = false; ++ singleFrameTime = 10; + } +- else if ((g_infoManager.GetFPS() > g_graphicsContext.GetFPS() + 10) && g_infoManager.GetFPS() > 1000.0f / singleFrameTime) ++ else if ((g_infoManager.GetFPS() > g_graphicsContext.GetFPS() + 10) && g_infoManager.GetFPS() > 100.0f) + { + limitFrames = true; // using vsync, but it isn't working. +- vsync = false; + } + + if (limitFrames) +@@ -1957,7 +1955,10 @@ void CApplication::Render() + else if (vsync_mode == VSYNC_ALWAYS) + g_Windowing.SetVSync(true); + else if (vsync_mode != VSYNC_DRIVER) ++ { + g_Windowing.SetVSync(false); ++ vsync = false; ++ } + + if (m_bPresentFrame && m_pPlayer->IsPlaying() && !m_pPlayer->IsPaused()) + ResetScreenSaver(); +@@ -2025,9 +2026,6 @@ void CApplication::Render() + //fps limiter, make sure each frame lasts at least singleFrameTime milliseconds + if (limitFrames || !(flip || m_bPresentFrame)) + { +- if (!limitFrames) +- singleFrameTime = 40; //if not flipping, loop at 25 fps +- + unsigned int frameTime = now - m_lastFrameTime; + if (frameTime < singleFrameTime) + Sleep(singleFrameTime - frameTime); +-- +2.5.0 + + +From 488f86f0dc3a9a986c4535697827ad656d8fedf1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 5 Aug 2015 13:43:25 +0100 -Subject: [PATCH] [dvdplayeraudio] Avoid busy spinning when queue is empty +Subject: [PATCH 66/94] [dvdplayeraudio] Avoid busy spinning when queue is + empty --- xbmc/cores/dvdplayer/DVDPlayerAudio.cpp | 2 ++ @@ -49680,10 +50239,14 @@ index 97a23a6..9f21a19 100644 } continue; -From 9ca8d9d2b8799f4c9c6ebce05b815d34a086ba13 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 05a5655c10b72fc3f9da1a7b91e077bb4eee0c50 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 6 Aug 2015 11:23:05 +0100 -Subject: [PATCH] [rbp] Make sync playback to display the default option +Subject: [PATCH 67/94] [rbp] Make sync playback to display the default option --- system/settings/rbp.xml | 7 +++++++ @@ -49707,11 +50270,15 @@ index 1506035..f2a6892 100644 false -From 1aa08c1f2360c42cdcb4cc21d28b5dd701fca571 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 3f638db8e9c0eed4dc2d53007c76b6ac48cb7a95 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 8 Sep 2015 23:42:30 +0100 -Subject: [PATCH] [cec] Fixing initialisation issue found on Raspberry Pi with - Buildroot +Subject: [PATCH 68/94] [cec] Fixing initialisation issue found on Raspberry Pi + with Buildroot --- tools/depends/target/libcec/Makefile | 1 + @@ -49761,11 +50328,15 @@ index 0000000..8f289f2 + { + m_queue = new CRPiCECAdapterMessageQueue(this); + } -From ee6c60cdfb97ea162c07430f349fe17bf826d17a Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 6ddb38f37c38455d28d9caa357b597b4b9d327e4 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 9 Dec 2015 13:31:14 +0000 -Subject: [PATCH] [mmalcodec] Fail to open when width is invalid. Can happen - with mpegts files +Subject: [PATCH 69/94] [mmalcodec] Fail to open when width is invalid. Can + happen with mpegts files --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 4 ++++ @@ -49786,11 +50357,264 @@ index 3345685..5386b4a 100644 // we always qualify even if DVDFactoryCodec does this too. if (!CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEMMAL) || hints.software) return false; -From 0c6232841ddc2caaf3f17c6866ed48d880421b38 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 9bfbe66e6e477429af4b3ab01f5b3bf4f10ee221 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 21 Dec 2015 18:34:06 +0000 +Subject: [PATCH 70/94] [mmalrender] Force a SetVideoRect after a reconfigure + +There has been an issue with dvd stills and a hdmi refresh rate change. +The hdmi mode change loses the currently displayed picture. +Not an issue for normal video playback as another picture will be along soon. +Not the case in DVD menus. + +SetVideoRect makes the last picture redisplay and so fixes up the menu. +--- + xbmc/cores/VideoRenderers/MMALRenderer.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +index adf6f73..ad3f66f 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +@@ -286,6 +286,10 @@ bool CMMALRenderer::Configure(unsigned int width, unsigned int height, unsigned + m_fps = fps; + m_iFlags = flags; + ++ // cause SetVideoRect to trigger - needed after a hdmi mode change ++ m_src_rect.SetRect(0, 0, 0, 0); ++ m_dst_rect.SetRect(0, 0, 0, 0); ++ + CLog::Log(LOGDEBUG, "%s::%s - %dx%d->%dx%d@%.2f flags:%x format:%d ext:%x orient:%d", CLASSNAME, __func__, width, height, d_width, d_height, fps, flags, format, extended_format, orientation); + if (format != RENDER_FMT_YUV420P && format != RENDER_FMT_BYPASS && format != RENDER_FMT_MMAL) + { +-- +2.5.0 + + +From 138c0d96b6f9979a304f4d3e087f8659717b2471 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 31 Mar 2015 17:31:47 +0100 +Subject: [PATCH 71/94] mmalcodec: Add SetCodecControl function + +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 10 +++++++++- + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h | 2 ++ + 2 files changed, 11 insertions(+), 1 deletion(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +index 5386b4a..799b708 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +@@ -130,6 +130,7 @@ CMMALVideo::CMMALVideo() + m_speed = DVD_PLAYSPEED_NORMAL; + m_fps = 0.0f; + m_num_decoded = 0; ++ m_codecControlFlags = 0; + } + + CMMALVideo::~CMMALVideo() +@@ -875,7 +876,7 @@ int CMMALVideo::Decode(uint8_t* pData, int iSize, double dts, double pts) + } + + if (g_advancedSettings.CanLogComponent(LOGVIDEO)) +- CLog::Log(LOGDEBUG, "%s::%s - ret(%x) pics(%d) inputs(%d) slept(%d) queued(%.2f) (%.2f:%.2f) full(%d)", CLASSNAME, __func__, ret, m_output_ready.size(), mmal_queue_length(m_dec_input_pool->queue), slept, queued*1e-6, m_demuxerPts*1e-6, m_decoderPts*1e-6, full); ++ CLog::Log(LOGDEBUG, "%s::%s - ret(%x) pics(%d) inputs(%d) slept(%d) queued(%.2f) (%.2f:%.2f) full(%d) flags(%x)", CLASSNAME, __func__, ret, m_output_ready.size(), mmal_queue_length(m_dec_input_pool->queue), slept, queued*1e-6, m_demuxerPts*1e-6, m_decoderPts*1e-6, full, m_codecControlFlags); + + return ret; + } +@@ -939,6 +940,7 @@ void CMMALVideo::Reset(void) + } + m_decoderPts = DVD_NOPTS_VALUE; + m_demuxerPts = DVD_NOPTS_VALUE; ++ m_codecControlFlags = 0; + } + + void CMMALVideo::SetSpeed(int iSpeed) +@@ -1049,3 +1051,9 @@ bool CMMALVideo::GetCodecStats(double &pts, int &droppedPics) + droppedPics= -1; + return false; + } ++ ++void CMMALVideo::SetCodecControl(int flags) ++{ ++ CSingleLock lock(m_sharedSection); ++ m_codecControlFlags = flags; ++} +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h +index f4df09c..37d0868 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h +@@ -79,6 +79,7 @@ public: + virtual void SetDropState(bool bDrop); + virtual const char* GetName(void) { return m_pFormatName ? m_pFormatName:"mmal-xxx"; } + virtual bool GetCodecStats(double &pts, int &droppedPics); ++ virtual void SetCodecControl(int flags); + virtual void SetSpeed(int iSpeed); + + // MMAL decoder callback routines. +@@ -121,6 +122,7 @@ protected: + double m_demuxerPts; + double m_decoderPts; + int m_speed; ++ int m_codecControlFlags; + + CCriticalSection m_sharedSection; + MMAL_COMPONENT_T *m_dec; +-- +2.5.0 + + +From db15bb3280518a33c1a67864e126a44b87767047 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sun, 27 Dec 2015 18:44:22 +0000 +Subject: [PATCH 72/94] mmalcodec: Switch to a condition variable when blocking + waiting for a picture + +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 38 ++++++++++++---------- + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h | 3 +- + 2 files changed, 23 insertions(+), 18 deletions(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +index 799b708..3579966 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +@@ -102,7 +102,6 @@ CMMALVideo::CMMALVideo() + { + if (g_advancedSettings.CanLogComponent(LOGVIDEO)) + CLog::Log(LOGDEBUG, "%s::%s %p", CLASSNAME, __func__, this); +- pthread_mutex_init(&m_output_mutex, NULL); + + m_decoded_width = 0; + m_decoded_height = 0; +@@ -141,7 +140,6 @@ CMMALVideo::~CMMALVideo() + Dispose(); + + CSingleLock lock(m_sharedSection); +- pthread_mutex_destroy(&m_output_mutex); + + if (m_deint && m_deint->control && m_deint->control->is_enabled) + mmal_port_disable(m_deint->control); +@@ -285,9 +283,11 @@ void CMMALVideo::dec_output_port_cb(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T *buf + omvb->width = m_decoded_width; + omvb->height = m_decoded_height; + omvb->m_aspect_ratio = m_aspect_ratio; +- pthread_mutex_lock(&m_output_mutex); +- m_output_ready.push(omvb); +- pthread_mutex_unlock(&m_output_mutex); ++ { ++ CSingleLock lock(m_output_mutex); ++ m_output_ready.push(omvb); ++ m_output_cond.notifyAll(); ++ } + kept = true; + } + } +@@ -867,7 +867,8 @@ int CMMALVideo::Decode(uint8_t* pData, int iSize, double dts, double pts) + { + // otherwise we busy spin + CSingleExit unlock(m_sharedSection); +- Sleep(10); ++ CSingleLock lock(m_output_mutex); ++ m_output_cond.wait(lock, 10); + } + if (!m_output_ready.empty()) + ret |= VC_PICTURE; +@@ -916,14 +917,16 @@ void CMMALVideo::Reset(void) + while (1) + { + CMMALVideoBuffer *buffer = NULL; +- pthread_mutex_lock(&m_output_mutex); +- // fetch a output buffer and pop it off the ready list +- if (!m_output_ready.empty()) + { +- buffer = m_output_ready.front(); +- m_output_ready.pop(); ++ CSingleLock lock(m_output_mutex); ++ // fetch a output buffer and pop it off the ready list ++ if (!m_output_ready.empty()) ++ { ++ buffer = m_output_ready.front(); ++ m_output_ready.pop(); ++ } ++ m_output_cond.notifyAll(); + } +- pthread_mutex_unlock(&m_output_mutex); + if (buffer) + { + buffer->Acquire(); +@@ -984,11 +987,12 @@ bool CMMALVideo::GetPicture(DVDVideoPicture* pDvdVideoPicture) + { + CMMALVideoBuffer *buffer; + // fetch a output buffer and pop it off the ready list +- pthread_mutex_lock(&m_output_mutex); +- buffer = m_output_ready.front(); +- m_output_ready.pop(); +- pthread_mutex_unlock(&m_output_mutex); +- ++ { ++ CSingleLock lock(m_output_mutex); ++ buffer = m_output_ready.front(); ++ m_output_ready.pop(); ++ m_output_cond.notifyAll(); ++ } + assert(buffer->mmal_buffer); + memset(pDvdVideoPicture, 0, sizeof *pDvdVideoPicture); + pDvdVideoPicture->format = RENDER_FMT_MMAL; +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h +index 37d0868..ca28c6f 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h +@@ -105,7 +105,8 @@ protected: + const char *m_pFormatName; + + // mmal output buffers (video frames) +- pthread_mutex_t m_output_mutex; ++ CCriticalSection m_output_mutex; ++ XbmcThreads::ConditionVariable m_output_cond; + std::queue m_output_ready; + + // initialize mmal and get decoder component +-- +2.5.0 + + +From 426d5fc36b57594a4cc77985bc9ad78746e0e502 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sat, 16 Jan 2016 16:46:03 +0000 +Subject: [PATCH 73/94] omxaudio: Avoid reporting a spurious cached value + +Avoids seek bar showing zero after a seek +--- + xbmc/cores/omxplayer/OMXAudio.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/cores/omxplayer/OMXAudio.cpp b/xbmc/cores/omxplayer/OMXAudio.cpp +index 70d0866..052b5ef 100644 +--- a/xbmc/cores/omxplayer/OMXAudio.cpp ++++ b/xbmc/cores/omxplayer/OMXAudio.cpp +@@ -1335,7 +1335,7 @@ float COMXAudio::GetDelay() + if (m_last_pts != DVD_NOPTS_VALUE && m_av_clock) + stamp = m_av_clock->OMXMediaTime(); + // if possible the delay is current media time - time of last submitted packet +- if (stamp != DVD_NOPTS_VALUE) ++ if (stamp != DVD_NOPTS_VALUE && stamp != 0.0) + { + ret = (m_last_pts - stamp) * (1.0 / DVD_TIME_BASE); + } +-- +2.5.0 + + +From 87509c4cfa3ce6f9a4239cee724ab254ba2a3d3b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 21 Dec 2015 22:17:25 +0000 -Subject: [PATCH] [omximage] Fall back to arm jpeg encode/decode when gpu is - busy +Subject: [PATCH 74/94] [omximage] Fall back to arm jpeg encode/decode when gpu + is busy --- xbmc/cores/omxplayer/OMXImage.cpp | 50 ++++++++++++++++++++++++++++++++------- @@ -49975,7 +50799,7 @@ diff --git a/xbmc/cores/omxplayer/OMXImage.h b/xbmc/cores/omxplayer/OMXImage.h index a93aa82..6f38dbc 100644 --- a/xbmc/cores/omxplayer/OMXImage.h +++ b/xbmc/cores/omxplayer/OMXImage.h -@@ -133,6 +133,7 @@ class COMXImageDec +@@ -133,6 +133,7 @@ protected: OMX_PARAM_PORTDEFINITIONTYPE m_decoded_format; CCriticalSection m_OMXSection; bool m_success; @@ -49983,7 +50807,7 @@ index a93aa82..6f38dbc 100644 }; class COMXImageEnc -@@ -144,6 +145,7 @@ class COMXImageEnc +@@ -144,6 +145,7 @@ public: // Required overrides bool CreateThumbnailFromSurface(unsigned char* buffer, unsigned int width, unsigned int height, unsigned int format, unsigned int pitch, const std::string& destFile); @@ -49991,7 +50815,7 @@ index a93aa82..6f38dbc 100644 protected: bool Encode(unsigned char *buffer, int size, unsigned int width, unsigned int height, unsigned int pitch); // Components -@@ -152,6 +154,7 @@ class COMXImageEnc +@@ -152,6 +154,7 @@ protected: OMX_PARAM_PORTDEFINITIONTYPE m_encoded_format; CCriticalSection m_OMXSection; bool m_success; @@ -49999,7 +50823,7 @@ index a93aa82..6f38dbc 100644 }; class COMXImageReEnc -@@ -163,6 +166,7 @@ class COMXImageReEnc +@@ -163,6 +166,7 @@ public: // Required overrides void Close(); bool ReEncode(COMXImageFile &srcFile, unsigned int width, unsigned int height, void * &pDestBuffer, unsigned int &nDestSize); @@ -50007,7 +50831,7 @@ index a93aa82..6f38dbc 100644 protected: bool HandlePortSettingChange(unsigned int resize_width, unsigned int resize_height, int orientation, bool port_settings_changed); // Components -@@ -176,6 +180,7 @@ class COMXImageReEnc +@@ -176,6 +180,7 @@ protected: void *m_pDestBuffer; unsigned int m_nDestAllocSize; bool m_success; @@ -50015,7 +50839,7 @@ index a93aa82..6f38dbc 100644 }; class COMXTexture -@@ -187,6 +192,7 @@ class COMXTexture +@@ -187,6 +192,7 @@ public: // Required overrides void Close(void); bool Decode(const uint8_t *data, unsigned size, unsigned int width, unsigned int height, void *egl_image); @@ -50023,7 +50847,7 @@ index a93aa82..6f38dbc 100644 protected: bool HandlePortSettingChange(unsigned int resize_width, unsigned int resize_height, void *egl_image, bool port_settings_changed); -@@ -201,6 +207,7 @@ class COMXTexture +@@ -201,6 +207,7 @@ protected: OMX_BUFFERHEADERTYPE *m_egl_buffer; CCriticalSection m_OMXSection; bool m_success; @@ -50031,10 +50855,138 @@ index a93aa82..6f38dbc 100644 }; extern COMXImage g_OMXImage; -From 47df934cc713ef7921c612fbb2d42a14c53df618 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 0fea3baccdb25c562be89bd1c69f464bce182f6f Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sat, 2 Jan 2016 18:08:16 +0000 +Subject: [PATCH 75/94] [mmalcodec] Don't send zero sized extradata + +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +index 3579966..0f5c1b7 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +@@ -501,7 +501,7 @@ bool CMMALVideo::SendCodecConfigData() + { + CSingleLock lock(m_sharedSection); + MMAL_STATUS_T status; +- if (!m_dec_input_pool) ++ if (!m_dec_input_pool || !m_hints.extrasize) + return true; + // send code config data + MMAL_BUFFER_HEADER_T *buffer = mmal_queue_timedwait(m_dec_input_pool->queue, 500); +-- +2.5.0 + + +From 49f0bbf2f288d4d2f51db8f55d10268c78afdbfe Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sun, 3 Jan 2016 19:12:16 +0000 +Subject: [PATCH 76/94] stereoscopicmanager: Ensure we don't have a stale value + of videoplayer stereoscopic mode + +--- + xbmc/guilib/StereoscopicsManager.cpp | 30 +++++++++++++++++++++--------- + xbmc/guilib/StereoscopicsManager.h | 2 ++ + 2 files changed, 23 insertions(+), 9 deletions(-) + +diff --git a/xbmc/guilib/StereoscopicsManager.cpp b/xbmc/guilib/StereoscopicsManager.cpp +index d9e0fa4..4942f01 100644 +--- a/xbmc/guilib/StereoscopicsManager.cpp ++++ b/xbmc/guilib/StereoscopicsManager.cpp +@@ -140,12 +140,7 @@ void CStereoscopicsManager::SetStereoMode(const RENDER_STEREO_MODE &mode) + + // resolve automatic mode before applying + if (mode == RENDER_STEREO_MODE_AUTO) +- { +- if (g_infoManager.EvaluateBool("videoplayer.isstereoscopic")) +- applyMode = GetStereoModeOfPlayingVideo(); +- else +- applyMode = RENDER_STEREO_MODE_OFF; +- } ++ applyMode = GetStereoModeOfPlayingVideo(); + + if (applyMode != currentMode && applyMode >= RENDER_STEREO_MODE_OFF) + { +@@ -209,7 +204,7 @@ RENDER_STEREO_MODE CStereoscopicsManager::GetStereoModeByUserChoice(const std::s + { + RENDER_STEREO_MODE mode = GetStereoMode(); + // if no stereo mode is set already, suggest mode of current video by preselecting it +- if (mode == RENDER_STEREO_MODE_OFF && g_infoManager.EvaluateBool("videoplayer.isstereoscopic")) ++ if (mode == RENDER_STEREO_MODE_OFF) + mode = GetStereoModeOfPlayingVideo(); + + CGUIDialogSelect* pDlgSelect = (CGUIDialogSelect*)g_windowManager.GetWindow(WINDOW_DIALOG_SELECT); +@@ -254,8 +249,8 @@ RENDER_STEREO_MODE CStereoscopicsManager::GetStereoModeByUserChoice(const std::s + RENDER_STEREO_MODE CStereoscopicsManager::GetStereoModeOfPlayingVideo(void) + { + RENDER_STEREO_MODE mode = RENDER_STEREO_MODE_OFF; ++ std::string playerMode = GetVideoStereoMode(); + +- std::string playerMode = g_infoManager.GetLabel(VIDEOPLAYER_STEREOSCOPIC_MODE); + if (!playerMode.empty()) + { + int convertedMode = ConvertVideoToGuiStereoMode(playerMode); +@@ -504,6 +499,23 @@ void CStereoscopicsManager::ApplyStereoMode(const RENDER_STEREO_MODE &mode, bool + } + } + ++std::string CStereoscopicsManager::GetVideoStereoMode() ++{ ++ std::string playerMode; ++ if (g_application.m_pPlayer->IsPlaying()) ++ { ++ SPlayerVideoStreamInfo videoInfo; ++ g_application.m_pPlayer->GetVideoStreamInfo(videoInfo); ++ playerMode = videoInfo.stereoMode; ++ } ++ return playerMode; ++} ++ ++bool CStereoscopicsManager::IsVideoStereoscopic() ++{ ++ return !GetVideoStereoMode().empty(); ++} ++ + void CStereoscopicsManager::OnPlaybackStarted(void) + { + STEREOSCOPIC_PLAYBACK_MODE playbackMode = (STEREOSCOPIC_PLAYBACK_MODE) CSettings::GetInstance().GetInt(CSettings::SETTING_VIDEOPLAYER_STEREOSCOPICPLAYBACKMODE); +@@ -513,7 +525,7 @@ void CStereoscopicsManager::OnPlaybackStarted(void) + if (playbackMode == STEREOSCOPIC_PLAYBACK_MODE_IGNORE && mode == RENDER_STEREO_MODE_OFF) + return; + +- if (!g_infoManager.EvaluateBool("videoplayer.isstereoscopic")) ++ if (!CStereoscopicsManager::IsVideoStereoscopic()) + { + // exit stereo mode if started item is not stereoscopic + // and if user prefers to stop 3D playback when movie is finished +diff --git a/xbmc/guilib/StereoscopicsManager.h b/xbmc/guilib/StereoscopicsManager.h +index ec2310f..f090bb9 100644 +--- a/xbmc/guilib/StereoscopicsManager.h ++++ b/xbmc/guilib/StereoscopicsManager.h +@@ -92,6 +92,8 @@ private: + void ApplyStereoMode(const RENDER_STEREO_MODE &mode, bool notify = true); + void OnPlaybackStarted(void); + void OnPlaybackStopped(void); ++ std::string GetVideoStereoMode(); ++ bool IsVideoStereoscopic(); + + RENDER_STEREO_MODE m_stereoModeSetByUser; + RENDER_STEREO_MODE m_lastStereoModeSetByUser; +-- +2.5.0 + + +From 7399f59303833e2f6442e67e2d9d4c17adc41e35 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Sep 2015 19:05:12 +0100 -Subject: [PATCH] [3d] Make MVC a valid 3D filename tag +Subject: [PATCH 77/94] [3d] Make MVC a valid 3D filename tag --- xbmc/guilib/StereoscopicsManager.cpp | 9 +++++++++ @@ -50094,10 +51046,14 @@ index 93de9bd..4da88f4 100644 /*!< @brief position behavior of ass subtitiles when setting "subtitle position on screen" set to "fixed" True to show at the fixed position set in video calibration -From 917036937e1e6bcdee5add347e8a9cfc8f571932 Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From 6cee5258e6f154631e457615c4028b74fd4e5525 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 24 Jan 2016 16:42:04 +0000 -Subject: [PATCH] fixup! [build] Add patches to ffmpeg for native build +Subject: [PATCH 78/94] fixup! [build] Add patches to ffmpeg for native build --- tools/depends/target/ffmpeg/autobuild.sh | 2 +- @@ -50116,337 +51072,1579 @@ index f6d4c3b..cc59d17 100755 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \ ./configure --prefix=$FFMPEG_PREFIX \ -From 4c58ea8b09c9f22527263d521589e5842ef2ceea Mon Sep 17 00:00:00 2001 +-- +2.5.0 + + +From a4f972065465a09a608315605358cfca1088365d Mon Sep 17 00:00:00 2001 From: popcornmix -Date: Mon, 15 Feb 2016 15:50:00 +0000 -Subject: [PATCH] temp: Add lock around mmal and omx calls to avoid stalled - audio issue +Date: Tue, 26 Jan 2016 19:58:30 +0000 +Subject: [PATCH 79/94] OMXAudio: Make use of m_bGotFrame to skip decoding when + full --- - xbmc/cores/VideoRenderers/MMALRenderer.cpp | 1 + - xbmc/cores/VideoRenderers/MMALRenderer.h | 2 +- - xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 1 + - xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h | 2 +- - xbmc/linux/OMXCore.cpp | 29 ++++++++++++++++++++++ - xbmc/linux/OMXCore.h | 2 ++ - xbmc/linux/RBP.h | 1 + - 7 files changed, 36 insertions(+), 2 deletions(-) + xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) -diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -index ad3f66f6..a619448 100644 ---- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp -+++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -@@ -240,6 +240,7 @@ bool CMMALRenderer::init_vout(ERenderFormat format) +diff --git a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp +index 33c4c6a..b9dab89 100644 +--- a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp ++++ b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp +@@ -158,7 +158,8 @@ int COMXAudioCodecOMX::Decode(BYTE* pData, int iSize, double dts, double pts) + if (!m_pCodecContext) return -1; + + AVPacket avpkt; +- m_bGotFrame = false; ++ if (m_bGotFrame) ++ return 0; + av_init_packet(&avpkt); + avpkt.data = pData; + avpkt.size = iSize; +@@ -257,6 +258,7 @@ int COMXAudioCodecOMX::GetData(BYTE** dst, double &dts, double &pts) + outputSize = 0; + } + } ++ m_bGotFrame = false; + int desired_size = AUDIO_DECODE_OUTPUT_BUFFER * (m_pCodecContext->channels * GetBitsPerSample()) >> (rounded_up_channels_shift[m_pCodecContext->channels] + 4); + + if (m_bFirstFrame) +@@ -274,7 +276,6 @@ int COMXAudioCodecOMX::GetData(BYTE** dst, double &dts, double &pts) + if (m_iBufferOutputUsed + outputSize > desired_size || m_bNoConcatenate) + { + int ret = m_iBufferOutputUsed; +- m_bGotFrame = false; + m_iBufferOutputUsed = 0; + dts = m_dts; + pts = m_pts; +-- +2.5.0 + + +From c6f3b279c5d18c805ae6c3a6e9db8b5680602a61 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 26 Jan 2016 20:01:18 +0000 +Subject: [PATCH 80/94] OMXAudio: Handle GetData before adding the next buffer + so we can be sure it fits + +--- + xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp | 28 ++++++++++++++-------------- + 1 file changed, 14 insertions(+), 14 deletions(-) + +diff --git a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp +index b9dab89..f150dc6 100644 +--- a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp ++++ b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp +@@ -206,12 +206,24 @@ int COMXAudioCodecOMX::GetData(BYTE** dst, double &dts, double &pts) + /* output audio will be packed */ + int outputSize = av_samples_get_buffer_size(&outLineSize, m_pCodecContext->channels, m_pFrame1->nb_samples, m_desiredSampleFormat, 1); + ++ // if this buffer won't fit then flush out what we have ++ int desired_size = AUDIO_DECODE_OUTPUT_BUFFER * (m_pCodecContext->channels * GetBitsPerSample()) >> (rounded_up_channels_shift[m_pCodecContext->channels] + 4); ++ if (m_iBufferOutputUsed && (m_iBufferOutputUsed + outputSize > desired_size || m_bNoConcatenate)) ++ { ++ int ret = m_iBufferOutputUsed; ++ m_iBufferOutputUsed = 0; ++ dts = m_dts; ++ pts = m_pts; ++ *dst = m_pBufferOutput; ++ return ret; ++ } ++ m_frameSize = outputSize; ++ + if (m_iBufferOutputAlloced < m_iBufferOutputUsed + outputSize) + { + m_pBufferOutput = (BYTE*)av_realloc(m_pBufferOutput, m_iBufferOutputUsed + outputSize + FF_INPUT_BUFFER_PADDING_SIZE); + m_iBufferOutputAlloced = m_iBufferOutputUsed + outputSize; + } +- *dst = m_pBufferOutput; + + /* need to convert format */ + if(m_pCodecContext->sample_fmt != m_desiredSampleFormat) +@@ -259,28 +271,16 @@ int COMXAudioCodecOMX::GetData(BYTE** dst, double &dts, double &pts) + } + } + m_bGotFrame = false; +- int desired_size = AUDIO_DECODE_OUTPUT_BUFFER * (m_pCodecContext->channels * GetBitsPerSample()) >> (rounded_up_channels_shift[m_pCodecContext->channels] + 4); + + if (m_bFirstFrame) + { +- CLog::Log(LOGDEBUG, "COMXAudioCodecOMX::GetData size=%d/%d line=%d/%d buf=%p, desired=%d", inputSize, outputSize, inLineSize, outLineSize, *dst, desired_size); ++ CLog::Log(LOGDEBUG, "COMXAudioCodecOMX::GetData size=%d/%d line=%d/%d buf=%p, desired=%d", inputSize, outputSize, inLineSize, outLineSize, m_pBufferOutput, desired_size); + m_bFirstFrame = false; + } + m_iBufferOutputUsed += outputSize; + + if (!m_bNoConcatenate && m_pCodecContext->sample_fmt == AV_SAMPLE_FMT_FLTP && m_frameSize && (int)m_frameSize != outputSize) + CLog::Log(LOGERROR, "COMXAudioCodecOMX::GetData Unexpected change of size (%d->%d)", m_frameSize, outputSize); +- m_frameSize = outputSize; +- +- // if next buffer submitted won't fit then flush it out +- if (m_iBufferOutputUsed + outputSize > desired_size || m_bNoConcatenate) +- { +- int ret = m_iBufferOutputUsed; +- m_iBufferOutputUsed = 0; +- dts = m_dts; +- pts = m_pts; +- return ret; +- } + return 0; } - CMMALRenderer::CMMALRenderer() -+: m_sharedSection(g_RBP.GetLock()) - { - CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); - m_vout = NULL; -diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.h b/xbmc/cores/VideoRenderers/MMALRenderer.h -index a71e645..084d59a 100644 ---- a/xbmc/cores/VideoRenderers/MMALRenderer.h -+++ b/xbmc/cores/VideoRenderers/MMALRenderer.h -@@ -121,7 +121,7 @@ class CMMALRenderer : public CBaseRenderer - int m_inflight; - float m_sharpness; +-- +2.5.0 + + +From 9dbad1bfa2329d5ca5a1d82e3e982a69dbad965d Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 26 Jan 2016 20:03:49 +0000 +Subject: [PATCH 81/94] OMXAudio: Handle changes in decoded audio size + correctly + +--- + xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp +index f150dc6..4956b5b 100644 +--- a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp ++++ b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp +@@ -103,10 +103,6 @@ bool COMXAudioCodecOMX::Open(CDVDStreamInfo &hints) + if (m_pCodecContext->request_channel_layout) + CLog::Log(LOGNOTICE,"COMXAudioCodecOMX::Open() Requesting channel layout of %x", (unsigned)m_pCodecContext->request_channel_layout); -- CCriticalSection m_sharedSection; -+ CCriticalSection &m_sharedSection; - MMAL_COMPONENT_T *m_vout; - MMAL_PORT_T *m_vout_input; - MMAL_POOL_T *m_vout_input_pool; +- // vorbis and wma2v2 have variable sized planar output, so skip concatenation +- if (hints.codec == AV_CODEC_ID_VORBIS || hints.codec == AV_CODEC_ID_WMAV2) +- m_bNoConcatenate = true; +- + if(m_pCodecContext->bits_per_coded_sample == 0) + m_pCodecContext->bits_per_coded_sample = 16; + +@@ -206,12 +202,19 @@ int COMXAudioCodecOMX::GetData(BYTE** dst, double &dts, double &pts) + /* output audio will be packed */ + int outputSize = av_samples_get_buffer_size(&outLineSize, m_pCodecContext->channels, m_pFrame1->nb_samples, m_desiredSampleFormat, 1); + ++ if (!m_bNoConcatenate && m_iBufferOutputUsed && (int)m_frameSize != outputSize) ++ { ++ CLog::Log(LOGERROR, "COMXAudioCodecOMX::GetData Unexpected change of size (%d->%d)", m_frameSize, outputSize); ++ m_bNoConcatenate = true; ++ } ++ + // if this buffer won't fit then flush out what we have + int desired_size = AUDIO_DECODE_OUTPUT_BUFFER * (m_pCodecContext->channels * GetBitsPerSample()) >> (rounded_up_channels_shift[m_pCodecContext->channels] + 4); + if (m_iBufferOutputUsed && (m_iBufferOutputUsed + outputSize > desired_size || m_bNoConcatenate)) + { + int ret = m_iBufferOutputUsed; + m_iBufferOutputUsed = 0; ++ m_bNoConcatenate = false; + dts = m_dts; + pts = m_pts; + *dst = m_pBufferOutput; +@@ -278,9 +281,6 @@ int COMXAudioCodecOMX::GetData(BYTE** dst, double &dts, double &pts) + m_bFirstFrame = false; + } + m_iBufferOutputUsed += outputSize; +- +- if (!m_bNoConcatenate && m_pCodecContext->sample_fmt == AV_SAMPLE_FMT_FLTP && m_frameSize && (int)m_frameSize != outputSize) +- CLog::Log(LOGERROR, "COMXAudioCodecOMX::GetData Unexpected change of size (%d->%d)", m_frameSize, outputSize); + return 0; + } + +-- +2.5.0 + + +From 88f9f9f084fde1e563e9c7510cfb84bedf21c842 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Thu, 4 Feb 2016 15:29:55 +0000 +Subject: [PATCH 82/94] MMALCodec: Set dropped flag on output pictures when + input requested that + +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 6 ++++++ + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h | 1 + + 2 files changed, 7 insertions(+) + diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp -index 08f61fc..25a4c84 100644 +index 0f5c1b7..7b025fd 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp -@@ -99,6 +99,7 @@ long CMMALVideoBuffer::Release() - #define CLASSNAME "CMMALVideo" - - CMMALVideo::CMMALVideo() -+: m_sharedSection(g_RBP.GetLock()) +@@ -759,6 +759,7 @@ void CMMALVideo::SetDropState(bool bDrop) { if (g_advancedSettings.CanLogComponent(LOGVIDEO)) - CLog::Log(LOGDEBUG, "%s::%s %p", CLASSNAME, __func__, this); + CLog::Log(LOGDEBUG, "%s::%s - bDrop(%d)", CLASSNAME, __func__, bDrop); ++ m_dropState = bDrop; + } + + int CMMALVideo::Decode(uint8_t* pData, int iSize, double dts, double pts) +@@ -794,6 +795,8 @@ int CMMALVideo::Decode(uint8_t* pData, int iSize, double dts, double pts) + buffer->length = (uint32_t)iSize > buffer->alloc_size ? buffer->alloc_size : (uint32_t)iSize; + // set a flag so we can identify primary frames from generated frames (deinterlace) + buffer->flags = MMAL_BUFFER_HEADER_FLAG_USER0; ++ if (m_dropState) ++ buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER3; + + memcpy(buffer->data, pData, buffer->length); + iSize -= buffer->length; +@@ -944,6 +947,7 @@ void CMMALVideo::Reset(void) + m_decoderPts = DVD_NOPTS_VALUE; + m_demuxerPts = DVD_NOPTS_VALUE; + m_codecControlFlags = 0; ++ m_dropState = false; + } + + void CMMALVideo::SetSpeed(int iSpeed) +@@ -1021,6 +1025,8 @@ bool CMMALVideo::GetPicture(DVDVideoPicture* pDvdVideoPicture) + + pDvdVideoPicture->MMALBuffer->Acquire(); + pDvdVideoPicture->iFlags = DVP_FLAG_ALLOCATED; ++ if (buffer->mmal_buffer->flags & MMAL_BUFFER_HEADER_FLAG_USER3) ++ pDvdVideoPicture->iFlags |= DVP_FLAG_DROPPED; + if (g_advancedSettings.CanLogComponent(LOGVIDEO)) + CLog::Log(LOGINFO, "%s::%s dts:%.3f pts:%.3f flags:%x:%x MMALBuffer:%p mmal_buffer:%p", CLASSNAME, __func__, + pDvdVideoPicture->dts == DVD_NOPTS_VALUE ? 0.0 : pDvdVideoPicture->dts*1e-6, pDvdVideoPicture->pts == DVD_NOPTS_VALUE ? 0.0 : pDvdVideoPicture->pts*1e-6, diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h -index bf669e0..60a3e5f 100644 +index ca28c6f..bf669e0 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.h -@@ -126,7 +126,7 @@ class CMMALVideo : public CDVDVideoCodec +@@ -124,6 +124,7 @@ protected: + double m_decoderPts; + int m_speed; int m_codecControlFlags; - bool m_dropState; ++ bool m_dropState; -- CCriticalSection m_sharedSection; -+ CCriticalSection &m_sharedSection; + CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_dec; - MMAL_PORT_T *m_dec_input; - MMAL_PORT_T *m_dec_output; -diff --git a/xbmc/linux/OMXCore.cpp b/xbmc/linux/OMXCore.cpp -index 5f91787..a7edc95 100644 ---- a/xbmc/linux/OMXCore.cpp -+++ b/xbmc/linux/OMXCore.cpp -@@ -59,6 +59,7 @@ static void add_timespecs(struct timespec &time, long millisecs) +-- +2.5.0 + + +From e51fd26cfe75c298e107f26af4ba6dd3a68f4e22 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 3 Feb 2016 21:35:01 +0000 +Subject: [PATCH 83/94] DVDVideoCodecFFmpeg: Enable refcounted frames + +Without this frames will get (deep) copied when deinterlace is set to automatic, +but file is not deinterlaced. + +For 1080p24 that costs 150MB/s of memory bandwidth which is very expensive. +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +index c2f3287..64087f2 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +@@ -316,6 +316,10 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options + av_opt_set(m_pCodecContext, it->m_name.c_str(), it->m_value.c_str(), 0); + } ++ // If non-zero, the decoded audio and video frames returned from avcodec_decode_video2() are reference-counted and are valid indefinitely. ++ // Without this frames will get (deep) copied when deinterlace is set to automatic, but file is not deinterlaced. ++ m_pCodecContext->refcounted_frames = 1; ++ + if (avcodec_open2(m_pCodecContext, pCodec, NULL) < 0) + { + CLog::Log(LOGDEBUG,"CDVDVideoCodecFFmpeg::Open() Unable to open codec"); +-- +2.5.0 + + +From 6df990c5d6b5930b34a05167b989bb0155a6fcae Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Fri, 19 Feb 2016 13:45:23 +0000 +Subject: [PATCH 84/94] mmal: increase decode buffering a little to help harder + MVC files + +PR8610 reduced buffering in codec which generally improved behaviour, +but we have some reports of hard streams (like 3D BluRay) that now +lag. The problem is when the codec's input buffer runs dry you +waste useful decoder cycles. It seems adding another two frames of +latency to decoder gets the performance back. +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +index 7b025fd..08f61fc 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +@@ -676,7 +676,7 @@ bool CMMALVideo::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options) - COMXCoreTunel::COMXCoreTunel() -+: m_sharedSection(g_RBP.GetLock()) + // limit number of callback structures in video_decode to reduce latency. Too low and video hangs. + // negative numbers have special meaning. -1=size of DPB -2=size of DPB+1 +- status = mmal_port_parameter_set_uint32(m_dec_input, MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS, -3); ++ status = mmal_port_parameter_set_uint32(m_dec_input, MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS, -5); + if (status != MMAL_SUCCESS) + CLog::Log(LOGERROR, "%s::%s Failed to configure max num callbacks on %s (status=%x %s)", CLASSNAME, __func__, m_dec_input->name, status, mmal_status_to_string(status)); + +-- +2.5.0 + + +From 1d254cfd3db48c1fc2307467da5c801639cc73c3 Mon Sep 17 00:00:00 2001 +From: Mario Holzinger +Date: Fri, 11 Dec 2015 16:48:57 +0100 +Subject: [PATCH 85/94] touch panel to display adjustment + +--- + xbmc/input/linux/LinuxInputDevices.cpp | 7 ++++--- + xbmc/settings/AdvancedSettings.cpp | 16 ++++++++++++++++ + xbmc/settings/AdvancedSettings.h | 6 ++++++ + 3 files changed, 26 insertions(+), 3 deletions(-) + +diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp +index 9f3e866..a506956 100644 +--- a/xbmc/input/linux/LinuxInputDevices.cpp ++++ b/xbmc/input/linux/LinuxInputDevices.cpp +@@ -98,6 +98,7 @@ typedef unsigned long kernel_ulong_t; + #include "utils/log.h" + #include "input/touch/generic/GenericTouchActionHandler.h" + #include "input/touch/generic/GenericTouchInputHandler.h" ++#include "settings/AdvancedSettings.h" + + #ifndef BITS_PER_LONG + #define BITS_PER_LONG (sizeof(long) * 8) +@@ -653,13 +654,13 @@ bool CLinuxInputDevice::AbsEvent(const struct input_event& levt, XBMC_Event& dev + switch (levt.code) + { + case ABS_X: +- m_mouseX = levt.value; ++ m_mouseX = (int)((float)levt.value * g_advancedSettings.m_screenAlign_xStretchFactor) + g_advancedSettings.m_screenAlign_xOffset; // stretch and shift touch x coordinates + break; + + case ABS_Y: +- m_mouseY = levt.value; ++ m_mouseY = (int)((float)levt.value * g_advancedSettings.m_screenAlign_yStretchFactor) + g_advancedSettings.m_screenAlign_yOffset; // stretch and shift touch y coordinates + break; +- ++ + case ABS_MISC: + remoteStatus = levt.value & 0xFF; + break; +diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp +index aeea13b..326e9f5 100644 +--- a/xbmc/settings/AdvancedSettings.cpp ++++ b/xbmc/settings/AdvancedSettings.cpp +@@ -303,6 +303,12 @@ void CAdvancedSettings::Initialize() + m_iEdlCommBreakAutowait = 0; // Off by default + m_iEdlCommBreakAutowind = 0; // Off by default + ++ // Touchscreen default values if no adjustment is necessarry ++ m_screenAlign_xOffset = 0; ++ m_screenAlign_yOffset= 0; ++ m_screenAlign_xStretchFactor = 1.0; ++ m_screenAlign_yStretchFactor = 1.0; ++ + m_curlconnecttimeout = 10; + m_curllowspeedtime = 20; + m_curlretries = 2; +@@ -871,6 +877,16 @@ void CAdvancedSettings::ParseSettingsFile(const std::string &file) + XMLUtils::GetInt(pElement, "commbreakautowind", m_iEdlCommBreakAutowind, 0, 10); // Between 0 and 10 seconds + } + ++ // Touchscreen ++ pElement = pRootElement->FirstChildElement("touchscreen"); ++ if (pElement) ++ { ++ XMLUtils::GetInt(pElement, "x_offset", m_screenAlign_xOffset ); ++ XMLUtils::GetInt(pElement, "y_offset", m_screenAlign_yOffset ); ++ XMLUtils::GetFloat(pElement, "x_stretch_factor", m_screenAlign_xStretchFactor ); ++ XMLUtils::GetFloat(pElement, "y_stretch_factor", m_screenAlign_yStretchFactor ); ++ } ++ + // picture exclude regexps + TiXmlElement* pPictureExcludes = pRootElement->FirstChildElement("pictureexcludes"); + if (pPictureExcludes) +diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h +index 4da88f4..1bdc77e 100644 +--- a/xbmc/settings/AdvancedSettings.h ++++ b/xbmc/settings/AdvancedSettings.h +@@ -334,6 +334,12 @@ class CAdvancedSettings : public ISettingCallback, public ISettingsHandler + std::string m_cpuTempCmd; + std::string m_gpuTempCmd; + ++ // Touchscreen ++ int m_screenAlign_xOffset; ++ int m_screenAlign_yOffset; ++ float m_screenAlign_xStretchFactor; ++ float m_screenAlign_yStretchFactor; ++ + /* PVR/TV related advanced settings */ + int m_iPVRTimeCorrection; /*!< @brief correct all times (epg tags, timer tags, recording tags) by this amount of minutes. defaults to 0. */ + int m_iPVRInfoToggleInterval; /*!< @brief if there are more than 1 pvr gui info item available (e.g. multiple recordings active at the same time), use this toggle delay in milliseconds. defaults to 3000. */ +-- +2.5.0 + + +From e5e1e2f22f64436ddcabf7f51d25bcd6a13eb4a4 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 15 Feb 2016 15:51:11 +0000 +Subject: [PATCH 86/94] touch panel to display adjustment - support multitouch + +PR7978 allowed a simple calibration to be applied to touch input +It didn't cover multitouch which this adds support for +--- + xbmc/input/linux/LinuxInputDevices.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp +index a506956..3579cd0 100644 +--- a/xbmc/input/linux/LinuxInputDevices.cpp ++++ b/xbmc/input/linux/LinuxInputDevices.cpp +@@ -707,7 +707,7 @@ bool CLinuxInputDevice::mtAbsEvent(const struct input_event& levt) + case ABS_MT_POSITION_X: + if (m_mt_currentSlot < TOUCH_MAX_POINTERS) + { +- m_mt_x[m_mt_currentSlot] = levt.value; ++ m_mt_x[m_mt_currentSlot] = (int)((float)levt.value * g_advancedSettings.m_screenAlign_xStretchFactor) + g_advancedSettings.m_screenAlign_xOffset; // stretch and shift touch x coordinates + if (m_mt_event[m_mt_currentSlot] == TouchInputUnchanged) + m_mt_event[m_mt_currentSlot] = TouchInputMove; + } +@@ -716,7 +716,7 @@ bool CLinuxInputDevice::mtAbsEvent(const struct input_event& levt) + case ABS_MT_POSITION_Y: + if (m_mt_currentSlot < TOUCH_MAX_POINTERS) + { +- m_mt_y[m_mt_currentSlot] = levt.value; ++ m_mt_y[m_mt_currentSlot] = (int)((float)levt.value * g_advancedSettings.m_screenAlign_yStretchFactor) + g_advancedSettings.m_screenAlign_yOffset; // stretch and shift touch y coordinates; + if (m_mt_event[m_mt_currentSlot] == TouchInputUnchanged) + m_mt_event[m_mt_currentSlot] = TouchInputMove; + } +-- +2.5.0 + + +From 93502d0fbe98de0119c0e03a245528cfb89e69b9 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 22 Mar 2016 22:28:13 +0000 +Subject: [PATCH 87/94] [linux] Move hotplug checking into its own thread + +Currently checking for new linux input devices is called from the rendering thread. +We've been getting reports of skipped frames on raspberry pi. + +Specifically if eventlirc is active and you have an LIRC capable device connected +the hotplug check is slow and you get a frame skip every ten seconds. + +So move this code into its own thread +--- + xbmc/input/linux/LinuxInputDevices.cpp | 54 +++++++++++++++++++++------------- + xbmc/input/linux/LinuxInputDevices.h | 14 ++++++++- + xbmc/windowing/WinEventsLinux.cpp | 1 + + xbmc/windowing/WinEventsLinux.h | 2 ++ + 4 files changed, 49 insertions(+), 22 deletions(-) + +diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp +index 3579cd0..7b3c6ad 100644 +--- a/xbmc/input/linux/LinuxInputDevices.cpp ++++ b/xbmc/input/linux/LinuxInputDevices.cpp +@@ -1081,6 +1081,30 @@ bool CLinuxInputDevice::IsUnplugged() + return m_bUnplugged; + } + ++CLinuxInputDevicesCheckHotplugged::CLinuxInputDevicesCheckHotplugged(CLinuxInputDevices &parent) : ++ CThread("CLinuxInputDevicesCheckHotplugged"), m_parent(parent) ++{ ++ Create(); ++ SetPriority(THREAD_PRIORITY_BELOW_NORMAL); ++} ++ ++CLinuxInputDevicesCheckHotplugged::~CLinuxInputDevicesCheckHotplugged() ++{ ++ m_bStop = true; ++ m_quitEvent.Set(); ++ StopThread(true); ++} ++ ++void CLinuxInputDevicesCheckHotplugged::Process() ++{ ++ while (!m_bStop) ++ { ++ m_parent.CheckHotplugged(); ++ // every ten seconds ++ m_quitEvent.WaitMSec(10000); ++ } ++} ++ + bool CLinuxInputDevices::CheckDevice(const char *device) { - m_src_component = NULL; - m_dst_component = NULL; -@@ -74,6 +75,7 @@ COMXCoreTunel::~COMXCoreTunel() - - void COMXCoreTunel::Initialize(COMXCoreComponent *src_component, unsigned int src_port, COMXCoreComponent *dst_component, unsigned int dst_port) + int fd; +@@ -1147,10 +1171,6 @@ void CLinuxInputDevices::InitAvailable() + */ + void CLinuxInputDevices::CheckHotplugged() { -+ CSingleLock lock(m_sharedSection); - m_src_component = src_component; - m_src_port = src_port; - m_dst_component = dst_component; -@@ -82,6 +84,7 @@ void COMXCoreTunel::Initialize(COMXCoreComponent *src_component, unsigned int sr +- CSingleLock lock(m_devicesListLock); +- +- int deviceId = m_devices.size(); +- + /* No devices specified. Try to guess some. */ + for (int i = 0; i < MAX_LINUX_INPUT_DEVICES; i++) + { +@@ -1158,18 +1178,22 @@ void CLinuxInputDevices::CheckHotplugged() + bool ispresent = false; - OMX_ERRORTYPE COMXCoreTunel::Deestablish(bool noWait) + snprintf(buf, 32, "/dev/input/event%d", i); +- +- for (size_t j = 0; j < m_devices.size(); j++) + { +- if (m_devices[j]->GetFileName().compare(buf) == 0) ++ CSingleLock lock(m_devicesListLock); ++ for (size_t j = 0; j < m_devices.size(); j++) + { +- ispresent = true; +- break; ++ if (m_devices[j]->GetFileName().compare(buf) == 0) ++ { ++ ispresent = true; ++ break; ++ } + } + } + + if (!ispresent && CheckDevice(buf)) + { ++ CSingleLock lock(m_devicesListLock); ++ int deviceId = m_devices.size(); + CLog::Log(LOGINFO, "Found input device %s", buf); + m_devices.push_back(new CLinuxInputDevice(buf, deviceId)); + ++deviceId; +@@ -1360,18 +1384,6 @@ XBMC_Event CLinuxInputDevices::ReadEvent() + InitAvailable(); + m_bReInitialize = false; + } +- else +- { +- time_t now; +- time(&now); +- +- if ((now - m_lastHotplugCheck) >= 10) +- { +- CheckHotplugged(); +- m_lastHotplugCheck = now; +- } +- } +- + CSingleLock lock(m_devicesListLock); + + XBMC_Event event; +diff --git a/xbmc/input/linux/LinuxInputDevices.h b/xbmc/input/linux/LinuxInputDevices.h +index 8c88a1d..4fde1aa 100644 +--- a/xbmc/input/linux/LinuxInputDevices.h ++++ b/xbmc/input/linux/LinuxInputDevices.h +@@ -28,6 +28,7 @@ + #include "threads/SingleLock.h" + #include "input/touch/ITouchInputHandler.h" + #include "input/touch/generic/IGenericTouchGestureDetector.h" ++#include "threads/Thread.h" + + struct KeymapEntry { -+ CSingleLock lock(m_sharedSection); - if(!m_src_component || !m_dst_component || !IsInitialized()) - return OMX_ErrorUndefined; - -@@ -156,6 +159,7 @@ OMX_ERRORTYPE COMXCoreTunel::Deestablish(bool noWait) - - OMX_ERRORTYPE COMXCoreTunel::Establish(bool enable_ports /* = true */, bool disable_ports /* = false */) - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - OMX_PARAM_U32TYPE param; - OMX_INIT_STRUCTURE(param); -@@ -293,6 +297,7 @@ OMX_ERRORTYPE COMXCoreTunel::Establish(bool enable_ports /* = true */, bool disa - //////////////////////////////////////////////////////////////////////////////////////////// - - COMXCoreComponent::COMXCoreComponent() -+: m_sharedSection(g_RBP.GetLock()) - { - m_input_port = 0; - m_output_port = 0; -@@ -332,6 +337,7 @@ COMXCoreComponent::COMXCoreComponent() - - COMXCoreComponent::~COMXCoreComponent() - { -+ CSingleLock lock(m_sharedSection); - Deinitialize(); - - pthread_mutex_destroy(&m_omx_input_mutex); -@@ -357,6 +363,7 @@ void COMXCoreComponent::TransitionToStateLoaded() - - OMX_ERRORTYPE COMXCoreComponent::EmptyThisBuffer(OMX_BUFFERHEADERTYPE *omx_buffer) - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - - #if defined(OMX_DEBUG_EVENTHANDLER) -@@ -377,6 +384,7 @@ OMX_ERRORTYPE COMXCoreComponent::EmptyThisBuffer(OMX_BUFFERHEADERTYPE *omx_buffe - - OMX_ERRORTYPE COMXCoreComponent::FillThisBuffer(OMX_BUFFERHEADERTYPE *omx_buffer) - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - - #if defined(OMX_DEBUG_EVENTHANDLER) -@@ -397,6 +405,7 @@ OMX_ERRORTYPE COMXCoreComponent::FillThisBuffer(OMX_BUFFERHEADERTYPE *omx_buffer - - OMX_ERRORTYPE COMXCoreComponent::FreeOutputBuffer(OMX_BUFFERHEADERTYPE *omx_buffer) - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - - if(!m_handle || !omx_buffer) -@@ -420,6 +429,7 @@ void COMXCoreComponent::FlushAll() - - void COMXCoreComponent::FlushInput() - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle || m_resource_error) - return; - -@@ -435,6 +445,7 @@ void COMXCoreComponent::FlushInput() - - void COMXCoreComponent::FlushOutput() - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle || m_resource_error) - return; - -@@ -568,6 +579,7 @@ OMX_ERRORTYPE COMXCoreComponent::WaitForOutputDone(long timeout /*=200*/) - - OMX_ERRORTYPE COMXCoreComponent::AllocInputBuffers(bool use_buffers /* = false **/) - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - - m_omx_input_use_buffers = use_buffers; -@@ -649,6 +661,7 @@ OMX_ERRORTYPE COMXCoreComponent::AllocInputBuffers(bool use_buffers /* = false * - - OMX_ERRORTYPE COMXCoreComponent::AllocOutputBuffers(bool use_buffers /* = false */) - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - - if(!m_handle) -@@ -730,6 +743,7 @@ OMX_ERRORTYPE COMXCoreComponent::AllocOutputBuffers(bool use_buffers /* = false - - OMX_ERRORTYPE COMXCoreComponent::FreeInputBuffers() - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - - if(!m_handle) -@@ -788,6 +802,7 @@ OMX_ERRORTYPE COMXCoreComponent::FreeInputBuffers() - - OMX_ERRORTYPE COMXCoreComponent::FreeOutputBuffers() - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - - if(!m_handle) -@@ -846,6 +861,7 @@ OMX_ERRORTYPE COMXCoreComponent::FreeOutputBuffers() - - OMX_ERRORTYPE COMXCoreComponent::DisableAllPorts() - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle) - return OMX_ErrorUndefined; - -@@ -1074,6 +1090,7 @@ OMX_ERRORTYPE COMXCoreComponent::WaitForCommand(OMX_U32 command, OMX_U32 nData2, - - OMX_ERRORTYPE COMXCoreComponent::SetStateForComponent(OMX_STATETYPE state) - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle) - return OMX_ErrorUndefined; - -@@ -1112,6 +1129,7 @@ OMX_ERRORTYPE COMXCoreComponent::SetStateForComponent(OMX_STATETYPE state) - - OMX_STATETYPE COMXCoreComponent::GetState() const - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle) - return (OMX_STATETYPE)0; - -@@ -1123,6 +1141,7 @@ OMX_STATETYPE COMXCoreComponent::GetState() const - - OMX_ERRORTYPE COMXCoreComponent::SetParameter(OMX_INDEXTYPE paramIndex, OMX_PTR paramStruct) - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle) - return OMX_ErrorUndefined; - -@@ -1139,6 +1158,7 @@ OMX_ERRORTYPE COMXCoreComponent::SetParameter(OMX_INDEXTYPE paramIndex, OMX_PTR - - OMX_ERRORTYPE COMXCoreComponent::GetParameter(OMX_INDEXTYPE paramIndex, OMX_PTR paramStruct) const - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle) - return OMX_ErrorUndefined; - -@@ -1155,6 +1175,7 @@ OMX_ERRORTYPE COMXCoreComponent::GetParameter(OMX_INDEXTYPE paramIndex, OMX_PTR - - OMX_ERRORTYPE COMXCoreComponent::SetConfig(OMX_INDEXTYPE configIndex, OMX_PTR configStruct) - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle) - return OMX_ErrorUndefined; - -@@ -1171,6 +1192,7 @@ OMX_ERRORTYPE COMXCoreComponent::SetConfig(OMX_INDEXTYPE configIndex, OMX_PTR co - - OMX_ERRORTYPE COMXCoreComponent::GetConfig(OMX_INDEXTYPE configIndex, OMX_PTR configStruct) const - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle) - return OMX_ErrorUndefined; - -@@ -1187,6 +1209,7 @@ OMX_ERRORTYPE COMXCoreComponent::GetConfig(OMX_INDEXTYPE configIndex, OMX_PTR co - - OMX_ERRORTYPE COMXCoreComponent::SendCommand(OMX_COMMANDTYPE cmd, OMX_U32 cmdParam, OMX_PTR cmdParamData) - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle) - return OMX_ErrorUndefined; - -@@ -1203,6 +1226,7 @@ OMX_ERRORTYPE COMXCoreComponent::SendCommand(OMX_COMMANDTYPE cmd, OMX_U32 cmdPar - - OMX_ERRORTYPE COMXCoreComponent::EnablePort(unsigned int port, bool wait) - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle) - return OMX_ErrorUndefined; - -@@ -1237,6 +1261,7 @@ OMX_ERRORTYPE COMXCoreComponent::EnablePort(unsigned int port, bool wait) - - OMX_ERRORTYPE COMXCoreComponent::DisablePort(unsigned int port, bool wait) - { -+ CSingleLock lock(m_sharedSection); - if(!m_handle) - return OMX_ErrorUndefined; - -@@ -1271,6 +1296,7 @@ OMX_ERRORTYPE COMXCoreComponent::DisablePort(unsigned int port, bool wait) - - OMX_ERRORTYPE COMXCoreComponent::UseEGLImage(OMX_BUFFERHEADERTYPE** ppBufferHdr, OMX_U32 nPortIndex, OMX_PTR pAppPrivate, void* eglImage) - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - - if(!m_handle) -@@ -1350,6 +1376,7 @@ OMX_ERRORTYPE COMXCoreComponent::UseEGLImage(OMX_BUFFERHEADERTYPE** ppBufferHdr, - - bool COMXCoreComponent::Initialize( const std::string &component_name, OMX_INDEXTYPE index) - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err; - - m_input_port = 0; -@@ -1437,6 +1464,7 @@ bool COMXCoreComponent::Initialize( const std::string &component_name, OMX_INDEX - - void COMXCoreComponent::ResetEos() - { -+ CSingleLock lock(m_sharedSection); - pthread_mutex_lock(&m_omx_eos_mutex); - m_eos = false; - pthread_mutex_unlock(&m_omx_eos_mutex); -@@ -1444,6 +1472,7 @@ void COMXCoreComponent::ResetEos() - - bool COMXCoreComponent::Deinitialize() - { -+ CSingleLock lock(m_sharedSection); - OMX_ERRORTYPE omx_err; - - m_exit = true; -diff --git a/xbmc/linux/OMXCore.h b/xbmc/linux/OMXCore.h -index 05052e5..2c2f91c 100644 ---- a/xbmc/linux/OMXCore.h -+++ b/xbmc/linux/OMXCore.h -@@ -78,6 +78,7 @@ class COMXCoreTunel - unsigned int m_dst_port; - DllOMX *m_DllOMX; - bool m_tunnel_set; -+ CCriticalSection &m_sharedSection; +@@ -105,7 +106,18 @@ private: + bool CheckDevice(const char *device); + std::vector m_devices; + bool m_bReInitialize; +- time_t m_lastHotplugCheck; ++}; ++ ++class CLinuxInputDevicesCheckHotplugged : protected CThread ++{ ++public: ++ CLinuxInputDevicesCheckHotplugged(CLinuxInputDevices &parent); ++ ~CLinuxInputDevicesCheckHotplugged(); ++private: ++ CLinuxInputDevices &m_parent; ++ CEvent m_quitEvent; ++protected: ++ virtual void Process(); }; - class COMXCoreComponent -@@ -199,6 +200,7 @@ class COMXCoreComponent - bool m_flush_input; - bool m_flush_output; - bool m_resource_error; -+ CCriticalSection &m_sharedSection; - }; + #endif /* LINUXINPUTDEVICES_H_ */ +diff --git a/xbmc/windowing/WinEventsLinux.cpp b/xbmc/windowing/WinEventsLinux.cpp +index 2b3d77a..fb6c987 100644 +--- a/xbmc/windowing/WinEventsLinux.cpp ++++ b/xbmc/windowing/WinEventsLinux.cpp +@@ -134,6 +134,7 @@ bool CWinEventsLinux::MessagePump() + if (!m_initialized) + { + m_devices.InitAvailable(); ++ m_checkHotplug = std::unique_ptr(new CLinuxInputDevicesCheckHotplugged(m_devices)); + m_initialized = true; + #ifdef TARGET_RASPBERRY_PI + LoadXML("Pointer.xml"); +diff --git a/xbmc/windowing/WinEventsLinux.h b/xbmc/windowing/WinEventsLinux.h +index 23244a2..c82ba84 100644 +--- a/xbmc/windowing/WinEventsLinux.h ++++ b/xbmc/windowing/WinEventsLinux.h +@@ -22,6 +22,7 @@ + #define WINDOW_EVENTS_LINUX_H - class COMXCore + #pragma once ++#include + #include "windowing/WinEvents.h" + #include "input/linux/LinuxInputDevices.h" + #include "guilib/TextureManager.h" +@@ -44,6 +45,7 @@ public: + private: + static bool m_initialized; + static CLinuxInputDevices m_devices; ++ std::unique_ptr m_checkHotplug; + #ifdef TARGET_RASPBERRY_PI + bool LoadXML(const std::string strFileName); + int64_t m_last_mouse_move_time; +-- +2.5.0 + + +From 19d44a0062028cc3b1625989de2492f39c5af9b3 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 28 Jul 2015 17:47:33 +0100 +Subject: [PATCH 88/94] [rbp] Refactor the vsync handle to support multiple + callers + +--- + xbmc/linux/RBP.cpp | 100 ++++++++++++++++++++++++++++++++++------------------- + xbmc/linux/RBP.h | 10 ++++-- + 2 files changed, 73 insertions(+), 37 deletions(-) + +diff --git a/xbmc/linux/RBP.cpp b/xbmc/linux/RBP.cpp +index 13b0504..ddc2b9c 100644 +--- a/xbmc/linux/RBP.cpp ++++ b/xbmc/linux/RBP.cpp +@@ -34,6 +34,7 @@ + #include + #include + #include "rpi_user_vcsm.h" ++#include "utils/TimeUtils.h" + + #define MAJOR_NUM 100 + #define IOCTL_MBOX_PROPERTY _IOWR(MAJOR_NUM, 0, char *) +@@ -56,6 +57,8 @@ CRBP::CRBP() + m_enabled = 0; + m_mb = mbox_open(); + vcsm_init(); ++ m_vsync_count = 0; ++ m_last_vsync = 0; + } + + CRBP::~CRBP() +@@ -73,7 +76,7 @@ void CRBP::InitializeSettings() + + bool CRBP::Initialize() + { +- CSingleLock lock (m_critSection); ++ CSingleLock lock(m_critSection); + if (m_initialized) + return true; + +@@ -133,11 +136,62 @@ void CRBP::LogFirmwareVerison() + CLog::Log(LOGNOTICE, "Config:\n%s", response); + } + ++static void vsync_callback_static(DISPMANX_UPDATE_HANDLE_T u, void *arg) ++{ ++ CRBP *rbp = reinterpret_cast(arg); ++ rbp->VSyncCallback(); ++} ++ ++void CRBP::VSyncCallback() ++{ ++ CSingleLock lock(m_vsync_lock); ++ m_vsync_count++; ++ m_last_vsync = CurrentHostCounter(); ++ m_vsync_cond.notifyAll(); ++} ++ ++unsigned int CRBP::VsyncCount() ++{ ++ CSingleLock lock(m_vsync_lock); ++ return m_vsync_count; ++} ++ ++int64_t CRBP::LastVsync() ++{ ++ CSingleLock lock(m_vsync_lock); ++ return m_last_vsync; ++} ++ ++unsigned int CRBP::WaitVsync(unsigned int target) ++{ ++ CSingleLock vlock(m_vsync_lock); ++ DISPMANX_DISPLAY_HANDLE_T display = m_display; ++ XbmcThreads::EndTime delay(50); ++ if (target == ~0U) ++ target = m_vsync_count+1; ++ while (!delay.IsTimePast()) ++ { ++ CSingleLock lock(m_critSection); ++ if (m_vsync_count >= target) ++ break; ++ lock.Leave(); ++ if (!m_vsync_cond.wait(vlock, delay.MillisLeft())) ++ break; ++ } ++ if (m_vsync_count < target) ++ CLog::Log(LOGDEBUG, "CRBP::%s no vsync %d/%d display:%x(%x) delay:%d", __FUNCTION__, m_vsync_count, target, m_display, display, delay.MillisLeft()); ++ ++ return m_vsync_count; ++} ++ + DISPMANX_DISPLAY_HANDLE_T CRBP::OpenDisplay(uint32_t device) + { ++ CSingleLock lock(m_critSection); + if (m_display == DISPMANX_NO_HANDLE) + { + m_display = vc_dispmanx_display_open( 0 /*screen*/ ); ++ int s = vc_dispmanx_vsync_callback(m_display, vsync_callback_static, (void *)this); ++ assert(s == 0); + init_cursor(); + } + return m_display; +@@ -145,16 +199,20 @@ DISPMANX_DISPLAY_HANDLE_T CRBP::OpenDisplay(uint32_t device) + + void CRBP::CloseDisplay(DISPMANX_DISPLAY_HANDLE_T display) + { ++ CSingleLock lock(m_critSection); + assert(display == m_display); ++ int s = vc_dispmanx_vsync_callback(m_display, NULL, NULL); ++ assert(s == 0); ++ uninit_cursor(); + vc_dispmanx_display_close(m_display); + m_display = DISPMANX_NO_HANDLE; +- uninit_cursor(); + } + + void CRBP::GetDisplaySize(int &width, int &height) + { ++ CSingleLock lock(m_critSection); + DISPMANX_MODEINFO_T info; +- if (vc_dispmanx_display_get_info(m_display, &info) == 0) ++ if (m_display != DISPMANX_NO_HANDLE && vc_dispmanx_display_get_info(m_display, &info) == 0) + { + width = info.width; + height = info.height; +@@ -183,13 +241,13 @@ unsigned char *CRBP::CaptureDisplay(int width, int height, int *pstride, bool sw + flags |= DISPMANX_SNAPSHOT_PACK; + + stride = ((width + 15) & ~15) * 4; +- image = new unsigned char [height * stride]; + +- if (image) ++ CSingleLock lock(m_critSection); ++ if (m_display != DISPMANX_NO_HANDLE) + { ++ image = new unsigned char [height * stride]; + resource = vc_dispmanx_resource_create( VC_IMAGE_RGBA32, width, height, &vc_image_ptr ); + +- assert(m_display != DISPMANX_NO_HANDLE); + vc_dispmanx_snapshot(m_display, resource, (DISPMANX_TRANSFORM_T)flags); + + vc_dispmanx_rect_set(&rect, 0, 0, width, height); +@@ -201,35 +259,6 @@ unsigned char *CRBP::CaptureDisplay(int width, int height, int *pstride, bool sw + return image; + } + +- +-static void vsync_callback(DISPMANX_UPDATE_HANDLE_T u, void *arg) +-{ +- CEvent *sync = (CEvent *)arg; +- sync->Set(); +-} +- +-void CRBP::WaitVsync() +-{ +- int s; +- DISPMANX_DISPLAY_HANDLE_T m_display = vc_dispmanx_display_open( 0 /*screen*/ ); +- if (m_display == DISPMANX_NO_HANDLE) +- { +- CLog::Log(LOGDEBUG, "CRBP::%s skipping while display closed", __func__); +- return; +- } +- m_vsync.Reset(); +- s = vc_dispmanx_vsync_callback(m_display, vsync_callback, (void *)&m_vsync); +- if (s == 0) +- { +- m_vsync.WaitMSec(1000); +- } +- else assert(0); +- s = vc_dispmanx_vsync_callback(m_display, NULL, NULL); +- assert(s == 0); +- vc_dispmanx_display_close( m_display ); +-} +- +- + void CRBP::Deinitialize() + { + if (m_omx_image_init) +@@ -260,6 +289,7 @@ void CRBP::Deinitialize() + + double CRBP::AdjustHDMIClock(double adjust) + { ++ CSingleLock lock(m_critSection); + char response[80]; + vc_gencmd(response, sizeof response, "hdmi_adjust_clock %f", adjust); + char *p = strchr(response, '='); diff --git a/xbmc/linux/RBP.h b/xbmc/linux/RBP.h -index 2eee35d..884d7c2 100644 +index 2eee35d..3b59cd9 100644 --- a/xbmc/linux/RBP.h +++ b/xbmc/linux/RBP.h -@@ -81,6 +81,7 @@ class CRBP +@@ -77,7 +77,10 @@ public: + // stride can be null for packed output + unsigned char *CaptureDisplay(int width, int height, int *stride, bool swap_red_blue, bool video_only = true); + DllOMX *GetDllOMX() { return m_OMX ? m_OMX->GetDll() : NULL; } +- void WaitVsync(); ++ unsigned int WaitVsync(unsigned int target = ~0U); ++ int64_t LastVsync(); ++ unsigned int VsyncCount(); ++ void VSyncCallback(); double AdjustHDMIClock(double adjust); double GetAdjustHDMIClock() { return m_last_pll_adjust; } int GetMBox() { return m_mb; } -+ CCriticalSection &GetLock() { return m_critSection; } +@@ -94,7 +97,10 @@ private: + bool m_codec_wvc1_enabled; + COMXCore *m_OMX; + DISPMANX_DISPLAY_HANDLE_T m_display; +- CEvent m_vsync; ++ CCriticalSection m_vsync_lock; ++ XbmcThreads::ConditionVariable m_vsync_cond; ++ unsigned int m_vsync_count; ++ int64_t m_last_vsync; + class DllLibOMXCore; + CCriticalSection m_critSection; + double m_last_pll_adjust; +-- +2.5.0 + + +From 8a52d5281d3f5f6e4b33016233cecdcc6775f4b7 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Thu, 24 Mar 2016 23:24:18 +0000 +Subject: [PATCH 89/94] [mmalrenderer] Wait for vsync before submitting to mmal + when display sync is disabled + +This avoids an issue where video occasionally goes stuttery after a seek, until the next pause/play or seek. +The issue is when display sync is disabled, and framerate of video matches display, and render times are coincident with vsync +you find that depending on timestamp/scheduling jitter, you may or may not get an update each vsync resulting in stuttery video. + +Some scheme to force render times to be dependent on vsync is required. We do this by using a queue that is popped following vsyncs. +We ensure the queue always has 1 or 2 frames so it doesn't underrun with a late frame, but this adds a frame of latency. +--- + xbmc/cores/VideoRenderers/MMALRenderer.cpp | 52 ++++++++++++++++++++++++++---- + xbmc/cores/VideoRenderers/MMALRenderer.h | 5 ++- + 2 files changed, 50 insertions(+), 7 deletions(-) + +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +index ad3f66f..e879cba 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +@@ -239,7 +239,7 @@ bool CMMALRenderer::init_vout(ERenderFormat format) + return true; + } - private: - DllBcmHost *m_DllBcmHost; +-CMMALRenderer::CMMALRenderer() ++CMMALRenderer::CMMALRenderer() : CThread("MMALRenderer") + { + CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); + m_vout = NULL; +@@ -253,15 +253,41 @@ CMMALRenderer::CMMALRenderer() + m_iYV12RenderBuffer = 0; + m_inflight = 0; + m_sharpness = -2.0f; ++ m_queue = mmal_queue_create(); ++ Create(); + } + + CMMALRenderer::~CMMALRenderer() + { + CSingleLock lock(m_sharedSection); + CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); ++ StopThread(true); ++ mmal_queue_destroy(m_queue); + UnInit(); + } + ++void CMMALRenderer::Process() ++{ ++ bool started = false; ++ SetPriority(THREAD_PRIORITY_ABOVE_NORMAL); ++ while (!m_bStop) ++ { ++ g_RBP.WaitVsync(); ++ if (!started && mmal_queue_length(m_queue) >= 2) ++ started = true; ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - vsync:%d queue:%d started:%d", CLASSNAME, __func__, g_RBP.VsyncCount(), mmal_queue_length(m_queue), started); ++ if (started) ++ { ++ MMAL_BUFFER_HEADER_T *buffer = mmal_queue_get(m_queue); ++ if (buffer) ++ mmal_port_send_buffer(m_vout_input, buffer); ++ else ++ started = false; ++ } ++ } ++} ++ + void CMMALRenderer::AddProcessor(CMMALVideoBuffer *buffer, int index) + { + #if defined(MMAL_DEBUG_VERBOSE) +@@ -496,10 +522,17 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + return; + omvb->Acquire(); + omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; +- mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); +- } +- else +- CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); ++ if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock") && m_fps > 0.0 && fabs(m_fps - g_graphicsContext.GetFPS()) < 1e-2) ++ { ++ while (mmal_queue_length(m_queue) >= 2) ++ Sleep(1); ++ mmal_queue_put(m_queue, omvb->mmal_buffer); ++ } ++ else ++ mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); ++ } ++ else ++ CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); + } + else if (m_format == RENDER_FMT_YUV420P) + { +@@ -516,7 +549,14 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + omvb->Acquire(); + omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; + omvb->mmal_buffer->user_data = omvb; +- mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); ++ if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock") && m_fps > 0.0 && fabs(m_fps - g_graphicsContext.GetFPS()) < 1e-2) ++ { ++ while (mmal_queue_length(m_queue) >= 2) ++ Sleep(1); ++ mmal_queue_put(m_queue, omvb->mmal_buffer); ++ } ++ else ++ mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); + } + else + CLog::Log(LOGDEBUG, "%s::%s - No buffer to update: clear:%d flags:%x alpha:%d source:%d", CLASSNAME, __func__, clear, flags, alpha, source); +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.h b/xbmc/cores/VideoRenderers/MMALRenderer.h +index a71e645..f17dc47 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.h ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.h +@@ -29,6 +29,7 @@ + #include "cores/dvdplayer/DVDStreamInfo.h" + #include "guilib/Geometry.h" + #include "BaseRenderer.h" ++#include "threads/Thread.h" + + #include + #include +@@ -55,7 +56,7 @@ protected: + long m_refs; + }; + +-class CMMALRenderer : public CBaseRenderer ++class CMMALRenderer : public CBaseRenderer, public CThread + { + struct YUVBUFFER + { +@@ -66,6 +67,7 @@ public: + CMMALRenderer(); + ~CMMALRenderer(); + ++ void Process(); + virtual void Update(); + virtual void SetupScreenshot() {}; + +@@ -125,6 +127,7 @@ protected: + MMAL_COMPONENT_T *m_vout; + MMAL_PORT_T *m_vout_input; + MMAL_POOL_T *m_vout_input_pool; ++ MMAL_QUEUE_T *m_queue; + + bool init_vout(ERenderFormat format); + void ReleaseBuffers(); +-- +2.5.0 + + +From c262dea07c4ae5c6b280f534dcce4699f9ffdaf8 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Fri, 25 Mar 2016 11:36:25 +0000 +Subject: [PATCH 90/94] Revert "[mmalrenderer] Wait for vsync before submitting + to mmal when display sync is disabled" + +This reverts commit bc61a9f7823b5a934ae46ed9bac6cfa0f4b520fa. +--- + xbmc/cores/VideoRenderers/MMALRenderer.cpp | 52 ++++-------------------------- + xbmc/cores/VideoRenderers/MMALRenderer.h | 5 +-- + 2 files changed, 7 insertions(+), 50 deletions(-) + +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +index e879cba..ad3f66f 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +@@ -239,7 +239,7 @@ bool CMMALRenderer::init_vout(ERenderFormat format) + return true; + } + +-CMMALRenderer::CMMALRenderer() : CThread("MMALRenderer") ++CMMALRenderer::CMMALRenderer() + { + CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); + m_vout = NULL; +@@ -253,41 +253,15 @@ CMMALRenderer::CMMALRenderer() : CThread("MMALRenderer") + m_iYV12RenderBuffer = 0; + m_inflight = 0; + m_sharpness = -2.0f; +- m_queue = mmal_queue_create(); +- Create(); + } + + CMMALRenderer::~CMMALRenderer() + { + CSingleLock lock(m_sharedSection); + CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); +- StopThread(true); +- mmal_queue_destroy(m_queue); + UnInit(); + } + +-void CMMALRenderer::Process() +-{ +- bool started = false; +- SetPriority(THREAD_PRIORITY_ABOVE_NORMAL); +- while (!m_bStop) +- { +- g_RBP.WaitVsync(); +- if (!started && mmal_queue_length(m_queue) >= 2) +- started = true; +- if (g_advancedSettings.CanLogComponent(LOGVIDEO)) +- CLog::Log(LOGDEBUG, "%s::%s - vsync:%d queue:%d started:%d", CLASSNAME, __func__, g_RBP.VsyncCount(), mmal_queue_length(m_queue), started); +- if (started) +- { +- MMAL_BUFFER_HEADER_T *buffer = mmal_queue_get(m_queue); +- if (buffer) +- mmal_port_send_buffer(m_vout_input, buffer); +- else +- started = false; +- } +- } +-} +- + void CMMALRenderer::AddProcessor(CMMALVideoBuffer *buffer, int index) + { + #if defined(MMAL_DEBUG_VERBOSE) +@@ -522,17 +496,10 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + return; + omvb->Acquire(); + omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; +- if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock") && m_fps > 0.0 && fabs(m_fps - g_graphicsContext.GetFPS()) < 1e-2) +- { +- while (mmal_queue_length(m_queue) >= 2) +- Sleep(1); +- mmal_queue_put(m_queue, omvb->mmal_buffer); +- } +- else +- mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); +- } +- else +- CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); ++ mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); ++ } ++ else ++ CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); + } + else if (m_format == RENDER_FMT_YUV420P) + { +@@ -549,14 +516,7 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + omvb->Acquire(); + omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; + omvb->mmal_buffer->user_data = omvb; +- if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock") && m_fps > 0.0 && fabs(m_fps - g_graphicsContext.GetFPS()) < 1e-2) +- { +- while (mmal_queue_length(m_queue) >= 2) +- Sleep(1); +- mmal_queue_put(m_queue, omvb->mmal_buffer); +- } +- else +- mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); ++ mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); + } + else + CLog::Log(LOGDEBUG, "%s::%s - No buffer to update: clear:%d flags:%x alpha:%d source:%d", CLASSNAME, __func__, clear, flags, alpha, source); +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.h b/xbmc/cores/VideoRenderers/MMALRenderer.h +index f17dc47..a71e645 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.h ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.h +@@ -29,7 +29,6 @@ + #include "cores/dvdplayer/DVDStreamInfo.h" + #include "guilib/Geometry.h" + #include "BaseRenderer.h" +-#include "threads/Thread.h" + + #include + #include +@@ -56,7 +55,7 @@ protected: + long m_refs; + }; + +-class CMMALRenderer : public CBaseRenderer, public CThread ++class CMMALRenderer : public CBaseRenderer + { + struct YUVBUFFER + { +@@ -67,7 +66,6 @@ public: + CMMALRenderer(); + ~CMMALRenderer(); + +- void Process(); + virtual void Update(); + virtual void SetupScreenshot() {}; + +@@ -127,7 +125,6 @@ protected: + MMAL_COMPONENT_T *m_vout; + MMAL_PORT_T *m_vout_input; + MMAL_POOL_T *m_vout_input_pool; +- MMAL_QUEUE_T *m_queue; + + bool init_vout(ERenderFormat format); + void ReleaseBuffers(); +-- +2.5.0 + + +From aabdf8c31cbdea15c399219d99826e469fa007af Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 23 Mar 2016 15:54:43 +0000 +Subject: [PATCH 91/94] [mmalrenderer] Wait for vsync before submitting to mmal + when display sync is disabled + +This avoids an issue where video occasionally goes stuttery after a seek, until the next pause/play or seek. +The issue is when display sync is disabled, and framerate of video matches display, and render times are coincident with vsync +you find that depending on timestamp/scheduling jitter, you may or may not get an update each vsync resulting in stuttery video. + +Some scheme to force render times to be dependent on vsync is required. We do this by blocking in RenderUpdate unto next vsync. +--- + xbmc/cores/VideoRenderers/MMALRenderer.cpp | 34 ++++++++++++++++++++++++++++-- + xbmc/cores/VideoRenderers/MMALRenderer.h | 2 ++ + 2 files changed, 34 insertions(+), 2 deletions(-) + +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +index ad3f66f..a2e0df2 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +@@ -33,6 +33,7 @@ + #include "windowing/WindowingFactory.h" + #include "cores/dvdplayer/DVDCodecs/Video/MMALCodec.h" + #include "xbmc/Application.h" ++#include "utils/TimeUtils.h" + + #define CLASSNAME "CMMALRenderer" + +@@ -253,6 +254,7 @@ CMMALRenderer::CMMALRenderer() + m_iYV12RenderBuffer = 0; + m_inflight = 0; + m_sharpness = -2.0f; ++ m_vsyncCount = ~0; + } + + CMMALRenderer::~CMMALRenderer() +@@ -444,6 +446,32 @@ void CMMALRenderer::Update() + ManageDisplay(); + } + ++void CMMALRenderer::SubmitFrame(MMAL_BUFFER_HEADER_T *buffer) ++{ ++ if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock") && m_fps > 0.0f) ++ { ++ float ratio = g_graphicsContext.GetFPS() / m_fps; ++ long int factor = lrint(ratio); ++ float diff = ratio - (float)factor; ++ if (fabsf(diff) < 1e-2) ++ { ++ int64_t lastvsync = g_RBP.LastVsync(); ++ int64_t start = CurrentHostCounter(); ++ unsigned int vsynccount = g_RBP.WaitVsync(m_vsyncCount) + factor; ++ int64_t now = CurrentHostCounter(); ++ bool normal = m_vsyncCount + factor == vsynccount || m_vsyncCount + factor + 1 == vsynccount; ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - buffer:%p vfps:%.3f dfps:%.3f vsync:%d/%d delay:%.1f/%.1f dsync:%d normal:%d", CLASSNAME, __func__, buffer, m_fps, g_graphicsContext.GetFPS(), vsynccount, m_vsyncCount, ++ (now - start)*1e-6, (now - lastvsync)*1e-6, CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock"), normal); ++ if (normal) ++ m_vsyncCount += factor; ++ else ++ m_vsyncCount = vsynccount; ++ } ++ } ++ mmal_port_send_buffer(m_vout_input, buffer); ++} ++ + void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + { + CSingleLock lock(m_sharedSection); +@@ -496,7 +524,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + return; + omvb->Acquire(); + omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; +- mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); ++ lock.Leave(); ++ SubmitFrame(omvb->mmal_buffer); + } + else + CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); +@@ -516,7 +545,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + omvb->Acquire(); + omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; + omvb->mmal_buffer->user_data = omvb; +- mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); ++ lock.Leave(); ++ SubmitFrame(omvb->mmal_buffer); + } + else + CLog::Log(LOGDEBUG, "%s::%s - No buffer to update: clear:%d flags:%x alpha:%d source:%d", CLASSNAME, __func__, clear, flags, alpha, source); +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.h b/xbmc/cores/VideoRenderers/MMALRenderer.h +index a71e645..19e38f7 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.h ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.h +@@ -112,6 +112,7 @@ protected: + unsigned int m_destWidth; + unsigned int m_destHeight; + int m_neededBuffers; ++ int m_vsyncCount; + + CRect m_src_rect; + CRect m_dst_rect; +@@ -129,4 +130,5 @@ protected: + bool init_vout(ERenderFormat format); + void ReleaseBuffers(); + void UnInitMMAL(); ++ void SubmitFrame(MMAL_BUFFER_HEADER_T *buffer); + }; +-- +2.5.0 + + +From c29b3010d9bd0bbd845bebacea0af8855f0eca71 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 23 Mar 2016 16:57:19 +0000 +Subject: [PATCH 92/94] mmal: Include mmal renderer logging in video category + +On Pi the decoder and renderer are closely coupled so combining the +logging category makes sense to me. +--- + xbmc/cores/VideoRenderers/MMALRenderer.cpp | 109 +++++++++++------------------ + 1 file changed, 42 insertions(+), 67 deletions(-) + +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +index a2e0df2..a4db9af 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +@@ -37,10 +37,6 @@ + + #define CLASSNAME "CMMALRenderer" + +-#ifdef _DEBUG +-#define MMAL_DEBUG_VERBOSE +-#endif +- + + CYUVVideoBuffer::CYUVVideoBuffer() + { +@@ -57,9 +53,8 @@ CYUVVideoBuffer::~CYUVVideoBuffer() + CYUVVideoBuffer *CYUVVideoBuffer::Acquire() + { + long count = AtomicIncrement(&m_refs); +-#ifdef MMAL_DEBUG_VERBOSE +- CLog::Log(LOGDEBUG, "%s::%s omvb:%p mmal:%p ref:%ld", CLASSNAME, __func__, this, mmal_buffer, count); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s omvb:%p mmal:%p ref:%ld", CLASSNAME, __func__, this, mmal_buffer, count); + (void)count; + return this; + } +@@ -67,9 +62,8 @@ CYUVVideoBuffer *CYUVVideoBuffer::Acquire() + long CYUVVideoBuffer::Release() + { + long count = AtomicDecrement(&m_refs); +-#ifdef MMAL_DEBUG_VERBOSE +- CLog::Log(LOGDEBUG, "%s::%s omvb:%p mmal:%p ref:%ld", CLASSNAME, __func__, this, mmal_buffer, count); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s omvb:%p mmal:%p ref:%ld", CLASSNAME, __func__, this, mmal_buffer, count); + if (count == 0) + { + mmal_buffer_header_release(mmal_buffer); +@@ -89,9 +83,8 @@ CRenderInfo CMMALRenderer::GetRenderInfo() + if (!m_bMMALConfigured) + m_bMMALConfigured = init_vout(RENDER_FMT_MMAL); + +- #if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s cookie:%p", CLASSNAME, __func__, (void *)m_vout_input_pool); +- #endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s cookie:%p", CLASSNAME, __func__, (void *)m_vout_input_pool); + + info.max_buffer_size = NUM_BUFFERS; + info.optimal_buffer_size = NUM_BUFFERS; +@@ -113,18 +106,16 @@ void CMMALRenderer::vout_input_port_cb(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T * + { + CMMALVideoBuffer *omvb = (CMMALVideoBuffer *)buffer->user_data; + assert(buffer == omvb->mmal_buffer); +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s port:%p omvb:%p mmal:%p len:%d cmd:%x flags:%x flight:%d", CLASSNAME, __func__, port, omvb, omvb->mmal_buffer, buffer->length, buffer->cmd, buffer->flags, m_inflight); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s port:%p omvb:%p mmal:%p len:%d cmd:%x flags:%x flight:%d", CLASSNAME, __func__, port, omvb, omvb->mmal_buffer, buffer->length, buffer->cmd, buffer->flags, m_inflight); + omvb->Release(); + } + else if (m_format == RENDER_FMT_YUV420P) + { + CYUVVideoBuffer *omvb = (CYUVVideoBuffer *)buffer->user_data; + assert(buffer == omvb->mmal_buffer); +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s port:%p omvb:%p mmal:%p len:%d cmd:%x flags:%x flight:%d", CLASSNAME, __func__, port, omvb, omvb->mmal_buffer, buffer->length, buffer->cmd, buffer->flags, m_inflight); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s port:%p omvb:%p mmal:%p len:%d cmd:%x flags:%x flight:%d", CLASSNAME, __func__, port, omvb, omvb->mmal_buffer, buffer->length, buffer->cmd, buffer->flags, m_inflight); + m_inflight--; + omvb->Release(); + } +@@ -266,9 +257,8 @@ CMMALRenderer::~CMMALRenderer() + + void CMMALRenderer::AddProcessor(CMMALVideoBuffer *buffer, int index) + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - %p (%p) %i", CLASSNAME, __func__, buffer, buffer->mmal_buffer, index); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - %p (%p) %i", CLASSNAME, __func__, buffer, buffer->mmal_buffer, index); + + YUVBUFFER &buf = m_buffers[index]; + assert(!buf.MMALBuffer); +@@ -320,17 +310,15 @@ int CMMALRenderer::GetImage(YV12Image *image, int source, bool readonly) + { + if (!image || source < 0) + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - invalid: image:%p source:%d ro:%d flight:%d", CLASSNAME, __func__, image, source, readonly, m_inflight); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - invalid: image:%p source:%d ro:%d flight:%d", CLASSNAME, __func__, image, source, readonly, m_inflight); + return -1; + } + + if (m_format == RENDER_FMT_MMAL) + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - MMAL: image:%p source:%d ro:%d flight:%d", CLASSNAME, __func__, image, source, readonly, m_inflight); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - MMAL: image:%p source:%d ro:%d flight:%d", CLASSNAME, __func__, image, source, readonly, m_inflight); + } + else if (m_format == RENDER_FMT_YUV420P) + { +@@ -373,9 +361,8 @@ int CMMALRenderer::GetImage(YV12Image *image, int source, bool readonly) + if (!buf.YUVBuffer) + return -1; + buf.YUVBuffer->mmal_buffer = buffer; +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - YUV: image:%p source:%d ro:%d omvb:%p mmal:%p flight:%d", CLASSNAME, __func__, image, source, readonly, buf.YUVBuffer, buffer, m_inflight); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - YUV: image:%p source:%d ro:%d omvb:%p mmal:%p flight:%d", CLASSNAME, __func__, image, source, readonly, buf.YUVBuffer, buffer, m_inflight); + buf.YUVBuffer->Acquire(); + } + else assert(0); +@@ -388,16 +375,14 @@ void CMMALRenderer::ReleaseBuffer(int idx) + CSingleLock lock(m_sharedSection); + if (!m_bMMALConfigured) + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - not configured: source:%d", CLASSNAME, __func__, idx); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - not configured: source:%d", CLASSNAME, __func__, idx); + return; + } + if (m_format == RENDER_FMT_BYPASS) + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - bypass: source:%d", CLASSNAME, __func__, idx); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - bypass: source:%d", CLASSNAME, __func__, idx); + return; + } + +@@ -405,17 +390,15 @@ void CMMALRenderer::ReleaseBuffer(int idx) + if (m_format == RENDER_FMT_MMAL) + { + CMMALVideoBuffer *omvb = buffer->MMALBuffer; +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - MMAL: source:%d omvb:%p mmal:%p", CLASSNAME, __func__, idx, omvb, omvb ? omvb->mmal_buffer:NULL); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - MMAL: source:%d omvb:%p mmal:%p", CLASSNAME, __func__, idx, omvb, omvb ? omvb->mmal_buffer:NULL); + SAFE_RELEASE(buffer->MMALBuffer); + } + else if (m_format == RENDER_FMT_YUV420P) + { + CYUVVideoBuffer *omvb = buffer->YUVBuffer; +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - YUV: source:%d omvb:%p mmal:%p flight:%d", CLASSNAME, __func__, idx, omvb, omvb ? omvb->mmal_buffer:NULL, m_inflight); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - YUV: source:%d omvb:%p mmal:%p flight:%d", CLASSNAME, __func__, idx, omvb, omvb ? omvb->mmal_buffer:NULL, m_inflight); + if (omvb && omvb->mmal_buffer) + SAFE_RELEASE(buffer->YUVBuffer); + } +@@ -439,9 +422,8 @@ void CMMALRenderer::Flush() + + void CMMALRenderer::Update() + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); + if (!m_bConfigured) return; + ManageDisplay(); + } +@@ -479,9 +461,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + + if (!m_bConfigured) + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - not configured: clear:%d flags:%x alpha:%d source:%d", CLASSNAME, __func__, clear, flags, alpha, source); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - not configured: clear:%d flags:%x alpha:%d source:%d", CLASSNAME, __func__, clear, flags, alpha, source); + return; + } + +@@ -503,9 +484,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + + if (m_format == RENDER_FMT_BYPASS) + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - bypass: clear:%d flags:%x alpha:%d source:%d", CLASSNAME, __func__, clear, flags, alpha, source); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - bypass: clear:%d flags:%x alpha:%d source:%d", CLASSNAME, __func__, clear, flags, alpha, source); + return; + } + SetVideoRect(m_sourceRect, m_destRect); +@@ -516,9 +496,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + CMMALVideoBuffer *omvb = buffer->MMALBuffer; + if (omvb && omvb->mmal_buffer) + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - MMAL: clear:%d flags:%x alpha:%d source:%d omvb:%p mmal:%p mflags:%x", CLASSNAME, __func__, clear, flags, alpha, source, omvb, omvb->mmal_buffer, omvb->mmal_buffer->flags); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - MMAL: clear:%d flags:%x alpha:%d source:%d omvb:%p mmal:%p mflags:%x", CLASSNAME, __func__, clear, flags, alpha, source, omvb, omvb->mmal_buffer, omvb->mmal_buffer->flags); + // we only want to upload frames once + if (omvb->mmal_buffer->flags & MMAL_BUFFER_HEADER_FLAG_USER1) + return; +@@ -535,9 +514,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + CYUVVideoBuffer *omvb = buffer->YUVBuffer; + if (omvb && omvb->mmal_buffer) + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - YUV: clear:%d flags:%x alpha:%d source:%d omvb:%p mmal:%p mflags:%x", CLASSNAME, __func__, clear, flags, alpha, source, omvb, omvb->mmal_buffer, omvb->mmal_buffer->flags); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - YUV: clear:%d flags:%x alpha:%d source:%d omvb:%p mmal:%p mflags:%x", CLASSNAME, __func__, clear, flags, alpha, source, omvb, omvb->mmal_buffer, omvb->mmal_buffer->flags); + // we only want to upload frames once + if (omvb->mmal_buffer->flags & MMAL_BUFFER_HEADER_FLAG_USER1) + return; +@@ -559,15 +537,13 @@ void CMMALRenderer::FlipPage(int source) + CSingleLock lock(m_sharedSection); + if (!m_bConfigured || m_format == RENDER_FMT_BYPASS) + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - not configured: source:%d", CLASSNAME, __func__, source); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - not configured: source:%d", CLASSNAME, __func__, source); + return; + } + +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s - source:%d", CLASSNAME, __func__, source); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - source:%d", CLASSNAME, __func__, source); + + m_iYV12RenderBuffer = source; + } +@@ -600,9 +576,8 @@ unsigned int CMMALRenderer::PreInit() + + void CMMALRenderer::ReleaseBuffers() + { +-#if defined(MMAL_DEBUG_VERBOSE) +- CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); +-#endif ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); + for (int i=0; i +Date: Wed, 23 Mar 2016 17:34:48 +0000 +Subject: [PATCH 93/94] rendermanager: Increase configure timeout to see if it + fixes video playing in background issues + +--- + xbmc/cores/VideoRenderers/RenderManager.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/cores/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoRenderers/RenderManager.cpp +index 7a99ac4..4b03c86 100644 +--- a/xbmc/cores/VideoRenderers/RenderManager.cpp ++++ b/xbmc/cores/VideoRenderers/RenderManager.cpp +@@ -244,7 +244,7 @@ bool CXBMCRenderManager::Configure(unsigned int width, unsigned int height, unsi + CSingleLock lock2(m_presentlock); + + /* make sure any queued frame was fully presented */ +- XbmcThreads::EndTime endtime(5000); ++ XbmcThreads::EndTime endtime(10000); + while(m_presentstep != PRESENT_IDLE && m_presentstep != PRESENT_READY) + { + if(endtime.IsTimePast()) +-- +2.5.0 + + +From 6d406c27db47e8ac260f436a2a09187bb495a6ba Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 23 Mar 2016 17:39:47 +0000 +Subject: [PATCH 94/94] Revert "[rbp] Use default resampling setting on Pi2" + +This reverts commit e6b2f1693480ad5d8062acaed512393e72fb9b1d. +--- + system/settings/rbp2.xml | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/system/settings/rbp2.xml b/system/settings/rbp2.xml +index 52778ec..8cc8f19 100644 +--- a/system/settings/rbp2.xml ++++ b/system/settings/rbp2.xml +@@ -23,11 +23,6 @@ + + + +- +- +- 30 +- +- + + + +-- +2.5.0 + diff --git a/projects/RPi2/patches/linux/linux-01-RPi_support.patch b/projects/RPi2/patches/linux/linux-01-RPi_support.patch index 4cfed9582f..c2039a5f5b 100644 --- a/projects/RPi2/patches/linux/linux-01-RPi_support.patch +++ b/projects/RPi2/patches/linux/linux-01-RPi_support.patch @@ -1,1094 +1,7 @@ -From 1c796f7ab38c7d52e201b88e1836e7adad9a1a54 Mon Sep 17 00:00:00 2001 -From: Lukas Rusak -Date: Fri, 18 Mar 2016 11:10:07 -0700 -Subject: [PATCH 000/202] *** SUBJECT HERE *** -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -*** BLURB HERE *** - -Alistair Buxton (1): - Build i2c_gpio module and add a device tree overlay to configure it. - -Andrew Litt (2): - bcm2835-mmc: Don't override bus width capabilities from devicetree - SDIO-overlay: add bus_width parameter - -Aron Szabo (1): - lirc: added support for RaspberryPi GPIO - -Cheong2K (1): - brcm: adds support for BCM43341 wifi - -Craig Roberts (1): - Updated smsc95xx driver to check for a valid MAC address in eeprom - before using smsc95xx.macaddr parameter passed on command line. - -Daniel Matuschek (5): - ASoC: wm8804: Implement MCLK configuration options, add 32bit support - WM8804 can run with PLL frequencies of 256xfs and 128xfs for most - sample rates. At 192kHz only 128xfs is supported. The existing - driver selects 128xfs automatically for some lower samples rates. By - using an additional mclk_div divider, it is now possible to control - the behaviour. This allows using 256xfs PLL frequency on all sample - rates up to 96kHz. It should allow lower jitter and better signal - quality. The behavior has to be controlled by the sound card driver, - because some sample frequency share the same setting. e.g. 192kHz - and 96kHz use 24.576MHz master clock. The only difference is the - MCLK divider. - ASoC: BCM:Add support for HiFiBerry Digi. Driver is based on the - patched WM8804 driver. - ASoC: wm8804: Set idle_bias_off to false Idle bias has been change to - remove warning on driver startup - Added support for HiFiBerry DAC+ - Added driver for HiFiBerry Amp amplifier add-on board - -Dave Stevenson (1): - DT: Add overlays to configure I2C pins - -Devon Fyson (1): - Extend clock timeout, fix modprobe baudrate parameter. - -Dhiraj Goel (1): - bcm2835-camera: fix a bug in computation of frame timestamp - -Digital Dreamtime (2): - Allow up to 24dB digital gain to be applied when using IQAudIO DAC+ - Limit PCM512x "Digital" gain to 0dB by default with HiFiBerry DAC+ - -DigitalDreamtime (1): - Remove I2S config from bt_pins. - -Eric Anholt (30): - drm/vc4: Add suport for 3D rendering using the V3D engine. - drm/vc4: Force HDMI to connected. - drm/vc4: bo cache locking fixes. - drm/vc4: bo cache locking cleanup. - drm/vc4: Use job_lock to protect seqno_cb_list. - drm/vc4: Drop struct_mutex around CL validation. - drm/vc4: Drop struct_mutex around CL validation. - drm/vc4: Add support for more display plane formats. - drm/vc4: No need to stop the stopped threads. - drm/vc4: Remove extra barrier()s aroudn CTnCA/CTnEA setup. - drm/vc4: Fix a typo in a V3D debug register. - clk: bcm2835: Also build the driver for downstream kernels. - mm: Remove the PFN busy warning - drm: Put an optional field in the driver struct for GEM obj struct - size. - drm/vc4: Add an interface for capturing the GPU state after a hang. - drm/vc4: Update a bunch of code to match upstream submission. - drm: Use the driver's gem_object_free function from CMA helpers. - drm/vc4: Add support for MSAA rendering. - drm/vc4: A few more non-functional changes to sync to upstream. - drm/vc4: Use "hpd-gpios" for HDMI GPIO, like what landed upstream. - drm/vc4: Synchronize validation code for v2 submission upstream. - clk: bcm2835: Add bindings for the auxiliary peripheral clock gates. - clk: bcm2835: Add a driver for the auxiliary peripheral clock gates. - drm/vc4: Add a debugfs node for tracking execution state. - drm/vc4: Include vc4_drm.h in uapi in downstream build. - drm/vc4: Validate that WAIT_BO padding is cleared. - drm/vc4: Fix the clear color for the first tile rendered. - drm/vc4: Return an ERR_PTR from BO creation instead of NULL. - drm/vc4: Fix -ERESTARTSYS error return from BO waits. - drm/vc4: Drop error message on seqno wait timeouts. - -Florian Meier (4): - dmaengine: Add support for BCM2708 - ASoC: Add support for PCM5102A codec - ASoC: Add support for HifiBerry DAC - ASoC: Add support for Rpi-DAC - -Fraser (1): - Aux SPI 1&2 implementation - -Gordon Garrity (1): - Add IQaudIO Sound Card support for Raspberry Pi - -Gordon Hollingworth (1): - rpi-ft5406: Add touchscreen driver for pi LCD display - -Harm Hanemaaijer (1): - Speed up console framebuffer imageblit function - -Holger Steinhaus (1): - dts: Added overlay for gpio_ir_recv driver - -Jan Grulich (2): - RaspiDAC3 support - tpa6130a2: Add headphone switch control - -Luke Wren (3): - Add /dev/gpiomem device for rootless user GPIO access - Add SMI driver - Add SMI NAND driver - -Matthias Reichl (11): - bcm2835-i2s: get base address for DMA from devicetree - bcm2835-i2s: add 24bit support, update bclk_ratio to more correct - values - bcm2835-i2s: setup clock only if CPU is clock master - bcm2835-i2s: Eliminate debugfs directory error - bcm2835-i2s: Register PCM device - bcm2835-i2s: Enable MMAP support via a DT property - bcm2835-dma: Fix dreq not set for slave transfers - bcm2835-dma: Limit cyclic transfers on lite channels to 32k - bcm2835-dma: Fix up convert to DMA pool - ASoC: bcm: add missing .owner fields in sound card drivers - scripts/dtc: Fix UMR causing corrupt dtbo overlay files - -Michael Heimpold (1): - Add overlay and enable support for QCA7000 board - -Michael Lange (1): - rtc: ds1307: add support for the DT property 'wakeup-source' - -Noralf Trønnes (13): - irqchip: bcm2835: Add FIQ support - irqchip: irq-bcm2835: Add 2836 FIQ support - ARM: bcm2835: Set Serial number and Revision - dmaengine: bcm2835: Add slave dma support - dmaengine: bcm2835: set residue_granularity field - dmaengine: bcm2835: Load driver early and support legacy API - bcm2835: Add support for uart1 - firmware: bcm2835: Add missing property tags - char: broadcom: Add vcio module - firmware: bcm2835: Support ARCH_BCM270x - bcm2835: Match with BCM2708 Device Trees - bcm2835: bcm2835_defconfig - bcm270x_dt: Add dwc2 and dwc-otg overlays - -Ondrej Wisniewski (1): - dts: Added overlay for Adafruit PiTFT 2.8" capacitive touch screen - -P33M (1): - rpi_display: add backlight driver and overlay - -Pantelis Antoniou (2): - configfs: implement binary attributes - OF: DT-Overlay configfs interface - -Phil Elwell (60): - irq-bcm2836: Prevent spurious interrupts, and trap them early - serial: 8250: Don't crash when nr_uarts is 0 - pinctrl-bcm2835: Fix interrupt handling for GPIOs 28-31 and 46-53 - pinctrl-bcm2835: Only request the interrupts listed in the DTB - spi-bcm2835: Support pin groups other than 7-11 - Adding bcm2835-sdhost driver, and an overlay to enable it - scripts: Add mkknlimg and knlinfo scripts from tools repo - fdt: Add support for the CONFIG_CMDLINE_EXTEND option - BCM270x_DT: Add pwr_led, and the required "input" trigger - enc28j60: Add device tree compatible string and an overlay - Improve __copy_to_user and __copy_from_user performance - gpio-poweroff: Allow it to work on Raspberry Pi - spidev: Add "spidev" compatible string to silence warning - scripts/dtc: Add overlay support - mfd: Add Raspberry Pi Sense HAT core driver - scripts: Multi-platform support for mkknlimg and knlinfo - drm/vc4: Enable VC4 modules, and increase CMA size with overlay - BCM270X_DT: Add at86rf233 overlay - BCM270X_DT: Add the sdtweak overlay, for tuning sdhost - bcm2835-sdhost: Add workaround for odd behaviour on some cards - bcm2835-sdhost: Add debug_flags dtparam - BCM270X_DT: Add sdio_overclock parameter to sdio overlay - FIXUP i2c_bcm2708: Don't change module baudrate parameter - BCM270X_DT: Adjust overlay README formatting - pinctrl-bcm2835: Fix cut-and-paste error in "pull" parsing - bcm2835-sdhost: Major revision - BCM270X_DT: Add dtparams for the SD interface - bcm2835-sdhost: Restore ATOMIC flag to PIO sg mapping - BCM270X_DT: at86rf233 overlay - drop to 3MHz - bcm2835-sdhost: Downgrade log message status - config: Enable HCI over UARTs - hci_h5: Don't send conf_req when ACTIVE - amba_pl011: Don't use DT aliases for numbering - BCM270X_DT: Add Pi3 support - BCM270X_DT: Add pi3-disable-bt overlay - BCM270X_DT: Add pi3-miniuart-bt DT overlay - Pi3 DT: Add dtparams for the SD interface - vchiq_arm: Tweak the logging output - bcm2835-sdhost: Only claim one DMA channel - bcm2835-mmc: Only claim one DMA channel - Pi3 DT: Add pull-ups on the UART RX lines - brcmfmac: Disable power management - BCM270X_DT: rpi-display overlay - add swapxy param - Revert "scripts/dtc: Add overlay support" - scripts/dtc: Update to upstream version 1.4.1 - Protect __release_resource against resources without parents - BCM270X_DT: Add a .dtbo target, use for overlays - scripts/knlinfo: Decode DDTK atom - Enable Dynamic Device Tree for bcmrpi_defconfig and bcm2709_defconfig - SQUASH: Add CONFIG_OF_CONFIGFS to bcmrpi_defconfig - dts, kbuild: dtbs_install installs .dtbo files too - bcm2835-sdhost: Workaround for "slow" sectors - BCM270X_DT: Add labels to spidev nodes - BCM270X_DT: Use spidev labels in overlays - BCM270X_DT: Build and document the wittypi overlay - BCM270X_DT: Add dtparam for uart1 - serial: Take care starting a hung-up tty's port - pi3-miniuart-bt-overlay: Correct and clarify info - pwm overlays: Params must have in-overlay targets - BCM270X_DT: Switch Compute Module to MMC - -Przemek Rudy (1): - dwc-overlay: Use label so overrides can apply. - -Robert Tiemann (1): - BCM2835_DT: Fix I2S register map - -Ryan Coe (1): - Update ds1307 driver for device-tree support - -Siarhei Siamashka (1): - fbdev: add FBIOCOPYAREA ioctl - -Steve Glendinning (1): - smsx95xx: fix crimes against truesize - -Stuart MacLean (1): - Add support for the HiFiBerry DAC+ Pro. - -Tim Gover (1): - vcsm: VideoCore shared memory service for BCM2835 - -Vincent Sanders (1): - bcm2835: add v4l2 camera device - -Waldemar Brodkorb (1): - Add driver for rpi-proto - -campag (1): - BCM270X_DT: Add 1-bit SDIO using minimal pins... - -gellert (1): - MMC: added alternative MMC driver - -janluca (1): - MMC: Do not use mmc_debug if CONFIG_MMC_BCM2835 is not set - -mwilliams03 (1): - New overlay for PiScreen2r - -notro (2): - pinctrl-bcm2835: Set base to 0 give expected gpio numbering - BCM2708: Add core Device Tree support - -popcornmix (27): - smsc95xx: Disable turbo mode by default - vmstat: Workaround for issue where dirty page count goes negative - Main bcm2708/bcm2709 linux port - squash: include ARCH_BCM2708 / ARCH_BCM2709 - Add dwc_otg driver - bcm2708 framebuffer driver - cma: Add vc_cma driver to enable use of CMA - bcm2708: alsa sound driver - bcm2708 vchiq driver - vc_mem: Add vc_mem driver - Add cpufreq driver - Added hwmon/thermal driver for reporting core temperature. Thanks - Dorian - Add Chris Boot's i2c driver - Allow mac address to be set in smsc95xx - enabling the realtime clock 1-wire chip DS1307 and 1-wire on GPIO4 (as - a module) - config: Enable CONFIG_MEMCG, but leave it disabled (due to memory - cost). Enable with cgroup_enable=memory. - hid: Reduce default mouse polling interval to 60Hz - config: Add default configs - irq-bcm2835: Fix building with 2708 - squash: fixups - squash: add missing vc4-kms-v3d-overlay.dtb to makefile - dcw_otg: trim xfer length when buffer larger than allocated size is - received - dcw_otg: Make trimming messages less noisy - smsx95xx: Add option to disable the crimes against truesize fix - bcm2835-virtgpio: Virtual GPIO driver - config: rebuild with savedefconfig - config: Add module for mcp3422 ADC - -vitalogy (1): - dt-overlay: add wittypi-overlay.dts - -wm4 (8): - bcm2835: extend allowed range of channels and samplerates - bcm2835: restrict channels*rate to 8*960000 - rpi: update vc_vchi_audioserv_defs.h - bcm2835: implement channel map API - bcm2835: access controls under the audio mutex - bcm2835: always use 2/4/8 channels for multichannel layouts - bcm2835: only allow stereo if analogue jack is selected - bcm2835: interpolate audio delay - - .../bindings/clock/brcm,bcm2835-aux-clock.txt | 31 + - .../devicetree/bindings/dma/brcm,bcm2835-dma.txt | 4 +- - .../bindings/misc/brcm,bcm2835-smi-dev.txt | 17 + - .../devicetree/bindings/misc/brcm,bcm2835-smi.txt | 48 + - .../bindings/mtd/brcm,bcm2835-smi-nand.txt | 42 + - .../devicetree/bindings/sound/brcm,bcm2835-i2s.txt | 4 +- - Documentation/devicetree/configfs-overlays.txt | 31 + - Documentation/filesystems/configfs/configfs.txt | 57 +- - Documentation/video4linux/bcm2835-v4l2.txt | 60 + - arch/arm/Kconfig | 49 + - arch/arm/Kconfig.debug | 8 + - arch/arm/Makefile | 2 + - arch/arm/boot/.gitignore | 2 +- - arch/arm/boot/dts/Makefile | 31 + - arch/arm/boot/dts/bcm2708-rpi-b-plus.dts | 150 + - arch/arm/boot/dts/bcm2708-rpi-b.dts | 140 + - arch/arm/boot/dts/bcm2708-rpi-cm.dts | 102 + - arch/arm/boot/dts/bcm2708-rpi-cm.dtsi | 52 + - arch/arm/boot/dts/bcm2708.dtsi | 40 + - arch/arm/boot/dts/bcm2708_common.dtsi | 379 ++ - arch/arm/boot/dts/bcm2709-rpi-2-b.dts | 150 + - arch/arm/boot/dts/bcm2709.dtsi | 102 + - arch/arm/boot/dts/bcm2710-rpi-3-b.dts | 197 + - arch/arm/boot/dts/bcm2710.dtsi | 102 + - arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 132 +- - arch/arm/boot/dts/bcm2835-rpi-b.dts | 115 +- - arch/arm/boot/dts/bcm2835-rpi-cm.dts | 93 + - arch/arm/boot/dts/bcm2835-rpi-cm.dtsi | 30 + - arch/arm/boot/dts/bcm2835.dtsi | 195 +- - arch/arm/boot/dts/overlays/Makefile | 86 + - arch/arm/boot/dts/overlays/README | 985 +++ - arch/arm/boot/dts/overlays/ads7846-overlay.dts | 89 + - arch/arm/boot/dts/overlays/at86rf233-overlay.dts | 57 + - .../dts/overlays/bmp085_i2c-sensor-overlay.dts | 23 + - arch/arm/boot/dts/overlays/dht11-overlay.dts | 39 + - arch/arm/boot/dts/overlays/dwc-otg-overlay.dts | 20 + - arch/arm/boot/dts/overlays/dwc2-overlay.dts | 29 + - arch/arm/boot/dts/overlays/enc28j60-overlay.dts | 53 + - arch/arm/boot/dts/overlays/gpio-ir-overlay.dts | 45 + - .../boot/dts/overlays/gpio-poweroff-overlay.dts | 34 + - .../boot/dts/overlays/hifiberry-amp-overlay.dts | 39 + - .../boot/dts/overlays/hifiberry-dac-overlay.dts | 34 + - .../dts/overlays/hifiberry-dacplus-overlay.dts | 54 + - .../boot/dts/overlays/hifiberry-digi-overlay.dts | 39 + - arch/arm/boot/dts/overlays/hy28a-overlay.dts | 93 + - arch/arm/boot/dts/overlays/hy28b-overlay.dts | 148 + - arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts | 28 + - arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts | 55 + - .../arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts | 36 + - .../arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts | 37 + - arch/arm/boot/dts/overlays/i2s-mmap-overlay.dts | 13 + - arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts | 39 + - .../boot/dts/overlays/iqaudio-dacplus-overlay.dts | 43 + - arch/arm/boot/dts/overlays/lirc-rpi-overlay.dts | 57 + - .../arm/boot/dts/overlays/mcp2515-can0-overlay.dts | 73 + - .../arm/boot/dts/overlays/mcp2515-can1-overlay.dts | 73 + - arch/arm/boot/dts/overlays/mmc-overlay.dts | 38 + - arch/arm/boot/dts/overlays/mz61581-overlay.dts | 117 + - .../boot/dts/overlays/pi3-disable-bt-overlay.dts | 48 + - .../boot/dts/overlays/pi3-miniuart-bt-overlay.dts | 63 + - arch/arm/boot/dts/overlays/piscreen-overlay.dts | 102 + - arch/arm/boot/dts/overlays/piscreen2r-overlay.dts | 106 + - .../dts/overlays/pitft28-capacitive-overlay.dts | 91 + - .../dts/overlays/pitft28-resistive-overlay.dts | 121 + - arch/arm/boot/dts/overlays/pps-gpio-overlay.dts | 34 + - arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts | 53 + - arch/arm/boot/dts/overlays/pwm-overlay.dts | 49 + - arch/arm/boot/dts/overlays/qca7000-overlay.dts | 52 + - arch/arm/boot/dts/overlays/raspidac3-overlay.dts | 45 + - .../boot/dts/overlays/rpi-backlight-overlay.dts | 21 + - arch/arm/boot/dts/overlays/rpi-dac-overlay.dts | 34 + - arch/arm/boot/dts/overlays/rpi-display-overlay.dts | 89 + - arch/arm/boot/dts/overlays/rpi-ft5406-overlay.dts | 17 + - arch/arm/boot/dts/overlays/rpi-proto-overlay.dts | 39 + - arch/arm/boot/dts/overlays/rpi-sense-overlay.dts | 47 + - arch/arm/boot/dts/overlays/sdhost-overlay.dts | 32 + - arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts | 36 + - arch/arm/boot/dts/overlays/sdio-overlay.dts | 36 + - arch/arm/boot/dts/overlays/sdtweak-overlay.dts | 23 + - arch/arm/boot/dts/overlays/smi-dev-overlay.dts | 18 + - arch/arm/boot/dts/overlays/smi-nand-overlay.dts | 69 + - arch/arm/boot/dts/overlays/smi-overlay.dts | 37 + - .../boot/dts/overlays/spi-gpio35-39-overlay.dts | 31 + - arch/arm/boot/dts/overlays/spi1-1cs-overlay.dts | 57 + - arch/arm/boot/dts/overlays/spi1-2cs-overlay.dts | 69 + - arch/arm/boot/dts/overlays/spi1-3cs-overlay.dts | 81 + - arch/arm/boot/dts/overlays/spi2-1cs-overlay.dts | 57 + - arch/arm/boot/dts/overlays/spi2-2cs-overlay.dts | 69 + - arch/arm/boot/dts/overlays/spi2-3cs-overlay.dts | 81 + - arch/arm/boot/dts/overlays/tinylcd35-overlay.dts | 222 + - arch/arm/boot/dts/overlays/uart1-overlay.dts | 38 + - arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts | 95 + - arch/arm/boot/dts/overlays/vga666-overlay.dts | 30 + - arch/arm/boot/dts/overlays/w1-gpio-overlay.dts | 39 + - .../boot/dts/overlays/w1-gpio-pullup-overlay.dts | 41 + - arch/arm/boot/dts/overlays/wittypi-overlay.dts | 44 + - arch/arm/configs/bcm2709_defconfig | 1264 ++++ - arch/arm/configs/bcm2835_defconfig | 1166 +++- - arch/arm/configs/bcmrpi_defconfig | 1274 ++++ - arch/arm/include/asm/irqflags.h | 16 +- - arch/arm/include/asm/string.h | 5 + - arch/arm/include/asm/uaccess.h | 3 + - arch/arm/kernel/fiqasm.S | 4 + - arch/arm/kernel/head.S | 8 + - arch/arm/kernel/process.c | 10 + - arch/arm/lib/Makefile | 15 +- - arch/arm/lib/arm-mem.h | 159 + - arch/arm/lib/copy_from_user.S | 4 +- - arch/arm/lib/exports_rpi.c | 37 + - arch/arm/lib/memcmp_rpi.S | 285 + - arch/arm/lib/memcpy_rpi.S | 61 + - arch/arm/lib/memcpymove.h | 506 ++ - arch/arm/lib/memmove_rpi.S | 61 + - arch/arm/lib/memset_rpi.S | 123 + - arch/arm/lib/uaccess_with_memcpy.c | 112 +- - arch/arm/mach-bcm/Kconfig | 1 + - arch/arm/mach-bcm/board_bcm2835.c | 34 + - arch/arm/mach-bcm2708/Kconfig | 23 + - arch/arm/mach-bcm2708/Makefile | 5 + - arch/arm/mach-bcm2708/Makefile.boot | 3 + - arch/arm/mach-bcm2708/bcm2708.c | 231 + - arch/arm/mach-bcm2708/include/mach/debug-macro.S | 22 + - arch/arm/mach-bcm2708/include/mach/io.h | 27 + - arch/arm/mach-bcm2708/include/mach/memory.h | 57 + - arch/arm/mach-bcm2708/include/mach/platform.h | 114 + - arch/arm/mach-bcm2708/include/mach/system.h | 37 + - arch/arm/mach-bcm2708/include/mach/uncompress.h | 84 + - arch/arm/mach-bcm2708/include/mach/vmalloc.h | 20 + - arch/arm/mach-bcm2709/Kconfig | 16 + - arch/arm/mach-bcm2709/Makefile | 5 + - arch/arm/mach-bcm2709/Makefile.boot | 3 + - arch/arm/mach-bcm2709/bcm2709.c | 380 ++ - arch/arm/mach-bcm2709/include/mach/debug-macro.S | 22 + - arch/arm/mach-bcm2709/include/mach/entry-macro.S | 123 + - arch/arm/mach-bcm2709/include/mach/io.h | 27 + - arch/arm/mach-bcm2709/include/mach/memory.h | 57 + - arch/arm/mach-bcm2709/include/mach/platform.h | 190 + - arch/arm/mach-bcm2709/include/mach/system.h | 37 + - arch/arm/mach-bcm2709/include/mach/uncompress.h | 84 + - arch/arm/mach-bcm2709/include/mach/vmalloc.h | 20 + - arch/arm/mm/Kconfig | 2 +- - arch/arm/mm/proc-v6.S | 15 +- - arch/arm/mm/proc-v7.S | 1 + - arch/arm/tools/mach-types | 2 + - drivers/bluetooth/hci_h5.c | 3 +- - drivers/char/Kconfig | 2 + - drivers/char/Makefile | 1 + - drivers/char/broadcom/Kconfig | 57 + - drivers/char/broadcom/Makefile | 7 + - drivers/char/broadcom/bcm2835-gpiomem.c | 260 + - drivers/char/broadcom/bcm2835_smi_dev.c | 402 ++ - drivers/char/broadcom/vc_cma/Makefile | 14 + - drivers/char/broadcom/vc_cma/vc_cma.c | 1193 ++++ - drivers/char/broadcom/vc_mem.c | 422 ++ - drivers/char/broadcom/vc_sm/Makefile | 20 + - drivers/char/broadcom/vc_sm/vc_sm_defs.h | 181 + - drivers/char/broadcom/vc_sm/vc_sm_knl.h | 55 + - drivers/char/broadcom/vc_sm/vc_vchi_sm.c | 492 ++ - drivers/char/broadcom/vc_sm/vc_vchi_sm.h | 82 + - drivers/char/broadcom/vc_sm/vmcs_sm.c | 3211 +++++++++ - drivers/char/broadcom/vcio.c | 175 + - drivers/char/hw_random/Kconfig | 2 +- - drivers/clk/Makefile | 1 + - drivers/clk/bcm/Makefile | 3 +- - drivers/clk/bcm/clk-bcm2835-aux.c | 85 + - drivers/clk/clk-hifiberry-dacpro.c | 160 + - drivers/clocksource/Makefile | 2 +- - drivers/cpufreq/Kconfig.arm | 9 + - drivers/cpufreq/Makefile | 1 + - drivers/cpufreq/bcm2835-cpufreq.c | 213 + - drivers/dma/Kconfig | 6 +- - drivers/dma/Makefile | 1 + - drivers/dma/bcm2708-dmaengine.c | 281 + - drivers/dma/bcm2835-dma.c | 261 +- - drivers/firmware/raspberrypi.c | 41 +- - drivers/gpio/Kconfig | 6 + - drivers/gpio/Makefile | 1 + - drivers/gpio/gpio-bcm-virt.c | 180 + - drivers/gpu/drm/drm_fb_cma_helper.c | 6 +- - drivers/gpu/drm/drm_gem_cma_helper.c | 14 +- - drivers/gpu/drm/vc4/Kconfig | 2 +- - drivers/gpu/drm/vc4/Makefile | 11 +- - drivers/gpu/drm/vc4/vc4_bo.c | 543 +- - drivers/gpu/drm/vc4/vc4_crtc.c | 99 +- - drivers/gpu/drm/vc4/vc4_debugfs.c | 4 + - drivers/gpu/drm/vc4/vc4_drv.c | 46 +- - drivers/gpu/drm/vc4/vc4_drv.h | 320 +- - drivers/gpu/drm/vc4/vc4_gem.c | 879 +++ - drivers/gpu/drm/vc4/vc4_hdmi.c | 2 + - drivers/gpu/drm/vc4/vc4_irq.c | 210 + - drivers/gpu/drm/vc4/vc4_kms.c | 149 +- - drivers/gpu/drm/vc4/vc4_packet.h | 399 ++ - drivers/gpu/drm/vc4/vc4_plane.c | 56 + - drivers/gpu/drm/vc4/vc4_qpu_defines.h | 264 + - drivers/gpu/drm/vc4/vc4_regs.h | 2 +- - drivers/gpu/drm/vc4/vc4_render_cl.c | 634 ++ - drivers/gpu/drm/vc4/vc4_trace.h | 63 + - drivers/gpu/drm/vc4/vc4_trace_points.c | 14 + - drivers/gpu/drm/vc4/vc4_v3d.c | 270 + - drivers/gpu/drm/vc4/vc4_validate.c | 900 +++ - drivers/gpu/drm/vc4/vc4_validate_shaders.c | 513 ++ - drivers/hid/usbhid/hid-core.c | 10 +- - drivers/i2c/busses/Kconfig | 21 +- - drivers/i2c/busses/Makefile | 2 + - drivers/i2c/busses/i2c-bcm2708.c | 508 ++ - drivers/input/joystick/Kconfig | 8 + - drivers/input/joystick/Makefile | 1 + - drivers/input/joystick/rpisense-js.c | 153 + - drivers/input/touchscreen/Kconfig | 7 + - drivers/input/touchscreen/Makefile | 1 + - drivers/input/touchscreen/rpi-ft5406.c | 246 + - drivers/irqchip/Makefile | 3 + - drivers/irqchip/irq-bcm2835.c | 90 +- - drivers/irqchip/irq-bcm2836.c | 3 +- - drivers/leds/leds-gpio.c | 18 +- - drivers/leds/trigger/Kconfig | 7 + - drivers/leds/trigger/Makefile | 1 + - drivers/leds/trigger/ledtrig-input.c | 54 + - drivers/mailbox/Kconfig | 2 +- - drivers/mailbox/bcm2835-mailbox.c | 18 +- - drivers/media/platform/Kconfig | 2 + - drivers/media/platform/Makefile | 2 + - drivers/media/platform/bcm2835/Kconfig | 25 + - drivers/media/platform/bcm2835/Makefile | 5 + - drivers/media/platform/bcm2835/bcm2835-camera.c | 1843 +++++ - drivers/media/platform/bcm2835/bcm2835-camera.h | 126 + - drivers/media/platform/bcm2835/controls.c | 1324 ++++ - drivers/media/platform/bcm2835/mmal-common.h | 53 + - drivers/media/platform/bcm2835/mmal-encodings.h | 127 + - drivers/media/platform/bcm2835/mmal-msg-common.h | 50 + - drivers/media/platform/bcm2835/mmal-msg-format.h | 81 + - drivers/media/platform/bcm2835/mmal-msg-port.h | 107 + - drivers/media/platform/bcm2835/mmal-msg.h | 404 ++ - drivers/media/platform/bcm2835/mmal-parameters.h | 656 ++ - drivers/media/platform/bcm2835/mmal-vchiq.c | 1916 ++++++ - drivers/media/platform/bcm2835/mmal-vchiq.h | 178 + - drivers/mfd/Kconfig | 8 + - drivers/mfd/Makefile | 2 + - drivers/mfd/rpisense-core.c | 157 + - drivers/misc/Kconfig | 9 + - drivers/misc/Makefile | 2 + - drivers/misc/bcm2835_smi.c | 985 +++ - drivers/misc/vc04_services/Kconfig | 9 + - drivers/misc/vc04_services/Makefile | 14 + - .../interface/vchi/connections/connection.h | 328 + - .../interface/vchi/message_drivers/message.h | 204 + - drivers/misc/vc04_services/interface/vchi/vchi.h | 378 ++ - .../misc/vc04_services/interface/vchi/vchi_cfg.h | 224 + - .../interface/vchi/vchi_cfg_internal.h | 71 + - .../vc04_services/interface/vchi/vchi_common.h | 175 + - .../misc/vc04_services/interface/vchi/vchi_mh.h | 42 + - .../misc/vc04_services/interface/vchiq_arm/vchiq.h | 40 + - .../vc04_services/interface/vchiq_arm/vchiq_2835.h | 42 + - .../interface/vchiq_arm/vchiq_2835_arm.c | 586 ++ - .../vc04_services/interface/vchiq_arm/vchiq_arm.c | 2903 ++++++++ - .../vc04_services/interface/vchiq_arm/vchiq_arm.h | 220 + - .../interface/vchiq_arm/vchiq_build_info.h | 37 + - .../vc04_services/interface/vchiq_arm/vchiq_cfg.h | 69 + - .../interface/vchiq_arm/vchiq_connected.c | 120 + - .../interface/vchiq_arm/vchiq_connected.h | 50 + - .../vc04_services/interface/vchiq_arm/vchiq_core.c | 3929 +++++++++++ - .../vc04_services/interface/vchiq_arm/vchiq_core.h | 712 ++ - .../interface/vchiq_arm/vchiq_debugfs.c | 383 ++ - .../interface/vchiq_arm/vchiq_debugfs.h | 52 + - .../interface/vchiq_arm/vchiq_genversion | 87 + - .../vc04_services/interface/vchiq_arm/vchiq_if.h | 189 + - .../interface/vchiq_arm/vchiq_ioctl.h | 131 + - .../interface/vchiq_arm/vchiq_kern_lib.c | 458 ++ - .../interface/vchiq_arm/vchiq_killable.h | 69 + - .../interface/vchiq_arm/vchiq_memdrv.h | 71 + - .../interface/vchiq_arm/vchiq_pagelist.h | 58 + - .../vc04_services/interface/vchiq_arm/vchiq_shim.c | 860 +++ - .../vc04_services/interface/vchiq_arm/vchiq_util.c | 156 + - .../vc04_services/interface/vchiq_arm/vchiq_util.h | 82 + - .../interface/vchiq_arm/vchiq_version.c | 59 + - drivers/mmc/core/quirks.c | 10 + - drivers/mmc/host/Kconfig | 39 + - drivers/mmc/host/Makefile | 2 + - drivers/mmc/host/bcm2835-mmc.c | 1571 +++++ - drivers/mmc/host/bcm2835-sdhost.c | 2121 ++++++ - drivers/mtd/nand/Kconfig | 7 + - drivers/mtd/nand/Makefile | 1 + - drivers/mtd/nand/bcm2835_smi_nand.c | 268 + - drivers/net/ethernet/microchip/enc28j60.c | 7 + - drivers/net/usb/smsc95xx.c | 70 +- - drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c | 2 + - drivers/net/wireless/brcm80211/brcmfmac/sdio.c | 5 + - .../net/wireless/brcm80211/include/brcm_hw_ids.h | 1 + - drivers/of/Kconfig | 7 + - drivers/of/Makefile | 1 + - drivers/of/configfs.c | 314 + - drivers/of/fdt.c | 29 +- - drivers/pinctrl/Makefile | 1 + - drivers/pinctrl/bcm/pinctrl-bcm2835.c | 57 +- - drivers/power/reset/gpio-poweroff.c | 4 +- - drivers/pwm/Kconfig | 2 +- - drivers/rtc/rtc-ds1307.c | 37 +- - drivers/spi/Kconfig | 4 +- - drivers/spi/spi-bcm2835.c | 45 +- - drivers/spi/spidev.c | 1 + - drivers/staging/media/lirc/Kconfig | 6 + - drivers/staging/media/lirc/Makefile | 1 + - drivers/staging/media/lirc/lirc_rpi.c | 730 ++ - drivers/thermal/Kconfig | 7 + - drivers/thermal/Makefile | 1 + - drivers/thermal/bcm2835-thermal.c | 141 + - drivers/tty/serial/8250/8250_core.c | 2 + - drivers/tty/serial/amba-pl011.c | 5 + - drivers/usb/Makefile | 1 + - drivers/usb/core/generic.c | 1 + - drivers/usb/core/hub.c | 2 +- - drivers/usb/core/message.c | 79 + - drivers/usb/core/otg_whitelist.h | 114 +- - drivers/usb/gadget/file_storage.c | 3676 ++++++++++ - drivers/usb/host/Kconfig | 13 + - drivers/usb/host/Makefile | 2 + - drivers/usb/host/dwc_common_port/Makefile | 58 + - drivers/usb/host/dwc_common_port/Makefile.fbsd | 17 + - drivers/usb/host/dwc_common_port/Makefile.linux | 49 + - drivers/usb/host/dwc_common_port/changes.txt | 174 + - drivers/usb/host/dwc_common_port/doc/doxygen.cfg | 270 + - drivers/usb/host/dwc_common_port/dwc_cc.c | 532 ++ - drivers/usb/host/dwc_common_port/dwc_cc.h | 224 + - drivers/usb/host/dwc_common_port/dwc_common_fbsd.c | 1308 ++++ - .../usb/host/dwc_common_port/dwc_common_linux.c | 1433 ++++ - drivers/usb/host/dwc_common_port/dwc_common_nbsd.c | 1275 ++++ - drivers/usb/host/dwc_common_port/dwc_crypto.c | 308 + - drivers/usb/host/dwc_common_port/dwc_crypto.h | 111 + - drivers/usb/host/dwc_common_port/dwc_dh.c | 291 + - drivers/usb/host/dwc_common_port/dwc_dh.h | 106 + - drivers/usb/host/dwc_common_port/dwc_list.h | 594 ++ - drivers/usb/host/dwc_common_port/dwc_mem.c | 245 + - drivers/usb/host/dwc_common_port/dwc_modpow.c | 636 ++ - drivers/usb/host/dwc_common_port/dwc_modpow.h | 34 + - drivers/usb/host/dwc_common_port/dwc_notifier.c | 319 + - drivers/usb/host/dwc_common_port/dwc_notifier.h | 122 + - drivers/usb/host/dwc_common_port/dwc_os.h | 1276 ++++ - drivers/usb/host/dwc_common_port/usb.h | 946 +++ - drivers/usb/host/dwc_otg/Makefile | 82 + - drivers/usb/host/dwc_otg/doc/doxygen.cfg | 224 + - drivers/usb/host/dwc_otg/dummy_audio.c | 1575 +++++ - drivers/usb/host/dwc_otg/dwc_cfi_common.h | 142 + - drivers/usb/host/dwc_otg/dwc_otg_adp.c | 854 +++ - drivers/usb/host/dwc_otg/dwc_otg_adp.h | 80 + - drivers/usb/host/dwc_otg/dwc_otg_attr.c | 1210 ++++ - drivers/usb/host/dwc_otg/dwc_otg_attr.h | 89 + - drivers/usb/host/dwc_otg/dwc_otg_cfi.c | 1876 +++++ - drivers/usb/host/dwc_otg/dwc_otg_cfi.h | 320 + - drivers/usb/host/dwc_otg/dwc_otg_cil.c | 7141 ++++++++++++++++++++ - drivers/usb/host/dwc_otg/dwc_otg_cil.h | 1464 ++++ - drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c | 1594 +++++ - drivers/usb/host/dwc_otg/dwc_otg_core_if.h | 705 ++ - drivers/usb/host/dwc_otg/dwc_otg_dbg.h | 117 + - drivers/usb/host/dwc_otg/dwc_otg_driver.c | 1757 +++++ - drivers/usb/host/dwc_otg/dwc_otg_driver.h | 86 + - drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c | 1355 ++++ - drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h | 370 + - drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S | 80 + - drivers/usb/host/dwc_otg/dwc_otg_hcd.c | 4257 ++++++++++++ - drivers/usb/host/dwc_otg/dwc_otg_hcd.h | 862 +++ - drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c | 1132 ++++ - drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h | 417 ++ - drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 2727 ++++++++ - drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 1005 +++ - drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c | 957 +++ - drivers/usb/host/dwc_otg/dwc_otg_os_dep.h | 188 + - drivers/usb/host/dwc_otg/dwc_otg_pcd.c | 2712 ++++++++ - drivers/usb/host/dwc_otg/dwc_otg_pcd.h | 266 + - drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h | 360 + - drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c | 5147 ++++++++++++++ - drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c | 1280 ++++ - drivers/usb/host/dwc_otg/dwc_otg_regs.h | 2550 +++++++ - drivers/usb/host/dwc_otg/test/Makefile | 16 + - drivers/usb/host/dwc_otg/test/dwc_otg_test.pm | 337 + - drivers/usb/host/dwc_otg/test/test_mod_param.pl | 133 + - drivers/usb/host/dwc_otg/test/test_sysfs.pl | 193 + - drivers/video/backlight/Kconfig | 6 + - drivers/video/backlight/Makefile | 1 + - drivers/video/backlight/rpi_backlight.c | 119 + - drivers/video/fbdev/Kconfig | 27 + - drivers/video/fbdev/Makefile | 2 + - drivers/video/fbdev/bcm2708_fb.c | 847 +++ - drivers/video/fbdev/core/cfbimgblt.c | 152 +- - drivers/video/fbdev/core/fbmem.c | 30 + - drivers/video/fbdev/rpisense-fb.c | 293 + - drivers/video/logo/logo_linux_clut224.ppm | 2483 +++---- - drivers/w1/masters/w1-gpio.c | 69 +- - drivers/w1/w1.h | 6 + - drivers/w1/w1_int.c | 14 + - drivers/w1/w1_io.c | 18 +- - drivers/watchdog/Kconfig | 2 +- - fs/configfs/configfs_internal.h | 14 +- - fs/configfs/dir.c | 18 +- - fs/configfs/file.c | 255 +- - fs/configfs/inode.c | 2 +- - include/drm/drmP.h | 7 + - include/dt-bindings/clock/bcm2835-aux.h | 17 + - include/linux/broadcom/bcm2835_smi.h | 391 ++ - include/linux/broadcom/vc_cma.h | 36 + - include/linux/broadcom/vc_mem.h | 35 + - include/linux/broadcom/vmcs_sm_ioctl.h | 248 + - include/linux/configfs.h | 50 + - include/linux/leds.h | 3 + - include/linux/mfd/rpisense/core.h | 47 + - include/linux/mfd/rpisense/framebuffer.h | 32 + - include/linux/mfd/rpisense/joystick.h | 35 + - include/linux/mmc/host.h | 1 + - include/linux/platform_data/bcm2708.h | 23 + - include/linux/platform_data/dma-bcm2708.h | 143 + - include/linux/serial_core.h | 2 +- - include/linux/vmstat.h | 4 + - include/linux/w1-gpio.h | 1 + - include/soc/bcm2835/raspberrypi-firmware.h | 10 + - include/uapi/drm/Kbuild | 1 + - include/uapi/drm/vc4_drm.h | 279 + - include/uapi/linux/fb.h | 5 + - kernel/cgroup.c | 23 +- - kernel/resource.c | 6 + - mm/page_alloc.c | 2 - - scripts/Makefile.dtbinst | 10 +- - scripts/Makefile.lib | 10 + - scripts/dtc/checks.c | 106 +- - scripts/dtc/dtc-lexer.l | 5 + - scripts/dtc/dtc-lexer.lex.c_shipped | 490 +- - scripts/dtc/dtc-parser.tab.c_shipped | 722 +- - scripts/dtc/dtc-parser.tab.h_shipped | 46 +- - scripts/dtc/dtc-parser.y | 22 +- - scripts/dtc/dtc.c | 9 +- - scripts/dtc/dtc.h | 40 + - scripts/dtc/flattree.c | 202 + - scripts/dtc/version_gen.h | 2 +- - scripts/knlinfo | 171 + - scripts/mkknlimg | 264 + - sound/arm/Kconfig | 8 + - sound/arm/Makefile | 5 + - sound/arm/bcm2835-ctl.c | 662 ++ - sound/arm/bcm2835-pcm.c | 626 ++ - sound/arm/bcm2835-vchiq.c | 915 +++ - sound/arm/bcm2835.c | 511 ++ - sound/arm/bcm2835.h | 172 + - sound/arm/vc_vchi_audioserv_defs.h | 125 + - sound/soc/bcm/Kconfig | 59 +- - sound/soc/bcm/Makefile | 18 + - sound/soc/bcm/bcm2835-i2s.c | 90 +- - sound/soc/bcm/hifiberry_amp.c | 128 + - sound/soc/bcm/hifiberry_dac.c | 123 + - sound/soc/bcm/hifiberry_dacplus.c | 352 + - sound/soc/bcm/hifiberry_digi.c | 224 + - sound/soc/bcm/iqaudio-dac.c | 141 + - sound/soc/bcm/raspidac3.c | 192 + - sound/soc/bcm/rpi-dac.c | 119 + - sound/soc/bcm/rpi-proto.c | 154 + - sound/soc/codecs/Kconfig | 18 + - sound/soc/codecs/Makefile | 6 + - sound/soc/codecs/pcm1794a.c | 69 + - sound/soc/codecs/pcm5102a.c | 70 + - sound/soc/codecs/pcm512x.c | 3 +- - sound/soc/codecs/tas5713.c | 369 + - sound/soc/codecs/tas5713.h | 210 + - sound/soc/codecs/tpa6130a2.c | 29 +- - sound/soc/codecs/wm8804.c | 5 +- - 461 files changed, 125035 insertions(+), 2666 deletions(-) - create mode 100644 Documentation/devicetree/bindings/clock/brcm,bcm2835-aux-clock.txt - create mode 100644 Documentation/devicetree/bindings/misc/brcm,bcm2835-smi-dev.txt - create mode 100644 Documentation/devicetree/bindings/misc/brcm,bcm2835-smi.txt - create mode 100644 Documentation/devicetree/bindings/mtd/brcm,bcm2835-smi-nand.txt - create mode 100644 Documentation/devicetree/configfs-overlays.txt - create mode 100644 Documentation/video4linux/bcm2835-v4l2.txt - create mode 100644 arch/arm/boot/dts/bcm2708-rpi-b-plus.dts - create mode 100644 arch/arm/boot/dts/bcm2708-rpi-b.dts - create mode 100755 arch/arm/boot/dts/bcm2708-rpi-cm.dts - create mode 100644 arch/arm/boot/dts/bcm2708-rpi-cm.dtsi - create mode 100644 arch/arm/boot/dts/bcm2708.dtsi - create mode 100644 arch/arm/boot/dts/bcm2708_common.dtsi - create mode 100644 arch/arm/boot/dts/bcm2709-rpi-2-b.dts - create mode 100644 arch/arm/boot/dts/bcm2709.dtsi - create mode 100644 arch/arm/boot/dts/bcm2710-rpi-3-b.dts - create mode 100644 arch/arm/boot/dts/bcm2710.dtsi - create mode 100644 arch/arm/boot/dts/bcm2835-rpi-cm.dts - create mode 100644 arch/arm/boot/dts/bcm2835-rpi-cm.dtsi - create mode 100644 arch/arm/boot/dts/overlays/Makefile - create mode 100644 arch/arm/boot/dts/overlays/README - create mode 100644 arch/arm/boot/dts/overlays/ads7846-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/at86rf233-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/bmp085_i2c-sensor-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/dht11-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/dwc-otg-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/dwc2-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/enc28j60-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/gpio-ir-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-amp-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-dac-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hy28a-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hy28b-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2s-mmap-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/lirc-rpi-overlay.dts - create mode 100755 arch/arm/boot/dts/overlays/mcp2515-can0-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/mmc-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/mz61581-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/piscreen-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/piscreen2r-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pitft28-capacitive-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pitft28-resistive-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pps-gpio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pwm-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/qca7000-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/raspidac3-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-backlight-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-dac-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-display-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-ft5406-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-proto-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-sense-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/sdhost-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/sdio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/sdtweak-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/smi-dev-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/smi-nand-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/smi-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi-gpio35-39-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi1-1cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi1-2cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi1-3cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi2-1cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi2-2cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi2-3cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/tinylcd35-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/uart1-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vga666-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/w1-gpio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/w1-gpio-pullup-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/wittypi-overlay.dts - create mode 100644 arch/arm/configs/bcm2709_defconfig - create mode 100644 arch/arm/configs/bcmrpi_defconfig - create mode 100644 arch/arm/lib/arm-mem.h - create mode 100644 arch/arm/lib/exports_rpi.c - create mode 100644 arch/arm/lib/memcmp_rpi.S - create mode 100644 arch/arm/lib/memcpy_rpi.S - create mode 100644 arch/arm/lib/memcpymove.h - create mode 100644 arch/arm/lib/memmove_rpi.S - create mode 100644 arch/arm/lib/memset_rpi.S - create mode 100644 arch/arm/mach-bcm2708/Kconfig - create mode 100644 arch/arm/mach-bcm2708/Makefile - create mode 100644 arch/arm/mach-bcm2708/Makefile.boot - create mode 100644 arch/arm/mach-bcm2708/bcm2708.c - create mode 100644 arch/arm/mach-bcm2708/include/mach/debug-macro.S - create mode 100644 arch/arm/mach-bcm2708/include/mach/io.h - create mode 100644 arch/arm/mach-bcm2708/include/mach/memory.h - create mode 100644 arch/arm/mach-bcm2708/include/mach/platform.h - create mode 100644 arch/arm/mach-bcm2708/include/mach/system.h - create mode 100644 arch/arm/mach-bcm2708/include/mach/uncompress.h - create mode 100644 arch/arm/mach-bcm2708/include/mach/vmalloc.h - create mode 100644 arch/arm/mach-bcm2709/Kconfig - create mode 100644 arch/arm/mach-bcm2709/Makefile - create mode 100644 arch/arm/mach-bcm2709/Makefile.boot - create mode 100644 arch/arm/mach-bcm2709/bcm2709.c - create mode 100644 arch/arm/mach-bcm2709/include/mach/debug-macro.S - create mode 100644 arch/arm/mach-bcm2709/include/mach/entry-macro.S - create mode 100644 arch/arm/mach-bcm2709/include/mach/io.h - create mode 100644 arch/arm/mach-bcm2709/include/mach/memory.h - create mode 100644 arch/arm/mach-bcm2709/include/mach/platform.h - create mode 100644 arch/arm/mach-bcm2709/include/mach/system.h - create mode 100644 arch/arm/mach-bcm2709/include/mach/uncompress.h - create mode 100644 arch/arm/mach-bcm2709/include/mach/vmalloc.h - create mode 100644 drivers/char/broadcom/Kconfig - create mode 100644 drivers/char/broadcom/Makefile - create mode 100644 drivers/char/broadcom/bcm2835-gpiomem.c - create mode 100644 drivers/char/broadcom/bcm2835_smi_dev.c - create mode 100644 drivers/char/broadcom/vc_cma/Makefile - create mode 100644 drivers/char/broadcom/vc_cma/vc_cma.c - create mode 100644 drivers/char/broadcom/vc_mem.c - create mode 100644 drivers/char/broadcom/vc_sm/Makefile - create mode 100644 drivers/char/broadcom/vc_sm/vc_sm_defs.h - create mode 100644 drivers/char/broadcom/vc_sm/vc_sm_knl.h - create mode 100644 drivers/char/broadcom/vc_sm/vc_vchi_sm.c - create mode 100644 drivers/char/broadcom/vc_sm/vc_vchi_sm.h - create mode 100644 drivers/char/broadcom/vc_sm/vmcs_sm.c - create mode 100644 drivers/char/broadcom/vcio.c - create mode 100644 drivers/clk/bcm/clk-bcm2835-aux.c - create mode 100644 drivers/clk/clk-hifiberry-dacpro.c - create mode 100644 drivers/cpufreq/bcm2835-cpufreq.c - create mode 100644 drivers/dma/bcm2708-dmaengine.c - create mode 100644 drivers/gpio/gpio-bcm-virt.c - create mode 100644 drivers/gpu/drm/vc4/vc4_gem.c - create mode 100644 drivers/gpu/drm/vc4/vc4_irq.c - create mode 100644 drivers/gpu/drm/vc4/vc4_packet.h - create mode 100644 drivers/gpu/drm/vc4/vc4_qpu_defines.h - create mode 100644 drivers/gpu/drm/vc4/vc4_render_cl.c - create mode 100644 drivers/gpu/drm/vc4/vc4_trace.h - create mode 100644 drivers/gpu/drm/vc4/vc4_trace_points.c - create mode 100644 drivers/gpu/drm/vc4/vc4_v3d.c - create mode 100644 drivers/gpu/drm/vc4/vc4_validate.c - create mode 100644 drivers/gpu/drm/vc4/vc4_validate_shaders.c - create mode 100644 drivers/i2c/busses/i2c-bcm2708.c - create mode 100644 drivers/input/joystick/rpisense-js.c - create mode 100644 drivers/input/touchscreen/rpi-ft5406.c - create mode 100644 drivers/leds/trigger/ledtrig-input.c - create mode 100644 drivers/media/platform/bcm2835/Kconfig - create mode 100644 drivers/media/platform/bcm2835/Makefile - create mode 100644 drivers/media/platform/bcm2835/bcm2835-camera.c - create mode 100644 drivers/media/platform/bcm2835/bcm2835-camera.h - create mode 100644 drivers/media/platform/bcm2835/controls.c - create mode 100644 drivers/media/platform/bcm2835/mmal-common.h - create mode 100644 drivers/media/platform/bcm2835/mmal-encodings.h - create mode 100644 drivers/media/platform/bcm2835/mmal-msg-common.h - create mode 100644 drivers/media/platform/bcm2835/mmal-msg-format.h - create mode 100644 drivers/media/platform/bcm2835/mmal-msg-port.h - create mode 100644 drivers/media/platform/bcm2835/mmal-msg.h - create mode 100644 drivers/media/platform/bcm2835/mmal-parameters.h - create mode 100644 drivers/media/platform/bcm2835/mmal-vchiq.c - create mode 100644 drivers/media/platform/bcm2835/mmal-vchiq.h - create mode 100644 drivers/mfd/rpisense-core.c - create mode 100644 drivers/misc/bcm2835_smi.c - create mode 100644 drivers/misc/vc04_services/Kconfig - create mode 100644 drivers/misc/vc04_services/Makefile - create mode 100644 drivers/misc/vc04_services/interface/vchi/connections/connection.h - create mode 100644 drivers/misc/vc04_services/interface/vchi/message_drivers/message.h - create mode 100644 drivers/misc/vc04_services/interface/vchi/vchi.h - create mode 100644 drivers/misc/vc04_services/interface/vchi/vchi_cfg.h - create mode 100644 drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h - create mode 100644 drivers/misc/vc04_services/interface/vchi/vchi_common.h - create mode 100644 drivers/misc/vc04_services/interface/vchi/vchi_mh.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.c - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_killable.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h - create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c - create mode 100644 drivers/mmc/host/bcm2835-mmc.c - create mode 100644 drivers/mmc/host/bcm2835-sdhost.c - create mode 100644 drivers/mtd/nand/bcm2835_smi_nand.c - create mode 100644 drivers/of/configfs.c - create mode 100644 drivers/staging/media/lirc/lirc_rpi.c - create mode 100644 drivers/thermal/bcm2835-thermal.c - create mode 100644 drivers/usb/gadget/file_storage.c - create mode 100644 drivers/usb/host/dwc_common_port/Makefile - create mode 100644 drivers/usb/host/dwc_common_port/Makefile.fbsd - create mode 100644 drivers/usb/host/dwc_common_port/Makefile.linux - create mode 100644 drivers/usb/host/dwc_common_port/changes.txt - create mode 100644 drivers/usb/host/dwc_common_port/doc/doxygen.cfg - create mode 100644 drivers/usb/host/dwc_common_port/dwc_cc.c - create mode 100644 drivers/usb/host/dwc_common_port/dwc_cc.h - create mode 100644 drivers/usb/host/dwc_common_port/dwc_common_fbsd.c - create mode 100644 drivers/usb/host/dwc_common_port/dwc_common_linux.c - create mode 100644 drivers/usb/host/dwc_common_port/dwc_common_nbsd.c - create mode 100644 drivers/usb/host/dwc_common_port/dwc_crypto.c - create mode 100644 drivers/usb/host/dwc_common_port/dwc_crypto.h - create mode 100644 drivers/usb/host/dwc_common_port/dwc_dh.c - create mode 100644 drivers/usb/host/dwc_common_port/dwc_dh.h - create mode 100644 drivers/usb/host/dwc_common_port/dwc_list.h - create mode 100644 drivers/usb/host/dwc_common_port/dwc_mem.c - create mode 100644 drivers/usb/host/dwc_common_port/dwc_modpow.c - create mode 100644 drivers/usb/host/dwc_common_port/dwc_modpow.h - create mode 100644 drivers/usb/host/dwc_common_port/dwc_notifier.c - create mode 100644 drivers/usb/host/dwc_common_port/dwc_notifier.h - create mode 100644 drivers/usb/host/dwc_common_port/dwc_os.h - create mode 100644 drivers/usb/host/dwc_common_port/usb.h - create mode 100644 drivers/usb/host/dwc_otg/Makefile - create mode 100644 drivers/usb/host/dwc_otg/doc/doxygen.cfg - create mode 100644 drivers/usb/host/dwc_otg/dummy_audio.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_cfi_common.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_adp.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_adp.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_attr.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_attr.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_cfi.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_cfi.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_cil.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_cil.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_core_if.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_dbg.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_driver.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_driver.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_hcd.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_hcd.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_os_dep.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_pcd.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_pcd.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c - create mode 100644 drivers/usb/host/dwc_otg/dwc_otg_regs.h - create mode 100644 drivers/usb/host/dwc_otg/test/Makefile - create mode 100644 drivers/usb/host/dwc_otg/test/dwc_otg_test.pm - create mode 100644 drivers/usb/host/dwc_otg/test/test_mod_param.pl - create mode 100644 drivers/usb/host/dwc_otg/test/test_sysfs.pl - create mode 100644 drivers/video/backlight/rpi_backlight.c - create mode 100644 drivers/video/fbdev/bcm2708_fb.c - create mode 100644 drivers/video/fbdev/rpisense-fb.c - create mode 100644 include/dt-bindings/clock/bcm2835-aux.h - create mode 100644 include/linux/broadcom/bcm2835_smi.h - create mode 100644 include/linux/broadcom/vc_cma.h - create mode 100644 include/linux/broadcom/vc_mem.h - create mode 100644 include/linux/broadcom/vmcs_sm_ioctl.h - create mode 100644 include/linux/mfd/rpisense/core.h - create mode 100644 include/linux/mfd/rpisense/framebuffer.h - create mode 100644 include/linux/mfd/rpisense/joystick.h - create mode 100644 include/linux/platform_data/bcm2708.h - create mode 100644 include/linux/platform_data/dma-bcm2708.h - create mode 100644 include/uapi/drm/vc4_drm.h - create mode 100755 scripts/knlinfo - create mode 100755 scripts/mkknlimg - create mode 100755 sound/arm/bcm2835-ctl.c - create mode 100755 sound/arm/bcm2835-pcm.c - create mode 100755 sound/arm/bcm2835-vchiq.c - create mode 100644 sound/arm/bcm2835.c - create mode 100755 sound/arm/bcm2835.h - create mode 100644 sound/arm/vc_vchi_audioserv_defs.h - create mode 100644 sound/soc/bcm/hifiberry_amp.c - create mode 100644 sound/soc/bcm/hifiberry_dac.c - create mode 100644 sound/soc/bcm/hifiberry_dacplus.c - create mode 100644 sound/soc/bcm/hifiberry_digi.c - create mode 100644 sound/soc/bcm/iqaudio-dac.c - create mode 100644 sound/soc/bcm/raspidac3.c - create mode 100644 sound/soc/bcm/rpi-dac.c - create mode 100644 sound/soc/bcm/rpi-proto.c - create mode 100644 sound/soc/codecs/pcm1794a.c - create mode 100644 sound/soc/codecs/pcm5102a.c - create mode 100644 sound/soc/codecs/tas5713.c - create mode 100644 sound/soc/codecs/tas5713.h - --- -2.5.0 - From 23b133903a357066adb48bceb76aba8bd30d8c66 Mon Sep 17 00:00:00 2001 From: Steve Glendinning Date: Thu, 19 Feb 2015 18:47:12 +0000 -Subject: [PATCH 001/202] smsx95xx: fix crimes against truesize +Subject: [PATCH 001/212] smsx95xx: fix crimes against truesize smsc95xx is adjusting truesize when it shouldn't, and following a recent patch from Eric this is now triggering warnings. @@ -1129,7 +42,7 @@ index 66b3ab9..b544181 From e7515ee9af1d150d50b55d8f8f53d735a23cb253 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 17 Apr 2015 16:58:45 +0100 -Subject: [PATCH 002/202] smsc95xx: Disable turbo mode by default +Subject: [PATCH 002/212] smsc95xx: Disable turbo mode by default --- drivers/net/usb/smsc95xx.c | 2 +- @@ -1155,7 +68,7 @@ index b544181..9c0da18 100755 From 849ff5353023c95d40040ecfd279e216074b3d1c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Jun 2014 13:42:01 +0100 -Subject: [PATCH 003/202] vmstat: Workaround for issue where dirty page count +Subject: [PATCH 003/212] vmstat: Workaround for issue where dirty page count goes negative See: @@ -1188,7 +101,7 @@ index 3e5d907..2539068 100644 From d29365673ed37e7688bd3f35c4a5ad719f878190 Mon Sep 17 00:00:00 2001 From: Robert Tiemann Date: Mon, 20 Jul 2015 11:01:25 +0200 -Subject: [PATCH 004/202] BCM2835_DT: Fix I2S register map +Subject: [PATCH 004/212] BCM2835_DT: Fix I2S register map --- Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt | 4 ++-- @@ -1248,7 +161,7 @@ index aef64de..864a3ef 100644 From c891de13b385afb3e4b2c97ac5bbea7e2d97252f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 4 Dec 2015 17:41:50 +0000 -Subject: [PATCH 005/202] irq-bcm2836: Prevent spurious interrupts, and trap +Subject: [PATCH 005/212] irq-bcm2836: Prevent spurious interrupts, and trap them early The old arch-specific IRQ macros included a dsb to ensure the @@ -1285,7 +198,7 @@ index f687082..4cd8ebe 100644 From 60f7ee79b375d72f5ef46ec542b925b1f1428bad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 12 Jun 2015 19:01:05 +0200 -Subject: [PATCH 006/202] irqchip: bcm2835: Add FIQ support +Subject: [PATCH 006/212] irqchip: bcm2835: Add FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1420,7 +333,7 @@ index bf9cc5f..3f601f9 100644 From 890dccbb9c60be182adefb61b3ede805ccba1a91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 23 Oct 2015 16:26:55 +0200 -Subject: [PATCH 007/202] irqchip: irq-bcm2835: Add 2836 FIQ support +Subject: [PATCH 007/212] irqchip: irq-bcm2835: Add 2836 FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1522,7 +435,7 @@ index 3f601f9..20deb28 100644 From 9a27662aac88f95b3de1915333a0265614f88a0d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 30 Jun 2015 14:12:42 +0100 -Subject: [PATCH 008/202] serial: 8250: Don't crash when nr_uarts is 0 +Subject: [PATCH 008/212] serial: 8250: Don't crash when nr_uarts is 0 --- drivers/tty/serial/8250/8250_core.c | 2 ++ @@ -1548,7 +461,7 @@ index 3912646..b51a59c 100644 From 4d7ff05e4d4d8d8adb4e7b4dd5fa8f63ae2be0f6 Mon Sep 17 00:00:00 2001 From: notro Date: Thu, 10 Jul 2014 13:59:47 +0200 -Subject: [PATCH 009/202] pinctrl-bcm2835: Set base to 0 give expected gpio +Subject: [PATCH 009/212] pinctrl-bcm2835: Set base to 0 give expected gpio numbering Signed-off-by: Noralf Tronnes @@ -1576,7 +489,7 @@ index 2e6ca69..62cc363 100644 From 969dc44a700e1be13c3f80445d40c1fe51cc4370 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 24 Feb 2015 13:40:50 +0000 -Subject: [PATCH 010/202] pinctrl-bcm2835: Fix interrupt handling for GPIOs +Subject: [PATCH 010/212] pinctrl-bcm2835: Fix interrupt handling for GPIOs 28-31 and 46-53 Contrary to the documentation, the BCM2835 GPIO controller actually has @@ -1728,7 +641,7 @@ index 62cc363..ab345f4 100644 From b949246bf51fa852bad45136cdd6bcd91a29539e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 26 Feb 2015 09:58:22 +0000 -Subject: [PATCH 011/202] pinctrl-bcm2835: Only request the interrupts listed +Subject: [PATCH 011/212] pinctrl-bcm2835: Only request the interrupts listed in the DTB Although the GPIO controller can generate three interrupts (four counting @@ -1761,7 +674,7 @@ index ab345f4..640e3b0 100644 From 19bcdacc5a67abe6a2d604a39ddfed5a54c77b2e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Jun 2015 14:10:44 +0100 -Subject: [PATCH 012/202] spi-bcm2835: Support pin groups other than 7-11 +Subject: [PATCH 012/212] spi-bcm2835: Support pin groups other than 7-11 The spi-bcm2835 driver automatically uses GPIO chip-selects due to some unreliability of the native ones. In doing so it chooses the @@ -1848,7 +761,7 @@ index cf04960..a2b1f45 100644 From 7ce5cbfba6e930c2178f342a4390972f1efd75ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Wed, 3 Jun 2015 12:26:13 +0200 -Subject: [PATCH 013/202] ARM: bcm2835: Set Serial number and Revision +Subject: [PATCH 013/212] ARM: bcm2835: Set Serial number and Revision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1912,7 +825,7 @@ index 0f7b9ea..1e6f1cf 100644 From 569baa856d805e594011f2d1444b6849c291544d Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 16:44:05 +0200 -Subject: [PATCH 014/202] bcm2835-i2s: get base address for DMA from devicetree +Subject: [PATCH 014/212] bcm2835-i2s: get base address for DMA from devicetree Code copied from spi-bcm2835. Get physical address from devicetree instead of using hardcoded constant. @@ -1983,7 +896,7 @@ index 8c435be..0bc4f47 100644 From c61a7aef15a1aee86e1de59dca2ad7002995f9cf Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:21:16 +0200 -Subject: [PATCH 015/202] bcm2835-i2s: add 24bit support, update bclk_ratio to +Subject: [PATCH 015/212] bcm2835-i2s: add 24bit support, update bclk_ratio to more correct values Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -2068,7 +981,7 @@ index 0bc4f47..cf60390 100644 From e2a75ce0e2b6319150e14401f9822adba7895c9c Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:25:51 +0200 -Subject: [PATCH 016/202] bcm2835-i2s: setup clock only if CPU is clock master +Subject: [PATCH 016/212] bcm2835-i2s: setup clock only if CPU is clock master Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -2129,7 +1042,7 @@ index cf60390..4ac4e92 100644 From 433841fc5958e1ddbd503b579a022fb67defd74b Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:49:51 +0200 -Subject: [PATCH 017/202] bcm2835-i2s: Eliminate debugfs directory error +Subject: [PATCH 017/212] bcm2835-i2s: Eliminate debugfs directory error Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -2171,7 +1084,7 @@ index 4ac4e92..aab3df9 100644 From 7b4481818fe920904457496db40d59dd3d0a83bb Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:35:20 +0200 -Subject: [PATCH 018/202] bcm2835-i2s: Register PCM device +Subject: [PATCH 018/212] bcm2835-i2s: Register PCM device Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -2240,7 +1153,7 @@ index aab3df9..0e5c787 100644 From 027ba808e84799c97ae1c64f8424ac8eb7235cc4 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:55:21 +0200 -Subject: [PATCH 019/202] bcm2835-i2s: Enable MMAP support via a DT property +Subject: [PATCH 019/212] bcm2835-i2s: Enable MMAP support via a DT property Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -2290,7 +1203,7 @@ index 0e5c787..04c1d13 100644 From 8a349301238aabb40c9da5ca8c8492b6b8d146f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Thu, 9 Apr 2015 12:34:11 +0200 -Subject: [PATCH 020/202] dmaengine: bcm2835: Add slave dma support +Subject: [PATCH 020/212] dmaengine: bcm2835: Add slave dma support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -2616,7 +1529,7 @@ index 996c4b0..b278c66 100644 From 290f55520c62025da992d6be0002fc1e3738cfdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sat, 3 Oct 2015 15:58:59 +0200 -Subject: [PATCH 021/202] dmaengine: bcm2835: set residue_granularity field +Subject: [PATCH 021/212] dmaengine: bcm2835: set residue_granularity field MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -2651,7 +1564,7 @@ index b278c66..696fb30 100644 From 6f56fff39c811953809b011f59c49a2122c4d173 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sat, 3 Oct 2015 22:22:55 +0200 -Subject: [PATCH 022/202] dmaengine: bcm2835: Load driver early and support +Subject: [PATCH 022/212] dmaengine: bcm2835: Load driver early and support legacy API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -2757,7 +1670,7 @@ index 696fb30..5db0a95 100644 From df03f00c5e21559185b5a61ea5e8238e10959ab1 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sat, 10 Oct 2015 12:29:18 +0200 -Subject: [PATCH 023/202] bcm2835-dma: Fix dreq not set for slave transfers +Subject: [PATCH 023/212] bcm2835-dma: Fix dreq not set for slave transfers Set dreq to slave_id if it is not set like in bcm2708-dmaengine. --- @@ -2784,7 +1697,7 @@ index 5db0a95..fe1fd60 100644 From 052c2005b6ecedc5abad86632f5781adda310aa7 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 12:28:30 +0200 -Subject: [PATCH 024/202] bcm2835-dma: Limit cyclic transfers on lite channels +Subject: [PATCH 024/212] bcm2835-dma: Limit cyclic transfers on lite channels to 32k Transfers larger than 32k cause repeated clicking with I2S soundcards. @@ -2827,7 +1740,7 @@ index fe1fd60..0adc347 100644 From a72021ae99021409319d552dad744572b20febfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sat, 15 Aug 2015 20:50:02 +0200 -Subject: [PATCH 025/202] bcm2835: Add support for uart1 +Subject: [PATCH 025/212] bcm2835: Add support for uart1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -2890,7 +1803,7 @@ index 1e6f1cf..ea36eec 100644 From 4364707caa6d3d9edf84fa8469a04f33e1ba5d76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:21:20 +0200 -Subject: [PATCH 026/202] firmware: bcm2835: Add missing property tags +Subject: [PATCH 026/212] firmware: bcm2835: Add missing property tags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -2958,7 +1871,7 @@ index c07d74a..525816d 100644 From cd721670ab8c729d0c62e99a1d173c2575b63282 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 12 May 2013 12:24:19 +0100 -Subject: [PATCH 027/202] Main bcm2708/bcm2709 linux port +Subject: [PATCH 027/212] Main bcm2708/bcm2709 linux port MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -5479,7 +4392,7 @@ index 8673ffe..ad22ebb 100644 From 812484cc27980e3351360200478e7044de983f40 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 11 Nov 2015 21:01:15 +0000 -Subject: [PATCH 028/202] squash: include ARCH_BCM2708 / ARCH_BCM2709 +Subject: [PATCH 028/212] squash: include ARCH_BCM2708 / ARCH_BCM2709 --- drivers/char/hw_random/Kconfig | 2 +- @@ -5637,7 +4550,7 @@ index 6a834e1..c5070ae 100644 From 7efc2851a46faa1aceda5f6ec255d0e814812ccf Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 May 2013 19:46:17 +0100 -Subject: [PATCH 029/202] Add dwc_otg driver +Subject: [PATCH 029/212] Add dwc_otg driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -66622,7 +65535,7 @@ index 0000000..cdc9963 From d3b7394edae550f295e185be4651ed43529e7042 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 17:06:34 +0100 -Subject: [PATCH 030/202] bcm2708 framebuffer driver +Subject: [PATCH 030/212] bcm2708 framebuffer driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -70090,7 +69003,7 @@ index 3c14e43..7626beb 100644 From 99b7c3cfd05f5898e96d7c44c5970880f2c0cd16 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:22:53 +0100 -Subject: [PATCH 031/202] dmaengine: Add support for BCM2708 +Subject: [PATCH 031/212] dmaengine: Add support for BCM2708 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -70716,7 +69629,7 @@ index 0000000..99cc7fd From 65c8aadfd88010efb2d2a2821fea7aac978b6c78 Mon Sep 17 00:00:00 2001 From: gellert Date: Fri, 15 Aug 2014 16:35:06 +0100 -Subject: [PATCH 032/202] MMC: added alternative MMC driver +Subject: [PATCH 032/212] MMC: added alternative MMC driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -72420,7 +71333,7 @@ index 0000000..43aed6e From c58bec0d84082837415562c6567396e9e5ba62f7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 25 Mar 2015 17:49:47 +0000 -Subject: [PATCH 033/202] Adding bcm2835-sdhost driver, and an overlay to +Subject: [PATCH 033/212] Adding bcm2835-sdhost driver, and an overlay to enable it BCM2835 has two SD card interfaces. This driver uses the other one. @@ -74453,7 +73366,7 @@ index 0000000..da089985 From 36d8db53953365eecdf56695944e9f9919634de0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:31:47 +0100 -Subject: [PATCH 034/202] cma: Add vc_cma driver to enable use of CMA +Subject: [PATCH 034/212] cma: Add vc_cma driver to enable use of CMA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -75802,7 +74715,7 @@ index 0000000..be2819d From 2dd634f97c4fb77d9e81be289a8da29c390a0309 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 26 Mar 2012 22:15:50 +0100 -Subject: [PATCH 035/202] bcm2708: alsa sound driver +Subject: [PATCH 035/212] bcm2708: alsa sound driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -78506,7 +77419,7 @@ index 0000000..af3e6eb From 112360f76c91c892f1a29825eb2807bbf86ac67d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 2 Jul 2013 23:42:01 +0100 -Subject: [PATCH 036/202] bcm2708 vchiq driver +Subject: [PATCH 036/212] bcm2708 vchiq driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -91817,7 +90730,7 @@ index 0000000..b6bfa21 From b0acaf43055bacef7918c835517ff6ea7da26e83 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 16:07:06 +0100 -Subject: [PATCH 037/202] vc_mem: Add vc_mem driver +Subject: [PATCH 037/212] vc_mem: Add vc_mem driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -92828,7 +91741,7 @@ index 0000000..20a4753 From 5f05accd033e4b032f64717a0276d7174f697919 Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Tue, 22 Jul 2014 15:41:04 +0100 -Subject: [PATCH 038/202] vcsm: VideoCore shared memory service for BCM2835 +Subject: [PATCH 038/212] vcsm: VideoCore shared memory service for BCM2835 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -97250,7 +96163,7 @@ index 0000000..334f36d From 1ee3b49a62efe1416a6b40fb5c6032288f3d2b08 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Fri, 21 Aug 2015 23:14:48 +0100 -Subject: [PATCH 039/202] Add /dev/gpiomem device for rootless user GPIO access +Subject: [PATCH 039/212] Add /dev/gpiomem device for rootless user GPIO access Signed-off-by: Luke Wren @@ -97567,7 +96480,7 @@ index 0000000..911f5b7 From e19c303e7d54d986e0bd3e47107a83e30329c1d0 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:14:45 +0100 -Subject: [PATCH 040/202] Add SMI driver +Subject: [PATCH 040/212] Add SMI driver Signed-off-by: Luke Wren --- @@ -99524,7 +98437,7 @@ index 0000000..ee3a75e From c0fe401b61ae4d002f6fc84438ce69c5917c580a Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:16:10 +0100 -Subject: [PATCH 041/202] Add SMI NAND driver +Subject: [PATCH 041/212] Add SMI NAND driver Signed-off-by: Luke Wren --- @@ -99896,7 +98809,7 @@ index 0000000..b747326 From 0bc00c67aea43098c7b066e7b123379b260cc7de Mon Sep 17 00:00:00 2001 From: Aron Szabo Date: Sat, 16 Jun 2012 12:15:55 +0200 -Subject: [PATCH 042/202] lirc: added support for RaspberryPi GPIO +Subject: [PATCH 042/212] lirc: added support for RaspberryPi GPIO lirc_rpi: Use read_current_timer to determine transmitter delay. Thanks to jjmz and others See: https://github.com/raspberrypi/linux/issues/525 @@ -100751,7 +99664,7 @@ index 0000000..fb69624 From 007ef35b2cf5d8a0197e81e712b38fb72cebae2e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:49:20 +0100 -Subject: [PATCH 043/202] Add cpufreq driver +Subject: [PATCH 043/212] Add cpufreq driver Signed-off-by: popcornmix --- @@ -101019,7 +99932,7 @@ index 0000000..3eb9e93 From 9f251fdbaaf3bd895c2901413748679d68a0c644 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 19:24:24 +0000 -Subject: [PATCH 044/202] Added hwmon/thermal driver for reporting core +Subject: [PATCH 044/212] Added hwmon/thermal driver for reporting core temperature. Thanks Dorian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -101223,7 +100136,7 @@ index 0000000..08d8dc7 From 28a4399bf03eeb3ec5b7b56c9445b296e1427665 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 15:44:08 +0100 -Subject: [PATCH 045/202] Add Chris Boot's i2c driver +Subject: [PATCH 045/212] Add Chris Boot's i2c driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -101869,7 +100782,7 @@ index 0000000..85f411c From 75804edaed6c45d813dcee866d39445130d82539 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:27:06 +0200 -Subject: [PATCH 046/202] char: broadcom: Add vcio module +Subject: [PATCH 046/212] char: broadcom: Add vcio module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -102101,7 +101014,7 @@ index 0000000..c19bc20 From 80b7c5e2cc3d633b3d3a1afbdb537e2ccfe906c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:25:01 +0200 -Subject: [PATCH 047/202] firmware: bcm2835: Support ARCH_BCM270x +Subject: [PATCH 047/212] firmware: bcm2835: Support ARCH_BCM270x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -102213,7 +101126,7 @@ index dd506cd3..b980d53 100644 From e15fddd4332bd3a762d0feef48ff2b5e3df10af0 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Wed, 30 Jan 2013 12:45:18 +0000 -Subject: [PATCH 048/202] bcm2835: add v4l2 camera device +Subject: [PATCH 048/212] bcm2835: add v4l2 camera device - Supports raw YUV capture, preview, JPEG and H264. - Uses videobuf2 for data transfer, using dma_buf. @@ -109604,7 +108517,7 @@ index 0000000..9d1d11e From 91e833ab0b220bb0bb810bb9605b0a03cd76baa8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 May 2015 09:00:42 +0100 -Subject: [PATCH 049/202] scripts: Add mkknlimg and knlinfo scripts from tools +Subject: [PATCH 049/212] scripts: Add mkknlimg and knlinfo scripts from tools repo The Raspberry Pi firmware looks for a trailer on the kernel image to @@ -110075,7 +108988,7 @@ index 0000000..3998d43 From 918b9e451bbaebb775725a292fd3b6e3d4cf804f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 5 Dec 2014 17:26:26 +0000 -Subject: [PATCH 050/202] fdt: Add support for the CONFIG_CMDLINE_EXTEND option +Subject: [PATCH 050/212] fdt: Add support for the CONFIG_CMDLINE_EXTEND option --- drivers/of/fdt.c | 29 ++++++++++++++++++++++++----- @@ -110136,7 +109049,7 @@ index 655f79d..fdc4501 100644 From d1fdaf68df66e82bea1081b490ebeea414d69203 Mon Sep 17 00:00:00 2001 From: notro Date: Wed, 9 Jul 2014 14:46:08 +0200 -Subject: [PATCH 051/202] BCM2708: Add core Device Tree support +Subject: [PATCH 051/212] BCM2708: Add core Device Tree support Add the bare minimum needed to boot BCM2708 from a Device Tree. @@ -114868,7 +113781,7 @@ index 0000000..66a98f6 From da7cdef4979282624e0e7527c3c8334a59f39676 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sat, 15 Aug 2015 20:47:07 +0200 -Subject: [PATCH 052/202] bcm2835: Match with BCM2708 Device Trees +Subject: [PATCH 052/212] bcm2835: Match with BCM2708 Device Trees MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -115392,7 +114305,7 @@ index 864a3ef..3256bff 100644 From b28366cb5b514e5c59586f9a5509d3afff5337d5 Mon Sep 17 00:00:00 2001 From: Siarhei Siamashka Date: Mon, 17 Jun 2013 13:32:11 +0300 -Subject: [PATCH 053/202] fbdev: add FBIOCOPYAREA ioctl +Subject: [PATCH 053/212] fbdev: add FBIOCOPYAREA ioctl Based on the patch authored by Ali Gholami Rudi at https://lkml.org/lkml/2009/7/13/153 @@ -115488,10 +114401,10 @@ index fb795c3..fa72af0 100644 2.5.0 -From a4c5960d433cb5f977a96b7311c950ca03c1df66 Mon Sep 17 00:00:00 2001 +From e68c4a4b1033c1d9aeb528d7d47c2b9ca038e7c2 Mon Sep 17 00:00:00 2001 From: Harm Hanemaaijer Date: Thu, 20 Jun 2013 20:21:39 +0200 -Subject: [PATCH 054/202] Speed up console framebuffer imageblit function +Subject: [PATCH 054/212] Speed up console framebuffer imageblit function Especially on platforms with a slower CPU but a relatively high framebuffer fill bandwidth, like current ARM devices, the existing @@ -115703,10 +114616,10 @@ index a2bb276..436494f 100644 2.5.0 -From 77c2af00464f6206afc0ef09e5549c7cc2c3b27f Mon Sep 17 00:00:00 2001 +From 17639169a94391cb42ca31e7237cabebf1b12422 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 17:26:38 +0000 -Subject: [PATCH 055/202] Allow mac address to be set in smsc95xx +Subject: [PATCH 055/212] Allow mac address to be set in smsc95xx Signed-off-by: popcornmix --- @@ -115800,10 +114713,10 @@ index 9c0da18..3244a90 100755 2.5.0 -From 3bbc521705e696bdde9dc12d65ff87a2ed74c1c0 Mon Sep 17 00:00:00 2001 +From 5a93579be93ad956dae57d474401333ae97590ea Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 8 May 2013 11:46:50 +0100 -Subject: [PATCH 056/202] enabling the realtime clock 1-wire chip DS1307 and +Subject: [PATCH 056/212] enabling the realtime clock 1-wire chip DS1307 and 1-wire on GPIO4 (as a module) 1-wire: Add support for configuring pin for w1-gpio kernel module @@ -116056,10 +114969,10 @@ index d58594a..feae942 100644 2.5.0 -From ca0fd948924880e50601f4c0661d0dca53e48200 Mon Sep 17 00:00:00 2001 +From daf3cfd1062a6fc173f4dc2475f1c07b52cd6cae Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Dec 2013 22:16:19 +0000 -Subject: [PATCH 057/202] config: Enable CONFIG_MEMCG, but leave it disabled +Subject: [PATCH 057/212] config: Enable CONFIG_MEMCG, but leave it disabled (due to memory cost). Enable with cgroup_enable=memory. --- @@ -116111,10 +115024,10 @@ index fb1ecfd..888d308 100644 2.5.0 -From 363f2959e5b15d1aa267f8bb8931317df72a85d9 Mon Sep 17 00:00:00 2001 +From b7437ee59d30a334efa61158f1a579307b2bf72d Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:59:51 +0100 -Subject: [PATCH 058/202] ASoC: Add support for PCM5102A codec +Subject: [PATCH 058/212] ASoC: Add support for PCM5102A codec Some definitions to support the PCM5102A codec by Texas Instruments. @@ -116250,10 +115163,10 @@ index 0000000..7c6598e 2.5.0 -From b1aeaf598edd4e11a93192add17fea1d33ea8f8c Mon Sep 17 00:00:00 2001 +From d4500551e35ce29d539316941347f78d5bbb4e9a Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 19:19:08 +0100 -Subject: [PATCH 059/202] ASoC: Add support for HifiBerry DAC +Subject: [PATCH 059/212] ASoC: Add support for HifiBerry DAC This adds a machine driver for the HifiBerry DAC. It is a sound card that can @@ -116426,10 +115339,10 @@ index 0000000..3ab0f47 2.5.0 -From 0c5411c9815d94c0479f377f6d51c09dbd5cebb1 Mon Sep 17 00:00:00 2001 +From f34036f9682e66adfb024a2e2a4c411c9abc85c3 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 19:21:34 +0100 -Subject: [PATCH 060/202] ASoC: Add support for Rpi-DAC +Subject: [PATCH 060/212] ASoC: Add support for Rpi-DAC --- sound/soc/bcm/Kconfig | 7 +++ @@ -116719,10 +115632,10 @@ index 0000000..afe1b41 2.5.0 -From 17189fc28617ee5e6d41c050a7a196d66b30cfce Mon Sep 17 00:00:00 2001 +From 1ddb922071cbe8a3f747a4971538d983a1b1715a Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:41:23 +0100 -Subject: [PATCH 061/202] ASoC: wm8804: Implement MCLK configuration options, +Subject: [PATCH 061/212] ASoC: wm8804: Implement MCLK configuration options, add 32bit support WM8804 can run with PLL frequencies of 256xfs and 128xfs for most sample rates. At 192kHz only 128xfs is supported. The existing driver selects 128xfs automatically for some lower samples rates. By using an @@ -116765,10 +115678,10 @@ index 8d91470..5795fb1 100644 2.5.0 -From 94f1ed18022a893a76a0becdd8debf50a9b06597 Mon Sep 17 00:00:00 2001 +From d131f2daebd4eb4ece7b6db2e3f3a1180b94c2c2 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:42:08 +0100 -Subject: [PATCH 062/202] ASoC: BCM:Add support for HiFiBerry Digi. Driver is +Subject: [PATCH 062/212] ASoC: BCM:Add support for HiFiBerry Digi. Driver is based on the patched WM8804 driver. Signed-off-by: Daniel Matuschek @@ -117058,10 +115971,10 @@ index 0000000..80732b8 2.5.0 -From 32bb0f6f0f2b54aedb5db917682e102e75705911 Mon Sep 17 00:00:00 2001 +From b0f5c51bb26e93f672217fcd472da7f2b2c88e6b Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Thu, 16 Jan 2014 07:36:35 +0100 -Subject: [PATCH 063/202] ASoC: wm8804: Set idle_bias_off to false Idle bias +Subject: [PATCH 063/212] ASoC: wm8804: Set idle_bias_off to false Idle bias has been change to remove warning on driver startup Signed-off-by: Daniel Matuschek @@ -117086,10 +115999,10 @@ index 5795fb1..c846716 100644 2.5.0 -From 0b6443f1daafad5f4e1083d211e7f91ad0cc1ab9 Mon Sep 17 00:00:00 2001 +From 152ebb776340c3073c0a32106167a7fe467d3456 Mon Sep 17 00:00:00 2001 From: Gordon Garrity Date: Sat, 8 Mar 2014 16:56:57 +0000 -Subject: [PATCH 064/202] Add IQaudIO Sound Card support for Raspberry Pi +Subject: [PATCH 064/212] Add IQaudIO Sound Card support for Raspberry Pi Set a limit of 0dB on Digital Volume Control @@ -117275,10 +116188,10 @@ index 0000000..37038d4 2.5.0 -From 2ea838c17bd5bd0e599aa0cb1063578e15d4148e Mon Sep 17 00:00:00 2001 +From c37587c1c15e2f2f8bad810115c0e32cc0d4093f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 14 Jul 2014 22:02:09 +0100 -Subject: [PATCH 065/202] hid: Reduce default mouse polling interval to 60Hz +Subject: [PATCH 065/212] hid: Reduce default mouse polling interval to 60Hz Reduces overhead when using X --- @@ -117317,10 +116230,10 @@ index 5dd426f..9ae0cd5 100644 2.5.0 -From 226b2b79539d495f78cd33af2830bdd24c3c1aba Mon Sep 17 00:00:00 2001 +From f893beacf8b0975e20d0099d3a443ab5fb483db6 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 10:06:56 +0200 -Subject: [PATCH 066/202] Added support for HiFiBerry DAC+ +Subject: [PATCH 066/212] Added support for HiFiBerry DAC+ The driver is based on the HiFiBerry DAC driver. However HiFiBerry DAC+ uses a different codec chip (PCM5122), therefore a new driver is necessary. @@ -117518,10 +116431,10 @@ index 0000000..11e4f39 2.5.0 -From b680272f13777e2b9243b7f45e201e98368525ef Mon Sep 17 00:00:00 2001 +From b4d78cb8345c9d0ed833a765f3c90a2c4b83ba82 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 11:09:58 +0200 -Subject: [PATCH 067/202] Added driver for HiFiBerry Amp amplifier add-on board +Subject: [PATCH 067/212] Added driver for HiFiBerry Amp amplifier add-on board The driver contains a low-level hardware driver for the TAS5713 and the drivers for the Raspberry Pi I2S subsystem. @@ -118355,10 +117268,10 @@ index 0000000..8f019e0 2.5.0 -From 5a6c5da66860a98e64694592540b482d58b5565e Mon Sep 17 00:00:00 2001 +From 4ac6bff6336e2a6c482919e8dc39de114e9651cd Mon Sep 17 00:00:00 2001 From: Ryan Coe Date: Sat, 31 Jan 2015 18:25:49 -0700 -Subject: [PATCH 068/202] Update ds1307 driver for device-tree support +Subject: [PATCH 068/212] Update ds1307 driver for device-tree support Signed-off-by: Ryan Coe --- @@ -118388,10 +117301,10 @@ index aa705bb..1cb13fee 100644 2.5.0 -From 8c8c61de2e45aa9b2b190e6eaac941b6d6be3f3b Mon Sep 17 00:00:00 2001 +From f341ac7091d56c69c1b7cc0d3cffed6f8091f8d8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 Feb 2015 13:50:57 +0000 -Subject: [PATCH 069/202] BCM270x_DT: Add pwr_led, and the required "input" +Subject: [PATCH 069/212] BCM270x_DT: Add pwr_led, and the required "input" trigger The "input" trigger makes the associated GPIO an input. This is to support @@ -118573,10 +117486,10 @@ index fa359c7..4b25a1a 100644 2.5.0 -From d0787e89ceb690c63b2c93810088b293f81e3701 Mon Sep 17 00:00:00 2001 +From af6a88df92cf2a08abc429822f8c9309ecdb26a1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 27 Feb 2015 15:10:24 +0000 -Subject: [PATCH 070/202] enc28j60: Add device tree compatible string and an +Subject: [PATCH 070/212] enc28j60: Add device tree compatible string and an overlay --- @@ -118608,10 +117521,10 @@ index 86ea17e..a1b20c1 100644 2.5.0 -From d773339d21eb8ce28e60c24d5fff8e11cdca731b Mon Sep 17 00:00:00 2001 +From 32f267566e1a67e6170cb37a59a907e5b167600a Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 25 Mar 2015 09:26:17 +0100 -Subject: [PATCH 071/202] Add driver for rpi-proto +Subject: [PATCH 071/212] Add driver for rpi-proto Forward port of 3.10.x driver from https://github.com/koalo We are using a custom board and would like to use rpi 3.18.x @@ -118829,10 +117742,10 @@ index 0000000..c6e45a0 2.5.0 -From 5e4dce05393ec9a17ec6bdd7216fd59c91858545 Mon Sep 17 00:00:00 2001 +From cd9d2d406b40d4f03e7060e4795a64a31d14d41b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Apr 2015 17:16:29 +0100 -Subject: [PATCH 072/202] config: Add default configs +Subject: [PATCH 072/212] config: Add default configs --- arch/arm/configs/bcm2709_defconfig | 1254 +++++++++++++++++++++++++++++++++++ @@ -121376,10 +120289,10 @@ index 0000000..1d1b799 2.5.0 -From 8576c28c47db7c578b341c1d24687dafa196773c Mon Sep 17 00:00:00 2001 +From 9a8719a7ae9fa9145e24bdaee98da18798088ce8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Wed, 29 Apr 2015 17:24:02 +0200 -Subject: [PATCH 073/202] bcm2835: bcm2835_defconfig +Subject: [PATCH 073/212] bcm2835: bcm2835_defconfig MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -122808,10 +121721,10 @@ index 31cb073..fdb2e2a 100644 2.5.0 -From ab001f276e110d23fa4dc8f3cc92c1a1f0353d88 Mon Sep 17 00:00:00 2001 +From e84f83b441f7900f2a968ef2e72c644d76084c9a Mon Sep 17 00:00:00 2001 From: Gordon Hollingworth Date: Tue, 12 May 2015 14:47:56 +0100 -Subject: [PATCH 074/202] rpi-ft5406: Add touchscreen driver for pi LCD display +Subject: [PATCH 074/212] rpi-ft5406: Add touchscreen driver for pi LCD display Fix driver detection failure Check that the buffer response is non-zero meaning the touchscreen was detected @@ -123109,10 +122022,10 @@ index 0000000..b27dbee 2.5.0 -From 3c73c02eda8e46ed37bd3c2c0bfb04f57dd7e36a Mon Sep 17 00:00:00 2001 +From 3e7f9b8176516fb739849da22fc9f6ac3fd32678 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Oct 2014 11:47:53 +0100 -Subject: [PATCH 075/202] Improve __copy_to_user and __copy_from_user +Subject: [PATCH 075/212] Improve __copy_to_user and __copy_from_user performance Provide a __copy_from_user that uses memcpy. On BCM2708, use @@ -124654,10 +123567,10 @@ index 588bbc2..c29df92 100644 2.5.0 -From 7f13b0b4ba1c97ab275adc7e28cbc3d0b3cc9496 Mon Sep 17 00:00:00 2001 +From 5364f52d5d68ee0f2c8effff82a49cd0fd050e80 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 25 Jun 2015 12:16:11 +0100 -Subject: [PATCH 076/202] gpio-poweroff: Allow it to work on Raspberry Pi +Subject: [PATCH 076/212] gpio-poweroff: Allow it to work on Raspberry Pi The Raspberry Pi firmware manages the power-down and reboot process. To do this it installs a pm_power_off handler, causing @@ -124695,10 +123608,10 @@ index be3d81f..a030ae9 100644 2.5.0 -From 7b2216154dfe296734c656cfdb283b680f59c5d8 Mon Sep 17 00:00:00 2001 +From 463afd111279575433b3af7bdbe99470bba74dac Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 10:26:09 +0100 -Subject: [PATCH 077/202] spidev: Add "spidev" compatible string to silence +Subject: [PATCH 077/212] spidev: Add "spidev" compatible string to silence warning See: https://github.com/raspberrypi/linux/issues/1054 @@ -124722,10 +123635,10 @@ index d0e7dfc..57b0760 100644 2.5.0 -From 641ea248f2c0b9c25d5bd7d63fb5069e408cdf33 Mon Sep 17 00:00:00 2001 +From dbf49b74de1fdfb29ebd736bbc7234aed612e765 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 17:00:18 +0100 -Subject: [PATCH 078/202] scripts/dtc: Add overlay support +Subject: [PATCH 078/212] scripts/dtc: Add overlay support --- scripts/dtc/checks.c | 119 ++- @@ -129133,10 +128046,10 @@ index 5b8c7d5..86b7338 100644 2.5.0 -From 07b501bcd398e42152986d17f89e87492a19f184 Mon Sep 17 00:00:00 2001 +From 5f01f9a24681e7695fb2102af1d342fde0b97c2a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 14:32:47 +0100 -Subject: [PATCH 079/202] mfd: Add Raspberry Pi Sense HAT core driver +Subject: [PATCH 079/212] mfd: Add Raspberry Pi Sense HAT core driver --- drivers/input/joystick/Kconfig | 8 + @@ -130005,10 +128918,10 @@ index 0000000..56196dc 2.5.0 -From afc0fe2949f43d4b8364ba857712927d22b817c4 Mon Sep 17 00:00:00 2001 +From 77199aeb92c0c5ce60a151d59793b225864a0ce0 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Mon, 24 Aug 2015 16:03:47 +0100 -Subject: [PATCH 080/202] RaspiDAC3 support +Subject: [PATCH 080/212] RaspiDAC3 support Signed-off-by: Jan Grulich @@ -130259,10 +129172,10 @@ index 0000000..3cabf5b 2.5.0 -From 4e7bd302d0fdbe5082ffb98b65e8a21615139e1b Mon Sep 17 00:00:00 2001 +From cc2397b92c6c93e59cc331ce393bd176180924e0 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Mon, 24 Aug 2015 16:02:34 +0100 -Subject: [PATCH 081/202] tpa6130a2: Add headphone switch control +Subject: [PATCH 081/212] tpa6130a2: Add headphone switch control Signed-off-by: Jan Grulich --- @@ -130356,10 +129269,10 @@ index 11d85c5..3caaa17 100644 2.5.0 -From b81852e06a277d074d650b99c989d94b97032b57 Mon Sep 17 00:00:00 2001 +From 46913983d3c4cb9bea875cd370b860fb256ebfa5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 28 Sep 2015 23:38:59 +0100 -Subject: [PATCH 082/202] irq-bcm2835: Fix building with 2708 +Subject: [PATCH 082/212] irq-bcm2835: Fix building with 2708 --- drivers/irqchip/irq-bcm2835.c | 3 ++- @@ -130390,10 +129303,10 @@ index 20deb28..c02bf8a 100644 2.5.0 -From 03b563cf57afa7f62351c166a8ffa11e21e389dd Mon Sep 17 00:00:00 2001 +From 65ad56a247b8f7dccad07dab71035fddf6395a7c Mon Sep 17 00:00:00 2001 From: P33M Date: Wed, 21 Oct 2015 14:55:21 +0100 -Subject: [PATCH 083/202] rpi_display: add backlight driver and overlay +Subject: [PATCH 083/212] rpi_display: add backlight driver and overlay Add a mailbox-driven backlight controller for the Raspberry Pi DSI touchscreen display. Requires updated GPU firmware to recognise the @@ -130664,10 +129577,10 @@ index 525816d..b011489 100644 2.5.0 -From 655be6ee32fd0b627416423902daa49ee88d4bd5 Mon Sep 17 00:00:00 2001 +From cba1e5bd58f1906f211403a627927e0b264d9c77 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Mon, 16 Nov 2015 14:05:35 +0000 -Subject: [PATCH 084/202] bcm2835-dma: Fix up convert to DMA pool +Subject: [PATCH 084/212] bcm2835-dma: Fix up convert to DMA pool --- drivers/dma/bcm2835-dma.c | 36 ++++++++++++++++++++++++++---------- @@ -130755,10 +129668,10 @@ index 0adc347..985019b 100644 2.5.0 -From 40e2dfcb5df69ac004a74f891f4dd10663b96975 Mon Sep 17 00:00:00 2001 +From 543f475d54bec825bbc0a385ce353fdaae9ccd57 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 11 Nov 2015 11:38:59 +0000 -Subject: [PATCH 085/202] scripts: Multi-platform support for mkknlimg and +Subject: [PATCH 085/212] scripts: Multi-platform support for mkknlimg and knlinfo The firmware uses tags in the kernel trailer to choose which dtb file @@ -131010,10 +129923,10 @@ index 3998d43..005f404 100755 2.5.0 -From f51be11993cac67d260243b9b431ab849f298333 Mon Sep 17 00:00:00 2001 +From 056cc2def7c928c6a98851b1b77cb2dae362d56a Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 2 Mar 2015 13:01:12 -0800 -Subject: [PATCH 086/202] drm/vc4: Add suport for 3D rendering using the V3D +Subject: [PATCH 086/212] drm/vc4: Add suport for 3D rendering using the V3D engine. This is a squash of the out-of-tree development series. Since that @@ -136621,10 +135534,10 @@ index 0000000..499daae 2.5.0 -From 02646ea17c8c1546c6a9f105bc1d3b2436081fbb Mon Sep 17 00:00:00 2001 +From 2a813115480d8c0f081c8c6c0e549109cc0075dc Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 14 Oct 2015 11:32:14 -0700 -Subject: [PATCH 087/202] drm/vc4: Force HDMI to connected. +Subject: [PATCH 087/212] drm/vc4: Force HDMI to connected. For some reason on the downstream tree, the HPD GPIO isn't working. @@ -136650,10 +135563,10 @@ index da9a36d..d15c529 100644 2.5.0 -From 87206eacf724fcc455fd96f708a37add14cfeb6f Mon Sep 17 00:00:00 2001 +From cf791fbae0d308fb1f2186d18397790114a1e649 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 19 Oct 2015 08:23:18 -0700 -Subject: [PATCH 088/202] drm/vc4: bo cache locking fixes. +Subject: [PATCH 088/212] drm/vc4: bo cache locking fixes. Signed-off-by: Eric Anholt --- @@ -136805,10 +135718,10 @@ index 8cc89d1..c079b82 100644 2.5.0 -From 9cee9f05320fd9214241644ffa12e6ae809d45be Mon Sep 17 00:00:00 2001 +From db80c3ad79b1ac13b5f3a7f42ab2156fb555b11e Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 19 Oct 2015 08:29:41 -0700 -Subject: [PATCH 089/202] drm/vc4: bo cache locking cleanup. +Subject: [PATCH 089/212] drm/vc4: bo cache locking cleanup. Signed-off-by: Eric Anholt --- @@ -136903,10 +135816,10 @@ index af0fde6..acd360c 100644 2.5.0 -From 615b4d8b6714f768577c6b0133b3d83b5044fb0d Mon Sep 17 00:00:00 2001 +From 89ebd35d75433420fe36f43bb509fcaf45c8d646 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 19 Oct 2015 08:32:24 -0700 -Subject: [PATCH 090/202] drm/vc4: Use job_lock to protect seqno_cb_list. +Subject: [PATCH 090/212] drm/vc4: Use job_lock to protect seqno_cb_list. We're (mostly) not supposed to be using struct_mutex in drivers these days. @@ -136963,10 +135876,10 @@ index 361390b..b1853b2 100644 2.5.0 -From ecea4dcf1111398101b2bd775148f5997568559c Mon Sep 17 00:00:00 2001 +From 36c69d93940d99aba7de5f185c546f6a52da1e8d Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 19 Oct 2015 08:44:35 -0700 -Subject: [PATCH 091/202] drm/vc4: Drop struct_mutex around CL validation. +Subject: [PATCH 091/212] drm/vc4: Drop struct_mutex around CL validation. We were using it so that we could make sure that shader validation state didn't change while we were validating, but now shader @@ -137032,10 +135945,10 @@ index b1853b2..32f375a 100644 2.5.0 -From 08f1e2935400e320810fe13ea30c8785aa8e0fa4 Mon Sep 17 00:00:00 2001 +From 9f70809d45f431a273e1c51f33d9e058de218e10 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 19 Oct 2015 08:44:35 -0700 -Subject: [PATCH 092/202] drm/vc4: Drop struct_mutex around CL validation. +Subject: [PATCH 092/212] drm/vc4: Drop struct_mutex around CL validation. We were using it so that we could make sure that shader validation state didn't change while we were validating, but now shader @@ -137112,10 +136025,10 @@ index 32f375a..55551ea 100644 2.5.0 -From 0f3ada324bcc856ef5b0b7a6bfc49abed4aec9a7 Mon Sep 17 00:00:00 2001 +From fed19f5e27f3cf921df7d769dab2149a14eef879 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 20 Oct 2015 13:59:15 +0100 -Subject: [PATCH 093/202] drm/vc4: Add support for more display plane formats. +Subject: [PATCH 093/212] drm/vc4: Add support for more display plane formats. Signed-off-by: Eric Anholt --- @@ -137153,10 +136066,10 @@ index 65e5455..0f85eb5 100644 2.5.0 -From 9a0054b9bdc072f3893a5289359e4e0346115755 Mon Sep 17 00:00:00 2001 +From 36ffe6c581f978a23a52303240104d8271841396 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 23 Oct 2015 12:31:56 +0100 -Subject: [PATCH 094/202] drm/vc4: No need to stop the stopped threads. +Subject: [PATCH 094/212] drm/vc4: No need to stop the stopped threads. This was leftover debug code from the hackdriver. We never submit unless the thread is already idle. @@ -137185,10 +136098,10 @@ index 55551ea..eeb0925 100644 2.5.0 -From 28d030c3811a6e22dcb05bea7780efac5cfbe0cb Mon Sep 17 00:00:00 2001 +From 34edb58810f0250eb4ef20c63a3c54d2e10aaf5a Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 23 Oct 2015 12:33:43 +0100 -Subject: [PATCH 095/202] drm/vc4: Remove extra barrier()s aroudn CTnCA/CTnEA +Subject: [PATCH 095/212] drm/vc4: Remove extra barrier()s aroudn CTnCA/CTnEA setup. The writel() that these expand to already does barriers. @@ -137224,10 +136137,10 @@ index eeb0925..0cea723 100644 2.5.0 -From 7ab1ee700c591062f73f07fa7927691005a253f9 Mon Sep 17 00:00:00 2001 +From ffa05b4688ba9471d4f1825047428e73f3226abd Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 23 Oct 2015 14:57:22 +0100 -Subject: [PATCH 096/202] drm/vc4: Fix a typo in a V3D debug register. +Subject: [PATCH 096/212] drm/vc4: Fix a typo in a V3D debug register. Signed-off-by: Eric Anholt --- @@ -137265,10 +136178,10 @@ index b9cb7cf..cf35f58 100644 2.5.0 -From 2af587ae7ee2665dfe7d927f6fc5605afae1d2fe Mon Sep 17 00:00:00 2001 +From 0d927d46afb62aa0e68627362dae3d9e1849b214 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 2 Nov 2015 17:07:33 +0000 -Subject: [PATCH 097/202] drm/vc4: Enable VC4 modules, and increase CMA size +Subject: [PATCH 097/212] drm/vc4: Enable VC4 modules, and increase CMA size with overlay If using the overlay, be careful not to boot to GUI or run startx, @@ -137431,10 +136344,10 @@ index 146add9..d6aa058 100644 2.5.0 -From f17051a726412f09431be05b2397d48562f71e0d Mon Sep 17 00:00:00 2001 +From 63af9035dbaaceed5f1d63107bc7f7b31d425c6d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Nov 2015 18:29:58 +0000 -Subject: [PATCH 098/202] squash: fixups +Subject: [PATCH 098/212] squash: fixups --- drivers/gpu/drm/vc4/Kconfig | 2 +- @@ -137484,10 +136397,10 @@ index c83287a..2082713 100644 2.5.0 -From 7f665bb6c785114b5fb46ed49016f149678b525a Mon Sep 17 00:00:00 2001 +From 011e5c58f30ad2f3510f88a65da2356a93f09818 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Nov 2015 20:26:03 +0000 -Subject: [PATCH 099/202] squash: add missing vc4-kms-v3d-overlay.dtb to +Subject: [PATCH 099/212] squash: add missing vc4-kms-v3d-overlay.dtb to makefile --- @@ -137510,10 +136423,10 @@ index fb7ac49..fc09bfb 100644 2.5.0 -From e813bb1c026d2c59752049734d28f8c6755dcfb7 Mon Sep 17 00:00:00 2001 +From da11a97037709e598c7a8b769290a2b5ef5b45d9 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 12 Oct 2015 11:23:34 -0700 -Subject: [PATCH 100/202] clk: bcm2835: Also build the driver for downstream +Subject: [PATCH 100/212] clk: bcm2835: Also build the driver for downstream kernels. Signed-off-by: Eric Anholt @@ -137538,10 +136451,10 @@ index 3fc9506..a1b4cbc 100644 2.5.0 -From f341dbd4b04fd06e945139ab0dc95140ac1ad71e Mon Sep 17 00:00:00 2001 +From 7414a68fb326de9e255ad834337181a49a0b1451 Mon Sep 17 00:00:00 2001 From: Holger Steinhaus Date: Sat, 14 Nov 2015 18:37:43 +0100 -Subject: [PATCH 101/202] dts: Added overlay for gpio_ir_recv driver +Subject: [PATCH 101/212] dts: Added overlay for gpio_ir_recv driver --- arch/arm/boot/dts/overlays/Makefile | 1 + @@ -137653,10 +136566,10 @@ index 0000000..a2d6bc7 2.5.0 -From 273eda7351c9a46b426ae21b73528abf957c57f6 Mon Sep 17 00:00:00 2001 +From 7ee4b08baeeed3173d07236ffaa28028fc9f2f28 Mon Sep 17 00:00:00 2001 From: Alistair Buxton Date: Sun, 1 Nov 2015 22:27:56 +0000 -Subject: [PATCH 102/202] Build i2c_gpio module and add a device tree overlay +Subject: [PATCH 102/212] Build i2c_gpio module and add a device tree overlay to configure it. --- @@ -137768,10 +136681,10 @@ index d6aa058..51dc019 100644 2.5.0 -From 296e46b6d380eb6cd4bfecc379517a62b635eca8 Mon Sep 17 00:00:00 2001 +From 7ab460fb0d3ed6b0c396a50cf4f02e38c0c47a89 Mon Sep 17 00:00:00 2001 From: mwilliams03 Date: Sun, 18 Oct 2015 17:07:24 -0700 -Subject: [PATCH 103/202] New overlay for PiScreen2r +Subject: [PATCH 103/212] New overlay for PiScreen2r --- arch/arm/boot/dts/overlays/Makefile | 1 + @@ -137927,10 +136840,10 @@ index 0000000..7c018e0 2.5.0 -From d76eb4efe98b70eb0047d57eb9ec9d6e9dd95607 Mon Sep 17 00:00:00 2001 +From 34aa337eb59b8aefb9d02080f2e9cbdf497652c1 Mon Sep 17 00:00:00 2001 From: Ondrej Wisniewski Date: Fri, 6 Nov 2015 15:01:28 +0100 -Subject: [PATCH 104/202] dts: Added overlay for Adafruit PiTFT 2.8" capacitive +Subject: [PATCH 104/212] dts: Added overlay for Adafruit PiTFT 2.8" capacitive touch screen --- @@ -138083,10 +136996,10 @@ index 0000000..48920e9 2.5.0 -From a283c76b87524c66dc56a0f975841daa0c99a7ea Mon Sep 17 00:00:00 2001 +From 5c184dc77f6902787f498878c9675fd968ecc09e Mon Sep 17 00:00:00 2001 From: Stuart MacLean Date: Fri, 2 Oct 2015 15:12:59 +0100 -Subject: [PATCH 105/202] Add support for the HiFiBerry DAC+ Pro. +Subject: [PATCH 105/212] Add support for the HiFiBerry DAC+ Pro. The HiFiBerry DAC+ and DAC+ Pro products both use the existing bcm sound driver with the DAC+ Pro having a special clock device driver representing the two high precision oscillators. @@ -138637,10 +137550,10 @@ index 047c489..090fe0e 100644 2.5.0 -From 220fe094e0b8e4a9f2d783d204d6c54b4132c406 Mon Sep 17 00:00:00 2001 +From 0c2baf70040e2b5584ada2b0ba2a3604f16e3fdd Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 5 Oct 2015 10:47:45 +0100 -Subject: [PATCH 106/202] BCM270X_DT: Add at86rf233 overlay +Subject: [PATCH 106/212] BCM270X_DT: Add at86rf233 overlay Add an overlay to support the Atmel AT86RF233 WPAN transceiver on spi0.0. @@ -138778,10 +137691,10 @@ index 0000000..0460269 2.5.0 -From c32bcfcff996839e7d7b6996922aff643ae0535f Mon Sep 17 00:00:00 2001 +From f47e2fc8f4302c4ee94b128b219001e9ae911948 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 18 Dec 2014 16:07:15 -0800 -Subject: [PATCH 107/202] mm: Remove the PFN busy warning +Subject: [PATCH 107/212] mm: Remove the PFN busy warning See commit dae803e165a11bc88ca8dbc07a11077caf97bbcb -- the warning is expected sometimes when using CMA. However, that commit still spams @@ -138809,10 +137722,10 @@ index 9d666df..b682acc 100644 2.5.0 -From 0919a2fb041c5e3813596db3cde8a90daeb362fe Mon Sep 17 00:00:00 2001 +From 9c0106493da20fe3181733ac0fe6d2d5a1fdd920 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 19 Nov 2014 12:06:38 -0800 -Subject: [PATCH 108/202] drm: Put an optional field in the driver struct for +Subject: [PATCH 108/212] drm: Put an optional field in the driver struct for GEM obj struct size. This allows a driver to derive from the CMA object without copying all @@ -138857,10 +137770,10 @@ index 0a271ca..54f5469 100644 2.5.0 -From 8cfb1a1a94f936da77811ae9513b88895f03a96c Mon Sep 17 00:00:00 2001 +From 65a65dd777707a226c59a3492663154c28e756f1 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 30 Oct 2015 10:09:02 -0700 -Subject: [PATCH 109/202] drm/vc4: Add an interface for capturing the GPU state +Subject: [PATCH 109/212] drm/vc4: Add an interface for capturing the GPU state after a hang. This can be parsed with vc4-gpu-tools tools for trying to figure out @@ -139204,10 +138117,10 @@ index 499daae..4a8d19f 100644 2.5.0 -From b1e6f362a464e17cfc83b8dfff90872a682cbaeb Mon Sep 17 00:00:00 2001 +From f775356d50749c9d9aa85715f73947622bb3b87d Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 4 Dec 2015 11:35:34 -0800 -Subject: [PATCH 110/202] drm/vc4: Update a bunch of code to match upstream +Subject: [PATCH 110/212] drm/vc4: Update a bunch of code to match upstream submission. This gets almost everything matching, except for the MSAA support and @@ -141130,10 +140043,10 @@ index 54f5469..987c25a 100644 2.5.0 -From f92448b5a6efc36f75c530920f64cf466e36b29b Mon Sep 17 00:00:00 2001 +From 4124ae18d51739d55e3074c8cdaa683f88bb57d7 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 11 Dec 2015 19:45:03 -0800 -Subject: [PATCH 111/202] drm: Use the driver's gem_object_free function from +Subject: [PATCH 111/212] drm: Use the driver's gem_object_free function from CMA helpers. VC4 wraps the CMA objects in its own structures, so it needs to do its @@ -141197,10 +140110,10 @@ index 0f7b00b..e5df53b 100644 2.5.0 -From 5ca52418d4bededfe378b832767be8008f44b08d Mon Sep 17 00:00:00 2001 +From 558f0e9dd21472a7aa6c58905fd22bd5004c6bdc Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 17 Jul 2015 13:15:50 -0700 -Subject: [PATCH 112/202] drm/vc4: Add support for MSAA rendering. +Subject: [PATCH 112/212] drm/vc4: Add support for MSAA rendering. For MSAA, you set a bit in the binner that halves the size of tiles in each direction, so you can pack 4 samples per pixel in the tile @@ -141727,10 +140640,10 @@ index 4a8d19f..49cd992 100644 2.5.0 -From 9597fef5c8255fec92ae6d275df828b754aa6170 Mon Sep 17 00:00:00 2001 +From 45a2f6d868c6e3240a7e3fffc033c67ba80caa7d Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 8 Dec 2015 14:00:43 -0800 -Subject: [PATCH 113/202] drm/vc4: A few more non-functional changes to sync to +Subject: [PATCH 113/212] drm/vc4: A few more non-functional changes to sync to upstream. At this point all that's left is the force-enable of HDMI connector, @@ -142077,10 +140990,10 @@ index 49cd992..eeb37e3 100644 2.5.0 -From 8e24c74075b585b624124e39366fd47a39c71a2d Mon Sep 17 00:00:00 2001 +From 90a59a430589d9e6cd6f81e670bb59281e6e5607 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 15 Dec 2015 23:46:32 +0000 -Subject: [PATCH 114/202] drm/vc4: Use "hpd-gpios" for HDMI GPIO, like what +Subject: [PATCH 114/212] drm/vc4: Use "hpd-gpios" for HDMI GPIO, like what landed upstream. Signed-off-by: Eric Anholt @@ -142105,10 +141018,10 @@ index cf5d5c9..da37483 100644 2.5.0 -From d0298deaf8398f11edd796648a10e7ca69379d2c Mon Sep 17 00:00:00 2001 +From a2c8c4439951f905abeea055cddf6f3077f96035 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 7 Dec 2015 12:35:01 -0800 -Subject: [PATCH 115/202] drm/vc4: Synchronize validation code for v2 +Subject: [PATCH 115/212] drm/vc4: Synchronize validation code for v2 submission upstream. Signed-off-by: Eric Anholt @@ -142728,10 +141641,10 @@ index 2f22f19..0fb5b99 100644 2.5.0 -From 974524c4140d04038441cdbff9dffb0782f40a05 Mon Sep 17 00:00:00 2001 +From afb5127383dd765c242485c0c37f0c21527dbfaf Mon Sep 17 00:00:00 2001 From: janluca Date: Sun, 27 Dec 2015 14:34:04 +0100 -Subject: [PATCH 116/202] MMC: Do not use mmc_debug if CONFIG_MMC_BCM2835 is +Subject: [PATCH 116/212] MMC: Do not use mmc_debug if CONFIG_MMC_BCM2835 is not set If CONFIG_MMC_BCM2835 was not set the compiling of the kernel failed @@ -142771,10 +141684,10 @@ index 87ae2e9..b79fe14 100644 2.5.0 -From 487fad313351d76a0a3c0c5bba4bd427050bc56d Mon Sep 17 00:00:00 2001 +From c5107c1a576bb26003c4369d95d7ef60249a60cf Mon Sep 17 00:00:00 2001 From: Devon Fyson Date: Wed, 30 Dec 2015 16:40:47 -0500 -Subject: [PATCH 117/202] Extend clock timeout, fix modprobe baudrate +Subject: [PATCH 117/212] Extend clock timeout, fix modprobe baudrate parameter. Set the BSC_CLKT clock streching timeout to 35ms as per SMBus specs.\n- Increase priority of baudrate parameter passed to modprobe (in /etc/modprobe.d/*.conf or command line). Currently custom baudrates don't work because they are overridden by clock-frequency in the platform_device passed to the function. @@ -142885,10 +141798,10 @@ index 85f411c..b152639 100644 2.5.0 -From c66ac8683cc53f8aac24bea6a2720469b50069bd Mon Sep 17 00:00:00 2001 +From fd4c982472e595a262ea849b97084c6115cda9b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Thu, 31 Dec 2015 16:44:58 +0100 -Subject: [PATCH 118/202] bcm270x_dt: Add dwc2 and dwc-otg overlays +Subject: [PATCH 118/212] bcm270x_dt: Add dwc2 and dwc-otg overlays --- arch/arm/boot/dts/overlays/Makefile | 2 ++ @@ -143009,10 +141922,10 @@ index 0000000..90c9811 2.5.0 -From 2cb19a8364ae9dd33061c4c279361271f89dcc10 Mon Sep 17 00:00:00 2001 +From ed645c6641fba36237a97d65a883777be63df916 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 4 Jan 2016 14:42:17 +0000 -Subject: [PATCH 119/202] BCM270X_DT: Add the sdtweak overlay, for tuning +Subject: [PATCH 119/212] BCM270X_DT: Add the sdtweak overlay, for tuning sdhost The sdhost overlay declares the sdhost interface and allows parameters @@ -143094,10 +142007,10 @@ index 0000000..74c168d 2.5.0 -From e3382f8f0b18f8e1ea9d5c40efd3539a0d165794 Mon Sep 17 00:00:00 2001 +From 3acef3b02e2c93056fb1097e7d50ae038a69fac9 Mon Sep 17 00:00:00 2001 From: Andrew Litt Date: Mon, 11 Jan 2016 07:54:21 +0000 -Subject: [PATCH 120/202] bcm2835-mmc: Don't override bus width capabilities +Subject: [PATCH 120/212] bcm2835-mmc: Don't override bus width capabilities from devicetree Take out the force setting of the MMC_CAP_4_BIT_DATA host capability @@ -143124,10 +142037,10 @@ index 43aed6e..104f93e 100644 2.5.0 -From a11bf3332c06b3fbc179463e420eb3ec45a660ec Mon Sep 17 00:00:00 2001 +From 91f811cbf707c53384de0084455e2f9d60b084f1 Mon Sep 17 00:00:00 2001 From: Andrew Litt Date: Mon, 11 Jan 2016 07:55:54 +0000 -Subject: [PATCH 121/202] SDIO-overlay: add bus_width parameter +Subject: [PATCH 121/212] SDIO-overlay: add bus_width parameter Allow setting of the SDIO bus width capability of the bcm2835-mmc host. This is helpful when only a 1 bit wide bus is connected @@ -143174,10 +142087,10 @@ index afc8742..7935e7a 100644 2.5.0 -From 0a46a058444e051b7c89a6ff2e35e2218a2868cc Mon Sep 17 00:00:00 2001 +From a012473e3bb7f7e075b655de7bb32b47a0adc127 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:41:45 +0100 -Subject: [PATCH 122/202] bcm2835: extend allowed range of channels and +Subject: [PATCH 122/212] bcm2835: extend allowed range of channels and samplerates Allow everything the videocore accepts. @@ -143217,10 +142130,10 @@ index 8c86375..31e3131 100755 2.5.0 -From 873bcc0cb360320a96529bea66f803935f03dbb7 Mon Sep 17 00:00:00 2001 +From a09d3d4ae3cf7bf71876125e8971122ee19ed49e Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:42:18 +0100 -Subject: [PATCH 123/202] bcm2835: restrict channels*rate to 8*960000 +Subject: [PATCH 123/212] bcm2835: restrict channels*rate to 8*960000 This is required at least for SPDIF. If the bitrate goes above, videocore will either resample the audio or corrupt it due to @@ -143303,10 +142216,10 @@ index 31e3131..b17ed32 100755 2.5.0 -From 6a87797ccd34fb3b820e25c57f074322c8b3b8ad Mon Sep 17 00:00:00 2001 +From 078830307a9c15381bf15efc16ea06ece73aa289 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:42:48 +0100 -Subject: [PATCH 124/202] rpi: update vc_vchi_audioserv_defs.h +Subject: [PATCH 124/212] rpi: update vc_vchi_audioserv_defs.h Add audioserv 3 extensions. The changes were taken from the paste linked here: @@ -143375,10 +142288,10 @@ index af3e6eb..5f4409f 100644 2.5.0 -From 783d6951c3e03540b4dd1d4c023ec470e605db59 Mon Sep 17 00:00:00 2001 +From df7e0fcfc9c38f0de7da12c279be70c270c9d59c Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:43:12 +0100 -Subject: [PATCH 125/202] bcm2835: implement channel map API +Subject: [PATCH 125/212] bcm2835: implement channel map API Report all layouts supported by the HDMI protocol to userspace. Make the videocore set the correct layout according to the @@ -143808,10 +142721,10 @@ index 0f71c5d..997fb69 100755 2.5.0 -From 29c755de5dad00e61f8e4273091bb4ea116f44d1 Mon Sep 17 00:00:00 2001 +From ff6e9741269962792a0088f07b8607eec4d50aad Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:43:35 +0100 -Subject: [PATCH 126/202] bcm2835: access controls under the audio mutex +Subject: [PATCH 126/212] bcm2835: access controls under the audio mutex I don't think the ALSA framework provides any kind of automatic synchronization within the control callbacks. We most likely need @@ -144053,10 +142966,10 @@ index 1067460..48da3bb 100755 2.5.0 -From 10cf210dfdceadb70e710d5b31242b2d9d4da57b Mon Sep 17 00:00:00 2001 +From 80028c7c862f81d645d55e5ec86ce76d4d430dfe Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:44:03 +0100 -Subject: [PATCH 127/202] bcm2835: always use 2/4/8 channels for multichannel +Subject: [PATCH 127/212] bcm2835: always use 2/4/8 channels for multichannel layouts Pad the unused channels with NA. This means userspace needs to write @@ -144198,10 +143111,10 @@ index 5b8e6bd2..dec052b 100755 2.5.0 -From dab0f1d3c0949e409e790db9d40114c7cdb43bca Mon Sep 17 00:00:00 2001 +From 3a99b76e72196621895b660c1ea3956001d142a8 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:44:24 +0100 -Subject: [PATCH 128/202] bcm2835: only allow stereo if analogue jack is +Subject: [PATCH 128/212] bcm2835: only allow stereo if analogue jack is selected Sending more than 2 channels to videocore while outputting to analogue @@ -144266,10 +143179,10 @@ index dec052b..e930718 100755 2.5.0 -From 6728179c7b8ae8c8051f37318363aac77f4f3dc3 Mon Sep 17 00:00:00 2001 +From 6ef4a201d74800ab3c3b7872388ffb46dc8ddd4b Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:44:47 +0100 -Subject: [PATCH 129/202] bcm2835: interpolate audio delay +Subject: [PATCH 129/212] bcm2835: interpolate audio delay It appears the GPU only sends us a message all 10ms to update the playback progress. Other than this, the playback position @@ -144364,10 +143277,10 @@ index 997fb69..20ef108 100755 2.5.0 -From e53f3d34c2b0a7eb9b0870d6c537b80d6dad87b8 Mon Sep 17 00:00:00 2001 +From 2e8ff846aafe99f7ba4adb548d6d544bfecd8b62 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 19 Jan 2016 17:16:38 +0000 -Subject: [PATCH 130/202] bcm2835-sdhost: Add workaround for odd behaviour on +Subject: [PATCH 130/212] bcm2835-sdhost: Add workaround for odd behaviour on some cards For reasons not understood, the sdhost driver fails when reading @@ -144507,10 +143420,10 @@ index da089985..309633c 100644 2.5.0 -From 3e6b6b963edde53c9dfb819f43ae76757cd408a5 Mon Sep 17 00:00:00 2001 +From f67d16104899ead42512ad6353dc0cf2b84e10d5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 22 Jan 2016 16:03:24 +0000 -Subject: [PATCH 131/202] bcm2835-sdhost: Add debug_flags dtparam +Subject: [PATCH 131/212] bcm2835-sdhost: Add debug_flags dtparam Bit zero disables the single-read-sectors map: @@ -144637,10 +143550,10 @@ index 309633c..ef9b1e6 100644 2.5.0 -From c0e077f8c0f5f5e6b1c061623170dd0da3bf5ccb Mon Sep 17 00:00:00 2001 +From 5e61b24ec5c5aab7342f7c319d297c66eb369c0a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 25 Jan 2016 09:12:06 +0000 -Subject: [PATCH 132/202] BCM270X_DT: Add sdio_overclock parameter to sdio +Subject: [PATCH 132/212] BCM270X_DT: Add sdio_overclock parameter to sdio overlay The sdio_overclock parameter is like the overclock_50 parameter, i.e. @@ -144714,10 +143627,10 @@ index 7935e7a..398bd81 100644 2.5.0 -From f2d3f04444eebfa5fae7e251839c1adf1f5d9d1c Mon Sep 17 00:00:00 2001 +From 8c403ccd42234846cf57496b32948b9af14f06d1 Mon Sep 17 00:00:00 2001 From: Michael Lange Date: Thu, 21 Jan 2016 18:10:16 +0100 -Subject: [PATCH 133/202] rtc: ds1307: add support for the DT property +Subject: [PATCH 133/212] rtc: ds1307: add support for the DT property 'wakeup-source' For RTC chips with no IRQ directly connected to the SoC, the RTC chip @@ -144814,10 +143727,10 @@ index 1cb13fee..28ca4bf 100644 2.5.0 -From 5b7c9cf38ada4cb21b098a6818d2c4982179096e Mon Sep 17 00:00:00 2001 +From e5b28cae15b25c2ab427cbde47d462547c4b004b Mon Sep 17 00:00:00 2001 From: vitalogy Date: Tue, 19 Jan 2016 07:02:02 +0100 -Subject: [PATCH 134/202] dt-overlay: add wittypi-overlay.dts +Subject: [PATCH 134/212] dt-overlay: add wittypi-overlay.dts --- arch/arm/boot/dts/overlays/wittypi-overlay.dts | 44 ++++++++++++++++++++++++++ @@ -144878,10 +143791,10 @@ index 0000000..be5987d 2.5.0 -From 36b271ee29d60ec2e74cbb69746463aa01328318 Mon Sep 17 00:00:00 2001 +From aba5d4af2234386f97b9fb79e015c7557c6ab899 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 19 Jan 2016 16:28:05 +0000 -Subject: [PATCH 135/202] FIXUP i2c_bcm2708: Don't change module baudrate +Subject: [PATCH 135/212] FIXUP i2c_bcm2708: Don't change module baudrate parameter Overwriting the baudrate module parameter creates an apparent @@ -144983,10 +143896,10 @@ index b152639..c9b8e5c 100644 2.5.0 -From 68b2dd06f3f6a5b221031816606cf7751c1a09b1 Mon Sep 17 00:00:00 2001 +From 11ad0c1a8fcfe6de7b6b33dd66709ba82b63cce9 Mon Sep 17 00:00:00 2001 From: Digital Dreamtime Date: Thu, 4 Feb 2016 14:14:44 +0000 -Subject: [PATCH 136/202] Allow up to 24dB digital gain to be applied when +Subject: [PATCH 136/212] Allow up to 24dB digital gain to be applied when using IQAudIO DAC+ 24db_digital_gain DT param can be used to specify that PCM512x @@ -145092,10 +144005,10 @@ index 37038d4..124d7a9 100644 2.5.0 -From 5858366b26774d89d5abd25feddbc8bf3f5fec06 Mon Sep 17 00:00:00 2001 +From 08248da930abc0946b75fcb46b76dc7522b47c69 Mon Sep 17 00:00:00 2001 From: Digital Dreamtime Date: Thu, 4 Feb 2016 20:04:00 +0000 -Subject: [PATCH 137/202] Limit PCM512x "Digital" gain to 0dB by default with +Subject: [PATCH 137/212] Limit PCM512x "Digital" gain to 0dB by default with HiFiBerry DAC+ 24db_digital_gain DT param can be used to specify that PCM512x @@ -145200,10 +144113,10 @@ index a6b651c..153dbcd 100644 2.5.0 -From 9685a03cd17b6e0fdfa92bd161101d4cd24fcd32 Mon Sep 17 00:00:00 2001 +From cb87abec84007f53e1ff4c86c1fddd07b07ead8d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 8 Feb 2016 09:46:33 +0000 -Subject: [PATCH 138/202] BCM270X_DT: Adjust overlay README formatting +Subject: [PATCH 138/212] BCM270X_DT: Adjust overlay README formatting --- arch/arm/boot/dts/overlays/README | 414 +++++++++++++++++++------------------- @@ -145935,10 +144848,10 @@ index 296184f..f987565 100644 2.5.0 -From 1499860c7ba1a1629d8232e85261ecdf0837ef06 Mon Sep 17 00:00:00 2001 +From 415be23999f27b9d2095f5c3b118887589da7b9c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 9 Feb 2016 09:52:13 +0000 -Subject: [PATCH 139/202] pinctrl-bcm2835: Fix cut-and-paste error in "pull" +Subject: [PATCH 139/212] pinctrl-bcm2835: Fix cut-and-paste error in "pull" parsing The DT bindings for pinctrl-bcm2835 allow both the function and pull @@ -145966,10 +144879,10 @@ index 640e3b0..32f779e 100644 2.5.0 -From d09afbbb59e8894b6bfa1ea2d4df5e60f6783aed Mon Sep 17 00:00:00 2001 +From 24f55761e0dc84d32e244587a535b32ea7d2ef19 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 11 Feb 2016 16:51:01 +0000 -Subject: [PATCH 140/202] bcm2835-sdhost: Major revision +Subject: [PATCH 140/212] bcm2835-sdhost: Major revision This is a significant revision of the bcm2835-sdhost driver. It improves on the original in a number of ways: @@ -148041,10 +146954,10 @@ index ef9b1e6..262180b 100644 2.5.0 -From 54f9951624f2826f7a82fec141f0f45b4802abd6 Mon Sep 17 00:00:00 2001 +From b7326af0e71cfcbde46bb22a295bef9606ca6f13 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 12 Feb 2016 15:38:00 +0000 -Subject: [PATCH 141/202] BCM270X_DT: Add dtparams for the SD interface +Subject: [PATCH 141/212] BCM270X_DT: Add dtparams for the SD interface Add new base dtparams sd_overclock, sd_force_pio, sd_pio_limit and sd_debug. @@ -148300,10 +147213,10 @@ index b0b208c..e4a4677 100644 2.5.0 -From b6234c897994f12ff02cf0f20cc7b32c4e0c7813 Mon Sep 17 00:00:00 2001 +From e4e7ecb342e186a35cefd2e515ded768263ba41c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 12 Feb 2016 14:50:25 +0000 -Subject: [PATCH 142/202] dcw_otg: trim xfer length when buffer larger than +Subject: [PATCH 142/212] dcw_otg: trim xfer length when buffer larger than allocated size is received --- @@ -148343,10 +147256,10 @@ index 8db3dfc..d672a76 100644 2.5.0 -From ce5440f195ba5d3c6275d0239329fe39bbe655e2 Mon Sep 17 00:00:00 2001 +From e95065aaae7ce07c033d2a6f2f0c1d70aef2e126 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 15 Feb 2016 10:00:27 +0000 -Subject: [PATCH 143/202] bcm2835-sdhost: Restore ATOMIC flag to PIO sg mapping +Subject: [PATCH 143/212] bcm2835-sdhost: Restore ATOMIC flag to PIO sg mapping Allocation problems have been seen in a wireless driver, and this is the only change which might have been responsible. @@ -148381,10 +147294,10 @@ index 262180b..d66385c 100644 2.5.0 -From 9dc27a6d0ff5dac62cecdddec3c33494557f4dfd Mon Sep 17 00:00:00 2001 +From 0ad399d93387ff3b50f1f3ee2891f9bafd5adfa0 Mon Sep 17 00:00:00 2001 From: Craig Roberts Date: Tue, 16 Feb 2016 10:03:42 +0000 -Subject: [PATCH 144/202] Updated smsc95xx driver to check for a valid MAC +Subject: [PATCH 144/212] Updated smsc95xx driver to check for a valid MAC address in eeprom before using smsc95xx.macaddr parameter passed on command line. @@ -148427,10 +147340,10 @@ index 3244a90..7483222 100755 2.5.0 -From 71c05e7cae7b0fc2352002375f20cf2d1fa0af8c Mon Sep 17 00:00:00 2001 +From b5ef1237577219944bc9594e7860e06c7d1d4307 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Feb 2016 19:02:31 +0000 -Subject: [PATCH 145/202] dcw_otg: Make trimming messages less noisy +Subject: [PATCH 145/212] dcw_otg: Make trimming messages less noisy --- drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 6 ++++-- @@ -148464,10 +147377,10 @@ index d672a76..e6b38ac 100644 2.5.0 -From 8abd7b26d66589f2221ecc3b1d18489118ecc399 Mon Sep 17 00:00:00 2001 +From aaa26a79a5887736a946f9f959adce468fecd1cf Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 18 Feb 2016 15:28:14 +0000 -Subject: [PATCH 146/202] BCM270X_DT: at86rf233 overlay - drop to 3MHz +Subject: [PATCH 146/212] BCM270X_DT: at86rf233 overlay - drop to 3MHz The consensus is that 6MHz is too fast, but that 3MHz is OK. @@ -148508,10 +147421,10 @@ index 0460269..eab4052 100644 2.5.0 -From 58421243022b65d9c3b137fdbffc700650b511d1 Mon Sep 17 00:00:00 2001 +From 374767b7cbade15fbfa8e15bdc770127d5590b25 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 19 Feb 2016 12:04:48 +0000 -Subject: [PATCH 147/202] bcm2835-sdhost: Downgrade log message status +Subject: [PATCH 147/212] bcm2835-sdhost: Downgrade log message status --- drivers/mmc/host/bcm2835-sdhost.c | 4 ++-- @@ -148536,10 +147449,10 @@ index d66385c..4f6cab5 100644 2.5.0 -From 2b98fe79fc81819373bb568de316c0fb62c5c8a3 Mon Sep 17 00:00:00 2001 +From 8c32ef025a5e8946dd33da5028b812a667eee823 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 15 Jan 2016 16:48:27 +0000 -Subject: [PATCH 148/202] config: Enable HCI over UARTs +Subject: [PATCH 148/212] config: Enable HCI over UARTs --- arch/arm/configs/bcm2709_defconfig | 3 +++ @@ -148577,10 +147490,10 @@ index 51dc019..4368f0d 100644 2.5.0 -From b1181d79adc4ed58bbf7d5480f55d4078639a8d0 Mon Sep 17 00:00:00 2001 +From f2f74adffe62e1ae486ca4830a6340e65d5324fb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Dec 2015 13:37:07 +0000 -Subject: [PATCH 149/202] hci_h5: Don't send conf_req when ACTIVE +Subject: [PATCH 149/212] hci_h5: Don't send conf_req when ACTIVE Without this patch, a modem and kernel can continuously bombard each other with conf_req and conf_rsp messages, in a demented game of tag. @@ -148606,10 +147519,10 @@ index abee221..2825833 100644 2.5.0 -From bffef6ff226a796b94d5c5988d679e44c21dedcc Mon Sep 17 00:00:00 2001 +From c7944a877f516a6974059711820093dc5a4052bf Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Feb 2016 17:26:48 +0000 -Subject: [PATCH 150/202] amba_pl011: Don't use DT aliases for numbering +Subject: [PATCH 150/212] amba_pl011: Don't use DT aliases for numbering The pl011 driver looks for DT aliases of the form "serial", and if found uses as the device ID. This can cause @@ -148641,10 +147554,10 @@ index 899a771..68b3353 100644 2.5.0 -From 77d28ae443addf8e7bd25a313970fa37363faa48 Mon Sep 17 00:00:00 2001 +From f77097a5484b7f2b3e74a426646ef50957224a39 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 15 Dec 2015 15:35:57 -0800 -Subject: [PATCH 151/202] clk: bcm2835: Add bindings for the auxiliary +Subject: [PATCH 151/212] clk: bcm2835: Add bindings for the auxiliary peripheral clock gates. These will be used for enabling UART1, SPI1, and SPI2. @@ -148723,10 +147636,10 @@ index 0000000..d91156e 2.5.0 -From ecc35a6b134a6c2bef82e39bb03239ed2d598095 Mon Sep 17 00:00:00 2001 +From 80fb61da72241cde200e07c044e8c86ed5b45bc1 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 15 Dec 2015 15:35:58 -0800 -Subject: [PATCH 152/202] clk: bcm2835: Add a driver for the auxiliary +Subject: [PATCH 152/212] clk: bcm2835: Add a driver for the auxiliary peripheral clock gates. There are a pair of SPI masters and a mini UART that were last minute @@ -148850,10 +147763,10 @@ index 0000000..e4f89e2 2.5.0 -From 7743e2c05a1eed5ca7a49b24e8b0b270a7a9682e Mon Sep 17 00:00:00 2001 +From 9c1a31196fa5ffc0ddbf7af89f0b87ecf54b517f Mon Sep 17 00:00:00 2001 From: Fraser Date: Tue, 23 Feb 2016 10:04:37 +1100 -Subject: [PATCH 153/202] Aux SPI 1&2 implementation +Subject: [PATCH 153/212] Aux SPI 1&2 implementation Adds aux spi 1 & 2 devices to compatible raspberry PIs. * Minor config of the driver build environment to ensure they get built @@ -149586,10 +148499,10 @@ index e842e86..c9d1558 100644 2.5.0 -From e88b57e4b6de74b7e39754f8e481301a41673a58 Mon Sep 17 00:00:00 2001 +From a98503ac7da42217919f0d5c2efcfa7473cf6d75 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Tue, 23 Feb 2016 17:28:23 +0100 -Subject: [PATCH 154/202] ASoC: bcm: add missing .owner fields in sound card +Subject: [PATCH 154/212] ASoC: bcm: add missing .owner fields in sound card drivers If snd_soc_card.owner is not set the kernel won't do usage refcounting @@ -149714,10 +148627,10 @@ index c6e45a0..9db678e 100644 2.5.0 -From 8564b947293a16ad0531186384f0ea3e1fe2915b Mon Sep 17 00:00:00 2001 +From d32fc7cbb16dd0a8d44cda715688c030fbed20ce Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 20 Jan 2016 17:50:09 +0000 -Subject: [PATCH 155/202] smsx95xx: Add option to disable the crimes against +Subject: [PATCH 155/212] smsx95xx: Add option to disable the crimes against truesize fix It may improve iperf numbers on Pi 1, but may generate dmesg warnings and possibly cause network issues @@ -149766,10 +148679,10 @@ index 7483222..a61bd08 2.5.0 -From b81b339f5b87a0bafaaae0593dba356ce3545690 Mon Sep 17 00:00:00 2001 +From a3747dd75561206cbfb7ff536ceac9bd23df982f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 23 Feb 2016 19:56:04 +0000 -Subject: [PATCH 156/202] bcm2835-virtgpio: Virtual GPIO driver +Subject: [PATCH 156/212] bcm2835-virtgpio: Virtual GPIO driver Add a virtual GPIO driver that uses the firmware mailbox interface to request that the VPU toggles LEDs. @@ -150025,10 +148938,10 @@ index b011489..c844968 100644 2.5.0 -From 363ecceee7b220ff16868384f9cec31b919b80c5 Mon Sep 17 00:00:00 2001 +From 3992e10e19e4fdee00b1ae74f5fc74594f83a744 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 21 Jan 2016 17:57:49 +0000 -Subject: [PATCH 157/202] BCM270X_DT: Add Pi3 support +Subject: [PATCH 157/212] BCM270X_DT: Add Pi3 support --- arch/arm/boot/dts/Makefile | 1 + @@ -150360,10 +149273,10 @@ index 0000000..1a48686 2.5.0 -From 6848438a152616770d4818be867dde95317f4766 Mon Sep 17 00:00:00 2001 +From 0c58748a6303f42568c49c6971729df36827b76d Mon Sep 17 00:00:00 2001 From: Dave Stevenson <6by9@users.noreply.github.com> Date: Mon, 8 Feb 2016 23:49:41 +0000 -Subject: [PATCH 158/202] DT: Add overlays to configure I2C pins +Subject: [PATCH 158/212] DT: Add overlays to configure I2C pins Lifted from https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=120938&p=825883 @@ -150508,10 +149421,10 @@ index 0000000..e303b9c 2.5.0 -From 9719a89d2010e0d61ea7aa395993a7a69636dd75 Mon Sep 17 00:00:00 2001 +From 4068e875bf7cb8498635d72166557d227d7243a3 Mon Sep 17 00:00:00 2001 From: Dhiraj Goel Date: Thu, 3 Mar 2016 21:10:50 -0800 -Subject: [PATCH 159/202] bcm2835-camera: fix a bug in computation of frame +Subject: [PATCH 159/212] bcm2835-camera: fix a bug in computation of frame timestamp Fixes #1318 @@ -150537,10 +149450,10 @@ index e83334c..98a892e 100644 2.5.0 -From 952a86548ec554416c07c48fd074c8a0b2bc7116 Mon Sep 17 00:00:00 2001 +From 4adfed725c209453a215ba42d24fc4b8cfb3a401 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 2 Mar 2016 10:59:05 +0000 -Subject: [PATCH 160/202] BCM270X_DT: Add pi3-disable-bt overlay +Subject: [PATCH 160/212] BCM270X_DT: Add pi3-disable-bt overlay Disable Bluetooth and restore UART0/ttyAMA0 over GPIOs 14 & 15. To disable the systemd service that initialises the modem so it doesn't use the UART: @@ -150644,10 +149557,10 @@ index 0000000..05403e2 2.5.0 -From a2689328409bbc51374116903ba229e07acf4efc Mon Sep 17 00:00:00 2001 +From 4449ab94c62979b57fec60f5c5ba1b4954a85988 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Mar 2016 09:53:03 +0000 -Subject: [PATCH 161/202] BCM270X_DT: Add pi3-miniuart-bt DT overlay +Subject: [PATCH 161/212] BCM270X_DT: Add pi3-miniuart-bt DT overlay Switch Pi3 Bluetooth function to use the mini-UART (ttyS0) and restore UART0/ttyAMA0 over GPIOs 14 & 15. Note that this may reduce the maximum @@ -150772,10 +149685,10 @@ index 0000000..ae1292a 2.5.0 -From 336f35afc339dd8a44a492581ba7686cf32135de Mon Sep 17 00:00:00 2001 +From 72c4fbe3e30b0fb7ab8f0b26cb51b4fc869a34a4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Mar 2016 13:38:39 +0000 -Subject: [PATCH 162/202] Pi3 DT: Add dtparams for the SD interface +Subject: [PATCH 162/212] Pi3 DT: Add dtparams for the SD interface Add new base dtparams sd_overclock, sd_force_pio, sd_pio_limit and sd_debug. These were missed out of the initial Pi3 DTB. @@ -150803,10 +149716,10 @@ index cc06089..36972d8 100644 2.5.0 -From 2cb3d4dc651a0f3a562a79ce769663e04fd5da8b Mon Sep 17 00:00:00 2001 +From dcc0c1cb720d89d4ec64353753e8c6bdf3ad590b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Mar 2016 15:05:11 +0000 -Subject: [PATCH 163/202] vchiq_arm: Tweak the logging output +Subject: [PATCH 163/212] vchiq_arm: Tweak the logging output Signed-off-by: Phil Elwell --- @@ -150884,10 +149797,10 @@ index 2c98da4..160db24 100644 2.5.0 -From 94ecc7bb0c553cf6a60505345463657b6b102384 Mon Sep 17 00:00:00 2001 +From 94f1af91e237587bcbf12aba4cef19807f8bbb72 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Mar 2016 16:46:39 +0000 -Subject: [PATCH 164/202] bcm2835-sdhost: Only claim one DMA channel +Subject: [PATCH 164/212] bcm2835-sdhost: Only claim one DMA channel With both MMC controllers enabled there are few DMA channels left. The bcm2835-sdhost driver only uses DMA in one direction at a time, so it @@ -151052,10 +149965,10 @@ index 4f6cab5..4cc4272 100644 2.5.0 -From cabc01bd0ac6cb9dc77e20c627f6c25eb0897986 Mon Sep 17 00:00:00 2001 +From 76b2574366bed59d626ac8bcba92df246aff1354 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 8 Mar 2016 09:49:16 +0000 -Subject: [PATCH 165/202] bcm2835-mmc: Only claim one DMA channel +Subject: [PATCH 165/212] bcm2835-mmc: Only claim one DMA channel With both MMC controllers enabled there are few DMA channels left. The bcm2835-mmc driver only uses DMA in one direction at a time, so it @@ -151230,10 +150143,10 @@ index 104f93e..ceb3793 100644 2.5.0 -From 4f49fa2bcb9d1b536ba2eea6b02488bf3c455139 Mon Sep 17 00:00:00 2001 +From 7658391939ddd59e52b90a9164eb85350669fda3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 8 Mar 2016 17:08:39 +0000 -Subject: [PATCH 166/202] config: rebuild with savedefconfig +Subject: [PATCH 166/212] config: rebuild with savedefconfig --- arch/arm/configs/bcm2709_defconfig | 3 +-- @@ -151264,10 +150177,10 @@ index 6d6b519..116002b 100644 2.5.0 -From cab546ee091931f70d534314ed09fd33ffb8a9eb Mon Sep 17 00:00:00 2001 +From 3710f5f0d09adcdfa82da57ae653e32d8ce18704 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 8 Mar 2016 17:06:33 +0000 -Subject: [PATCH 167/202] config: Add module for mcp3422 ADC +Subject: [PATCH 167/212] config: Add module for mcp3422 ADC --- arch/arm/configs/bcm2709_defconfig | 1 + @@ -151302,10 +150215,10 @@ index 1ca1695..f09be87 100644 2.5.0 -From 62497b4dc8fcd710856352013eefe3e6b2aa6564 Mon Sep 17 00:00:00 2001 +From d6922f32d4324a8556ccb28048ff3fadf9573995 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 8 Mar 2016 16:18:57 +0000 -Subject: [PATCH 168/202] Pi3 DT: Add pull-ups on the UART RX lines +Subject: [PATCH 168/212] Pi3 DT: Add pull-ups on the UART RX lines Signed-off-by: Phil Elwell --- @@ -151350,10 +150263,10 @@ index ae1292a..0b8f0ca 100644 2.5.0 -From 6fdacd51042fb50e6437b232ae027051e299f9c8 Mon Sep 17 00:00:00 2001 +From 0c427324249a0a6e691dec7b09f4911b952c8722 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 9 Mar 2016 17:25:59 +0000 -Subject: [PATCH 169/202] brcmfmac: Disable power management +Subject: [PATCH 169/212] brcmfmac: Disable power management Disable wireless power saving in the brcmfmac WLAN driver. This is a temporary measure until the connectivity loss resulting from power @@ -151381,10 +150294,10 @@ index deb5f78..90f65d9 100644 2.5.0 -From bec5f2c792b5c63335ab926b585c416dbf409ba9 Mon Sep 17 00:00:00 2001 +From 1c639a4618ee2f1c46da57f921fc797662853564 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 9 Mar 2016 21:28:52 +0000 -Subject: [PATCH 170/202] BCM270X_DT: rpi-display overlay - add swapxy param +Subject: [PATCH 170/212] BCM270X_DT: rpi-display overlay - add swapxy param Signed-off-by: Phil Elwell --- @@ -151427,10 +150340,10 @@ index a8fa974..ccb296e 100644 2.5.0 -From 0f17d031cc109fcca9cc086ff52148e312433620 Mon Sep 17 00:00:00 2001 +From 0cefbfe0e1b4bfaed991394978938177204cc91d Mon Sep 17 00:00:00 2001 From: DigitalDreamtime Date: Fri, 11 Mar 2016 11:44:35 +0000 -Subject: [PATCH 171/202] Remove I2S config from bt_pins. +Subject: [PATCH 171/212] Remove I2S config from bt_pins. Remove I2S config from bt_pins. Causes issues with clock alignment when I2S is used by an external DAC via GPIO header. @@ -151473,10 +150386,10 @@ index 0b8f0ca..f07afcb 100644 2.5.0 -From d1d0794ae504d82dd32ac24900b9cb79f710cb3b Mon Sep 17 00:00:00 2001 +From a05e949b3366bf0722d1dde41b1658469c5d7879 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 10 Aug 2015 09:44:59 +0100 -Subject: [PATCH 172/202] Revert "scripts/dtc: Add overlay support" +Subject: [PATCH 172/212] Revert "scripts/dtc: Add overlay support" This reverts commit fa6d1755c2fdd9451077d8248e3804f0619f19b9. --- @@ -155884,10 +154797,10 @@ index 86b7338..5b8c7d5 100644 2.5.0 -From 7c92c220e1563faa6fb8061e4b5a0423eaedcb0c Mon Sep 17 00:00:00 2001 +From d382779bec89ee69044498641c17f30bccdd9fc2 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 10 Aug 2015 09:49:15 +0100 -Subject: [PATCH 173/202] scripts/dtc: Update to upstream version 1.4.1 +Subject: [PATCH 173/212] scripts/dtc: Update to upstream version 1.4.1 Includes the new localfixups format. @@ -158644,10 +157557,10 @@ index 5b8c7d5..2595dfd 100644 2.5.0 -From ba2e612145072d88cf8233826bc373a7f8f6ab36 Mon Sep 17 00:00:00 2001 +From b5636f4c891e18774ceaa09d14151ee8b21401e2 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Thu, 22 Oct 2015 23:30:04 +0300 -Subject: [PATCH 174/202] configfs: implement binary attributes +Subject: [PATCH 174/212] configfs: implement binary attributes ConfigFS lacked binary attributes up until now. This patch introduces support for binary attributes in a somewhat similar @@ -159299,10 +158212,10 @@ index 758a029..f7300d0 100644 2.5.0 -From ba0e4bb7b7359eb7fc0b573043f16ac99814f519 Mon Sep 17 00:00:00 2001 +From c1cbbf13f7c0a13c2087fd37ac5272d58f8cd604 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Wed, 3 Dec 2014 13:23:28 +0200 -Subject: [PATCH 175/202] OF: DT-Overlay configfs interface +Subject: [PATCH 175/212] OF: DT-Overlay configfs interface This is a port of Pantelis Antoniou's v3 port that makes use of the new upstreamed configfs support for binary attributes. @@ -159721,10 +158634,10 @@ index 0000000..7b66deb 2.5.0 -From 8e3132253b8f6330be77d81567c5c54422565a28 Mon Sep 17 00:00:00 2001 +From a73f8e98f1a96fca0e7c21f3ac8a1f5ca36d92ff Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 12:43:36 +0000 -Subject: [PATCH 176/202] Protect __release_resource against resources without +Subject: [PATCH 176/212] Protect __release_resource against resources without parents Without this patch, removing a device tree overlay can crash here. @@ -159755,10 +158668,10 @@ index 249b1eb..eb973a53 100644 2.5.0 -From 7376930a9b78d3cc610c00c1e04d9ed7183cf19e Mon Sep 17 00:00:00 2001 +From fa4e1d1a1a7dbc7d8375a72503f31d55f22e6095 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 20:00:21 +0000 -Subject: [PATCH 177/202] BCM270X_DT: Add a .dtbo target, use for overlays +Subject: [PATCH 177/212] BCM270X_DT: Add a .dtbo target, use for overlays Change the filenames and extensions to keep the pre-DDT style of overlay (-overlay.dtb) distinct from new ones that use a @@ -159958,10 +158871,10 @@ index 79e8661..7209d622 100644 2.5.0 -From c85d239dce9f0b01a15ec4702daab23d100fbfea Mon Sep 17 00:00:00 2001 +From 25c63fa16a6aa48cbf99265bc27e80a08aa84a1b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 May 2015 11:18:58 +0100 -Subject: [PATCH 178/202] scripts/knlinfo: Decode DDTK atom +Subject: [PATCH 178/212] scripts/knlinfo: Decode DDTK atom Show the DDTK atom as being a boolean. @@ -159995,10 +158908,10 @@ index b9ef124..263ec93 100755 2.5.0 -From 0b8d6f9d852cdb55e4ff24f0c9e8abe5513432cd Mon Sep 17 00:00:00 2001 +From 326b9503455a448c6c610f9b482767d9fcb5559a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 May 2015 11:48:59 +0100 -Subject: [PATCH 179/202] Enable Dynamic Device Tree for bcmrpi_defconfig and +Subject: [PATCH 179/212] Enable Dynamic Device Tree for bcmrpi_defconfig and bcm2709_defconfig Signed-off-by: Phil Elwell @@ -160043,10 +158956,10 @@ index f09be87..2db41e6 100644 2.5.0 -From da35fe70e85bb6dd5d084ac5ad2b374891d15ebe Mon Sep 17 00:00:00 2001 +From 097557a49914162c5de1eba0c69d7a33a69600bb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sun, 13 Mar 2016 16:14:44 +0000 -Subject: [PATCH 180/202] SQUASH: Add CONFIG_OF_CONFIGFS to bcmrpi_defconfig +Subject: [PATCH 180/212] SQUASH: Add CONFIG_OF_CONFIGFS to bcmrpi_defconfig Signed-off-by: Phil Elwell --- @@ -160078,10 +158991,10 @@ index 2db41e6..74149cf 100644 2.5.0 -From 2665d362b68e147a96a63bc60f318b10ae2c8974 Mon Sep 17 00:00:00 2001 +From 521d08e97d9c65c9fc9b587253ca44fecff0d603 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 14 Mar 2016 16:56:54 +0000 -Subject: [PATCH 181/202] dts, kbuild: dtbs_install installs .dtbo files too +Subject: [PATCH 181/212] dts, kbuild: dtbs_install installs .dtbo files too Signed-off-by: Phil Elwell --- @@ -160126,10 +159039,10 @@ index 1c15717..43647b3 100644 2.5.0 -From f20c1a01f16243b90b5e34179c35d5c9b848197c Mon Sep 17 00:00:00 2001 +From 3f9b9614e3e1c169285d04c3183bd68fb4a743d0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Mar 2016 14:10:29 +0000 -Subject: [PATCH 182/202] bcm2835-sdhost: Workaround for "slow" sectors +Subject: [PATCH 182/212] bcm2835-sdhost: Workaround for "slow" sectors Some cards have been seen to cause timeouts after certain sectors are read. This workaround enforces a minimum delay between the stop after @@ -160250,10 +159163,10 @@ index 4cc4272..f43aae0 100644 2.5.0 -From a2be538e4c2f1c1615a4c3b53774eb528b8310f4 Mon Sep 17 00:00:00 2001 +From 4f6ba307c5ca47f6d67cf3af83b536d6b512d835 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Mar 2016 15:49:16 +0000 -Subject: [PATCH 183/202] BCM270X_DT: Add labels to spidev nodes +Subject: [PATCH 183/212] BCM270X_DT: Add labels to spidev nodes Signed-off-by: Phil Elwell --- @@ -160378,10 +159291,10 @@ index 2cb7d43..1ce4ea2 100644 2.5.0 -From c3341d026f71e2b76cc37ea8c2fafdfc0d920f62 Mon Sep 17 00:00:00 2001 +From 47c38ad4901f42a05ec66da812ab59cf071f9493 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Mar 2016 16:27:26 +0000 -Subject: [PATCH 184/202] BCM270X_DT: Use spidev labels in overlays +Subject: [PATCH 184/212] BCM270X_DT: Use spidev labels in overlays --- arch/arm/boot/dts/overlays/ads7846-overlay.dts | 22 ++++++++++------- @@ -161038,10 +159951,10 @@ index f7102c8..33c0651 100644 2.5.0 -From 984a30a9cdc45ed9cd9df980ec3bf12a4f831162 Mon Sep 17 00:00:00 2001 +From 1379d524f5915c349e03308cf75fdb83d7bfc492 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Mar 2016 16:41:37 +0000 -Subject: [PATCH 185/202] BCM270X_DT: Build and document the wittypi overlay +Subject: [PATCH 185/212] BCM270X_DT: Build and document the wittypi overlay Signed-off-by: Phil Elwell --- @@ -161098,10 +160011,10 @@ index be5987d..8498134 100644 2.5.0 -From d1931436a822e5acf29b69c696c82071022894cc Mon Sep 17 00:00:00 2001 +From aa17ecdb23d2505d7fb0b4ddb30200a85128f789 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Tue, 15 Mar 2016 21:13:39 +0100 -Subject: [PATCH 186/202] scripts/dtc: Fix UMR causing corrupt dtbo overlay +Subject: [PATCH 186/212] scripts/dtc: Fix UMR causing corrupt dtbo overlay files struct fixup_entry is allocated from the heap but it's member @@ -161131,10 +160044,10 @@ index 540a3ea..2b3b3a7 100644 2.5.0 -From 9c7a38064f9c562ed462c88c8ee4c6dd77f54b5c Mon Sep 17 00:00:00 2001 +From c2264c1cccd9cb6e6ae7c76e3a058aeb6299c84e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 16 Mar 2016 08:35:06 +0000 -Subject: [PATCH 187/202] BCM270X_DT: Add dtparam for uart1 +Subject: [PATCH 187/212] BCM270X_DT: Add dtparam for uart1 Signed-off-by: Phil Elwell --- @@ -161224,10 +160137,10 @@ index d939739..4ce7921 100644 2.5.0 -From a3f10016b7a4791dd5237a60826a7dbd48d25c2f Mon Sep 17 00:00:00 2001 +From 9611f112a5e627b0f377cccfecd0e84799e650a5 Mon Sep 17 00:00:00 2001 From: Przemek Rudy Date: Fri, 11 Mar 2016 22:41:26 +0100 -Subject: [PATCH 188/202] dwc-overlay: Use label so overrides can apply. +Subject: [PATCH 188/212] dwc-overlay: Use label so overrides can apply. --- arch/arm/boot/dts/overlays/dwc2-overlay.dts | 10 +++++----- @@ -161264,10 +160177,10 @@ index 90c9811..527abc9 100644 2.5.0 -From 8ba5d971dec37b82cd23b3854fd0025c0b331f82 Mon Sep 17 00:00:00 2001 +From c648d4f19f07b090f14ddd8679ea4154f01ce5d0 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 22 Jan 2016 13:06:39 -0800 -Subject: [PATCH 189/202] drm/vc4: Add a debugfs node for tracking execution +Subject: [PATCH 189/212] drm/vc4: Add a debugfs node for tracking execution state. Signed-off-by: Eric Anholt @@ -161330,10 +160243,10 @@ index 39f29e7..1243f4e 100644 2.5.0 -From 10aa0867318467a8db95f444d6284a2c4b82e40f Mon Sep 17 00:00:00 2001 +From 4902ce61be294705ca6b1bdf84d6f1935ae78cc8 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 13:03:33 -0800 -Subject: [PATCH 190/202] drm/vc4: Include vc4_drm.h in uapi in downstream +Subject: [PATCH 190/212] drm/vc4: Include vc4_drm.h in uapi in downstream build. Signed-off-by: Eric Anholt @@ -161357,10 +160270,10 @@ index 38d4370..23381b5 100644 2.5.0 -From 1ad56b05115562a8348da65ada8803f51f2c5c49 Mon Sep 17 00:00:00 2001 +From e9364538abf2079525c72496c649d28d40f2b7f9 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 13:05:00 -0800 -Subject: [PATCH 191/202] drm/vc4: Validate that WAIT_BO padding is cleared. +Subject: [PATCH 191/212] drm/vc4: Validate that WAIT_BO padding is cleared. This is ABI future-proofing if we ever want to extend the pad to mean something. @@ -161388,10 +160301,10 @@ index 1243f4e..849d374 100644 2.5.0 -From 7a497d204122a4266ea46b2086c735f189c091e2 Mon Sep 17 00:00:00 2001 +From 87d958a5f2547128db8962d9539749ddf994984d Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 13:52:41 -0800 -Subject: [PATCH 192/202] drm/vc4: Fix the clear color for the first tile +Subject: [PATCH 192/212] drm/vc4: Fix the clear color for the first tile rendered. Apparently in hardware (as opposed to simulation), the clear colors @@ -161443,10 +160356,10 @@ index 8a2a312..dea97f4 100644 2.5.0 -From 3312985b5a723597099387f5b62089e4a87daf58 Mon Sep 17 00:00:00 2001 +From faa71a44d64ed4e07131355ac726fe90da932534 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 14:13:12 -0800 -Subject: [PATCH 193/202] drm/vc4: Return an ERR_PTR from BO creation instead +Subject: [PATCH 193/212] drm/vc4: Return an ERR_PTR from BO creation instead of NULL. Fixes igt vc4_create_bo/create-bo-0 by returning -EINVAL from the @@ -161594,10 +160507,10 @@ index 0fb5b99..8396960 100644 2.5.0 -From f37e01abef40cc6f9c4621fb3465f603443f44d3 Mon Sep 17 00:00:00 2001 +From 623176f2f83b693f0200107f838cd9e81462b352 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 14:32:41 -0800 -Subject: [PATCH 194/202] drm/vc4: Fix -ERESTARTSYS error return from BO waits. +Subject: [PATCH 194/212] drm/vc4: Fix -ERESTARTSYS error return from BO waits. This caused the wait ioctls to claim that waiting had completed when we actually got interrupted by a signal before it was done. Fixes @@ -161632,10 +160545,10 @@ index f8c003a..dc3044d 100644 2.5.0 -From 76965689a6ad70481e79988ef713906fdc3af1b4 Mon Sep 17 00:00:00 2001 +From f1598fe20200c9270f7704dc1c8934134aee553c Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 14:33:50 -0800 -Subject: [PATCH 195/202] drm/vc4: Drop error message on seqno wait timeouts. +Subject: [PATCH 195/212] drm/vc4: Drop error message on seqno wait timeouts. These ioctls end up getting exposed to userspace, and having normal user requests print DRM errors is obviously wrong. The message was @@ -161665,10 +160578,10 @@ index dc3044d..a6fa63f 100644 2.5.0 -From 0f8b1d49dde419c1acdc72dd992a4aa881b5007a Mon Sep 17 00:00:00 2001 +From 7f87241605ce81fa96ed6db02ccf1f9a7efb9701 Mon Sep 17 00:00:00 2001 From: campag Date: Wed, 24 Feb 2016 16:45:42 +0000 -Subject: [PATCH 196/202] BCM270X_DT: Add 1-bit SDIO using minimal pins... +Subject: [PATCH 196/212] BCM270X_DT: Add 1-bit SDIO using minimal pins... ... for that mode: GPIOs 22-25. --- @@ -161755,10 +160668,10 @@ index 0000000..46d4538 2.5.0 -From 296787e902c2d7fa259831a7bcd8e6a0fb03bc66 Mon Sep 17 00:00:00 2001 +From 2d8f51979e764adc684bb97ccabaa6e65ea9784f Mon Sep 17 00:00:00 2001 From: Cheong2K Date: Fri, 26 Feb 2016 18:20:10 +0800 -Subject: [PATCH 197/202] brcm: adds support for BCM43341 wifi +Subject: [PATCH 197/212] brcm: adds support for BCM43341 wifi --- drivers/net/wireless/brcm80211/brcmfmac/sdio.c | 5 +++++ @@ -161811,10 +160724,10 @@ index aa06ea2..f3ae83d 100644 2.5.0 -From 1a6cc13ab3a24451e5407d853945493626382cc2 Mon Sep 17 00:00:00 2001 +From 51686bb53ddd56289868a746a01ff7b01c8099c7 Mon Sep 17 00:00:00 2001 From: Michael Heimpold Date: Fri, 29 Jan 2016 12:00:37 +0100 -Subject: [PATCH 198/202] Add overlay and enable support for QCA7000 board +Subject: [PATCH 198/212] Add overlay and enable support for QCA7000 board This adds a device tree overlay for the QCA7000 which can be used when attaching an I2SE's PLC Stamp micro EVK to the Raspberry Pi. @@ -161953,10 +160866,10 @@ index 74149cf..e720c74 100644 2.5.0 -From de7df8ec94b46845e6331778fac4b91f3754c254 Mon Sep 17 00:00:00 2001 +From f49137d032857588f47edd41164968f0924e026f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 9 Mar 2016 13:28:24 +0000 -Subject: [PATCH 199/202] serial: Take care starting a hung-up tty's port +Subject: [PATCH 199/212] serial: Take care starting a hung-up tty's port tty_port_hangup sets a port's tty field to NULL (holding the port lock), but uart_tx_stopped, called from __uart_start (with the port lock), @@ -161987,10 +160900,10 @@ index 297d4fa..00ce6c6 100644 2.5.0 -From baa5e46504bd6091c6b2ca2b69f40f42c9889673 Mon Sep 17 00:00:00 2001 +From 7b430f6efc914a23ce58900619ae212b16a46ba4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Mar 2016 10:16:16 +0000 -Subject: [PATCH 200/202] pi3-miniuart-bt-overlay: Correct and clarify info +Subject: [PATCH 200/212] pi3-miniuart-bt-overlay: Correct and clarify info Signed-off-by: Phil Elwell --- @@ -162036,10 +160949,10 @@ index f07afcb..38ed33b 100644 2.5.0 -From 177b4e8fb5a22cc6939038516f2a6bdf22cc5d0a Mon Sep 17 00:00:00 2001 +From 334bc7c31a21f7bce55866107699f2a1e31f07b4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Mar 2016 10:41:56 +0000 -Subject: [PATCH 201/202] pwm overlays: Params must have in-overlay targets +Subject: [PATCH 201/212] pwm overlays: Params must have in-overlay targets --- arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts | 9 ++++++++- @@ -162096,10 +161009,10 @@ index ddd67ff..bf030a6 100644 2.5.0 -From 1c796f7ab38c7d52e201b88e1836e7adad9a1a54 Mon Sep 17 00:00:00 2001 +From a56b30a387d234e82cd586f22ccd1b2734c170fe Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 18 Mar 2016 13:06:29 +0000 -Subject: [PATCH 202/202] BCM270X_DT: Switch Compute Module to MMC +Subject: [PATCH 202/212] BCM270X_DT: Switch Compute Module to MMC Signed-off-by: Phil Elwell --- @@ -162154,3 +161067,687 @@ index e09e499..90e330d 100644 -- 2.5.0 + +From 0af6e86d99b38cc25814b2b1c058fc7dc8a09e0a Mon Sep 17 00:00:00 2001 +From: P33M +Date: Fri, 18 Mar 2016 17:38:37 +0000 +Subject: [PATCH 203/212] dwc_otg: Don't free qh align buffers in atomic + context + +--- + drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c +index acd0dd7..3b2a607 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c +@@ -56,6 +56,9 @@ void dwc_otg_hcd_qh_free(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + { + dwc_otg_qtd_t *qtd, *qtd_tmp; + dwc_irqflags_t flags; ++ uint32_t buf_size = 0; ++ uint8_t *align_buf_virt = NULL; ++ dwc_dma_t align_buf_dma; + + /* Free each QTD in the QTD list */ + DWC_SPINLOCK_IRQSAVE(hcd->lock, &flags); +@@ -67,17 +70,19 @@ void dwc_otg_hcd_qh_free(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + if (hcd->core_if->dma_desc_enable) { + dwc_otg_hcd_qh_free_ddma(hcd, qh); + } else if (qh->dw_align_buf) { +- uint32_t buf_size; + if (qh->ep_type == UE_ISOCHRONOUS) { + buf_size = 4096; + } else { + buf_size = hcd->core_if->core_params->max_transfer_size; + } +- DWC_DMA_FREE(buf_size, qh->dw_align_buf, qh->dw_align_buf_dma); ++ align_buf_virt = qh->dw_align_buf; ++ align_buf_dma = qh->dw_align_buf_dma; + } + + DWC_FREE(qh); + DWC_SPINUNLOCK_IRQRESTORE(hcd->lock, flags); ++ if (align_buf_virt) ++ DWC_DMA_FREE(buf_size, align_buf_virt, align_buf_dma); + return; + } + +-- +2.5.0 + + +From 713b15634de730a60c3f8a633beddf83e8270659 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 21 Mar 2016 15:38:38 +0000 +Subject: [PATCH 204/212] dwc_otg: Enable the hack for Split Interrupt + transactions by default + +dwc_otg.fiq_fsm_mask=0xF has long been a suggestion for users with audio stutters or other USB bandwidth issues. +So far we are aware of many success stories but no failure caused by this setting. +Make it a default to learn more. + +See: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=70437 + +Signed-off-by: popcornmix +--- + drivers/usb/host/dwc_otg/dwc_otg_driver.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_driver.c b/drivers/usb/host/dwc_otg/dwc_otg_driver.c +index 95edadf..cb060a7 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_driver.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_driver.c +@@ -247,7 +247,7 @@ bool fiq_fsm_enable = true; + //Bulk split-transaction NAK holdoff in microframes + uint16_t nak_holdoff = 8; + +-unsigned short fiq_fsm_mask = 0x07; ++unsigned short fiq_fsm_mask = 0x0F; + + /** + * This function shows the Driver Version. +-- +2.5.0 + + +From bc34eb8e494f45f0a18c56603f3d06e378035fb7 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Sat, 19 Mar 2016 16:51:37 +0000 +Subject: [PATCH 205/212] BCM270X_DT: Remove explicit claiming of UART pins + +It is convenient to be able to map a different function to the UART +pins (e.g. DPI for vga666) without having to disable the UART first. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2710-rpi-3-b.dts | 6 +++--- + .../boot/dts/overlays/pi3-disable-bt-overlay.dts | 10 ++++----- + .../boot/dts/overlays/pi3-miniuart-bt-overlay.dts | 25 +++++++++++----------- + 3 files changed, 20 insertions(+), 21 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2710-rpi-3-b.dts b/arch/arm/boot/dts/bcm2710-rpi-3-b.dts +index d2d39c6..adba682 100644 +--- a/arch/arm/boot/dts/bcm2710-rpi-3-b.dts ++++ b/arch/arm/boot/dts/bcm2710-rpi-3-b.dts +@@ -57,9 +57,9 @@ + }; + + uart1_pins: uart1_pins { +- brcm,pins = <14 15>; +- brcm,function = <2>; /* alt5=UART1 */ +- brcm,pull = <0 2>; ++ brcm,pins; ++ brcm,function; ++ brcm,pull; + }; + }; + +diff --git a/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts b/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts +index 05403e2..68f6069 100644 +--- a/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts ++++ b/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts +@@ -28,13 +28,11 @@ + }; + + fragment@2 { +- target = <&gpio>; ++ target = <&uart0_pins>; + __overlay__ { +- uart0_pins: uart0_pins { +- brcm,pins = <14 15>; +- brcm,function = <4>; /* alt0 */ +- brcm,pull = <0 2>; +- }; ++ brcm,pins; ++ brcm,function; ++ brcm,pull; + }; + }; + +diff --git a/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts b/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts +index 38ed33b..17d04cf 100644 +--- a/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts ++++ b/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts +@@ -37,23 +37,24 @@ + }; + + fragment@2 { +- target = <&gpio>; ++ target = <&uart0_pins>; + __overlay__ { +- uart0_pins: uart0_pins { +- brcm,pins = <14 15>; +- brcm,function = <4>; /* alt0 */ +- brcm,pull = <0 2>; +- }; +- +- uart1_pins: uart1_pins { +- brcm,pins = <32 33>; +- brcm,function = <2>; /* alt5=UART1 */ +- brcm,pull = <0 2>; +- }; ++ brcm,pins; ++ brcm,function; ++ brcm,pull; + }; + }; + + fragment@3 { ++ target = <&uart1_pins>; ++ __overlay__ { ++ brcm,pins = <32 33>; ++ brcm,function = <2>; /* alt5=UART1 */ ++ brcm,pull = <0 2>; ++ }; ++ }; ++ ++ fragment@4 { + target-path = "/aliases"; + __overlay__ { + serial0 = "/soc/uart@7e201000"; +-- +2.5.0 + + +From cc50f3828fe7e3c53178d88b978f8947965af004 Mon Sep 17 00:00:00 2001 +From: Rodrigo Freire +Date: Tue, 22 Mar 2016 12:40:33 -0300 +Subject: [PATCH 206/212] lirc_rpi: Lower IR reception error to debug + +Lowers a IR reception error condition message to KERNEL_DEBUG +--- + drivers/staging/media/lirc/lirc_rpi.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/staging/media/lirc/lirc_rpi.c b/drivers/staging/media/lirc/lirc_rpi.c +index cd09c99..0624439 100644 +--- a/drivers/staging/media/lirc/lirc_rpi.c ++++ b/drivers/staging/media/lirc/lirc_rpi.c +@@ -271,7 +271,7 @@ static irqreturn_t irq_handler(int i, void *blah, struct pt_regs *regs) + data = PULSE_MASK; /* really long time */ + if (!(signal^sense)) { + /* sanity check */ +- printk(KERN_WARNING LIRC_DRIVER_NAME ++ printk(KERN_DEBUG LIRC_DRIVER_NAME + ": AIEEEE: %d %d %lx %lx %lx %lx\n", + signal, sense, tv.tv_sec, lasttv.tv_sec, + tv.tv_usec, lasttv.tv_usec); +-- +2.5.0 + + +From e73df5dd62f01c4f81043b9892d4571a844f53f0 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Wed, 23 Mar 2016 14:16:25 +0000 +Subject: [PATCH 207/212] vchiq_arm: Access the dequeue_pending flag locked + +Reading through this code looking for another problem (now found in userland) +the use of dequeue_pending outside a lock didn't seem safe. + +Signed-off-by: Phil Elwell +--- + .../misc/vc04_services/interface/vchiq_arm/vchiq_arm.c | 17 ++++++++++++----- + 1 file changed, 12 insertions(+), 5 deletions(-) + +diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c +index e11c0e0..71883e5 100644 +--- a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c ++++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c +@@ -279,6 +279,7 @@ service_callback(VCHIQ_REASON_T reason, VCHIQ_HEADER_T *header, + USER_SERVICE_T *user_service; + VCHIQ_SERVICE_T *service; + VCHIQ_INSTANCE_T instance; ++ int skip_completion = 0; + DEBUG_INITIALISE(g_state.local) + + DEBUG_TRACE(SERVICE_CALLBACK_LINE); +@@ -345,9 +346,6 @@ service_callback(VCHIQ_REASON_T reason, VCHIQ_HEADER_T *header, + user_service->msg_queue[user_service->msg_insert & + (MSG_QUEUE_SIZE - 1)] = header; + user_service->msg_insert++; +- spin_unlock(&msg_queue_spinlock); +- +- up(&user_service->insert_event); + + /* If there is a thread waiting in DEQUEUE_MESSAGE, or if + ** there is a MESSAGE_AVAILABLE in the completion queue then +@@ -356,13 +354,22 @@ service_callback(VCHIQ_REASON_T reason, VCHIQ_HEADER_T *header, + if (((user_service->message_available_pos - + instance->completion_remove) >= 0) || + user_service->dequeue_pending) { +- DEBUG_TRACE(SERVICE_CALLBACK_LINE); + user_service->dequeue_pending = 0; +- return VCHIQ_SUCCESS; ++ skip_completion = 1; + } + ++ spin_unlock(&msg_queue_spinlock); ++ ++ up(&user_service->insert_event); ++ + header = NULL; + } ++ ++ if (skip_completion) { ++ DEBUG_TRACE(SERVICE_CALLBACK_LINE); ++ return VCHIQ_SUCCESS; ++ } ++ + DEBUG_TRACE(SERVICE_CALLBACK_LINE); + + return add_completion(instance, reason, header, user_service, +-- +2.5.0 + + +From 0c0b0bcf4da549395576b4fe0f86c7323d223d8a Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Wed, 23 Mar 2016 15:57:14 +0000 +Subject: [PATCH 208/212] BCM270X_DT: Add pi3-act-led overlay + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 19 +++++++++++++++ + arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts | 27 ++++++++++++++++++++++ + 3 files changed, 47 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index f4ae95a..4c3db73 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -39,6 +39,7 @@ dtbo-$(RPI_DT_OVERLAYS) += mcp2515-can0.dtbo + dtbo-$(RPI_DT_OVERLAYS) += mcp2515-can1.dtbo + dtbo-$(RPI_DT_OVERLAYS) += mmc.dtbo + dtbo-$(RPI_DT_OVERLAYS) += mz61581.dtbo ++dtbo-$(RPI_DT_OVERLAYS) += pi3-act-led.dtbo + dtbo-$(RPI_DT_OVERLAYS) += pi3-disable-bt.dtbo + dtbo-$(RPI_DT_OVERLAYS) += pi3-miniuart-bt.dtbo + dtbo-$(RPI_DT_OVERLAYS) += piscreen.dtbo +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index b674394..9b49868 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -136,12 +136,14 @@ Params: + + act_led_activelow Set to "on" to invert the sense of the LED + (default "off") ++ N.B. For Pi3 see pi3-act-led overlay. + + act_led_gpio Set which GPIO to use for the activity LED + (in case you want to connect it to an external + device) + (default "16" on a non-Plus board, "47" on a + Plus or Pi 2) ++ N.B. For Pi3 see pi3-act-led overlay. + + pwr_led_trigger + pwr_led_activelow +@@ -499,6 +501,23 @@ Params: speed Display SPI bus speed + [ The pcf8563-rtc overlay has been deleted. See i2c-rtc. ] + + ++Name: pi3-act-led ++Info: Pi3 uses a GPIO expander to drive the LEDs which can only be accessed ++ from the VPU. There is a special driver for this with a separate DT ++ node, which has the unfortunate consequence of breaking the ++ act_led_gpio and act_led_activelow dtparams. ++ This overlay changes the GPIO controller back to the standard one and ++ restores the dtparams. ++Load: dtoverlay=pi3-act-led,= ++Params: activelow Set to "on" to invert the sense of the LED ++ (default "off") ++ ++ gpio Set which GPIO to use for the activity LED ++ (in case you want to connect it to an external ++ device) ++ REQUIRED ++ ++ + Name: pi3-disable-bt + Info: Disable Pi3 Bluetooth and restore UART0/ttyAMA0 over GPIOs 14 & 15 + N.B. To disable the systemd service that initialises the modem so it +diff --git a/arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts b/arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts +new file mode 100644 +index 0000000..14a59dc +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts +@@ -0,0 +1,27 @@ ++/dts-v1/; ++/plugin/; ++ ++/* Pi3 uses a GPIO expander to drive the LEDs which can only be accessed ++ from the VPU. There is a special driver for this with a separate DT node, ++ which has the unfortunate consequence of breaking the act_led_gpio and ++ act_led_activelow dtparams. ++ ++ This overlay changes the GPIO controller back to the standard one and ++ restores the dtparams. ++*/ ++ ++/{ ++ compatible = "brcm,bcm2708"; ++ ++ fragment@0 { ++ target = <&act_led>; ++ frag0: __overlay__ { ++ gpios = <&gpio 0 0>; ++ }; ++ }; ++ ++ __overrides__ { ++ gpio = <&frag0>,"gpios:4"; ++ activelow = <&frag0>,"gpios:8"; ++ }; ++}; +-- +2.5.0 + + +From 3b2aa82be15317803d4b789f0580551d29cd3689 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Wed, 23 Mar 2016 20:53:47 +0000 +Subject: [PATCH 209/212] vchiq_arm: Service callbacks must not fail + +Service callbacks are not allowed to return an error. The internal callback +that delivers events and messages to user tasks does not enqueue them if +the service is closing, but this is not an error and should not be +reported as such. + +Signed-off-by: Phil Elwell +--- + drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c +index 71883e5..a5cc385 100644 +--- a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c ++++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c +@@ -224,7 +224,7 @@ add_completion(VCHIQ_INSTANCE_T instance, VCHIQ_REASON_T reason, + } else if (instance->closing) { + vchiq_log_info(vchiq_arm_log_level, + "service_callback closing"); +- return VCHIQ_ERROR; ++ return VCHIQ_SUCCESS; + } + DEBUG_TRACE(SERVICE_CALLBACK_LINE); + } +-- +2.5.0 + + +From 8058dba3efbfbaab969fec06d9ddc6e7bfe39112 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson <6by9@users.noreply.github.com> +Date: Thu, 17 Mar 2016 18:16:16 +0000 +Subject: [PATCH 210/212] Add configs and overlay for PCA9548 I2C mux + +Adds kernel configs for I2C muxes and a dt overlay for PCA9548 +that adds the 8 muxed I2C buses and mux device. +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 6 ++ + .../boot/dts/overlays/i2c-mux-pca9548a-overlay.dts | 67 ++++++++++++++++++++++ + arch/arm/configs/bcm2709_defconfig | 2 + + arch/arm/configs/bcmrpi_defconfig | 2 + + 5 files changed, 78 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/i2c-mux-pca9548a-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index 4c3db73..7c4fc30 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -29,6 +29,7 @@ dtbo-$(RPI_DT_OVERLAYS) += hy28a.dtbo + dtbo-$(RPI_DT_OVERLAYS) += hy28b.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2c-rtc.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2c-gpio.dtbo ++dtbo-$(RPI_DT_OVERLAYS) += i2c-mux-pca9548a.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2c0-bcm2708.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2c1-bcm2708.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2s-mmap.dtbo +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 9b49868..a9b1ff5 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -360,6 +360,12 @@ Params: i2c_gpio_sda GPIO used for I2C data (default "23") + (default "2" = ~100kHz) + + ++Name: i2c-mux-pca9548a ++Info: Adds support for an NXP PCA9548A I2C multiplexer on i2c_arm ++Load: dtoverlay=i2c-mux-pca9548a,= ++Params: addr I2C address of PCA9548A (default 0x70) ++ ++ + Name: i2c-rtc + Info: Adds support for a number of I2C Real Time Clock devices + Load: dtoverlay=i2c-rtc,= +diff --git a/arch/arm/boot/dts/overlays/i2c-mux-pca9548a-overlay.dts b/arch/arm/boot/dts/overlays/i2c-mux-pca9548a-overlay.dts +new file mode 100644 +index 0000000..1729fd6 +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/i2c-mux-pca9548a-overlay.dts +@@ -0,0 +1,67 @@ ++// Definitions for NXP PCA9548A I2C mux on ARM I2C bus. ++/dts-v1/; ++/plugin/; ++ ++/{ ++ compatible = "brcm,bcm2708"; ++ ++ fragment@0 { ++ target = <&i2c_arm>; ++ __overlay__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ ++ i2cmux: mux@70 { ++ compatible = "nxp,pca9548"; ++ reg = <0x70>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ i2c@0 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <0>; ++ }; ++ i2c@1 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <1>; ++ }; ++ i2c@2 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <2>; ++ }; ++ i2c@3 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <3>; ++ }; ++ i2c@4 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <4>; ++ }; ++ i2c@5 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <5>; ++ }; ++ i2c@6 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <6>; ++ }; ++ i2c@7 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <7>; ++ }; ++ }; ++ }; ++ }; ++ __overrides__ { ++ addr = <&i2cmux>,"reg:0"; ++ }; ++}; +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index b63632d..2c8e4b7 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -600,6 +600,8 @@ CONFIG_I2C=y + CONFIG_I2C_CHARDEV=m + CONFIG_I2C_BCM2708=m + CONFIG_I2C_GPIO=m ++CONFIG_I2C_MUX=m ++CONFIG_I2C_MUX_PCA954x=m + CONFIG_SPI=y + CONFIG_SPI_BCM2835=m + CONFIG_SPI_BCM2835AUX=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index e720c74..f6e2d84 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -593,6 +593,8 @@ CONFIG_I2C=y + CONFIG_I2C_CHARDEV=m + CONFIG_I2C_BCM2708=m + CONFIG_I2C_GPIO=m ++CONFIG_I2C_MUX=m ++CONFIG_I2C_MUX_PCA954x=m + CONFIG_SPI=y + CONFIG_SPI_BCM2835=m + CONFIG_SPI_BCM2835AUX=m +-- +2.5.0 + + +From 29add1ee331555e816078c211619e7ae651f9d85 Mon Sep 17 00:00:00 2001 +From: Nicolas Boullis +Date: Wed, 23 Mar 2016 23:40:15 +0100 +Subject: [PATCH 211/212] BCM270X_DT: Add DS1339 to i2c-rtc overlay + +--- + arch/arm/boot/dts/overlays/README | 4 ++++ + arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts | 8 ++++++++ + 2 files changed, 12 insertions(+) + +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index a9b1ff5..e88e7c8 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -371,6 +371,8 @@ Info: Adds support for a number of I2C Real Time Clock devices + Load: dtoverlay=i2c-rtc,= + Params: ds1307 Select the DS1307 device + ++ ds1339 Select the DS1339 device ++ + ds3231 Select the DS3231 device + + mcp7941x Select the MCP7941x device +@@ -381,6 +383,8 @@ Params: ds1307 Select the DS1307 device + + pcf8563 Select the PCF8563 device + ++ trickle-resistor-ohms Resistor value for trickle charge (DS1339-only) ++ + + Name: i2c0-bcm2708 + Info: Enable the i2c_bcm2708 driver for the i2c0 bus +diff --git a/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts b/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts +index fed4bd8..eecec16 100644 +--- a/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts ++++ b/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts +@@ -17,6 +17,12 @@ + reg = <0x68>; + status = "disable"; + }; ++ ds1339: ds1339@68 { ++ compatible = "dallas,ds1339"; ++ trickle-resistor-ohms = <0>; ++ reg = <0x68>; ++ status = "disable"; ++ }; + mcp7941x: mcp7941x@6f { + compatible = "microchip,mcp7941x"; + reg = <0x6f>; +@@ -46,10 +52,12 @@ + }; + __overrides__ { + ds1307 = <&ds1307>,"status"; ++ ds1339 = <&ds1339>,"status"; + ds3231 = <&ds3231>,"status"; + mcp7941x = <&mcp7941x>,"status"; + pcf2127 = <&pcf2127>,"status"; + pcf8523 = <&pcf8523>,"status"; + pcf8563 = <&pcf8563>,"status"; ++ trickle-resistor-ohms = <&ds1339>,"trickle-resistor-ohms:0"; + }; + }; +-- +2.5.0 + + +From 37869b99dabaa84934387962d3c31bb1cd56aec3 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Tue, 29 Mar 2016 15:32:30 +0100 +Subject: [PATCH 212/212] copy_from_user: CPU_SW_DOMAIN_PAN compatibility + +The downstream copy_from_user acceleration must also play nice with +CONFIG_CPU_SW_DOMAIN_PAN. + +See: https://github.com/raspberrypi/linux/issues/1381 + +Signed-off-by: Phil Elwell +--- + arch/arm/lib/uaccess_with_memcpy.c | 14 +++++++++++--- + 1 file changed, 11 insertions(+), 3 deletions(-) + +diff --git a/arch/arm/lib/uaccess_with_memcpy.c b/arch/arm/lib/uaccess_with_memcpy.c +index c29df92..6681df5 100644 +--- a/arch/arm/lib/uaccess_with_memcpy.c ++++ b/arch/arm/lib/uaccess_with_memcpy.c +@@ -186,6 +186,7 @@ out: + unsigned long noinline + __copy_from_user_memcpy(void *to, const void __user *from, unsigned long n) + { ++ unsigned long ua_flags; + int atomic; + + if (unlikely(segment_eq(get_fs(), KERNEL_DS))) { +@@ -217,7 +218,9 @@ __copy_from_user_memcpy(void *to, const void __user *from, unsigned long n) + if (tocopy > n) + tocopy = n; + ++ ua_flags = uaccess_save_and_enable(); + memcpy(to, (const void *)from, tocopy); ++ uaccess_restore(ua_flags); + to += tocopy; + from += tocopy; + n -= tocopy; +@@ -261,9 +264,14 @@ arm_copy_from_user(void *to, const void __user *from, unsigned long n) + * With frame pointer disabled, tail call optimization kicks in + * as well making this test almost invisible. + */ +- if (n < COPY_FROM_USER_THRESHOLD) +- return __copy_from_user_std(to, from, n); +- return __copy_from_user_memcpy(to, from, n); ++ if (n < COPY_TO_USER_THRESHOLD) { ++ unsigned long ua_flags = uaccess_save_and_enable(); ++ n = __copy_from_user_std(to, from, n); ++ uaccess_restore(ua_flags); ++ } else { ++ n = __copy_from_user_memcpy(to, from, n); ++ } ++ return n; + } + + static unsigned long noinline +-- +2.5.0 +