Core-chat-meeting-2016-11-22

09:05 < geertu> Welcome to today's Core Group Meeting!
09:05 < geertu> Agenda:
09:05 < geertu> 1. Status updates
09:05 < geertu> 2. CPG/MSSR reset support
09:05 < geertu> 3. R-Car DMAC transfer termination synchronization support
09:05 < geertu> 4. Shared GPIOs
09:05 < geertu> 5. BSP GPIO question
09:05 < geertu> Topic 1. Status updates
09:05 < geertu> A) What have I done since last time
09:05 < geertu> B) What I plan to do till next time
09:06 < geertu> C) Problems I have currently
09:06 < geertu> First is Ulrich.
09:06 < geertu> -ENODEV
09:06 < geertu> Second is Simon
09:07 < horms> Status:
09:07 < horms> A) What have I done since last time
09:07 < horms> * No core task at this time
09:07 < horms> B) What I plan to do till next time
09:07 < horms> * See above
09:07 < horms> C) Problems I have currently
09:07 < horms> * Push back from Olof on pull-requests: under discussion with him
09:07 < horms> * Gen3 Suspend-to-RAM: What are the next steps (same as last time)
09:07 < horms> -- end --
09:07 < geertu> I think the next step is
09:07 < geertu> r8a7796,?,noplan,?,Investigate suspend-to-idle
09:07 < horms> got it
09:08 < geertu> About Olof, looks like he was not very responsive yesterday?
09:08 < horms> yes
09:09 < horms> i am concerned that he may continue to be unresponsive
09:09 < horms> and drivers + arm32 will simply not be included in v4.10
09:09 < horms> to be frank, not responsinve is the normal mode of operation
09:09 < geertu> And every user who wants to use soc_device_match() in v4.11 will have to import an immutable branch?
09:10 < geertu> Let's wait and see?
09:10 < horms> I think wating a little is resonable
09:10 < horms> but I also think we need to consider what plan B should look like
09:10 < horms> that doesn't need to be discussed in this meeting
09:11 < geertu> Looks like there will be an -rc8, so more time left
09:11 < geertu> Thanks Simon.
09:11 < geertu> Next is Shimoda-san
09:11 < shimoda> yes
09:11 < shimoda> A) B) nothing
09:12 < shimoda> C) I would like to use soc_device_match() for xhci-rcar to supprt H3 ES2.0
09:12 < shimoda> EOT
09:12 < shimoda> s/supprt/support/
09:12 < geertu> According to the latest updates to rel/todo, H3 ES2.0 is expected to arrive on 2017-02-31?
09:13 < shimoda> geertu: yes
09:13 < geertu> Or is that the target date of the working software support?
09:13 < pinchartl> geertu: if the hardware really arrives on 2017-02-31 then we'll have to wait a looooong time
09:14 < shimoda> it is arrive date of the hardware
09:14 < shimoda> pinchartl: indeed...
09:15 < geertu> I understand Tokyo is already writing support for it?
09:15 < pinchartl> any chance it could arrive on 2017-02-28, or 2017-03-03 instead ? :-)
09:16 < horms> pinchartl: its timeless hardware
09:16  * geertu hadn't noticed the invalid date ;-)
09:16 < morimoto> or un-exist hardware ?
09:17 < geertu> Ok, we'll handle it as soon as it arrives, i.e. on Feb. 32.
09:17 < geertu> Thanks Shimoda-san.
09:17 < geertu> Next is Niklas
09:17 < neg> A) PFC drive-strength and bias setting for none-GPIO pins on r8a7795 and r8a7796 posted
09:17 < neg> B) Nothing planed yet, keep talking to Geert and try to find a suitable core task :-)
09:17 < neg> C) None
09:17 < neg> EOT
09:18 < horms> neg: what if any issues are there with drive strength on Gen3?
09:19 < geertu> We still have to enable drive strength for ravb in the .dts, right?
09:20 < neg> horms: I have not seen any issues, on r8a7795 there where none GPIO pins missing in the driver
09:20 < neg> geertu: yes
09:20 < horms> neg: thanks
09:21 < geertu> neg: Will you handle the .dts part?
09:22 < geertu> Probably it'll have a hard dependency on the pfc driver updates (hi Olof ;-)
09:22 < neg> geertu: yes, I was waiting for all PFC parts to be picked up first but then I will
09:23 < horms> any chance the PFC (driver) parts can be included in v4.10?
09:23 < geertu> neg: It wouldn't hurt to have it in renesas-drivers (not today, though)
09:23 < geertu> horms: For r8a7795, it will (cfr. pinctrl/for-next)
09:24 < geertu> I don't plan to send any more clk/pinctrl pull request for v4.10, though.
09:24 < horms> ok, thenk the DT portion could go into v4.11, right?
09:24 < geertu> Yep.
09:24 < horms> a related question. how late in the cycle does LinusW take (PFC) patches?
09:25 < geertu> Or late v4.10 (as in: example for a bug fix needed for people doing their own boards and boot loaders)
09:25 < neg> geertu: yes, I will have it ready for next weeks renesas-drivers, you and Laurent have reviewd the PFC driver so it should be OK for .dts now
09:25 < geertu> horms: I'm not so sure. Quite late, I think.
09:25 < horms> ok. of course if its a bug fix then we can submit dt changes for v4.10.
09:26 < geertu> horms: You're thinking about having drive strength for r8a7796 in v4.10, too?
09:26 < horms> I have no particular thoughts
09:26 < horms> other than that if driver changes are in version n then its easy to add dt changes to version n+1
09:27 < geertu> Yep, it's easy. The issue is if you want it earlier ;-)
09:27 < horms> s/easy/easier/
09:27 < horms> I am in no rush
09:27 < geertu> ok
09:27 < horms> sorry for giving the impression that I was
09:27 < geertu> Thanks Niklas
09:27 < geertu> Next is Morimoto-san
09:28 < morimoto> int a, b, c;
09:28 < morimoto>  
09:28 < morimoto> a = b = c = -ENOTASK;
09:28 < morimoto>  
09:28 < morimoto> return 0;
09:28 < morimoto>  
09:28 < geertu> return -EPROBE_DEFER?
09:28 < morimoto> no idea :)
09:29 < geertu> morimoto: you found the hard drive?
09:29 < morimoto> But I need to know BSP team's question answer :)
09:29 < geertu> Sure, that's a separate topic.
09:29 < morimoto> hard drive ?
09:29 < geertu> "Our team's server HDD has gone" (HDD != hard disk drive?)
09:30 < morimoto> Ahh, yes !
09:30 < morimoto> I re-start works for us :)
09:30 < geertu> Good.
09:30 < morimoto> Thanks
09:30 < geertu> morimoto: About TDSEL: Sure there must be documented HDL source code for R-Car Gen2?
09:31 < morimoto> Maybe, but I don't know
09:31 < pinchartl> geertu: s/documented //
09:31 < morimoto> HW team is busy
09:32 < geertu> OK
09:32 < pinchartl> morimoto: if we can get the HDL source we can have a look and find out :-)
09:32 < geertu> Can I include it in renesas-drivers?
09:32 < morimoto> 1) Maybe HW team doesn't give it to me
09:32 < morimoto> 2) It can't export to you guys
09:33 < morimoto> I can't export
09:33 < horms> morimoto: i think they were joking :)
09:33 < morimoto> :(
09:33  * geertu was
09:33 < geertu> THanks, Morimoto-san
09:33 < morimoto> geertu: what is "it" mean ?
09:33 < geertu> Next is Magnus
09:34 < geertu> it == HDL source
09:34 < geertu> -EJAPANESE_LESSON?
09:34 < morimoto> Ahh, of course not
09:34 < geertu> Next is Laurent
09:34 < morimoto> -EDRINKING
09:35 < pinchartl> nothing to report
09:36 < geertu> Thanks Laurent
09:36 < geertu> Next is Khiem
09:36 < geertu> -EINTR?
09:37 < geertu> Next (last) is Geert
09:37 < geertu> A) What have I done since last time - Completed SoC identifaction - Queued up RZ/G1M and RZ/G1E clock drivers, - Sent more clock and pinctrl pull requests,
09:37 < geertu> B) What I plan to do till next time - Coerce Simon into taking all MODEMR related patches, - Investigate IPMMU and Ethernet
09:37 < geertu> C) Problems I have currently - What's wrong with the IPMMU and Ethernet?
09:37 < geertu> (hm, bad formatting. should switch to .rst?)
09:38 < geertu> Anyone else who tried IPMMU and had mixed results?
09:38 < horms> For B, we need to to take into account our recent interation with Mr. Olof. Probably after the current round of bother blows over.
09:38 < pinchartl> geertu: there's "a bit" of corruption on the screen when IPMMU is enabled for the VSP/DU
09:39 < geertu> B depends on the RST series, which is going in through clk
09:39 < shimoda> pinchartl: about VSP/DU with IPMMU, did you try on M3?
09:40 < geertu> pinchartl: Corruption could explain it. I haven't dug deeper into it, but NFS root works initially, then the network stops working (on M3)
09:40 < pinchartl> shimoda: not personally, no
09:41 < neg> I have problem on H3 and VIN+IPMMU, corruption on VIN1 but not on VIN0 if I look at the video using applications but works fine in VIN->DU
09:42 < shimoda> pinchartl: i see. H3 ES1.x has an issue about ipmmu. if multiple request happens from hw, the IPMMU TLBs will currupt
09:43 < pinchartl> shimoda: that could explain it
09:43 < pinchartl> we should retest everything on M3
09:43 < shimoda> pinchartl: I think so
09:43 < geertu> Any known issues on M3?
09:45 < shimoda> geertu: about IPMMU? if so, no serious issue on M3, but some performance issues exist
09:46 < geertu> OK
09:46 < geertu> Let'
09:46 < geertu> s continue
09:46 < geertu> Topic 2. CPG/MSSR reset support
09:46 < geertu> From morimoto-san
09:46 < geertu> We would like to have MSTP::Reset feature for each devices,
09:46 < geertu> it is requested on HW user manual (maybe we don't have it ?).
09:46 < geertu> This Reset is necessary on initial time.
09:46 < geertu> First of all, who should handle it ? by Linux ? by IPL ?
09:46 < geertu> If answer was "IPL", we will ask it to BSP guys.
09:46 < geertu> If answer was linux, it can be Core topics.
09:46 < geertu> I guess it should be handled by pm_runtime_xxx() ?
09:46 < geertu> EOT
09:47 < geertu> To me, it looks like this should be handled by the CPG/MSSR driver (the old MSTP driver cannot easily be extended for that)
09:48 < pinchartl> I agree. there's a reset controller API in the kernel that can be used for this purpose
09:48 < geertu> I'm a bit puzzled by the conflicting "This Reset is necessary on initial time." and "I guess it should be handled by pm_runtime_xxx()"
09:48 < morimoto> please drop last comment
09:48 < geertu> It's still a bit unclear how this is supposed to be used.
09:48 < morimoto> it is just my opinion
09:48 < geertu> OK
09:49 < geertu> From a quick look, drivers call into the reset controller API when they want to reset a module?
09:49 < geertu> But that means the driver for the module is in control, why we need reset for all modules on initial time?
09:49 < geertu> Also, what does the "HW user manual" say?
09:50 < pinchartl> could "initial time" mean "probe time" ?
09:51 < geertu> Possibly.
09:52 < geertu> Or "resume" time? (with "DDR backup" in the BSP)
09:52 < morimoto> Above my comment (= pm_runtime_xxx) was based on every "use time"
09:52 < geertu> If this is a common requirement, it would be good to handle it in common infrastructure, and not in each individual driver (cfr. PM domains)
09:53 < geertu> morimoto: Note that each time you reset the module, all registers are changed to their reset values
09:54 < morimoto> Yes, I know. Each driver shouldn't assume it can keep register settings IMO
09:56 < geertu> If you reset the module on every pm_runtime_get_sync(), you have to restore all registers all the time, which will kill performance
09:57 < morimoto> But it is necessary if you want to support Suspend/Resume.
09:57 < morimoto> Suspend will kill Power, and all register value will gone
09:57 < geertu> If "reset on initial time" is the only thing we need, then the CPG/MSSR driver could reset each module the first time its clock is enabled.
09:58 < geertu> morimoto: Sure, but that doesn't mean we have to do it in every pm_runtime_get_sync(), only when resuming.
09:58 < morimoto> Current R-Car doesn't have PowerDomain, so maybe yes. But if SoC has PowerDomain, it needs
09:59 < geertu> If Suspend kills power, we have to reset the module after resume, too?
09:59 < morimoto> If SoC has PowerDomain, and if no user exist, module power will be killed
10:01 < pinchartl> Gen3 has power domains
10:01 < geertu> Yes, and we already have to handle that in drivers shared with SH/R-Mobile, which does have power domaains
10:02 < geertu> Still, it would be good to know what the "HW user manual" says... Is that document available?
10:02 < morimoto> About Reset, maybe it is needed on Probe time, and resume time.
10:02 < morimoto> My pm_runtime_xxx is related a little bit different topic
10:02 < pinchartl> one concern I have with resetting modules is that the secure firmware might poke with some (possibly undocumented) registers after resume. if we then reset the modules, things might start breaking
10:03 < geertu> Can't the secure firmware prevent us from resetting some modules?
10:05 < pinchartl> indeed it can
10:06 < geertu> I think we need to know more of the "why" behind this request. We've been living without resetting modules for many years.
10:07 < pinchartl> for some modules, though, it would be useful, if only as a workaround
10:07 < pinchartl> for instance the VSP sometimes fail to stop
10:07 < pinchartl> that's most likely cause by a driver bug
10:07 < geertu> OK. That reset under driver control.
10:07 < geertu> Not "This Reset is necessary on initial time"
10:07 < pinchartl> but the failure can be detected, and a module reset could potentially be helpful
10:07 < geertu> s/That/That's/
10:08 < pinchartl> correct, although I wouldn't mind being able to reset moduls at probe time, to wipe off crazy configurations applied by the boot loader :-)
10:08 < pinchartl> that problem should of course ideally be fixed in the boot loader, which shouldn't apply crazy configurations in the first place
10:08 < geertu> Well, drivers should not make assumptions about the boot loader, and initialize all registers anyway?
10:10 < morimoto> geertu: not all, but some deivce was indicated on datasheet.
10:10 < pinchartl> it's easily to overlook a register whose reset default value is fine
10:10 < morimoto> For example SATA, can you see v0.52 manual, 72.3.10 ?
10:12 < pinchartl> morimoto: I think that what we'd like to know is whether some modules require a reset (as in the module will fail in more or less subtle ways if it's not reset) or if it's more of a good practice rule that would make the BSP team sleep better at night
10:13 < pinchartl> or, to put it differently, what are the problems that will be fixed by resetting modules ?
10:14 < geertu> Exactly.
10:14 < morimoto> SATA, Thermal are indicated on datasheet, Sound was indicated on Application manual
10:14 < geertu> The flow chart in 72.3.10 is indeed interesting
10:14 < morimoto> The reason why BSP team needs it is because it is indicated on datasheet :(
10:15 < geertu> 1. It refers to SASRSTECR (unfortunately in graphical form, so a text search won't find it)
10:15 < geertu> 2. The corresponding CPG/MSSR sections says: This register is functional safety use only. Keep initial value
10:15 < geertu> ???
10:16 < horms> morimoto: I understand that the BSP team wants to comply with the documentation. But in my experience some kind of run-time behaviour enhancment/fix/... helps to motivate changes in mainline
10:18 < morimoto> horms: do you mean, "because it was indicated on datasheet" is not good reason ?
10:18 < horms> i mean it would be easier from a mainline point of view if that was not the only reason
10:21 < geertu> I think we should move on to the next topic...
10:21 < geertu> Topic 3. R-Car DMAC transfer termination synchronization support
10:21 < geertu> From Morimoto-san:
10:22 < geertu> BSP team has rcar-dmac issue. Laurent posted its patch last year, but it was
10:22 < geertu> canceled. because it needed new frame-work.
10:22 < geertu> https://patchwork.kernel.org/patch/7175381/
10:22 < geertu> Now, upstream has it. It can be next Core group Task ?
10:22 < geertu> b36f09c3c441a6e59eab9315032e7d546571de3f
10:22 < geertu> ("dmaengine: Add transfer termination synchronization support")
10:22 < geertu> EOT
10:22 < geertu> Is there anything to discuss, or just a task to add?
10:22 < morimoto> pinchartl: can you explain ?
10:23 < pinchartl> the BSP patch was waiting for the hardware to complete all transactions when terminating them
10:24 < pinchartl> but the termination function was sometimes called from non-sleepable contexts, so I nacked the patch
10:24 < pinchartl> now the DMA engine API has support for synchronous and asynchronous termination
10:24 < pinchartl> so we can implement the feature
10:25 < morimoto> it can be 17Q1 task ?
10:26 < geertu> I think so
10:27 < morimoto> Nice. BSP team (or customer) needs it
10:27 < geertu> Topic 4. Shared GPIOs
10:27 < geertu> From Laurent: For key + LED operation
10:27 < pinchartl> Linus isn't against the idea
10:28 < pinchartl> all we need is someone to implement it
10:28 < pinchartl> neg: did you say you were looking for a core task ? :-)
10:28 < geertu> I think he already has an option on "GPIO-RCAR,?,noplan,?,Fix Runtime PM with GPIO interrupts (depends on irqchip PM)
10:29 < pinchartl> shared GPIOs might not be the most urgent one though, but it's nice for our upstream PR to drive API and framework changes
10:29 < geertu> Well said ;-)
10:30 < geertu> I'll add a task to core/todo
10:30 < geertu> Topic 5. BSP GPIO question
10:30 < horms> fwiw, i am for such activities
10:30 < geertu> shimoda: Any last minute info?
10:30 < neg> I happy to work on either of them :-)
10:32 < shimoda> unfotunately, i don't receive the detail so we can skip it :)
10:32 < shimoda> i'll forward it by email laster
10:32 < geertu> OK, thanks
10:32 < shimoda> s/laster/later/
10:32 < geertu> Anything else to add?
10:34 < neg> Have we settled on next face to face core meeting to be at FOSDEM timing?
10:34 < geertu> Well, looks like Magnus wants to evade by arriving late? ;-)
10:35 < geertu> Probably it'll happen on Friday (half a day shared with I/O)
10:35 < horms> geertu: any thoughts on Olof's idea regarding pfc/Kconfig?
10:36 < geertu> horms: I still have to reply why it's a bad idea
10:36 < horms> ok
10:36 < horms> fwiw, i think its a can of worms
10:37 < pinchartl> geertu: Friday before the FOSDEM ?
10:37 < geertu> pinchartl: yep
10:37 < pinchartl> I'll be there
10:37 < geertu> OK
10:37 < geertu> Thanks for joining, and have a nice continued day!
10:38 < pinchartl> I mean, at least in Belgium :-)
10:38 < neg> I only asked so i can buy tickets before my financial year ends :-) I will be there
10:38 < geertu> horms: Bummer, forgot to email sfr yesterday
10:38 < horms> I also expect to be there
10:39 < horms> geertu: I for one was distracted
10:57 < morimoto> I guess chat meeting was finished ?
10:57 < horms> I guess so too
10:59 < neg> next meeting in 2 weeks, same time?
10:59 < geertu> Yes, that's the plan. Will send the report later
10:59 < morimoto> Today is started on EuroPeri side, but Today will finish on Japan side. So, please finalize meeting if it was finished. Otherwise we can't go back :P
11:00 < geertu> (repeat) Thanks for joining, and have a nice continued day!