linux/drivers/gpu/drm/nouveau
Ben Skeggs f553b79c03 drm/nouveau/i2c: handle bit-banging ourselves
i2c-algo-bit doesn't actually work very well on one card I have access to
(NVS 300), random single-bit errors occur most of the time - what we're
doing now is closer to what xf86i2c.c does.

The original plan was to figure out why i2c-algo-bit fails on the NVS 300,
and fix it.  However, while investigating I discovered i2c-algo-bit calls
cond_resched(), which makes it a bad idea for us to be using as we execute
VBIOS scripts from a tasklet, and there may very well be i2c transfers as
a result.

So, since I already wrote this code in userspace to track down the NVS 300
bug, and it's not really much code - lets use it.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-12-21 19:01:41 +10:00
..
Kconfig drm: fix nouveau_acpi build 2011-05-16 11:57:20 +10:00
Makefile drm/nouveau/hdmi: build ELD from EDID, notify audio driver of its presence 2011-12-21 19:01:14 +10:00
nouveau_acpi.c drm/nouveau: drop leftover debugging 2011-06-20 15:27:18 +10:00
nouveau_backlight.c drm/nva3/backlight: add suppport for newer style backlight regs 2011-09-20 16:10:06 +10:00
nouveau_bios.c drm/nouveau/i2c: do parsing of i2c-related vbios info in nouveau_i2c.c 2011-12-21 19:01:40 +10:00
nouveau_bios.h drm/nouveau/i2c: do parsing of i2c-related vbios info in nouveau_i2c.c 2011-12-21 19:01:40 +10:00
nouveau_bo.c Merge tag 'v3.2-rc6' of /home/airlied/devel/kernel/linux-2.6 into drm-core-next 2011-12-20 14:43:53 +00:00
nouveau_calc.c
nouveau_channel.c drm/nouveau: initialize chan->fence.lock before use 2011-11-10 08:58:53 +10:00
nouveau_connector.c drm/nv50/disp: allow interlaced and doublescan modes on digital outputs 2011-12-21 19:01:22 +10:00
nouveau_connector.h drm/nouveau: improve dithering properties, and implement proper auto mode 2011-12-21 19:01:21 +10:00
nouveau_crtc.h drm/nouveau/disp: kill off nouveau_crtc.mode 2011-12-21 19:01:22 +10:00
nouveau_debugfs.c drm/nouveau: enable the ttm dma pool when swiotlb is active V3 2011-12-06 10:39:51 +00:00
nouveau_display.c drm/nvd0/disp: add support for page flipping 2011-12-21 19:01:37 +10:00
nouveau_dma.c drm/nv50-nvc0: lookup pushbuf virtual address on dma_push 2011-06-23 16:00:22 +10:00
nouveau_dma.h
nouveau_dp.c drm/nouveau/i2c: tidy up bit-bang helpers, also fixing nv50 setsda bug 2011-12-21 19:01:40 +10:00
nouveau_drv.c drm/nouveau: shutdown display on suspend/hibernate 2011-12-21 19:01:35 +10:00
nouveau_drv.h drm/nouveau/i2c: do parsing of i2c-related vbios info in nouveau_i2c.c 2011-12-21 19:01:40 +10:00
nouveau_encoder.h drm/nouveau/dp: enable down-spread if vbios and sink support it 2011-09-20 16:10:35 +10:00
nouveau_fb.h drm/nouveau: move master modesetting init to nouveau_display 2011-12-21 19:01:16 +10:00
nouveau_fbcon.c drm/nouveau: re-jig fbcon suspend/resume process a little 2011-12-21 19:01:34 +10:00
nouveau_fbcon.h
nouveau_fence.c drm/nouveau: initialize chan->fence.lock before use 2011-11-10 08:58:53 +10:00
nouveau_gem.c Revert "drm/ttm: add a way to bo_wait for either the last read or last write" 2011-10-27 18:28:37 +02:00
nouveau_grctx.h drm/nouveau: Fix missing whitespace checkpatch.pl errors. 2011-05-16 10:47:25 +10:00
nouveau_hdmi.c drm/nouveau/hdmi: enable audio for nva3:nvd0 chipsets 2011-12-21 19:01:31 +10:00
nouveau_hw.c drm/nv17-nv40: Fix modesetting failure when pitch == 4096px (fdo bug 35901). 2011-06-07 09:22:29 +10:00
nouveau_hw.h
nouveau_i2c.c drm/nouveau/i2c: handle bit-banging ourselves 2011-12-21 19:01:41 +10:00
nouveau_i2c.h drm/nouveau/i2c: handle bit-banging ourselves 2011-12-21 19:01:41 +10:00
nouveau_ioc32.c
nouveau_irq.c drm/nouveau: detect disabled device in irq handler and return IRQ_NONE 2011-07-25 09:42:09 +10:00
nouveau_mem.c drm/nouveau/bios: pass drm_device to ROMPTR, rather than nvbios 2011-12-21 19:01:39 +10:00
nouveau_mm.c drm/nouveau: allow a nouveau_mm to be created with holes 2011-09-20 16:04:00 +10:00
nouveau_mm.h drm/nouveau: allow a nouveau_mm to be created with holes 2011-09-20 16:04:00 +10:00
nouveau_notifier.c drm/nv50-nvc0: explicitly map notifier bo into channel vm 2011-06-23 16:00:04 +10:00
nouveau_object.c drm/nvd0/disp: add support for page flipping 2011-12-21 19:01:37 +10:00
nouveau_perf.c drm/nouveau/bios: pass drm_device to ROMPTR, rather than nvbios 2011-12-21 19:01:39 +10:00
nouveau_pm.c drm/nouveau/pm: fix missing volt changes when boot voltage is undefined 2011-12-21 19:01:33 +10:00
nouveau_pm.h drm/nv04-nv30/pm: port to newer interfaces 2011-12-21 19:01:24 +10:00
nouveau_ramht.c
nouveau_ramht.h
nouveau_reg.h drm/nva3/backlight: add suppport for newer style backlight regs 2011-09-20 16:10:06 +10:00
nouveau_sgdma.c drm/ttm: isolate dma data from ttm_tt V4 2011-12-06 10:40:02 +00:00
nouveau_state.c drm/nvd0/disp: add support for page flipping 2011-12-21 19:01:37 +10:00
nouveau_temp.c drm/nouveau/i2c: do parsing of i2c-related vbios info in nouveau_i2c.c 2011-12-21 19:01:40 +10:00
nouveau_ttm.c
nouveau_util.c
nouveau_util.h
nouveau_vm.c drm/nvd0: add a card_type for 0xdX chipsets 2011-09-20 16:04:45 +10:00
nouveau_vm.h drm/nouveau: embed nouveau_mm 2011-09-20 16:03:56 +10:00
nouveau_volt.c drm/nouveau/bios: pass drm_device to ROMPTR, rather than nvbios 2011-12-21 19:01:39 +10:00
nv04_crtc.c drm: Replace pitch with pitches[] in drm_framebuffer 2011-12-20 10:06:27 +00:00
nv04_cursor.c
nv04_dac.c
nv04_dfp.c drm/nouveau: improve dithering properties, and implement proper auto mode 2011-12-21 19:01:21 +10:00
nv04_display.c drm/nouveau/disp: introduce proper init/fini, separate from create/destroy 2011-12-21 19:01:33 +10:00
nv04_fb.c
nv04_fbcon.c
nv04_fifo.c
nv04_graph.c drm/nouveau/gr: disable fifo access and idle before suspend ctx unload 2011-07-25 09:43:38 +10:00
nv04_instmem.c DRM: remove drm_pci_device_is_pcie 2011-07-13 08:14:52 +01:00
nv04_mc.c
nv04_pm.c drm/nv04-nv30/pm: port to newer interfaces 2011-12-21 19:01:24 +10:00
nv04_timer.c drm/nouveau/pm: remove the older interfaces completely 2011-12-21 19:01:25 +10:00
nv04_tv.c
nv10_fb.c
nv10_fifo.c
nv10_gpio.c drm/nouveau/gpio: remove invert flag, use state[] everywhere 2011-12-21 19:01:12 +10:00
nv10_graph.c drm/nouveau/gr: disable fifo access and idle before suspend ctx unload 2011-07-25 09:43:38 +10:00
nv17_tv.c
nv17_tv.h
nv17_tv_modes.c
nv20_graph.c drm/nouveau/gr: disable fifo access and idle before suspend ctx unload 2011-07-25 09:43:38 +10:00
nv30_fb.c
nv31_mpeg.c drm/nv31/mpeg: support for a single class3174 user 2011-09-20 16:03:44 +10:00
nv40_fb.c
nv40_fifo.c drm/nv40/vpe: add support for PMPEG 2011-05-16 10:48:56 +10:00
nv40_graph.c drm/nouveau: pass flag to engine fini() method on suspend 2011-07-25 09:43:22 +10:00
nv40_grctx.c
nv40_mc.c
nv40_pm.c drm/nouveau/pm: make clocks_set return an error code clocks_set can fail. 2011-12-21 19:01:23 +10:00
nv50_calc.c drm/nva3/clk: better pll calculation when no fractional fb div available 2011-05-16 10:50:59 +10:00
nv50_crtc.c drm/nv50/disp: fix scaling of doublescan modes 2011-12-21 19:01:23 +10:00
nv50_cursor.c drm/nouveau: make general drm modesetting init common 2011-09-20 16:05:04 +10:00
nv50_dac.c drm/nv50/disp: disconnect encoders before reprogramming them 2011-12-21 19:01:19 +10:00
nv50_display.c drm/nv50/disp: fix evo for create/init + destroy/fini split 2011-12-21 19:01:34 +10:00
nv50_display.h drm/nv50/disp: fix evo for create/init + destroy/fini split 2011-12-21 19:01:34 +10:00
nv50_evo.c drm/nv50/disp: fix evo for create/init + destroy/fini split 2011-12-21 19:01:34 +10:00
nv50_evo.h
nv50_fb.c
nv50_fbcon.c drm/nv50-nvc0: explicitly map fbcon fb into channel vm 2011-06-23 15:59:59 +10:00
nv50_fifo.c
nv50_gpio.c drm/nvd0/gpio: initial implementation 2011-09-20 16:05:36 +10:00
nv50_graph.c drm/nv50: also report errors in MP1/MP2 when they happen. 2011-12-21 19:01:17 +10:00
nv50_grctx.c drm/nv50: fix stability issue on NV86. 2011-11-10 08:58:57 +10:00
nv50_instmem.c drm/nouveau: will need to specify channel for vm-ful gpuobj allocations 2011-06-23 15:59:18 +10:00
nv50_mc.c
nv50_mpeg.c drm/nouveau: pass flag to engine fini() method on suspend 2011-07-25 09:43:22 +10:00
nv50_pm.c drm/nv50/pm: fix a typo in clock calculation 2011-12-21 19:01:33 +10:00
nv50_sor.c drm/nouveau/disp: kill off nouveau_crtc.mode 2011-12-21 19:01:22 +10:00
nv50_vm.c drm/nv50: fix page faulting for 128MB page table sizes 2011-12-21 19:01:31 +10:00
nv50_vram.c drm/nv50/vram: fix incorrect detection of bank count on newer chipsets 2011-11-10 08:58:47 +10:00
nv84_bsp.c drm/nouveau/vdec: implement stub modules for the known engines 2011-12-21 19:01:10 +10:00
nv84_crypt.c drm/nouveau: pass flag to engine fini() method on suspend 2011-07-25 09:43:22 +10:00
nv84_vp.c drm/nouveau/vdec: implement stub modules for the known engines 2011-12-21 19:01:10 +10:00
nv98_crypt.c drm/nouveau/vdec: implement stub modules for the known engines 2011-12-21 19:01:10 +10:00
nv98_ppp.c drm/nouveau/vdec: implement stub modules for the known engines 2011-12-21 19:01:10 +10:00
nva3_copy.c drm/nouveau: pass flag to engine fini() method on suspend 2011-07-25 09:43:22 +10:00
nva3_copy.fuc drm/nva3/copy: fix typo in fuc which caused host to not recieve exceptions 2011-12-21 19:01:30 +10:00
nva3_copy.fuc.h drm/nva3/copy: fix typo in fuc which caused host to not recieve exceptions 2011-12-21 19:01:30 +10:00
nva3_pm.c drm/nouveau/pm: make clocks_set return an error code clocks_set can fail. 2011-12-21 19:01:23 +10:00
nvc0_copy.c drm/nouveau: pass flag to engine fini() method on suspend 2011-07-25 09:43:22 +10:00
nvc0_copy.fuc.h drm/nva3/copy: fix typo in fuc which caused host to not recieve exceptions 2011-12-21 19:01:30 +10:00
nvc0_fb.c drm/nvc0/fb: slightly improve PMFB intr handling, move out of nvc0_graph.c 2011-09-20 16:12:21 +10:00
nvc0_fbcon.c drm/nv50-nvc0: explicitly map notifier bo into channel vm 2011-06-23 16:00:04 +10:00
nvc0_fifo.c drm/nvc0/fifo: avoid touching missing subfifos 2011-09-20 16:12:18 +10:00
nvc0_graph.c drm/nvc0/gr: add initial support for nvd9, not quite there yet.. 2011-12-21 19:01:27 +10:00
nvc0_graph.fuc drm/nvc0/gr: update fuc source to assemble with latest envyas 2011-12-21 19:01:26 +10:00
nvc0_graph.h drm/nvc0/gr: add initial support for nvd9, not quite there yet.. 2011-12-21 19:01:27 +10:00
nvc0_grctx.c drm/nvc0/gr: add initial support for nvd9, not quite there yet.. 2011-12-21 19:01:27 +10:00
nvc0_grgpc.fuc drm/nvc0/gr: add initial support for nvd9, not quite there yet.. 2011-12-21 19:01:27 +10:00
nvc0_grgpc.fuc.h drm/nvc0/gr: add initial support for nvd9, not quite there yet.. 2011-12-21 19:01:27 +10:00
nvc0_grhub.fuc drm/nvc0/gr: add initial support for nvd9, not quite there yet.. 2011-12-21 19:01:27 +10:00
nvc0_grhub.fuc.h drm/nvc0/gr: add initial support for nvd9, not quite there yet.. 2011-12-21 19:01:27 +10:00
nvc0_instmem.c drm/nvc0: enable per-client address spaces 2011-06-23 16:01:41 +10:00
nvc0_pm.c drm/nvc0/pm: minor clock readback fixes 2011-09-20 16:11:55 +10:00
nvc0_vm.c drm/nv50-nvc0/vm: don't touch chan_vm 2011-06-23 15:58:40 +10:00
nvc0_vram.c drm/nvc0/vram: skip disabled PBFB subunits 2011-11-10 09:00:02 +10:00
nvd0_display.c drm/nvd0/disp: use single, shared, sync bo for all evo channels 2011-12-21 19:01:38 +10:00
nvreg.h drm/nv17-nv40: Fix modesetting failure when pitch == 4096px (fdo bug 35901). 2011-06-07 09:22:29 +10:00