On Mon, Mar 25, 2019 at 05:52:10PM +0800, zhuchangchun@xxxxxxxx wrote: > On Sat, Mar 23, 2019 at 02:51:52PM +0800, zhuchangchun@xxxxxxxx wrote: > > On Fri, Mar 22, 2019 at 11:14:14AM +0800, zhuchangchun@xxxxxxxx wrote: > > > > From above,you can kown when you export a GPIO ,it will do request, > > > > > > and there will set TX and RX register at the time same time. > > > > > > when you try to set direction in and set value, TX register value can > > > roll back > > > > > > the value,but RX register was not set, so who will set RX value back?? > > > > I think you are looking at some older code. There is now function > > __intel_gpio_set_direction() that is supposed to set both buffers > > depending on the direction. It was introduced with commit 17fab473693e > > ("pinctrl: intel: Set pin direction properly"). > > > > > > --> Yes ,I see the latest master branch, the __intel_gpio_set_direction will > > set RX and TX, but I still think we need to implement free function,cause > > it will help many other engineers,especailly for some manufactories use some > > module,and this modules embeded its own driver but not can be modified, > > if they want use the gpio control the module, they may meet the same problem. > > What problem? > Is it reproducible on latest vanilla kernel? > > --> Not yet, I mean if someone use export GPIO ,then forget to set direction in, > and then set GPIO unexport directly, the GPIO buffer status may influence > the device work flow. If you would like to return pin back to the previous state, it should be done in generic way in the pin control subsystem. Since there is no problem, nothing to fix then. -- With Best Regards, Andy Shevchenko