staging/atomisp: Convert timers to use timer_setup()
Subsystems (4)
PATCH 1/1 staging/atomisp: Convert timers to use timer_setup()
In preparation for unconditionally passing the struct timer_list pointer to all timer callbacks, switch to using the new timer_setup() and from_timer() to pass the timer pointer explicitly.
Cc Mauro Carvalho Chehab <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
Cc Alan Cox <[email protected]>
Cc Daeseok Youn <[email protected]>
Cc Arnd Bergmann <[email protected]>
Cc Thomas Gleixner <[email protected]>
Signed-off-by Kees Cook <[email protected]>
---
This requires commit 686fef928bba ("timer: Prepare to change timer callback argument type") in v4.14-rc3, but should be otherwise stand-alone.
--- drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c | 13 ++++--------- drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.h | 6 +----- .../media/atomisp/pci/atomisp2/atomisp_compat_css20.c | 2 +- drivers/staging/media/atomisp/pci/atomisp2/atomisp_v4l2.c | 15 +++++---------- 4 files changed, 11 insertions(+), 25 deletions(-)
drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c +4 -9
@@ -1660,20 +1660,15 @@ void atomisp_css_flush(struct atomisp_device *isp)dev_dbg (isp->dev,"atomisp css flush done\n" ); } -#ifndef ISP2401 -void atomisp_wdt(unsigned long isp_addr) -#else -void atomisp_wdt(unsigned long pipe_addr) -#endif +void atomisp_wdt (struct timer_list *t) {#ifndef ISP2401 -struct atomisp_device *isp = (struct atomisp_device *)isp_addr; +struct atomisp_sub_device *asd =from_timer (asd, t, wdt);#else -struct atomisp_video_pipe *pipe = - (struct atomisp_video_pipe *)pipe_addr; +struct atomisp_video_pipe *pipe =from_timer (pipe, t, wdt);struct atomisp_sub_device *asd = pipe->asd; -struct atomisp_device *isp = asd->isp;#endif +struct atomisp_device *isp = asd->isp;#ifdef ISP2401 atomic_inc (&pipe->wdt_count);
drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.h +1 -5
@@ -85,11 +85,7 @@ static inline void __iomem *atomisp_get_io_virt_addr(unsigned int address)void atomisp_msi_irq_init (struct atomisp_device *isp,struct pci_dev *dev);void atomisp_msi_irq_uninit (struct atomisp_device *isp,struct pci_dev *dev);void atomisp_wdt_work (struct work_struct *work); -#ifndef ISP2401 -void atomisp_wdt (unsigned long isp_addr); -#else -void atomisp_wdt (unsigned long pipe_addr); -#endif +void atomisp_wdt (struct timer_list *t);void atomisp_setup_flash (struct atomisp_sub_device *asd);irqreturn_t atomisp_isr (int irq,void *dev);irqreturn_t atomisp_isr_thread (int irq,void *isp_ptr);
drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_css20.c +1 -1
@@ -4515,7 +4515,7 @@ int atomisp_css_isr_thread(struct atomisp_device *isp,for (i =0 ; i < isp->num_of_streams; i++)atomisp_wdt_stop (&isp->asd[i],0 );#ifndef ISP2401 -atomisp_wdt ((unsigned long )isp); +atomisp_wdt (&isp->asd[0 ].wdt);#else queue_work (isp->wdt_work_queue, &isp->wdt_work);#endif
drivers/staging/media/atomisp/pci/atomisp2/atomisp_v4l2.c +5 -10
@@ -1155,17 +1155,12 @@ static int init_atomisp_wdts(struct atomisp_device *isp)struct atomisp_sub_device *asd = &isp->asd[i]; asd = &isp->asd[i];#ifndef ISP2401 -setup_timer (&asd->wdt, atomisp_wdt, (unsigned long )isp); +timer_setup (&asd->wdt, atomisp_wdt,0 );#else -setup_timer (&asd->video_out_capture.wdt, - atomisp_wdt, (unsigned long )&asd->video_out_capture); -setup_timer (&asd->video_out_preview.wdt, - atomisp_wdt, (unsigned long )&asd->video_out_preview); -setup_timer (&asd->video_out_vf.wdt, - atomisp_wdt, (unsigned long )&asd->video_out_vf); -setup_timer (&asd->video_out_video_capture.wdt, - atomisp_wdt, - (unsigned long )&asd->video_out_video_capture); +timer_setup (&asd->video_out_capture.wdt, atomisp_wdt,0 ); +timer_setup (&asd->video_out_preview.wdt, atomisp_wdt,0 ); +timer_setup (&asd->video_out_vf.wdt, atomisp_wdt,0 ); +timer_setup (&asd->video_out_video_capture.wdt, atomisp_wdt,0 );#endif }return 0 ;
Signature · 6 lines
2.7.4 -- Kees Cook Pixel Security