• Hans Verkuil's avatar
    [media] saa7164: fix sparse warnings · 065e1477
    Hans Verkuil authored
    Fix many sparse warnings:
    
    drivers/media/pci/saa7164/saa7164-core.c:97:18: warning: cast removes address space of expression
    drivers/media/pci/saa7164/saa7164-core.c:122:31: warning: cast removes address space of expression
    drivers/media/pci/saa7164/saa7164-core.c:122:31: warning: incorrect type in initializer (different address spaces)
    drivers/media/pci/saa7164/saa7164-core.c:122:31:    expected unsigned char [noderef] [usertype] <asn:2>*bufcpu
    drivers/media/pci/saa7164/saa7164-core.c:122:31:    got unsigned char [usertype] *<noident>
    drivers/media/pci/saa7164/saa7164-core.c:282:44: warning: cast removes address space of expression
    drivers/media/pci/saa7164/saa7164-core.c:286:38: warning: cast removes address space of expression
    drivers/media/pci/saa7164/saa7164-core.c:286:35: warning: incorrect type in assignment (different address spaces)
    drivers/media/pci/saa7164/saa7164-core.c:286:35:    expected unsigned char [noderef] [usertype] <asn:2>*p
    drivers/media/pci/saa7164/saa7164-core.c:286:35:    got unsigned char [usertype] *<noident>
    drivers/media/pci/saa7164/saa7164-core.c:352:44: warning: cast removes address space of expression
    drivers/media/pci/saa7164/saa7164-core.c:527:53: warning: cast removes address space of expression
    drivers/media/pci/saa7164/saa7164-core.c:129:30: warning: dereference of noderef expression
    drivers/media/pci/saa7164/saa7164-core.c:133:38: warning: dereference of noderef expression
    drivers/media/pci/saa7164/saa7164-core.c:133:72: warning: dereference of noderef expression
    drivers/media/pci/saa7164/saa7164-core.c:134:35: warning: dereference of noderef expression
    drivers/media/pci/saa7164/saa7164-core.c:287:61: warning: dereference of noderef expression
    drivers/media/pci/saa7164/saa7164-core.c:288:65: warning: dereference of noderef expression
    drivers/media/pci/saa7164/saa7164-core.c:289:65: warning: dereference of noderef expression
    drivers/media/pci/saa7164/saa7164-core.c:290:65: warning: dereference of noderef expression
    drivers/media/pci/saa7164/saa7164-core.c:291:65: warning: dereference of noderef expression
    drivers/media/pci/saa7164/saa7164-core.c:292:65: warning: dereference of noderef expression
    drivers/media/pci/saa7164/saa7164-core.c:293:65: warning: dereference of noderef expression
    drivers/media/pci/saa7164/saa7164-core.c:294:65: warning: dereference of noderef expression
    drivers/media/pci/saa7164/saa7164-fw.c:548:52: warning: incorrect type in argument 5 (different address spaces)
    drivers/media/pci/saa7164/saa7164-fw.c:548:52:    expected unsigned char [usertype] *dst
    drivers/media/pci/saa7164/saa7164-fw.c:548:52:    got unsigned char [noderef] [usertype] <asn:2>*
    drivers/media/pci/saa7164/saa7164-fw.c:579:44: warning: incorrect type in argument 5 (different address spaces)
    drivers/media/pci/saa7164/saa7164-fw.c:579:44:    expected unsigned char [usertype] *dst
    drivers/media/pci/saa7164/saa7164-fw.c:579:44:    got unsigned char [noderef] [usertype] <asn:2>*
    drivers/media/pci/saa7164/saa7164-fw.c:597:44: warning: incorrect type in argument 5 (different address spaces)
    drivers/media/pci/saa7164/saa7164-fw.c:597:44:    expected unsigned char [usertype] *dst
    drivers/media/pci/saa7164/saa7164-fw.c:597:44:    got unsigned char [noderef] [usertype] <asn:2>*
    drivers/media/pci/saa7164/saa7164-bus.c:36:36: warning: cast removes address space of expression
    drivers/media/pci/saa7164/saa7164-bus.c:41:36: warning: cast removes address space of expression
    drivers/media/pci/saa7164/saa7164-bus.c:151:19: warning: incorrect type in assignment (different base types)
    drivers/media/pci/saa7164/saa7164-bus.c:151:19:    expected unsigned short [unsigned] [usertype] size
    drivers/media/pci/saa7164/saa7164-bus.c:151:19:    got restricted __le16 [usertype] <noident>
    drivers/media/pci/saa7164/saa7164-bus.c:152:22: warning: incorrect type in assignment (different base types)
    drivers/media/pci/saa7164/saa7164-bus.c:152:22:    expected unsigned int [unsigned] [usertype] command
    drivers/media/pci/saa7164/saa7164-bus.c:152:22:    got restricted __le32 [usertype] <noident>
    drivers/media/pci/saa7164/saa7164-bus.c:153:30: warning: incorrect type in assignment (different base types)
    drivers/media/pci/saa7164/saa7164-bus.c:153:30:    expected unsigned short [unsigned] [usertype] controlselector
    drivers/media/pci/saa7164/saa7164-bus.c:153:30:    got restricted __le16 [usertype] <noident>
    drivers/media/pci/saa7164/saa7164-bus.c:172:20: warning: cast to restricted __le32
    drivers/media/pci/saa7164/saa7164-bus.c:173:20: warning: cast to restricted __le32
    drivers/media/pci/saa7164/saa7164-bus.c:206:28: warning: cast to restricted __le32
    drivers/media/pci/saa7164/saa7164-bus.c:287:9: warning: incorrect type in argument 1 (different base types)
    drivers/media/pci/saa7164/saa7164-bus.c:287:9:    expected unsigned int [unsigned] val
    drivers/media/pci/saa7164/saa7164-bus.c:287:9:    got restricted __le32 [usertype] <noident>
    drivers/media/pci/saa7164/saa7164-bus.c:339:20: warning: cast to restricted __le32
    drivers/media/pci/saa7164/saa7164-bus.c:340:20: warning: cast to restricted __le32
    drivers/media/pci/saa7164/saa7164-bus.c:463:9: warning: incorrect type in argument 1 (different base types)
    drivers/media/pci/saa7164/saa7164-bus.c:463:9:    expected unsigned int [unsigned] val
    drivers/media/pci/saa7164/saa7164-bus.c:463:9:    got restricted __le32 [usertype] <noident>
    drivers/media/pci/saa7164/saa7164-bus.c:466:21: warning: cast to restricted __le16
    drivers/media/pci/saa7164/saa7164-bus.c:467:24: warning: cast to restricted __le32
    drivers/media/pci/saa7164/saa7164-bus.c:468:32: warning: cast to restricted __le16
    drivers/media/pci/saa7164/saa7164-buffer.c:122:18: warning: incorrect type in assignment (different address spaces)
    drivers/media/pci/saa7164/saa7164-buffer.c:122:18:    expected unsigned long long [noderef] [usertype] <asn:2>*cpu
    drivers/media/pci/saa7164/saa7164-buffer.c:122:18:    got void *
    drivers/media/pci/saa7164/saa7164-buffer.c:127:21: warning: incorrect type in assignment (different address spaces)
    drivers/media/pci/saa7164/saa7164-buffer.c:127:21:    expected unsigned long long [noderef] [usertype] <asn:2>*pt_cpu
    drivers/media/pci/saa7164/saa7164-buffer.c:127:21:    got void *
    drivers/media/pci/saa7164/saa7164-buffer.c:134:20: warning: cast removes address space of expression
    drivers/media/pci/saa7164/saa7164-buffer.c:156:63: warning: incorrect type in argument 3 (different address spaces)
    drivers/media/pci/saa7164/saa7164-buffer.c:156:63:    expected void *vaddr
    drivers/media/pci/saa7164/saa7164-buffer.c:156:63:    got unsigned long long [noderef] [usertype] <asn:2>*cpu
    drivers/media/pci/saa7164/saa7164-buffer.c:179:57: warning: incorrect type in argument 3 (different address spaces)
    drivers/media/pci/saa7164/saa7164-buffer.c:179:57:    expected void *vaddr
    drivers/media/pci/saa7164/saa7164-buffer.c:179:57:    got unsigned long long [noderef] [usertype] <asn:2>*cpu
    drivers/media/pci/saa7164/saa7164-buffer.c:180:56: warning: incorrect type in argument 3 (different address spaces)
    drivers/media/pci/saa7164/saa7164-buffer.c:180:56:    expected void *vaddr
    drivers/media/pci/saa7164/saa7164-buffer.c:180:56:    got unsigned long long [noderef] [usertype] <asn:2>*pt_cpu
    drivers/media/pci/saa7164/saa7164-buffer.c:84:17: warning: dereference of noderef expression
    drivers/media/pci/saa7164/saa7164-buffer.c:147:31: warning: dereference of noderef expression
    drivers/media/pci/saa7164/saa7164-buffer.c:148:17: warning: dereference of noderef expression
    
    Most are caused by pointers marked as __iomem when they aren't or not marked as
    __iomem when they should.
    
    Also note that readl/writel already do endian conversion, so there is no need to
    do it again.
    
    saa7164_bus_set/get were a bit tricky: you have to make sure the msg endian
    conversion is done at the right time, and that the code isn't using fields that
    are still little endian instead of cpu-endianness.
    
    The approach chosen is to convert just before writing to the ring buffer
    and to convert it back right after reading from the ring buffer.
    Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
    Cc: Steven Toth <stoth@kernellabs.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
    065e1477
saa7164-core.c 40.1 KB