[bug report] media: platform: meson: Add Amlogic Meson G12A AO CEC Controller driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Neil Armstrong,

The patch b7778c46683c: "media: platform: meson: Add Amlogic Meson
G12A AO CEC Controller driver" from Apr 12, 2019, leads to the
following static checker warning:

	drivers/media/platform/meson/ao-cec-g12a.c:377 meson_ao_cec_g12a_read()
	error: scheduling with locks held: 'spin_lock:cec_reg_lock'

drivers/media/platform/meson/ao-cec-g12a.c
   363  static int meson_ao_cec_g12a_read(void *context, unsigned int addr,
   364                                    unsigned int *data)
   365  {
   366          struct meson_ao_cec_g12a_device *ao_cec = context;
   367          u32 reg = FIELD_PREP(CECB_RW_ADDR, addr);
   368          unsigned long flags;
   369          int ret = 0;
   370  
   371          spin_lock_irqsave(&ao_cec->cec_reg_lock, flags);
                ^^^^^^^^^^^^^^^^^
Atomic context.

   372  
   373          ret = regmap_write(ao_cec->regmap, CECB_RW_REG, reg);
   374          if (ret)
   375                  goto read_out;
   376  
   377          ret = regmap_read_poll_timeout(ao_cec->regmap, CECB_RW_REG, reg,
   378                                         !(reg & CECB_RW_BUS_BUSY),
   379                                         5, 1000);
                                               ^
It sleeps for 5 usecs.

   380          if (ret)
   381                  goto read_out;
   382  
   383          ret = regmap_read(ao_cec->regmap, CECB_RW_REG, &reg);
   384  
   385          *data = FIELD_GET(CECB_RW_RD_DATA, reg);
   386  
   387  read_out:
   388          spin_unlock_irqrestore(&ao_cec->cec_reg_lock, flags);
   389  
   390          return ret;
   391  }

regards,
dan carpenter



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux