On Fri, Dec 17, 2021 at 08:10:45AM +0000, Tony Huang 黃懷厚 wrote: > Dear Gregkh: > > > > + > > > +static ssize_t sp_iop_state1_show(struct device *dev, struct > > > +device_attribute *attr, char *buf) { > > > + struct sp_iop *iop = dev_get_drvdata(dev); > > > + ssize_t len = 0; > > > + > > > + sp_iop_standby_mode(iop); > > > + mdelay(10); > > > + sp_iop_s1mode(dev, iop); > > > + return len; > > > +} > > > > This function is not showing anything. > > > > The purpose of this function: > SP7021 has three power states:S0, S1 and S3. > S0:Default domain is on. IOP domain is on. AO domain is on. > S1:Default domain is off. IOP domain is on. AO domain is on. > S3:Default domain is off. IOP domain is off. AO domain is on. > System enter S1 mode when read sysfs sp_iop_state1, That is not what sysfs is for, sorry. > I hope to provide users with the ability to enter S1 mode by themselves. > So I cannot use DEVICE_ATTR. I should use file_operations method. No, please use the normal power management callbacks for your driver that all other drivers use in the kernel. There is nothing special about this one driver to warrant a totally new user/kernel api for it. thanks, greg k-h